__internal_trig_reduction_slowpathd的函数属性

时间:2013-06-05 13:20:04

标签: c cuda nvcc ptxas

目前我正在尝试优化一些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

第1到第4行对我来说很清楚,但最后一行是什么?

谷歌在这里没有帮助....我已经尝试过了。

有人知道这些线的意义是什么吗?我为我的程序中的每个编译内核获取它们

1 个答案:

答案 0 :(得分:3)

__ internal_trig_reduction_slowpathd()是CUDA数学库中的内部子例程。当参数的大小非常大时,它用于对双精度三角函数(sin,cos,sincos,tan)执行精确的参数约简。 Payne-Hanek风格参数减少用于这些大论证。对于sm_20及更高版本,这是一个被调用的子例程,用于最小化经常调用trig函数的应用程序中的代码大小。您可以通过查看CUDA包含文件目录中的math_functions_dbl_ptx3.h文件来查看代码。