CUDA中的共享内存分配

时间:2012-11-20 15:58:27

标签: cuda nsight

我正在尝试分配quadro 4000 nvidia设备上限。 2.0 以下大小的静态共享内存块:

__shared__ char temp [128][128];

然而,当查看Nsight调试器时,我只能看到64 * 64个单元。 剩下的细胞在哪里? 另外,当我查看分析器时,我可以看到共享内存列下出现16KB(这没关系。)

是什么给出了?

1 个答案:

答案 0 :(得分:4)

Nsight Visual Studio Edition CUDA调试器有几个选项可用于控制变量监视窗口中显示的表达式的评估和可视化。阵列扩展的默认设置是64.限制是为了避免限制评估大型阵列的成本。

更改设置

  1. 从顶级Nsight菜单执行命令选项...
  2. 在NVIDIA Nsight选项对话框中

    • 在左侧窗格中选择调试器
    • 在右侧窗格中将最大阵列扩展元素设置更改为 128
  3. 针对您的用例的替代解决方案是打开四个内存窗口中的一个并配置columns = 64和type = 1-byte integer。如果值是文本而不是数字,则可以禁用数据并将文本设置为ANSI文本。