视频分享在这:
3.1异构万卡集群,GPU与国产计算卡芯片异构通信_哔哩哔哩_bilibili
国内已经有三家,实现了异构集群,GPU与国产芯片异构通信方案,初步调用结果如下。
异构集群的挑战
异构芯片间的混训主要面临两大挑战,一是异构卡通信库差异,导致异构卡之间通信难,二是异构卡之间性能差异,导致模型分布式训练低效。
1. 多芯片互通互联的复杂性:如何实现不同芯片间高效、稳定的通信;
2. 算力不均衡导致性能损失:不同芯片的计算能力存在天然的差异,这种不均衡性会直接影响到模型训练的整体效率,如何根据合理的并行策略进行任务的切分。
一、GPU与国产芯片异构通信方案
要实现异构万卡集群,那第一步就是实现不同计算卡间通信。异构通信方案如下。
1.1 基于CPU中转的异构通信
同构节点内部:GPU/国产计算芯片与CPU之间通过高速PCIe(Peripheral Component Interconnect Express)交换机进行通信。
跨节点:不同节点的CPU之间,通过IPoIB(IP over InfiniBand)适配器或者以太网,均可实现高效的数据传输。
具体通信流程:当模型参数需要从源GPU迁移到目标节点的异构GPU时,首先会经由PCIe通道,将数据从GPU复制到源节点的CPU,随后通过IPoIB或以太网跨越节点边界,抵达目标节点的CPU。在这里,数据再次借助PCIe的高速能力,被复制至目标GPU上,整个过程中,CPU起到了至关重要的中转与协调作用。
通过这一系列步骤,有效地规避了不同GPU间通信库差异带来的潜在障碍,尽管引入了额外的CPU-GPU数据拷贝开销,但这在很大程度上换取了异构混训系统的整体稳定性和兼容性,为大规模、跨架构的模型训练提供了坚实的基础。
1.2 无需CPU中转的异构通信 (直接芯片间RDMA)
基于RDMA(Remote Direct Memory Access)技术的通信架构,将不同计算芯片间通过InfiniBand(IB)网络进行高效数据交换。
同构节点内部:GPU/国产计算芯片与IB网卡之间通过高速PCIe(Peripheral Component Interconnect Express)交换机进行通信。
跨节点:不同节点,通过IB网卡,实现高效的数据传输。
二、国内异构通信集群
2.1 壁仞科技
壁仞科技将首次公布壁仞自主原创的异构GPU协同训练方案HGCT,业界首次支持3种及以上异构GPU混合训练同一个大模型,用一套统一方案支持多种不同型号、不同厂商的GPU,而且一行代码适配多种框架。
性能方面,HGCT混训方案的异构协同通信效率大于98%、端到端训练效率90-95%,一举突破了大模型异构算力孤岛难题。
可靠性上,目前可以实现千卡集群、千亿参数的自动断点续训小于10分钟,15天连续训练不中断,4天连续训练无故障。
支持3种及以上(壁仞GPU+英伟达GPU+其他国产芯片)异构GPU同时训练一个大模型。同时,目前壁仞科技打造的软硬一体、全栈优化、异构协同、开源开放的大模型整体解决方案可以实现千卡集群、千亿参数的自动断点续训小于10分钟,15天连续训练不中断,4天连续训练无故障。
2.2 无问芯穹
无问芯穹与清华、上交的联合研究团队发布了一个针对大规模模型的异构分布式混合训练系统,这一系统解决了异构混训所面临的核心挑战。本文旨在深度解读无问芯穹在这两个挑战方向上的破局之道!
异构卡通信库的差异导致异构卡之间通信难,通常会成为大模型训练的瓶颈。不同厂商的GPU或AI芯片为了优化通信,通常会构建自己的通信库,在内部架构和通信接口上存在差异,导致不同通信库之间无法通信。这要求在构建大规模混合训练系统时,必须设计出高度兼容且高效的互联互通方案,确保多芯片间的高效、容错及稳定性通信,这需要复杂的软件栈支持和细致的网络配置,以最小化通信延迟和带宽瓶颈。
为了解决不同类型信显卡之间的通信问题,我们实现了无穹集合通信库(IHCCM),它支持基于CPU或者基于GPU的两种通信方式。
参考资料:
混训算力利用率最高达 97.6%,这样的千卡异构混合训练系统是怎么炼成的?
2.3 百度 BCCL
BCCL 基于开源的 NCCL 进行了功能扩展和能力增强,针对大模型训练场景在可观测性、故障诊断、稳定性等方面进行优化,进一步提升集合通信库的可运维能力。同时,BCCL 针对百度智能云的特定 GPU 芯片进行了集合通信性能优化,进一步提升资源利用率。相比 NCCL,BCCL 的关键特性如下:
可观测性:新增集合通信带宽实时统计能力;
故障诊断:新增集合通信 hang 时的故障诊断能力;
稳定性:增强网络稳定性和故障容错能力;
性能优化:提升大模型训练主流 GPU 芯片的集合通信性能。
百度自研的BCCL,可以实现 GPU、昆仑芯等标准 RDMA 设备的互联互通。在已有 AI 算力集群的基础上,构建由GPU、昆仑芯、昇腾等不同芯片混合组成的单一集群。
百度百舸为了实现跨芯的互联互通,使用了CPU转发来实现跨昇腾910B子集群和GPU子集群的连接。
Accelerator抽象,屏蔽硬件差异充分发挥不同芯片的算力效能
Accelerator抽象层面向应用,屏蔽底层芯片在硬件层面的差异,将芯片算子与上层策略解耦开来,芯片厂商仅需要进行各自芯片的算子调优。百度百舸在GPU上沉淀的上层各项策略(比如通信overlap、显存offload、张量并行、数据并行等)都会平滑地迁移到各种芯片上,确保了各种国产芯片在百度百舸上能达到一个非常高的运行效率。
参考资料:
专为大模型训练优化,百度集合通信库 BCCL 万卡集群快速定位故障
安装BCCL库 - 百舸异构计算平台AIHC | 百度智能云文档
标签:异构,训练,芯片,通信,万卡,GPU,CPU From: https://blog.csdn.net/lianghuaju/article/details/142122616