【发布时间】:2018-10-14 21:49:06
【问题描述】:
如果我们在 CUDA 中有一个__host__ __device__ 函数,我们可以使用宏在其实现中为主机端和设备端代码选择不同的代码路径,如下所示:
__host__ __device__ int foo(int x)
{
#ifdef CUDA_ARCH
return x * 2;
#else
return x;
#endif
}
但是为什么我们不能写:
__host__ __device__ int foo(int x);
__device__ int foo(int x) { return x * 2; }
__host__ int foo(int x) { return x; }
改为?
【问题讨论】:
-
唯一的答案是因为。
-
@talonmies:所以你说的是“提交功能请求”。
-
不,我是说这是 12 年前开发语言时有人故意选择的,事实就是这样。