使用cuda中的cpu函数

Use cpu function in cuda

本文关键字:函数 cpu 中的 cuda 使用      更新时间:2023-10-16

我想在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和InlineCpu Function.cpp

--CudaKernel.cuh和CudaKernel.cu(这一个包括上面的头,并在CUDA内核中使用它的函数)

如果你需要更多的解释(因为这可能看起来很困惑),请问我。

您可以用__host__ __device__装饰器标记您想在设备和主机上使用的函数,这样它就可以为您的cpu和gpu编译了。