自动将函数前缀添加到C++;功能 我通过CUDA移植一个小的C++代码库到图形卡上。 CUDA要求所有函数都在\uuuuuuu主机\uuuuuuuuu设备\uuuuuuu前面,以便在CPU和GPU内核代码中都可以调用。e、 g void foo() {} // callable on CPU, not on GPU __host__ __device__ foo() {} // callable on CPU and on GPU
将自动将函数前缀添加到C++;功能 我通过CUDA移植一个小的C++代码库到图形卡上。 CUDA要求所有函数都在\uuuuuuu主机\uuuuuuuuu设备\uuuuuuu前面,以便在CPU和GPU内核代码中都可以调用。e、 g void foo() {} // callable on CPU, not on GPU __host__ __device__ foo() {} // callable on CPU and on GPU,c++,cuda,metaprogramming,C++,Cuda,Metaprogramming,将\uuuuu host\uuuuuuu\uuuuuu device\uuuuuu添加到我的代码库中的每个函数是一项乏味但直接的任务,但我想知道:是否有一种有效的方法来为C/C++函数预先添加限定符 我很乐意使用检测所有函数声明的文本编辑器技术,或者使用编译器特性。然而,我不知道有一个解决方案涉及这两个方面 想法?我不知道有这样的编译器功能。不过,我还是要谨慎地广泛应用这些指令,因为在不需要时,调用约定和堆栈管理可能与正常主机约定有很大不同(例如,较慢?)。我可能会把自己的宏放在一起,例如#de
\uuuuu host\uuuuuuu\uuuuuu device\uuuuuu
添加到我的代码库中的每个函数是一项乏味但直接的任务,但我想知道:是否有一种有效的方法来为C/C++函数预先添加限定符
我很乐意使用检测所有函数声明的文本编辑器技术,或者使用编译器特性。然而,我不知道有一个解决方案涉及这两个方面
想法?我不知道有这样的编译器功能。不过,我还是要谨慎地广泛应用这些指令,因为在不需要时,调用约定和堆栈管理可能与正常主机约定有很大不同(例如,较慢?)。我可能会把自己的宏放在一起,例如
#define HDFN uuu主机uuu设备uu
,这样就很容易添加/更改了
除此之外,您还可以挖掘一个用于检测方法的正则表达式并编写一个简单的宏…我不知道有任何这样的编译器功能。不过,我还是要谨慎地广泛应用这些指令,因为在不需要时,调用约定和堆栈管理可能与正常主机约定有很大不同(例如,较慢?)。我可能会把自己的宏放在一起,例如
#define HDFN uuu主机uuu设备uu
,这样就很容易添加/更改了
除此之外,你也许可以挖掘一个正则表达式来检测方法并编写一个简单的宏…是的,现在我正在用宏手工注释所有内容。你认为正则表达式会是什么样子?这里有人开始C++方法:你必须修改返回类型以匹配你看到的事物……是的,现在我用宏来注释所有的东西。你认为正则表达式会是什么样子?这里有C++的方法的开始:你必须修改返回类型以匹配你看到的事物的类型…