【发布时间】:2014-01-08 14:36:20
【问题描述】:
我是 Cuda 新手,在通过 Cuda 运行我的 C++ 项目之前,我需要知道它的限制。 假设我有一个名为 MyClass 的 C++ 类。知道 Cuda 使用 C99,是否可以在内核中声明 MyClass 类型的对象? 下面的代码 sn-p 是否合适?
_global__ void SolveBlaBlaBLa(int x, ...)
{
MyClass obj1;
.
.
.
}
提前致谢, - 鲁鲁
【问题讨论】:
-
CUDA 不使用 C99 作为基础,它遵循 C90,在其中添加了大量 C++98 语言特性。
-
如果
MyClass有一个__host__-only 构造函数和析构函数,你的代码将是非法的。您需要确保它们使用__device__或__host__ __device__进行注释。 -
@JaredHoberock 感谢您的回复。在这种情况下,我将不得不处理构造函数和析构函数以包含关键字_____device_____ ...这不会是一个问题,我希望...谢谢大家。 _device