Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 内部触发减速慢路径的函数属性_C_Cuda_Nvcc_Ptxas - Fatal编程技术网

C 内部触发减速慢路径的函数属性

C 内部触发减速慢路径的函数属性,c,cuda,nvcc,ptxas,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 _Z20b

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

谷歌在这里帮不上忙……我已经试过了


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

\u内部触发还原\u slowpathd()是CUDA数学库中的一个内部子例程。当参数的大小非常大时,它用于对双精度触发器函数(sin、cos、sincos、tan)执行精确的参数缩减。Payne Hanek风格的参数缩减用于这些大型参数。对于sm_20及以上版本,这是一个被调用的子例程,用于最小化频繁调用trig函数的应用程序中的代码大小。您可以通过查看CUDA include file目录中的文件math_functions_dbl_ptx3.h来查看代码。

\u internal_trig_reduction_slowpathd()是CUDA数学库中的一个内部子例程。当参数的大小非常大时,它用于对双精度触发器函数(sin、cos、sincos、tan)执行精确的参数缩减。Payne Hanek风格的参数缩减用于这些大型参数。对于sm_20及以上版本,这是一个被调用的子例程,用于最小化频繁调用trig函数的应用程序中的代码大小。您可以通过查看CUDA include file目录中的文件math_functions_dbl_ptx3.h来查看代码。

_internal_trig_reduction_slowpathd()是CUDA数学库中的一个内部子例程。当参数的大小非常大时,它用于对双精度触发器函数(sin、cos、sincos、tan)执行精确的参数缩减。Payne Hanek风格的参数缩减用于这些大型参数。对于sm_20及以上版本,这是一个被调用的子例程,用于最小化频繁调用trig函数的应用程序中的代码大小。您可以通过查看CUDA include文件目录中的math_functions_dbl_ptx3.h文件来查看代码。@njuffa:这应该是一个答案,而不是一个注释。@Talonmes:谢谢您的支持,但我仍在等待原始海报的消息,看我上面写的内容是否真的解决了他的问题。我的评论回答了“什么是内部减少慢速度?”这不是被问到的字面问题,但我认为是隐含的问题。我更喜欢这种“评论优先”的方式,而不是在以后被人用“这应该是作为评论而不是回答发布的”来责骂:-)是的,这似乎是对的。我在内核中使用sincos函数……有趣的是,在linux中编译程序时,我没有这些代码行。此外,寄存器的数量要高得多……只有当-Xptxas-v(或等效的长格式)传递给nvcc时,才会生成这些内核统计信息。检查构建系统,确保所有平台上的nvcc具有相同的标志。寄存器的数量取决于各种编译标志设置,以及目标平台是32位还是64位。由于指针具有相同大小的主机和设备,为64位平台构建的代码通常需要使用额外的32位寄存器,因为每个指针需要两个寄存器来存储,而不是32位平台上的一个寄存器。类似地,对于非Windows系统上的
long
。\uuu internal\u trig\u reduction\u slowpathd()是CUDA数学库中的一个内部子例程。当参数的大小非常大时,它用于对双精度触发器函数(sin、cos、sincos、tan)执行精确的参数缩减。Payne Hanek风格的参数缩减用于这些大型参数。对于sm_20及以上版本,这是一个被调用的子例程,用于最小化频繁调用trig函数的应用程序中的代码大小。您可以通过查看CUDA include文件目录中的math_functions_dbl_ptx3.h文件来查看代码。@njuffa:这应该是一个答案,而不是一个注释。@Talonmes:谢谢您的支持,但我仍在等待原始海报的消息,看我上面写的内容是否真的解决了他的问题。我的评论回答了“什么是内部减少慢速度?”这不是被问到的字面问题,但我认为是隐含的问题。我更喜欢这种“评论优先”的方式,而不是在以后被人用“这应该是作为评论而不是回答发布的”来责骂:-)是的,这似乎是对的。我在内核中使用sincos函数……有趣的是,在linux中编译程序时,我没有这些代码行。此外,寄存器的数量要高得多……只有当-Xptxas-v(或等效的长格式)传递给nvcc时,才会生成这些内核统计信息。检查构建系统,确保所有平台上的nvcc具有相同的标志。寄存器的数量取决于各种编译标志设置,以及目标平台是32位还是64位。由于指针具有相同大小的主机和设备,为64位平台构建的代码通常需要使用额外的32位寄存器,因为每个指针需要两个寄存器来存储,而不是32位平台上的一个寄存器。类似地,对于非Windows系统上的
long