CUDA 6/8 中的统一内存

网友投稿 618 2022-05-28

原文

通过cuda 6,英伟达推出了 CUDA 平台历史上最引人注目的编程模型改进之一——统一内存。在当今典型的PC或集群节点中,CPU和GPU的内存在物理上是不同的,并由PCI-Express总线分隔开。在 CUDA 6 之前,这正是程序员看待事物的方式。CPU 和 GPU 之间共享的数据必须分配在两个内存中,并由程序显式地在它们之间复制。这给 CUDA 程序增加了很多复杂性。

统一内存创建一个托管内存池,在 CPU 和 GPU 之间共享,弥合 CPU 和 GPU 之间的鸿沟。使用一个指针,CPU 和 GPU 都可以访问托管内存。关键是系统自动在主机和设备之间的统一内存中迁移分配的数据,使其看起来像 CPU 内存在 CPU 上运行,又像 GPU 内存在 GPU 上运行。

在本文中,我将向您展示统一内存如何显著简化 GPU 加速的应用程序中的内存管理。下图显示了一个非常简单的例子。这两种代码都从磁盘加载文件࿰

CUDA 6/8 中的统一内存

GPU加速云服务器

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C++ 缓冲区 (buffer)
下一篇:Python应用实战案例-Python实现K线图绘制
相关文章