1

我想在 CUDA 内核中包含一个 C++ 函数,但是这个函数是为 CPU 编写的,如下所示:

inline float random(int rangeMin,int rangeMax){
    return rand(rangeMin,rangeMax);
}

假设 rand() 函数使用 curand.h 或 Thrust cuda 库。

我认为在使用内核函数(只有一个 GPU 线程)时,该函数将包含该函数作为内联函数,因此 cuda 编译器将为 GPU 生成二进制文件。

这可能吗?如果是这样,我想在 CUDA 内核函数中包含为 cpu 编写的另一个内联函数。

像这样的东西:

-- InlineCpuFunction.h 和 InlineCpuFunction.cpp

-- CudaKernel.cuh 和 CudaKernel.cu (这个包含上面的头文件并在 CUDA 内核中使用它的功能)

如果您需要更多解释(因为这可能看起来令人困惑)请问我。

4

1 回答 1

3

__host__ __device__您可以使用为您的 cpu 和 gpu 编译的装饰器来标记要在设备和主机上使用的功能。

于 2013-08-19T14:07:55.497 回答