有关CUDA中统一虚拟寻址(UVA)的信息/示例

use*_*108 2 cuda gpu nvidia

我试图理解CUDA中统一虚拟寻址(UVA)的概念.我有两个问题:

  1. 是否有可用于演示此概念的示例(psudo)代码?

  2. 我在CUDA C编程指南中读到,UVA只能用于64位操作系统.为什么会这样?

Rob*_*lla 7

统一虚拟地址空间结合在设备代码用于与在主机代码中使用到一个统一的空间中的指针(值)和分配映射指针(值)和分配映射.

1 - 是否有任何样本(psudo)代码可用于演示此概念?

可以如何使用它的一个例子是cudaMemcpyDefault 转移种类说明符的使用,代替cudaMemcpyDeviceToHostcudaMemcpyHostToDevicecudaMemcpy 操作中.

2 - 我还在编程指南中读到它只与64位操作系统相关联.为什么会这样?

32位计算机的最大可寻址空间为4 GB.在现代GPU(可能有几千兆字节的内存)和现代PC(可能有几千兆字节的内存和I/O空间)中,这个空间不足以同时在其中定义主机和设备内存空间.