分享

智能算力中心AI大模型高性能网络解决方案介绍 2024

 yi321yi 2024-03-11 发布于上海
随着人工智能技术的发展,AI大模型的训练和推理对计算能力、存储资源及网络性能提出了前所未有的挑战。为此,智能算力中心推出的AI大模型高性能网络解决方案,旨在构建高效、可靠且可扩展的基础架构,满足大规模AI模型运算需求。
1. 架构设计 该解决方案基于先进的分布式系统架构设计,包含高速互联网络、高性能计算节点、弹性存储集群等核心组件。通过优化硬件设备布局和软件栈设计,实现计算、存储、网络资源的高效协同,有效支撑AI大模型训练与推断过程中的大规模并行计算需求。
智能算力中心AI大模型高性能网络解决方案的架构设计,立足于构建一个高度集成、灵活扩展、高效协作的系统框架,它承载并驱动着AI大模型的训练和推理过程。
1.1 分布式计算架构 该解决方案采用了先进的分布式计算架构,通过将计算任务分解并在多台服务器上并行执行,打破了单一服务器的性能瓶颈。这些服务器构成了一个大规模的计算集群,共享资源,协同完成复杂的AI模型训练。其中,每台服务器配备高性能GPU或者专门针对AI计算优化的TPU芯片,大幅提升了AI模型运算的速度和效率。
1.2 高速互联网络结构 在集群内部,通过部署InfiniBand、RoCEv2(RDMA over Converged Ethernet Version 2)或其他高性能网络技术,建立了一张低延迟、高带宽的数据传输网络。这种网络架构确保了大量训练数据能够在各计算节点之间快速流动,有效地消除了网络传输成为瓶颈的可能性,使得AI模型能够充分利用集群内的所有计算资源。
1.3 弹性存储系统 在存储方面,采用了分布式文件系统(例如Hadoop HDFS或Ceph),提供PB级甚至EB级的存储空间,满足AI大模型对海量数据存储的需求。此外,通过引入并行文件系统和对象存储技术,保证了数据的高效读写和访问,使得数据能够快速同步到各个计算节点,从而加快模型训练进程。
1.4 软件定义与编排 为了实现资源的动态调度和优化利用,该解决方案采用了软件定义网络(SDN)和容器化管理技术,可以根据AI模型训练的实际需求,灵活调整网络资源分配,实现计算、存储和网络资源的按需供给和服务质量保证。同时,通过Kubernetes等容器编排工具,实现了AI应用的自动化部署和规模化管理。
1.5 可扩展性设计 考虑到AI模型的持续演进和算力需求的增长,该架构设计具有良好的可扩展性。新的计算节点可以无缝接入现有网络,存储系统也能根据需求横向扩展,整体解决方案能够随业务增长而平滑升级,始终保持对AI大模型训练的强有力支撑。
综上所述,智能算力中心的AI大模型高性能网络解决方案在架构设计上融合了前沿的硬件设施、高效的网络通信、弹性的存储系统和智能化的资源调度,为AI大模型提供了强大的运算平台,不仅解决了当前面临的性能挑战,也为未来可能出现的技术革新预留了足够的发展空间。

2. 高速网络基础设施
  • 低延迟、高带宽网络:采用InfiniBand或高性能以太网技术构建超高速数据中心内部网络,实现极低的网络延迟和巨大的数据吞吐量,满足AI大模型间海量数据的快速传输。
  • RDMA(Remote Direct Memory Access)技术:支持远程直接内存访问,减少CPU负担,提升数据交换效率,尤其适合于大规模分布式深度学习训练场景。
  • SDN(Software-defined Networking)和NFV(Network Functions Virtualization):利用软件定义网络和网络功能虚拟化技术,实现网络资源的动态调度和灵活配置,满足不同AI应用场景对网络特性的差异化需求。
