cuda - cómo lanzar empuje:: device_vector<int> al puntero en bruto
gpu thrust (1)
Puedes hacerlo usando thrust::raw_pointer_cast
. La clase de vector de dispositivo tiene data
una función miembro que devolverá un thrust::device_ptr
a la memoria contenida por el vector, que se puede convertir, algo como esto:
thrust::device_vector<int> dv(10);
int * dv_ptr = thrust::raw_pointer_cast(dv.data());
kernel<<<bl,tpb>>>(dv_ptr)
(descargo de responsabilidad: escrito en el navegador, nunca compilado, nunca probado). Hay un ejemplo completo de esto incluido con thrust: unwrap_pointer.cu
Tengo un device_vector
. Quiero convertirlo en un puntero en bruto para poder pasarlo a un núcleo. ¿Como lo puedo hacer?
thrust::device_vector<int> dv(10);
//CAST TO RAW
kernel<<<bl,tpb>>>(pass raw)