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:
-
cudaHostAllocmemoria del host asignada y asignada concudaHostAlloc - Obtener el puntero del dispositivo para la memoria de copia cero con
cudaHostGetDevicePointer - Crea un
thrust::device_ptrusandothrust::device_pointer_casten 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.