在智能算力中心AI大模型高性能网络解决方案中,高速网络基础设施扮演着至关重要的角色。其设计目标是实现计算节点之间的极高数据传输速率、极低网络延迟以及高稳定性,以满足AI大模型训练所需的海量数据交换需求。
2.1 高带宽低延迟网络技术 解决方案通常采用业界领先的高速网络技术,如InfiniBand、Omni-Path或者最新的高性能以太网(如25G/40G/100G/400G以太网)。这些网络技术能够提供数GB/s乃至数百GB/s的传输速率,极大地提升了数据在集群内部的流转效率。同时,通过精心设计网络拓扑和协议优化,降低网络延迟至微秒级别,这对于要求严格实时响应的AI大模型训练至关重要。
2.2 RDMA(Remote Direct Memory Access)技术 为了进一步减少网络通信对CPU的占用并降低延迟,解决方案广泛使用了RDMA(Remote Direct Memory Access)技术。通过RDMA,计算节点可以直接访问其他节点的内存,绕过操作系统内核,从而大大提高了数据传输效率,减少了数据复制次数,尤其适用于AI模型训练时大规模并行计算环境下频繁的数据交互。
2.3 高性能交换机与网络拓扑 采用高性能的交换机设备,并结合最优的网络拓扑结构(如Fat-Tree、Clos网络等),确保在网络的任何节点间都能达到一致的高速连接。这不仅可以应对大规模并行计算带来的复杂流量模式,还能有效防止因网络拥塞导致的性能瓶颈。
2.4 网络优化与隔离 为了确保不同AI模型训练任务间的网络资源合理分配与相互不影响,解决方案还具备精细化的网络流量控制和QoS(Quality of Service)策略。通过对网络流量进行优先级划分和带宽限制,可以确保关键任务的数据传输得到优先保障,同时避免网络风暴的发生,保证系统的整体稳定性和可靠性。
2.5 光纤与电缆布线 在物理层面,采用高质量的光纤和电缆布线系统,以确保信号传输的质量和稳定性。冗余线路的设计则增强了网络的容错能力和可用性,即使出现单点故障,也能保持系统的正常运行。
总的来说,智能算力中心AI大模型高性能网络解决方案通过选用最先进的网络技术、设备及优化策略,构建了一个高效、稳定且可扩展的高速网络基础设施,为AI大模型训练所需的高性能计算和数据交换提供了坚实的基础保障。

3. 算力优化与加速
  • GPU/TPU异构计算平台:搭建基于GPU或Google TPU等高性能处理器的异构计算平台,大幅提升AI模型的训练和推理速度。
  • 智能负载均衡策略:结合AI训练任务特性,运用智能算法实现计算任务的高效分配和负载均衡,最大化利用算力资源。
在智能算力中心AI大模型高性能网络解决方案中,算力优化与加速是决定AI模型训练效率和效果的关键环节。具体策略和技术手段包括但不限于以下几个方面:
3.1 异构计算平台 解决方案采用了由GPU、TPU或其他专用AI加速器组成的异构计算平台。GPU因其并行计算能力强、浮点运算性能高的特性,特别适合用于深度学习模型的训练。而TPU(Tensor Processing Unit)则是谷歌专门为机器学习设计的定制化ASIC芯片,它在矩阵运算方面的优势使其在处理大规模神经网络模型时表现出卓越性能。
3.2 深度学习框架优化 整合并优化主流深度学习框架(如TensorFlow、PyTorch等),通过对接底层硬件加速器,实现计算密集型任务的高效执行。同时,通过编译器优化、自动混合精度训练、梯度累积等技术手段,有效提升模型训练速度,降低计算资源消耗。
3.3 数据并行、模型并行与流水线并行 针对AI大模型训练的复杂性,采用数据并行、模型并行、流水线并行等多种并行策略。数据并行是指将训练数据集分割后分别在不同的计算单元上并行处理;模型并行则是将大型模型划分为多个部分,在不同计算节点上并行训练;流水线并行则是将模型训练过程拆分成多个阶段,各阶段在不同节点上连续执行,形成类似生产线的并行训练模式。
3.4 资源调度与负载均衡 智能算力中心通过精细的资源调度系统,实时监控和调配集群内的计算资源,确保AI模型训练任务在不同计算节点间实现动态负载均衡,最大程度地减少计算资源闲置,提高整体利用率。
3.5 算法优化与模型压缩 对AI模型本身进行剪枝、量化、知识蒸馏等优化操作,以减小模型体积,降低计算复杂度,提高模型训练和推理的效率。同时,结合新型优化算法如二阶优化器、自适应学习率策略等,加速收敛过程,缩短训练周期。
综上所述,智能算力中心AI大模型高性能网络解决方案在算力优化与加速方面采取了一系列硬软件结合的策略,通过异构计算平台的构建、深度学习框架的优化、并行计算技术的应用、资源调度系统的完善以及模型本身的优化与压缩,全方位、立体化地提升了AI大模型训练的效率和效能。

