CUDA学习(八十六)

简介:

计算能力6.x:
多处理器由以下部分组成:

  • 64(计算能力6.0)或128(6.1和6.2)用于算术运算的CUDA内核
  • 用于单精度浮点超越函数的16(6.0)或32(6.1和6.2)特殊功能单元,
  • 2(6.0)或4(6.1和6.2)warp调度程序。

当一个多处理器被执行时,它首先在它的调度器中进行分配。 然后,在每个指令发布时间,每个调度程序为其分配的一个warp指令发出一条指令,如果有的话,该指令即可执行。
多处理器具有:

  • 一个由所有功能单元共享的只读常量高速缓存,可加速驻留在设备内存中的常量内存空间的读取速度,
  • 一个统一的L1 /纹理缓存,用于从24 KB(6.0和6.2)或48 KB(6.1)的全局内存读取数据,
  • 大小为64 KB(6.0和6.2)或96 KB(6.1)的共享内存。

纹理单元也使用统一的L1 /纹理缓存,实现纹理和表面存储器中提到的各种寻址模式和数据过滤。
还有一个由所有多处理器共享的L2缓存,用于缓存对本地或全局内存的访问,包括临时寄存器溢出。 应用程序可以通过检查l2CacheSize设备属性来查询L2缓存大小。
高速缓存行为(例如,读取是否高速缓存在统一的L1 /纹理高速缓存和L2中或L2中)可以使用对加载指令的修饰符以逐访问为基础部分配置。
全局内存:
全局内存的运行方式与计算能力5.x的设备相同。
共享内存:
共享内存的运行方式与计算能力5.x的设备相同。
计算能力7.x(终于到Volta架构的GPU了,比Pascal架构的介绍多好多):
Architecture:
多处理器由以下部分组成:

  • 用于单精度算术运算的64个FP32内核,
  • 用于双精度算术运算的32个FP64内核,
  • 用于整数运算的64个INT32内核,
  • 8个混合精度的Tensor Cores用于深度学习矩阵算术
  • 16个用于单精度浮点超越函数的特殊功能单元
  • 4个warp调度器。

多处理器在其调度程序中静态分配其warp。 然后,在每个指令发布时间,每个调度程序为其分配的一个warp指令发出一条指令,如果有的话,它就可以执行了。
多处理器具有:

  • 一个由所有功能单元共享的只读常量高速缓存,可加速驻留在设备内存中的常量内存空间的读取速度,
  • 一个总大小为128 KB的组合数据缓存和共享内存。

共享内存从128 KB数据高速缓存中分区出来,可以配置为0,8,16,32,64或96 KB。其余数据高速缓存充当L1高速缓存,并且也被纹理单元使用,用于实现纹理和表面内存中提到的各种寻址和数据过滤模式。
timg

目录
相关文章
|
并行计算 API 异构计算
|
并行计算 异构计算
|
存储 并行计算 异构计算
|
存储 并行计算 异构计算
|
缓存 并行计算 调度
|
存储 并行计算 异构计算
|
并行计算
|
并行计算
|
缓存 并行计算 前端开发