【发布时间】:2014-10-13 17:12:26
【问题描述】:
a 我用“nvcc -ccbin=icpc source/* -Iinclude -arch=sm_35 --ptxas-options=-v 编译了我的程序 "。输出如下:
ptxas info : 0 bytes gmem
ptxas info : 0 bytes gmem
ptxas info : 450 bytes gmem
ptxas info : Compiling entry function '_Z21process_full_instancePiPViS1_S_' for 'sm_35'
ptxas info : Function properties for _Z21process_full_instancePiPViS1_S_
408 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 174 registers, 9748 bytes smem, 352 bytes cmem[0]
我认为gmem指的是全局内存,但是为什么第一行和第三行的geme值不同(0 vs 450)?
smem是共享内存,cmem呢?
内存使用是块还是 SM(流处理器)?块被动态分配给 SM。我们能推断出一个 SM 上会同时运行多少个块吗?
我的 GPU 是 K20。
【问题讨论】:
-
您是否在内核中使用了全局变量?此外,您的内核每次启动时都会产生相同的结果吗?
-
我的内核不使用全局变量。但是cudaMalloc的全局内存中有变量。 pxtas 似乎没有从这些变量中报告内存使用情况。
-
这是您自己的内核还是您使用的是外部库(例如 cublas)?
-
程序是我自己开发的。
标签: cuda