CUDA与CPU和GPU功能相同

Imr*_*ran 4 c c++ cuda gpgpu

为了从主机代码和GPU内核调用相同的函数,我是否必须保留以下相同函数的两个副本:

int sum(int a, int b){
return a+b;
}

__device int sumGPU(int a, int b){
return a+b;
}
Run Code Online (Sandbox Code Playgroud)

或者是否有任何技术来保存/管理功能的单个副本?

hub*_*ubs 18

您只需添加__host__关键字即可从主机或设备调用函数调用.

__host__ __device__ int sum(int a, int b){
  return a+b;
}
Run Code Online (Sandbox Code Playgroud)