我希望cudaHostGetDevicePointer
在映射内存上使用零拷贝。我可以使用thrust::host_vector
还是必须使用cudaHostAlloc(...,cudaHostAllocMapped)?
或者Thrust在某种程度上更容易做什么?
答案 0 :(得分:5)
我很确定仍然无法使用thrust :: host_vector作为映射主机分配。有一个固定内存分配器,但我不相信映射内存可用。你需要做的是这样的事情:
cudaHostAlloc
cudaHostGetDevicePointer
thrust::device_ptr
创建thrust::device_pointer_cast
(有关详情,请参阅here)您可以使用thrust::device_vector
创建thrust::device_ptr
,也可以将thrust::device_ptr
直接传递给任何接受迭代器的算法。