4. 存储优化
  • 分布式文件系统与并行存储:部署高效能的分布式文件系统如Hadoop HDFS、Lustre等,配合并行存储技术,确保大数据集能够迅速被多个计算节点同时读取,显著提高AI模型训练效率。
  • 缓存加速与数据预处理:通过智能缓存技术和预处理流程优化,减少不必要的I/O操作,缩短数据获取时间。
在智能算力中心AI大模型高性能网络解决方案中,存储优化是一个重要组成部分,因为AI大模型训练涉及到大量的数据读取、存储和交换。以下是存储优化的具体措施:
4.1 分布式存储系统 采用分布式存储系统,如Hadoop HDFS、Ceph或Alluxio等,它们能够提供大规模、高可用、高容错的存储服务。通过将数据分散存储在多台服务器上,不仅能提供几乎无限的存储空间扩展能力,还能通过多副本机制保证数据的高可靠性。
4.2 数据缓存与预加载 针对AI大模型训练过程中反复访问的数据,采用数据缓存技术,将高频访问的数据保存在更快的存储介质如SSD中,减少从慢速磁盘读取的时间。同时,对于大规模训练前,预先加载一部分或全部训练数据到内存或本地磁盘,以减少实际训练过程中的I/O开销。
4.3 数据本地化与数据亲和性调度 在计算节点与存储节点分离的环境下,实现数据本地化,即将计算任务尽可能调度到存储相应数据的节点上执行,减少跨节点的数据传输,提高计算效率。同时,采用数据亲和性调度策略,确保同一份数据的相关计算任务尽量在同一计算节点上执行,减少网络传输。
4.4 压缩与去重 对存储的数据进行压缩处理,尤其是对重复数据进行识别和去重,大大节省存储空间,同时也降低了数据在存储和传输过程中的开销。尤其是在训练集较大的情况下,这种优化方式的效果尤为明显。
4.5 快速文件系统 采用高性能文件系统,如EXT4、XFS或专为AI设计的高性能文件系统,如阿里云的ESSD、AWS的EBS等,它们能提供极高的IOPS和吞吐量,确保在大量并发读写操作下仍能保持高效的数据存取速度。
4.6 存储分级 根据数据热度的不同,实行存储分级策略,将经常访问的热数据存储在高速、高成本的存储设备上,而将访问较少的冷数据迁移到成本较低但访问速度较慢的存储设备上,实现存储成本和性能的兼顾。
综上所述,智能算力中心AI大模型高性能网络解决方案在存储优化方面,通过采用分布式存储、数据缓存与预加载、数据本地化调度、数据压缩与去重、快速文件系统以及存储分级等一系列技术手段,有效地提升了AI大模型训练过程中的数据存取效率和整体性能表现。

5. 运维管理与安全性
  • 统一运维管理系统:提供一站式的资源管理和监控平台,实现对计算、存储和网络资源的可视化管理,实时监控系统状态,确保AI业务的稳定运行。
  • 多层安全防护体系:构建覆盖网络安全、数据安全、应用安全在内的全方位安全防护机制,保障AI大模型及其训练数据的安全性。
