警告:“全局”函数忽略内联限定符

use*_*733 1 cuda

我在头文件中有一个模板化函数,并在使用 CUDA 编译时收到一些警告。

警告:“全局”函数忽略内联限定符

template<typename A,typename B>
__global__ inline void functionA(ar1, arg2)
{}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Tom*_*Tom 5

当函数被“内联”时,意味着函数内部要执行的代码被提升到调用函数中,从而避免了保存寄存器、跳转到函数以及随后恢复寄存器的开销(在线搜索“ABI”有关详细信息)。

内联内核调用是不可能的,这是没有意义的,因为执行内核代码的处理器(GPU)与启动内核的处理器(CPU)不同。

即使使用动态并行性,它也是没有意义的,因为语义意味着子内核可以在任何地方运行,不一定在同一个 SM 上运行。