program - how install cuda
¿Puedo usar thrust:: host_vector o debo usar cudaHostAlloc para copia cero con Thrust? (1)
Quiero usar copia cero en la memoria mapeada por cudaHostGetDevicePointer
. ¿Puedo usar thrust::host_vector
o debo usar cudaHostAlloc(...,cudaHostAllocMapped)?
¿O es de alguna manera más fácil de hacer con Thrust?
Estoy bastante seguro de que todavía no es posible usar un thrust :: host_vector como una asignación de host mapeada. Hay un asignador de memoria fija, pero no creo que la memoria mapeada esté disponible. Lo que debes hacer es algo como esto:
-
cudaHostAlloc
memoria del host asignada y asignada concudaHostAlloc
- Obtener el puntero del dispositivo para la memoria de copia cero con
cudaHostGetDevicePointer
- Crea un
thrust::device_ptr
usandothrust::device_pointer_cast
en el puntero de ese dispositivo (mira aquí para más información)
Puede hacer un thrust::device_vector
utilizando thrust::device_ptr
o pasar directamente el thrust::device_ptr
a cualquier algoritmo que acepte un iterador.