我正在尝试理解CUDA中统一虚拟寻址(UVA)的概念。我有两个问题:
是否有可用于演示此概念的示例(psudo)代码?
我在CUDA C编程指南中读到,UVA只能用于64位操作系统。为什么会这样?
答案 0 :(得分:7)
unified virtual address space将设备代码中使用的指针(值)和分配映射与主机代码中使用的指针(值)和分配映射合并为一个统一的空间。
1 - 是否有可用于演示此概念的样本(psudo)代码?
如何使用此示例的一个示例是使用cudaMemcpyDefault
transfer kind specifier代替cudaMemcpyDeviceToHost
cudaMemcpyHostToDevice
或cudaMemcpy
{{1}} {{} 3}}
2 - 我还在编程指南中读到它只与64位操作系统相关联。为什么会这样?
32位计算机的最大可寻址空间为4 GB。在现代GPU(可能有几千兆字节的内存)和现代PC(可能有几千兆字节的内存和I / O空间)中,这个空间不足以同时在其中定义主机和设备内存空间。