Meta近日撰文称,人工智能的日益普及开启了通信需求的新时代。尤其是分布式训练,给数据中心网络基础设施带来了最大的压力。例如,典型的生成式人工智能 (GenAI) 作业可能需要在数周内紧密协调数万个 GPU。构建能够很好的满足这一日渐增长的需求的可靠、高性能网络基础设施要重新评估数据中心网络设计。
我们已成功扩展 RoCE 网络,从原型发展到部署多个集群,每个集群可容纳数千个 GPU。这些 RoCE 集群支持广泛的生产分布式 GPU 训练作业,包括排名、内容推荐、内容理解、自然语言处理和 GenAI 模型训练等工作负载。
我们专门为分布式训练构建了一个专用的后端网络。这使我们也可以独立于数据中心网络的其余部分进行发展、运行和扩展。为了支持大型语言模型 (LLM),我们将后端网络扩展到 DC 规模,例如,将拓扑感知功能纳入训练作业调度程序。
训练集群依赖于两个独立的网络:用于数据提取、检查点和日志记录等任务的前端(FE)网络,以及用于训练的后端(BE)网络,如下所示。
训练机架连接到数据中心网络的 FE 和 BE。FE 具有网络层级结构 - 机架交换机 (RSW)、结构交换机 (FSW) 和更高层 - 其中包含存储仓库,为 GPU 提供训练工作负载所需的输入数据。我们确保机架交换机上有足够的入口带宽,不会妨碍训练工作负载。
BE 是一种专用结构,它以非阻塞架构连接所有 RDMA NIC,可在集群中的任意两个 GPU 之间提供高带宽、低延迟和无损传输,无论它们的物理位置如何。此后端结构使用 RoCEv2 协议,该协议将 RDMA 服务封装在 UDP 数据包中以利用互联网传输。
我们的 BE 网络经历了几次转型。最初,我们的 GPU 集群使用简单的星型拓扑,其中几个 AI 机架连接到运行不可路由的 RoCEv1 协议的中央以太网交换机。这种设置在 GPU 规模和交换机冗余方面存在很明显的限制。因此,我们迅速过渡到基于结构的架构,以提高可扩展性和可用性。
我们为 AI 机架设计了一个两级 Clos 拓扑,称为AI Zone。机架训练交换机 (RTSW) 用作叶交换机,使用铜基 DAC 电缆为机架内的 GPU 提供扩展连接。主干层由模块化集群训练交换机 (CTSW) 组成,为集群中的所有机架提供横向扩展连接。CTSW 具有静态划分在机箱端口上的深度缓冲区。RTSW 通过单模光纤和 400G 可插拔收发器连接到 CTSW。
AI 区域旨在以非阻塞方式支持大量互连的 GPU。然而,新兴的 AI 进步(例如Llama等 LLM )需要的 GPU 规模大于单个 AI 区域所能提供的规模。为了适应这种情况,我们设计了一个聚合器训练交换机 (ATSW) 层,用于连接数据中心建筑物中的 CTSW,从而将 RoCE 域扩展到单个 AI 区域之外。
请注意,跨 AI 区域连接在设计上是超额认购的,网络流量使用 ECMP 进行平衡。为了缓解跨 AI 区域流量的性能瓶颈,我们增强了训练作业调度程序,以便在将训练节点划分为不同的 AI 区域时找到“最小割点”,由此减少跨 AI 区域流量,从而缩短集体完成时间。调度程序通过学习 GPU 服务器在逻辑拓扑中的位置来推荐等级分配来实现这一点。
上面讨论的计算能力和网络拓扑的扩展引发了一个问题:如何有效地平衡和路由大量训练流量。具体来说,AI 训练工作负载有几个具有挑战性的特征:
低熵(Low entropy):与传统数据中心工作负载相比,AI工作负载的流的数量和多样性要小得多,并且流模式通常具有重复性和可预测性。
或者,我们在部署的最初几年设计并部署了路径固定方案。该方案根据目标“切片”(RTSW 下行链路的索引)将数据包路由到特定路径。如果每个机架都完全分配给同一项工作并且网络没有故障,这种方法效果很好。然而,这样的一种情况很少发生。我们得知机架可以部分分配给一项工作,机架中的两个主机中只有一台使用上行链路带宽。这种分散的工作安排导致特定 RTSW 的上行链路上流量分布不均匀和拥塞,并使训练性能降低 30% 以上。此外,上行链路或 CTSW 上的网络故障导致受影响的流通过 ECMP 不均匀地重新分配给其他 CTSW。这些重新分配的流与其他现有流发生冲突,并减慢了整个训练工作的速度。
我们通过将 RTSW 上行链路带宽升级 2 倍来减轻这些流量冲突的直接影响。因此,我们允许 RTSW 上行链路容量与 RTSW 下行链路容量相比,订阅量为 1:2。虽然这减轻了直接的性能影响,但这是一个昂贵的解决方案,因为它需要 2 倍的网络容量。因此,我们大家都认为这只是一个短期缓解措施,并进入了路由演进的进一步阶段。
为了解决这一个问题,我们将交换机配置为执行增强型 ECMP (E-ECMP),使用交换机 ASIC 的 UDF 功能对 RoCE 数据包的目标 QP 字段进行额外的哈希处理。这增加了熵,与没有 QP 缩放的基线 ECMP 相比,我们观察到 E-ECMP 和 QP 缩放使 AllReduce 集合的性能提高了 40%。
我们评估了两种 QP 扩展策略。第一种是将每条原本要通过单个 QP 发布的消息拆分到多个 QP 上,由此产生多个流。但它也会在结构上产生较小的消息大小以及多个 ACK。第二种方法是以循环方式将每条消息发布到不同的队列。对我们在 NCCL 生产中展示的 NIC 消息大小,我们观察到后者表现良好。此功能对于 ECMP 可扩展性很重要,因为它能增加 AllReduce 等分层集合的网络流量。
为了缓解 400G 及更高速率的拥塞,我们共同设计了集体库和 RoCE 传输,以强制接收器驱动的流量接纳,从而获得更好的性能。下图显示,我们生产训练集群中的 GPU 到 GPU 通信架构主要使用通过 NCCL 集体库进行的两阶段复制和接收器发起的通信。每个 GPU 的高带宽内存 (HBM) 维护多个通道,用于并行传输分块集体消息。发送方 GPU 线程首先将数据从计算缓冲区复制到可用的通道缓冲区。发送方 CPU 代理线程只能在从接收器收到包含大小和内存信息的清除发送 (CTS) 数据包后才能发布 RDMA 写入请求。然后,接收器的 GPU 线程将通道缓冲区内容复制到目标计算缓冲区。最后,两侧的 CPU 代理线程回收通道缓冲区,一旦通道缓冲区准备就绪,接收器 CPU 代理就会发送另一个 CTS 数据包。
拥塞控制一直是 RDMA 网络研究的重点。DCQCN 一直是以存储为中心的网络的黄金标准。然而,我们在分布式 AI 训练工作负载方面的经验为定制拥塞控制算法提供了不同的视角。尽管关闭了 DCQCN 和 RTSW 向深度缓冲 CTSW 发送 PFC 的多个实例,但在过去四年中,我们还没有遇到过生产 AI 训练流量导致 CTSW 持续向 RTSW 发送 PFC 的情况。
用于分布式 AI 训练工作负载的大规模 RoCE 网络的设计和运行已发展到能够完全满足日渐增长的计算密度和规模需求的程度。通过分离 FE 和 BE 网络、采用各种路由方案以及优化集体流量模式,我们已可构建高性能且可靠的网络基础设施。这些设计和见解强调了深入了解训练工作负载并将这些影响转化为网络组件设计的重要性,最终有助于推动分布式 AI 训练基础设施的发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
曝澳大利亚搞了个“人均奖牌榜”,把自己排在第一!印度的奖牌计算方式也很奇葩
曝俞敏洪老友回应罗永浩小作文:新东方20年前就给你70万年薪,你靠讲段子教单词还不知足!
微星发布新款海皇戟RS、宙斯盾S 电竞主机:可选AMD锐龙 R9 9900X
讯景推出 Speedster SWFT 210 RX 7800 XT 显卡,489.99 美元
藏在社区里的免费假期兴趣班:画画、主持、运动,丰富孩子们的“七彩假期”