0

如果作为输入提供的单独编译单元nvlink包含 cuda 内核和调用标记为的设备函数的设备函数__forceinline__,这些函数是否会被内联?假设如果将所有源代码放入一个文件中,它们将被内联。

4

1 回答 1

1

如果作为输入提供给 nvlink 的单独编译单元包含 cuda 内核和调用标记为的设备函数的设备函数__forceinline__,这些函数是否会被内联?

据我所知,CUDA 设备代码链接器无法做到这一点。该__forceinline__指令是编译器级别的操作,编译后无法在 PTX 或 SASS 中将代码标记为可内联。如果您尝试此操作,CUDA 设备代码编译器应发出警告,指出使用了外部内联函数但未定义。

如果你想内联编译函数,你必须(不出所料)使用编译器,而不是链接器。

于 2018-07-25T07:01:19.877 回答