在智能算力中心AI大模型高性能网络解决方案中,运维管理和安全性是保障系统稳定、高效运行以及数据安全的重要环节,具体内容如下:
5.1 统一运维管理系统 构建一套完整的运维管理系统,涵盖资源监控、任务调度、故障排查、性能调优等多个维度。通过集中化的管理界面,实时监控计算节点、网络设备和存储设备的状态,实现对整个算力中心资源的统一管理和调度,确保AI大模型训练过程的顺畅进行。
5.2 自动化运维工具与流程 采用自动化运维工具,如Ansible、Puppet、Chef等,实现服务器配置管理、软件安装更新、服务启停等操作的自动化。同时,建立标准化运维流程,包括定期巡检、故障恢复预案、备份与恢复策略等,以减少人为干预可能导致的失误,提高运维效率和系统稳定性。
5.3 安全防护体系 构建多层次、全方位的安全防护体系:
  • 物理安全:确保数据中心的物理环境安全,包括防火、防水、防震、防盗等措施,以及严格的门禁系统和视频监控。
  • 网络安全:部署防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)、反DDoS攻击系统等,防范外部攻击和非法访问。同时,采用加密通信协议,确保数据在网络传输过程中的安全。
  • 身份认证与权限管理:采用双因素认证、权限最小化原则,确保只有经过授权的用户才能访问相关资源,并按照角色分配合适的操作权限。
  • 数据安全:采用数据加密技术,对存储的AI大模型及其训练数据进行加密处理,防止数据泄露。同时,定期进行数据备份,并设立异地灾备中心,以防数据丢失。
5.4 AI模型安全与隐私保护 针对AI大模型特有的安全风险,如模型窃取、对抗样本攻击等,采用针对性的安全策略,如模型水印技术、差分隐私技术等,加强模型保护和隐私保护。
5.5 监管合规 遵循相关的数据保护法规和行业标准,确保AI大模型训练过程符合GDPR、CCPA等国际和国内数据安全法律法规要求,建立健全数据保护制度,落实数据生命周期安全管理。
综上所述,智能算力中心AI大模型高性能网络解决方案高度重视运维管理和安全性,通过一系列精细化、智能化的运维管理手段和严密的安全防护体系,切实保障了AI大模型训练环境的高效、稳定和安全运行。

实践案列解决方案分析
首先从大模型的分布式训练出发,分析大模型训练对网络的核心需求。然后基于这些需求讨论 AIPod 高性能网络的设计。最后将讨论一些做大模型训练的实践经验。
1. 大模型训练对网络的要求
我们先来聊聊大模型训练对网络的需求。
最近半年以来大模型持续火爆。虽然关于大模型的发展与应用还有很多的争论,但可以肯定的是,大模型能力已经成为了接下来人工智能发展的基础。
和以前的小模型相比,大模型对大规模的分布式并行训练有更强的诉求。
这一方面是因为模型本身非常大。受制于今天的 GPU 显存限制,我们不得不把一个模型分拆到很多个 GPU 上来存储。比如说,文心大模型有 2600 亿个参数,但是实际上一个 80G 显存的 A800,算上训练中间的计算状态,也只能存放大概 10 亿-20 亿参数。那显然光是存放 2600 亿的模型本身,就需要一两百块 GPU。这已经是一个比较大的规模了。
另一方面,因为训练更多的参数需要更多的计算量,因此我们必须得引入更大规模的 GPU 来进行加速,所以我们需要的 GPU 又要有一个数量级的提升。
我们根据一个任务的 GPU 卡数来命名训练的规模。比如百卡以下我们叫小规模,百卡到千卡我们叫中规模,千卡以上我们叫大规模,超过万卡我们则以超大规模进行命名。依照这个命名方式,我们可以说,千卡以上的大规模并行训练是大模型成功的基础。
图片
分布式并行训练有多种策略,我们这里列举出常用的三种。
  • 应用最广泛的是数据并行。在数据并行里,每个 GPU 都拥有同样的模型副本,数据集则拆分成多份给到不同的 GPU 进行训练。每一轮迭代训练完成后,各个 GPU 需要把各自反向计算得到的梯度做全局同步,然后各个 GPU 计算出下一轮迭代用到的参数。在数据并行中,网络上需要对各个 GPU 上的梯度做一次 Allreduce,通信的数据量规模和模型参数规模成正比,对于千亿规模参数的大模型来说数据通信量都是很大的。
  • 第二种并行策略就是流水线并行。神经网络模型通常都是多层神经元的组合,包括大模型底层的 Transformer 模型也是这样。我们可以把模型按照神经元的层次进行拆分,不同层放到不同的 GPU 上去。这种并行策略需要不同 GPU 之间做层间点到点数据传递,传输的内容包括正向计算里的激活值和反向计算里的梯度值。这种通信在一个迭代里至少会发生几十次,但通信量一般不大,对网络的性能要求相对较低。
  • 第三种并行策略就是张量并行,也就是联合多个 GPU 同时做一个张量计算,比如说矩阵乘法。这种并行策略需要多个 GPU 间对局部的张量计算结果做全局的 Allreduce 同步。这里的张量计算结果的大小,不仅和模型有关,也和训练使用的 batchsize 相关,通常都非常大,并且在一次迭代里会发生很多次这样的 Allreduce。因此张量并行对网络带宽的需求是最大的。
