这个问题是解释ptxas的详细输出,第一部分的延续。
当我们用ptxas -v编译内核ptxas -v文件,或者用-ptxas-options=-v从.cu文件编译它时,我们得到了几行输出,例如:
ptxas info : Compiling entry function 'searchkernel(octree, int*, double, int, double*, double*, double*)' for 'sm_20'
ptxas info : Function properties for searchkernel(octree, int*, double, int, double*, double*, double*)
72 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 46 registers, 176 bytes cmem[0], 16 bytes cmem[14](与链接中的例子相同-疑问;但以名称表示)
这个问题涉及最后一行。还有几个其他内核的例子:
ptxas info : Used 19 registers, 336 bytes cmem[0], 4 bytes cmem[2]
...
ptxas info : Used 19 registers, 336 bytes cmem[0]
...
ptxas info : Used 6 registers, 16 bytes smem, 328 bytes cmem[0]除了使用的寄存器数量之外,我们如何解释这一行上的信息?具体地说:
cmem是常量记忆的缩写吗?cmem,即cmem[0],cmem[2],cmem[14]smem可能代表shared memory;它只是静态共享内存吗?发布于 2019-05-16 21:00:50
cmem是恒久记忆的缩写吗?
是
为什么cmem有不同的类别,即cmem、cmem2、cmem14?
它们代表着不同的常量内存库。cmem[0]是内核参数和静态大小常量值的保留库。
smem可能代表共享内存;它只是静态共享内存吗?
是的,怎么可能不是这样。
在哪种条件下,每种条目都出现在这一行上?
大部分回答是这里。
https://stackoverflow.com/questions/56176307
复制相似问题