CUDA
结合__device__
并__host__
允许从和device
调用函数host
。
我的问题是:是否有任何示例使用两者都比仅定义__device__
or更可取__host__
?
典型示例是在 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) {};
}