2012-06-20 9 views

Odpowiedz

22

Można to zrobić za pomocą thrust::raw_pointer_cast. Klasa urządzenie wektor posiada funkcję składową data która będzie zwracać thrust::device_ptr pamięci posiadanych przez wektor, który może być rzucony, coś takiego:

thrust::device_vector<int> dv(10); 

int * dv_ptr = thrust::raw_pointer_cast(dv.data()); 

kernel<<<bl,tpb>>>(dv_ptr) 

(Zastrzeżenie: pisemnej w przeglądarce, nigdy skompilowany, nie testowane). Dostępny jest pełny przykład tego działania: unwrap_pointer.cu

+0

Czy musimy skopiować te dane? Teraz, gdy dv_ptr ma zmodyfikowane dane z dv, co zrobimy, aby skopiować je z powrotem do dv? – RaenirSalazar