2012-06-20 16 views

Respuesta

22

Puedes hacerlo usando thrust::raw_pointer_cast. La clase de vectores dispositivo tiene una función miembro data que devolverá un thrust::device_ptr a la memoria realizada por el vector, que puede ser fundido, algo como esto:

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

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

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

(disclaimer: escrito en el navegador, no compilado, nunca se probó) Hay un ejemplo completo de esto incluido con el empuje: unwrap_pointer.cu

+0

¿Necesitamos copiar esa información? Ahora que dv_ptr tiene los datos modificados de dv, ¿qué hacemos para copiarlo a dv? – RaenirSalazar

Cuestiones relacionadas