CUDA-ComputeCapacity-SM_version6.1的参数值

  1. Compute Capability

    对于CPU,不同架构的CPU有者不同的功能和指令集(MMX,SSE,SSE2)。而对于GPU,不同的功能由不同的Compute Capability表示。

    NVIDIA GPU支持的Compute Capability有1.0,1.0,... 2.0,... 6.0,6.1,7.5。高版本的Compute Capability是低版本Compute Capability的超集,就是俄罗斯套娃式的嵌套结构。比如6.1版本支持1.0版本的所有功能。

    比如,原子操作时硬件在内存上执行的。而只有1.1和1.1之后的版本才支持global memory上的原子操作,而只有1.2和1.2之后的版本才支持shared memory上的原子操作

    在应用中,通常会指定最低Compute Capability版本,如2.3,告诉编译器,如果硬件支持的Compute Capability版本低于2.3,那么将无法执行这个和函数。做法是使用nvcc时增加一个选项nvcc -arch=sm_23,所以Compute Capability有称作SM版本

    SM版本的形式是X.Y,X表示核心的架构,7表示Volta,6表示Pascal。Y表示硬件的特性版本。

    不同的SM版本所支持的特性,和技术参数,间这个页面的table14和table15:
    https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities

  2. SM version=6.1 的关键参数

    指标
    Maximum dimensionality of grid of thread blocks 3
    Maximum x- or y-dimension of a block 1024
    Maximum z-dimension of a block 64
    指标
    Maximum number of threads per block 1024
    Warp size 32
    Maximum number of resident grids per device 32
    Maximum number of resident blocks per multiprocessor 32
    Maximum number of resident warps per multiprocessor 64
    Maximum number of resident threads per multiprocessor 2048
    指标
    Number of 32-bit registers per multiprocessor 64 K
    Maximum number of 32-bit registers per thread block 64 KB
    Maximum number of 32-bit registers per thread 255
    指标
    Maximum amount of shared memory per multiprocessor 96 KB
    Maximum amount of shared memory per thread block 48 KB
    Number of shared memory banks 32
    Amount of local memory per thread 512 KB
    Constant memory size 64 KB
    Maximum number of instructions per kernel 512 million

这些指标要心里有数