Can nvlink inline device functions from separate compilation units?

时间:2018-07-25 04:39:22

标签: cuda inline link-time-optimization nvlink

If the separate compilation units that are fed as input to nvlink contain cuda kernels and device functions that invoke device functions marked as __forceinline__, will these functions be inlined? Assume they would be inlined if one put all the source code into a single file.

1 个答案:

答案 0 :(得分:1)

  

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

据我所知,CUDA设备代码链接器无法执行此操作。 __forceinline__指令是编译器级别的操作,在编译之后,无法在PTX或SASS中将代码标记为可内联。 CUDA设备代码编译器应发出警告,提示您使用了外部内联函数,但未定义。

如果要内联编译函数,则必须(毫无疑问)使用编译器,而不是链接器。