我对统一虚拟内存感到困惑。
链接背后的文档(http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#unified-virtual-address-space)表示可以在......
时使用当应用程序作为64位进程运行时,单个地址空间用于主机和计算能力2.0及更高版本的所有设备。
但是这个链接(http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#um-requirements)说它需要:
具有SM架构3.0或更高版本的GPU(Kepler类或更新版)
此外,第一个链接表示我可以使用cudaHostAlloc
。然后第二个使用cudaMallocManaged
。
这个'统一'术语之间是否存在两种不同的东西,或者文档是否有点不连贯?
答案 0 :(得分:2)
您所指的是统一虚拟地址空间,它与自CUDA 6.0以及架构3.0或更高版本引入的统一内存不同,并且无需从主机到设备进行显式数据传输
您还可以查看: