我正在构建和项目,它同时使用 Thrust(cuda api)和 openMP 技术。我的程序的主要目的是提供一个接口来计算某些东西,同时说。为了做到这一点,我决定使用 STRATEGY 设计模式,这基本上意味着我们需要定义一个带有虚函数的基类,然后其他类从该基类派生并实现所需的功能。
我的问题从这里开始: 1。我的项目可以有超过 1 个 .CU 文件吗?2. CU 文件可以有分类吗?
class foo
{
int m_name;
void doSomething();
}
3. 这个继续 2.,我认为 DEVICE 内核不能在类中声明,必须这样做:
//header file
__DEVICE__ void kernel(int x, inty)
{.....
}
class a : foo
{
void doSomething();
}
//cu file
void a::doSomething()
{
kernel<<<1,1>>>......();
}
这是正确的方法吗?4.最后一个问题是,我们使用THRUST,我也必须使用CU文件吗?
谢谢,伊格尔