目前,我正在尝试优化一些cuda内核。
如果使用选项--ptxas-options=-v进行编译,我将获得有关寄存器%co的信息。
在我的例子中,我总是得到一些额外的行,这对我来说是没有意义的:
ptxas : info : Compiling entry function '_Z20backprojLinTexInterpP7double3S0_S0_P7double2iiiiiS2_PdPf' for 'sm_20'
ptxas : info : Function properties for _Z20backprojLinTexInterpP7double3S0_S0_P7double2iiiiiS2_PdPf
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas : info : Used 47 registers, 32 bytes smem, 112 bytes cmem[0], 56 bytes cmem[16]
ptxas : info : Function properties for __internal_trig_reduction_slowpathd
40 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads第一到第四行对我来说很清楚,但是最后几行是什么呢?
谷歌在这里帮不上忙……我已经试过了。
有没有人知道这几行是什么意思?我为我的程序中的每个编译过的内核都得到了它们
发布于 2013-06-10 14:22:30
__internal_trig_reduction_slowpathd()是CUDA数学库中的一个内部子例程。当参数非常大时,它用于为双精度trig函数(sin,cos,sincos,tan)执行精确的参数缩减。Payne-Hanek风格的参数约简用于这些大参数。对于sm_20和更高版本,这是一个被调用的子例程,以最小化频繁调用触发器函数的应用程序中的代码大小。您可以通过查看CUDA包含文件目录中的文件math_functions_dbl_ptx3.h来查看代码。
https://stackoverflow.com/questions/16941047
复制相似问题