我正在通过 CUDA 移植一个小型 C++ 代码库以在显卡上调用。CUDA 要求所有函数都预先添加__host__ __device__
,以便在 CPU 和 GPU 内核代码中都可以调用。例如,
void foo() {} // callable on CPU, not on GPU
__host__ __device__ foo() {} // callable on CPU and on GPU
__host__ __device__
添加到我的代码库中的每个函数是一项乏味但直接的任务,但我想知道:有没有一种有效的方法来为 C/C++ 函数添加限定符?
我会对检测到所有函数声明的文本编辑器技术或编译器功能感到满意。但是,我不知道涉及任何一个的解决方案。
想法?