图片
考虑到三种并行策略的特点,我们在训练大模型时,通常混合采用了三种并行策略。
首先在单机内部的多 GPU 卡间,我们采用张量并行,充分利用单机内部 NVLink 的高带宽特性。
其次,由于模型过大,单机 8 卡肯定还是放不下,因此在多机间继续采用流水线并行的策略,多路流水线并行构成一个模型训练的最小单元。
最后,为了进一步加速模型训练,我们再使用多路数据并行。注意这里数据并行的单元我们叫做一个 DP 组,每个 DP 组内部都是张量并行和流水线并行共存。
数据并行中的 Allreduce 实际上是每个 DP 组的同号卡之间进行的。比如这个图里,8 路张量并行,4 路流水线并行,3 路数据并行。在数据并行里,实际上有 32 个 Allreduce 组,每个组里有 3 张 GPU 做梯度同步。
数据并行里每张 GPU 卡都需要对 10GB 级别的数据做 Allreduce,这个 Allreduce 是大模型训练对网络的主要需求。
图片
正是由于大模型训练里这些需求,我们提出了 AI 高性能网络的三大目标:超大规模、超高带宽以及超长稳定。
首先,规模的大小直接决定了模型训练的快慢。这张图里可以看到,对于一个 1750 亿的模型,如果采用 2 千张 GPU,仍然需要训练 100 天以上。采用 8 千卡则可以把时间压缩到 30 天左右。这对于今天快速迭代的大模型而言是非常重要的。
其次,Allreduce 的带宽直接决定了大规模分布式下的整体效率。我们可以看下面这个图,平均单 GPU 的 Allreduce 带宽有 5GB/s 的时候,大规模分布式的整体加速比只有 70%。想要获得 90% 的加速比,单 GPU 的 AllReduce 带宽则需要做到 20GB/s,相当于单 GPU 跑满 400G 网卡。
最后是稳定的问题,由于训练时长至少是几个星期,长时间下的稳定性显得非常重要。这个图里我们以 GPU 可用性为例来做个简化讨论,假定单 GPU 的月可用性是 99.9%,那么在千卡规模下模型训练一月内遇到故障发生中断的概率是 60%,而如果采用 8 千卡中断概率就有 99%。即使 GPU 的可用性提升到 99.99%,8 千卡下的中断概率仍然在 50% 左右。
我们这里以 GPU 可用性举例,是因为大模型训练中碰到的主要可用性问题来自于 GPU。当然网络必须保证更高的可用性,才能尽可能减少模型的训练中断,降低模型做 checkpoint 的频率以及开销。
图片
2. AIPod 高性能网络设计
基于这样的目标,我们有针对性地设计了 AI 大底座里面的 AI 高性能网络—— AIPod
这张图是关于 AIPod 高性能网络的点线图。注意这是一张完全图,我们把每一个网卡、每一个交换机、每一条线缆都画了出来,充分展现出这张网络的复杂性。这张网络里面有约 400 台交换机、3000 张网卡、10000 根线缆和 20000 个光模块。其中仅线缆的总长度就相当于北京到青岛的距离。
图片
当然上一个图只是一个感性的认识,接下来我们要聊聊理性的设计。
为了支撑超大规模的这张 AIPod 网络,我们选择了 3 层无收敛的 CLOS 组网结构。所谓的 CLOS 组网就跟这张图展示的一样,服务器在最下面,连接到 Leaf 层交换机,也就是图里的 LF,然后 Leaf 交换再通过 Spine 交换机连接起来,就是图里的 SP。最后 Spine 交换机再通过 SuperSpine,也就是 SSP 互联起来。
我们前面说到,在大模型训练的时候,主要的通信来自于同号 GPU 卡之间,也就是一台服务器的 1 号卡和另一台服务器的 1 号卡之间通信,一台服务器的 2 号卡和另一台服务器的 2 号卡之间通信,以此类推。较少的情况下才会发生跨卡号通信,比方说一台服务器的 1 号卡和另一台服务器的 2 号卡通信。所以,AIPod 网络在设计的时候,采用了 8 通道的架构。每个服务器上的 8 个网口,对应 8 个 GPU,分别连接 8 个不同的 Leaf 交换机。这 8 个 Leaf 交换机一组,构成了一个汇聚组 Group。这样的一个汇聚组下最大可以有 512 张 GPU。进一步,8 个 Leaf 交换机再往上连入不同的 8 个通道,每个通道内 Spine 交换机和 Leaf 交换机之间做 fullmesh 全互联。这样的一个集群最大可以支持超过 16K GPU。
虽然主要的通信发生在同一个通道内,但总还是会存在跨通道的通信。所以我们通过 SuperSpine 再把不同的通道的 Spine 交换机连接起来,打通各个通道。这就是 AIPod 的组网方式。AIPod 的网络我们采用了无收敛,或者说收敛比为 1:1 的方案,也就是指交换机的上联带宽等于下联带宽,确保集群内互通带宽充足。
为了尽可能支撑更大的规模,我们在选择交换机的时候,会选用当前顶级容量的交换芯片,比如曾经的 12.8T 或者 25.6T 芯片,那么现在已经演进到了单芯片 51.2T 的交换机。
图片
上面我们主要讲了大规模的 AIPod 怎么构建。接下来我们谈谈带宽的问题。
我们选择单机最大 8x400G 的接入规格,网络上选择了无收敛比的 CLOS 架构,同时也支持 RDMA 和 GDR,理论上带宽可以做到很高的水平。但是实际上,当规模一大,就会产生很多的问题。其中一个最主要的问题,就是跨交换机的选路冲突。
从技术上说,几乎所有的网络传输都有一个固有的问题,就是同一条连接在网络内要避免乱序,因为一旦发生乱序,在接收端就会触发重传逻辑导致降速。所以网络内交换机转发报文的时候,会把同一条连接的报文会向一条路径转发,而这条路径的选择就依赖哈希算法。
我们知道哈希算法总是会有冲突的,像是左边这个图里展示的,2 个跨交换机的连接如果同时选择了左边这个链路,那么就会导致左边链路拥挤而右边的链路空闲,这样两个连接的带宽都会减半。这种问题在大规模训练中太常见了。
为了缓解这类问题的影响,我们通常会在 NCCL 通信库里面设置两个 GPU 间采用多个连接的方式,比方说右边这个图,连接数一多,出现严重不均衡的概率也就越小。这种方法可以增加网络内的路由熵,减小哈希选路冲突所带来的影响,但是问题并没有彻底解决。
图片
我们可以看到,这类问题只发生在跨交换机通信的场景。所以为了进一步减小这个问题的影响,我们应该尽可能让通信发生在一个交换机内。而同一个汇聚组内的同号 GPU 通信,是不会跨交换机的,也就没有哈希选路冲突问题。这也是为什么我们尽可能扩大一个汇聚组规模的原因。
为了减少跨交换机的通信,在 AIPod 里我们提供了网络架构感知的方法。网络架构感知,就是允许上层感知到当前 GPU 在网络架构的什么位置,归属于哪一个汇聚组,它的 GroupID 是多少。
AIPod 可以把这个信息透给上层的任务调度系统,让训练任务调度的时候,把同一个任务尽可能调度在同一个汇聚组下,这样通信肯定也就只在一个汇聚组内了。
但是大模型的任务通常很大,不可能全在一个汇聚组下。这时我们就需要通过汇聚组信息对全局 GPU 做有序化处理,让通信库在构建 Allreduce 拓扑图的时候,减少跨交换机的互通流量。我们用右下角这个图来说明,4 个 GPU 做 AllReduce,采用 ring 算法,两种不同的 ring 的构建顺序,会使得跨交换机的带宽有很大的差别。显然左边的这种建 ring 的方法是更高效的,而右边则是低效的。这就是 AIPod 里面网络架构感知所带来的收益。

