【问题标题】:Use cpu function in cuda在 cuda 中使用 cpu 功能
【发布时间】:2013-08-21 08:49:27
【问题描述】:

我想在 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内核中使用它的功能)

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

【问题讨论】:

标签: c++ cuda parallel-processing


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多