Я строю и проект, который использует технологии 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?
Спасибо, игаль