3

CUDA结合__device____host__允许从和device调用函数host

我的问题是:是否有任何示例使用两者都比仅定义__device__ or更可取__host__

4

1 回答 1

5

典型示例是在 CUDA 中使用 C++ 类。在 CUDA C++ 模型中,如果要在设备和主机内存空间中实例化该类,则必须在主机和设备代码中定义该类的每个成员函数。

最简单的可能情况是一个平凡的类:

class example
{
    public:
    float a, b;

    example(float _a, float _b) : a(_a), b(_b) {};
}

不能在 CUDA 的类中使用它,您必须在设备和主机代码中定义构造函数,因此:

class example
{
    public:
    float a, b;

    __device__ __host__
    example(float _a, float _b) : a(_a), b(_b) {};
}
于 2012-11-27T16:42:34.830 回答