CUDA 6/8 中的统一内存
【摘要】
原文
通过CUDA 6,英伟达推出了 CUDA 平台历史上最引人注目的编程模型改进之一——统一内存。在当今典型的PC或集群节点中,CPU和GPU的内存在物理上是不同的,并由PCI-Express总线分隔开。在 CUDA 6 之前,这正是程序员看待事物的方式。CPU 和 GPU 之间共享的数据必须分配在两个内存中,并由程序显式地在它们之...
通过CUDA 6,英伟达推出了 CUDA 平台历史上最引人注目的编程模型改进之一——统一内存。在当今典型的PC或集群节点中,CPU和GPU的内存在物理上是不同的,并由PCI-Express总线分隔开。在 CUDA 6 之前,这正是程序员看待事物的方式。CPU 和 GPU 之间共享的数据必须分配在两个内存中,并由程序显式地在它们之间复制。这给 CUDA 程序增加了很多复杂性。
统一内存创建一个托管内存池,在 CPU 和 GPU 之间共享,弥合 CPU 和 GPU 之间的鸿沟。使用一个指针,CPU 和 GPU 都可以访问托管内存。关键是系统自动在主机和设备之间的统一内存中迁移分配的数据,使其看起来像 CPU 内存在 CPU 上运行,又像 GPU 内存在 GPU 上运行。
在本文中,我将向您展示统一内存如何显著简化 GPU 加速的应用程序中的内存管理。下图显示了一个非常简单的例子。这两种代码都从磁盘加载文件
文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。
原文链接:panda1234lee.blog.csdn.net/article/details/88938719
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)