Cuda共享内存在Nsight中显示为注册

时间:2012-10-10 07:04:26

标签: cuda shared-memory nsight

我声明了共享内存并尝试使用Nsight 2.2跟踪visual studio 2010.我正在使用带有quadro 5000的CUDA 4.2。

在我的kernel.cu中:

extern __shared__ ushort2 sampleGatheringSM[];

在我的函数中调用内核:

sampleGathering_SM_size =dimBlock.x*dimBlock.y*4*sizeof(ushort2)*2; // = 10240
sampleGatheringKernel<<<dimGrid, dimBlock, sampleGathering_SM_size >>>(dev_image, dev_gradient, width, height);

当我看到Nsight上的analisys活动然后“CUDA推出”时,它告诉我:

  • 每个块的分配寄存器:10240
  • 每个块分配的共享内存:0
  • 区块限制原因:注册

我是否正确分配了共享内存? 我不明白如何分配注册。

编辑:

它还告诉我:

  • 每线程注册:32
  • 每个块的动态共享内存:0
  • 每个块的静态共享内存:0

1 个答案:

答案 0 :(得分:1)

动态共享内存的声明是正确的。 Nsight 2.2分析跟踪报告存在仅针对CUDA跟踪活动的错误。分析跟踪活动使用 Nsight |选项运行的选项 | 分析 | CUDA内核跟踪模式 = 序列化和Analysis Profiler CUDA活动显示正确的值。此错误将在下一版本的Nsight中修复。