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.)