| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> CUDA C编程(三十一)从一个GPU到多个GPU -> 正文阅读 |
|
[C++知识库]CUDA C编程(三十一)从一个GPU到多个GPU |
??在应用程序中添加对多GPU的支持,其最常见的原因是以下几个方面:
??在多GPU系统中,允许分摊跨GPU的服务器节点的功率消耗,具体方式是为给定的功率消耗单元提供更多的性能,同时提高吞吐量。当使用多GPU运行应用程序时,需要正确设计GPU间的通信。GPU间数据传输的效率取决于GPU是如何连接在一个节点上并跨集群的。在多GPU系统里有两种连接方式:
??这些连接拓扑结构不是互斥的。下图展示了一个集群的简化拓扑结构,它其中有两个计算节点。GPU0和GPU1通过PCIe总线连接到node0上。同样,GPU2和GPU3在通过PCIe总线连接到node1上。两个节点(node0 和 node1)通过Infiniband交换机互相连接。 ??为了设计一个利用多GPU的程序,需要跨设备分配工作负载。根据应用程序,这种分配会导致两种常见的GPU间通信模式:
??第一种模式是最基本的情况:每个问题分区可以在不同的GPU上独立运行。要处理这些情况,只需了解如何在多个设备中传输数据及调用内核。在第二种情况下,GPU之间的数据交换是必需的,必须考虑数据如何在设备之间实现最优移动。总之,要避免通过主机内存中转数据(即数据复制到主机,只能将它复制到另一个GPU上),重要的是要注意有多少数据被传输了和发生了多少次传输。 在 多 GPU 上 执 行
??在利用与多GPU一起工作的CUDA应用程序时,必须显式地指定哪个GPU是当前所有CUDA运算的目标。使用以下函数设置当前设备:
??可以在以下情况中同时使用多GPU:
??下面的代码准确展示了如何执行内核和单一的主机线程中进行内存拷贝,使用循环遍历设备:
??因为循环中的内核启动和数据传输是异步的,因此在每次调用操作后控制将很快返回到主机线程。但是,即使内核或由当前线程发出的传输仍然在当前设备上执行时,也可以安全地转变设备,因为cudaSetDevice函数不会导致主机同步。总之,想要在单一节点内获取GPU的数量和他们的性能,可以使用下述函数:
??然后使用下述函数设置当前设备: 点 对 点 通 信
??在一个系统内,如果两个GPU连接到不同的PCIe根节点上,那么不允许直接进行点对点访问,并且CUDA P2P API将会通知你。仍然可以使用CUDA P2P API在这些设备之间进行点对点传输,但是驱动器将通过主机内存透明地传输数据,而不是通过PCIe总线直接传输数据。 启用点对点访问 点对点内存复制 多 GPU 间 的 同 步
??只有与该流相关联的设备是当前设备时,在流中才能启动内核。只有与该流相关联的设备是当前设备时,才可以在流中记录事件。任何时间都可以在任何流中进行内存拷贝,无论该流与什么设备相关联或当前设备是什么、即使流或事件与当前设备不相关,也可以查询或同步它们。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:43:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |