2

目前我正在尝试优化一些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 行对我来说很清楚,但最后一行是什么?

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

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

4

1 回答 1

4

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

于 2013-06-10T06:22:30.170 回答