我想在 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 内核中使用它的功能)
如果您需要更多解释(因为这可能看起来令人困惑)请问我。