cuda gpu thrust

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)