cuda占用计算器

时间:2013-02-26 02:19:33

标签: cuda

我在编译我的.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。我是否正确输入占用计算器所需的所有值?感谢。

1 个答案:

答案 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>

当您填写占用计算器时

  • 设置字段1.)在上例
  • 中选择Compute Capability为'sm_10'
  • 设置字段2.)将每线程注册到
  • 设置字段2.)将每块内存共享为+ DynamicSharedMemoryPerBlock作为第三个参数传递给<<<GridDim, BlockDim, DynamicSharedMemoryPerBlock, Stream>>>

占用计算器帮助选项卡包含其他信息。

在您的示例中,我认为您没有正确设置字段1,因为Fermi架构限制为每线程63个寄存器。 sm_1 *支持每线程124个寄存器的限制。