Функция-член объекта C ++ как функция CUDA __global__
У меня есть базовый класс:
template
class A{
public:
// some data
T data;
//some functions like constructs etc.
...
// one virtual function
virtual void evaluate() = 0;
}
и производный класс:
template
class B:public A{
public:
// some functions like constructors etc.
virtual void evaluate();
__global__ void function2(); // **** error message
}
Также у меня есть
template void
B::evaluate()
{
dim3 grid(1);dim3 block(1);
void function2();
}
а также
template __global__ void B::function2() // **** error message
{
// computation here
}
по сути, у меня есть функция-член производного класса, которую я хотел бы выполнить параллельно на устройстве.
К сожалению, я получаю ошибку:
error : illegal combination of memory qualifiers on the lines :
1> __global__ void function2(); // **** error message
2> template __global__ void B::function2() // **** error message
Я новичок в CUDA. Было бы очень любезно, если бы кто-то указал мне на мою ошибку. Я занимаюсь разработкой на Visual Studio 2010.