I want to use zero-copy on mapped memory by cudaHostGetDevicePointer
. Can I use thrust::host_vector
or I must use cudaHostAlloc(...,cudaHostAllocMapped)?
Or is it somehow easier to do with Thrust?
I am pretty sure it still isn't possible to use a thrust::host_vector as a mapped host allocation. There is a pinned memory allocator, but I don't believe mapped memory is available. What you need to do is something like this:
cudaHostAlloc
cudaHostGetDevicePointer
thrust::device_ptr
using thrust::device_pointer_cast
on that device pointer (see here for more information)You can the either make a thrust::device_vector
using the thrust::device_ptr
or dirctly pass the thrust::device_ptr
to any algorithms which accept an iterator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With