AI集群通信中的软硬件介绍
计算机网络通信中最重要两个衡量指标主要是 带宽 和 延迟。分布式训练中需要传输大量的网络模型参数,网络通信至关重要。
AI集群通信实现方式
AI集群是由多台包含CPU、内存、GPU的服务器组成,需要考虑机器内通信和机器间通信。
机器内通信通常包括共享内存、PCIe、NVLink等方式,机器间主要通过TCP/IP网络和RDMA网络(直连模式)。
机器内通信
同一机器内:
- CPU之间可以通过共享内存来实现
- CPU和GPU 可以通过PCIE\NVLink
- GPU之间,可以通过NVLink直连
机器间通信
机器间通信,主要通过TCP/IP网络,但是用网络,需要过CPU,有延时损耗,现在最新的方方案是用RDMA直连网络。
通信协调硬件
- GPU与GPU 通过nvlink,GPU和CPU也通过NVLink绿色线
- CPU通过总线共享内存
- 服务器之间,通过RDMA网卡
PCIE
PCIe 5.0 最高速率是32G
NVLink
Nv为了解决PCIE速度不高的问题,研发了NVLink解决方案,支持CPU和GPU互联,GPU互联。启用 NVLink 的系统中,CPU 发起的事务(如控制和配置)仍然通过 PCIe 连接。
保留 PCIe 编程模型,同时在连接带宽方面提供巨大的优势。
RDMA
RDMA主要特性:
• CPU Offload:无需CPU干预,远程主机CPU缓存(cache)不会被访问的内存内容所填充
• Kernel Bypass:专有 Verbs interface ,应用程序可以直接在用户态执行数据传输
• Zero Copy:每个应用程序都能直接访问集群中的设备的虚拟内存
我们可以通过下面的图来对比,左边蓝色是传统TCP/IP,右边是RDMA,通过直连技术可以不经过内存区域拷贝。
RDMA,公司用的RoCE方案。
通信协调软件
MPI
通用接口,可调用 Open-MPI, MVAPICH2, Intel MPI等。
MPI(Message Passing Interface)定义了多个原语的消息传递接口,这一接口主要被用于多进程间的通信。MPI 系统通信方式是建立在点对点通信之上。而集合通讯是建立在端到端通信的基础上,在一组进程内的通讯原语。
NCCL
NCCL 架构和工作流程:
NVIDIA AI 库依赖 NCCL 提供编程抽象,通过高级拓扑检测、通用路径搜索和针对 NVIDIA 架构优化的算法,针对每个平台和拓扑进行高度调整。 NCCL API 从 CPU 启动,GPU执行,在 GPU 内存之间移动或交换数据。最后利用 NVLink 聚合多个高速 NIC 的带宽。
Pytorch中,MPI和NCCL 对比,MPI主要是CPU,NCCL是GPU:
总结
硬件通过PCIe、NVLink、RDMA来针对不同场景实现硬件通信,软件主要是MPI和NCCL。
参考
DeepLearningSystem/03.communication.pdf at main · chenzomi12/DeepLearningSystem (github.com)
关注作者
作者: JadePeng
出处:https://www.cnblogs.com/xiaoqi/p/17124203.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际(欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接) 」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了