Jądro CUDA jako funkcja członkowska klasy

Używam karty CUDA 5.0 i karty Compute Capability 2.1.

Pytanie jest całkiem proste: czy jądro może być częścią klasy? Na przykład:

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

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

Jeśli nie, to rozwiązaniem jest stworzenie funkcji opakowującej, która jest członkiem klasy i wewnętrznie wywołuje jądro?

A jeśli tak, to czy będzie miał dostęp do atrybutów prywatnych jako normalna funkcja prywatna?

(Nie próbuję tego i widzę, co się dzieje, ponieważ mój projekt ma teraz kilka innych błędów i myślę, że to dobre pytanie referencyjne. Trudno było mi znaleźć odniesienie do używania CUDA w C ++. znaleziono, ale nie strategie dla kodu strukturalnego.)

questionAnswers(1)

yourAnswerToTheQuestion