图片

图片

图片

图片

图片
当然网络的复杂度在于,有一些硬件故障是不能被显式直接感知到的。比如某些交换机芯片缺陷所带来的比特翻转问题,会导致报文在传输过程中某个比特位被修改从而丢包。这种问题不像设备故障那样可以被直接发现,非常难以排查。
为了充分发现这些隐藏的问题,我们设计了 AIPod 网络的黑盒探测机制,确保每条链路上每秒都有黑盒探测报文。探测一旦发现连通性问题就会触发自动的定位和隔离机制,把问题链路、问题设备隔离掉,并且触发告警,让运维人员快速介入进行修复。
AIPod 里面的黑盒探测机制,是保障各种网络问题被第一时间感知到的关键。
图片
对于 AIPod 高性能网络而言,除了连通性故障以外,还有一类故障与连通性无关,而是与无损网络有关。
AIPod 高性能网络是无损网络,也就是说网络内不会产生拥塞丢包。这是依赖网络内的 PFC 技术实现的。但是无损网络也可能会有异常。
常见的一个异常是 PFC 死锁,这个技术上比较复杂,原理我们就不展开了,从效果上看会导致网络永久性挂死。因此我们在网络内一定会启用死锁检测。但问题在于,来自于交换芯片的死锁检测总是有假阳性判断的存在,从而导致瞬时误丢包。第二个常见异常通常是来自于芯片故障,尤其是网卡芯片故障所带来的持续性 PFC 风暴,这会导致集群整体的传输效率下降。
这两类与无损网络相关的异常是固有问题,我们目前还不能完全消除。但是,通过基于自研交换机的 Telemetry 遥测技术,我们搭建了无损网络的性能透视平台,确保网络内的任一丢包信息和 PFC、缓存的异常变化都能被迅速感知到。通过这样的性能透视平台,这类问题可以被第一时间发现并解决掉,最终并不会影响到大模型的稳定训练。
图片
讲完了 AIPod 的大规模、高带宽和长稳定设的计,接下来作为一个番外篇,我们聊聊超低延迟的 AIPod 网络。
之所以把这个内容放到番外篇来讲,是因为对于大模型训练而言,延迟并不是一个核心考虑,带宽才是核心。只要能做到微秒级别的网络延迟,在网络上进一步降低几个微秒的延迟在端到端的性能上几乎看不出任何的影响。但是从技术上说,仍然存在一些特定的 AI 业务是延迟敏感的。AIPod 网络也一样能满足低延迟的诉求。
我们先来拆解一下网络延迟的构成,除了总线、网卡、光模块、交换机的硬件延迟以外,我们真正有机会优化的只有两个延迟,一个是光纤延迟,另一个是交换机排队时延。
光纤时延之所以重要,是因为光速是有限的。光在玻璃里的传输速度是每秒 20 万公里,换句话说,两个 GPU 间每增加 200m 光纤,就会增加 1 微秒的时延。为了让集群内任意两个 GPU 之间的延迟尽可能低,AIPod 里我们优化了整个集群在机房内的布局,使得服务器和交换机以及交换机和交换机之间的距离尽可能近,从而能够采用更短的光纤连接。
另一方面,交换机排队延迟与交换机的缓存占用有关。一个交换机端口上每有 1MB 的缓存,就会导致 25us 延迟的增加。AIPod 内部我们优化了的拥塞控制参数,尽可能保证在不影响带宽的前提下,降低交换机的缓存占用,以此实现更低的延迟。
图片
大规模、高带宽、长稳定、低延迟,我们关于 AIPod 高性能网络的设计要点基本讲完了。接下来再看一个番外篇。
刚才讲的 AIPod 网络主要指的是连接 GPU 的训练网络。但其实存储的读写性能也对大模型的训练非常重要,这里面就包括了数据集的读取以及训练过程中 checkpoint 的读写。
存储主要依赖的还是云上的 VPC 网络,百度智能云在 VPC 网络上也做了相应的高性能支持。比如如果要访问并行文件系统 PFS,我们有高性能的弹性 RDMA 技术进行支撑,单客户端能够做到 200G 的带宽。
而如果要访问普通的文件存储 CFS 或者是对象存储 BOS,也可以通过挂载我们的高性能硬件负载均衡实例,单客户端获得超过 10G 的稳定带宽。
存储底层的这些高性能技术的使用,对于大模型的计算效率也有很大的贡献。
图片
3. AIPod 大模型训练实践
以上就是我们关于 AIPod 高性能网络设计的分享。接下来我们再看看基于 AIPod 网络所做的一些大模型训练的实践。
这里展示的是在AI大模型平台上的两个千卡规模的训练流量图,分别来自于 RoCE 集群和 IB 集群。
两个集群上的模型稍有不同,但都达到了单卡百 G 水平的通信带宽并且可以长期稳定运行。
搞过大模型训练的同学应该都有切身感受,真正把千卡任务跑起来并且顺利的跑完并不是一件容易的事情。过程中会遇到很多很多的问题,我们需要一些辅助工具来帮助我们快速判断问题的源头是什么。
这里我想着重讲两个工具,一个是任务可视化工具,一个是故障诊断工具。
图片

