我试图理解 CUDA 中统一虚拟寻址(UVA)的概念。我有两个问题:
是否有任何示例(伪)代码可以演示这个概念?
我在 CUDA C 编程指南中读到 UVA 只能在 64 位操作系统上使用。为什么会这样呢?
A 统一虚拟地址空间 http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#unified-virtual-address-space将设备代码中使用的指针(值)和分配映射与主机代码中使用的指针(值)和分配映射组合到单个统一空间中。
1-是否有任何示例(伪)代码可以演示这个概念?
如何使用这一点的一个例子是使用cudaMemcpyDefault
传输类型说明符 http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html#group__CUDART__TYPES_1g18fa99055ee694244a270e4d5101e95b,代替cudaMemcpyDeviceToHost
or cudaMemcpyHostToDevice
in cudaMemcpy
运营 http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__MEMORY.html#group__CUDART__MEMORY_1g48efa06b81cc031b2aa6fdc2e9930741.
2-此外,我在编程指南中读到它仅与 64 位操作系统相关。为什么会这样呢?
32 位机器的最大可寻址空间为 4 GB。在现代 GPU(可能具有多个 GB 的内存)和现代 PC(可能具有多个 GB 的内存和 I/O 空间)中,这个空间不足以同时定义主机和设备内存空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)