我在编译我的.cu代码时使用了--ptax-options = -v,它给出了以下内容:
ptxas info: Used 74 registers, 124 bytes smem, 16 bytes cmem[1]
我的卡的devQuery返回以下内容:
rev: 2.0
name: tesla c2050
total shared memory per block: 49152
total reg. per block: 32768
现在,我将这些数据输入到cuda占用计算器中,如下所示:
1.) 2.0
1.b) 49152
2.) threads per block: x
registers per thread: 74
shared memory per block (bytes): 124
我改变了x(每个块的线程数),因此x * 74 <= 32768。例如,我输入128(或256)代替x。我是否正确输入占用计算器所需的所有值?感谢。
答案 0 :(得分:4)
ptxas-options=--verbose
(或-v)生成格式
ptxas : info : Compiling entry function '_Z13matrixMulCUDAILi16EEvPfS0_S0_ii' for 'sm_10'
ptxas : info : Used 15 registers, 2084 bytes smem, 12 bytes cmem[1]
关键信息是
<Registers Per Thread>, <Static Shared Memory Per Block>, <Constant Memory Per Kernel>
当您填写占用计算器时
<<<GridDim, BlockDim, DynamicSharedMemoryPerBlock, Stream>>>
占用计算器帮助选项卡包含其他信息。
在您的示例中,我认为您没有正确设置字段1,因为Fermi架构限制为每线程63个寄存器。 sm_1 *支持每线程124个寄存器的限制。