我有:
- 已使用
cudaHostAlloc(..., cudaHostAllocMapped)
or成功固定和映射的主机内存cudaHostRegister(..., cudaHostRegisterMapped)
; - 设备指针已使用
cudaHostGetDevicePointer(...)
.
我cudaMemcpy(..., cudaMemcpyDeviceToDevice)
在 src 和 dest 设备指针上启动,它们指向通过上述技术获得的两个不同的固定+映射内存区域。一切正常。
问题:我应该继续这样做还是只使用传统的 CPU 样式memcpy()
,因为一切都在系统内存中?...或者它们是否相同(即当 src 和 dest 都固定时cudaMemcpy
映射到直线)?memcpy
(我仍在使用该cudaMemcpy
方法,因为以前所有内容都在设备全局内存中,但由于 gmem 大小限制,后来切换到固定内存)