图片

图片

第二个关键工具是故障诊断工具。
大模型训练经常会碰到各种各样的异常,很多异常会表现为通信库通信异常。但是这些异常的根本原因多数情况下并不是网络问题。举个例子,左边这个是我们一个客户的 case,在框架日志里面看到了 NCCL 相关的 Timeout。但是该 case 的真实原因其实是 GPU 的故障。针对这类问题,我们需要故障的一键定位,从各个节点的相关日志里提取信息并且自动分析,让故障的根因更快的被找到。
有些软硬件的问题并不一定导致任务完全卡死,而是会有慢节点的存在。大模型的训练会因为一个慢节点而拖累全局速度,也就是一点慢,全局慢,所以有的时候并不能直接通过任务维度的可视化工具找到问题所在针对这个问题,我们也研发了对应的慢节点搜索工具,能够在一个集群内自动以二分的方式测试集合通信带宽,从而找到或者排除掉慢节点的存在。这对于真实问题的定位也是有很大帮助的。
图片
以上就是我今天想跟大家分享的全部内容了。AIPod 高性能网络是百度智能云 AI 大底座中百度百舸的底层关键技术,决定了大模型训练的能力和效率。大规模、高带宽、长稳定的 AIPod 高性能网络能够帮助用户更高效率、更低成本的训练自己的大模型,在这个大模型的时代里面保持持续领先。
Q&A
  1. Q:支持乱序+多路径,底层的网络协议还是用的原生 RoCE 吗?乱序组包是由硬件还是软件实现?对性能有多大的影响?
    A:用的是 NV 的新版本的 RoCE 实现,乱序组包使用网卡硬件来支持的,乱序重组仍然可以达到网卡限速。
  2. Q:VPC 也支持 RDMA 么?
    A:可以提供了弹性 RDMA 产品 ERI,可以支持 VPC 上 200G 带宽、5us 延迟的 RDMA 通信。
  3. Q:如果整个 AIPod 是无收敛的,那对交换机的数量或者交换机光口的数量要求会比较多,在部署成本上是怎么考虑的?
    A:考虑的是整个集群端到端的性价比。网络设备成本在集群整体成本里面占相对较小的比例,通过提供一定的冗余,所带来的性能增益是高于成本提升的。
以上部分内容来源百度云

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多