Ядро CUDA как функция-член класса

Я использую CUDA 5.0 и карту Compute Capability 2.1.

Вопрос довольно прост: может ли ядро быть частью класса? Например:

class Foo
{
private:
 //...
public:
 __global__ void kernel();
};

__global__ void Foo::kernel()
{
 //implementation here
}

Если нет, то решение состоит в том, чтобы сделать функцию-оболочку, которая является членом класса и вызывает ядро внутри?

И если да, то будет ли он иметь доступ к закрытым атрибутам как обычная закрытая функция?

(Я не просто пробую это и посмотрю, что происходит, потому что у моего проекта есть несколько других ошибок прямо сейчас, и я также думаю, что это хороший справочный вопрос. Мне было трудно найти ссылку для использования CUDA с C ++. Примеры основных функций могут быть найдены, но не стратегии для структурированного кода.)

Ответы на вопрос(1)

Ваш ответ на вопрос