您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [VIAYI Solutions]:AI/ML 数据中心网络验证 评估 AI/ML 网络基础设施的概念、挑战和解决方案 - 发现报告

AI/ML 数据中心网络验证 评估 AI/ML 网络基础设施的概念、挑战和解决方案

信息技术 2024-01-26 - VIAYI Solutions ZLY
报告封面

评估AI/ML网络基础设施的概念、挑战和解决方案 A I / M L数 据 中 心 网络 验 证 常见AI测试挑战...................................14揭示AI网络健康状况的统计数据.......14问题指标示例.....................................15TestCenter AI测试解决方案概述...........15结论......................................................17参考文献..............................................18 简介.......................................................3AI正在重塑数据中心..............................3AI工作负载的关键网络概念...................3AI流量模式与集合通信库(CCL)..........3RingAllReduce....................................4AlltoAll.................................................7双二叉树.............................................8Halving Doubling(折半倍增)............9基于融合以太网的RDMA第2版(RoCEv2)............................................10数据中心量化拥塞通知(DCQCN)........12优先级流量控制(PFC)........................13 简介 AI正在重塑数据中心 人工智能(AI)和机器学习(ML)工作负载的规模和复杂性已经重新定义了数据中心设计。为了高效训练万亿参数模型,数据中心正在高速互连网络上部署数千个GPU和xPU。这些分布式集群必须作为一个紧密同步的计算平台运行。 这种转变给网络带来了巨大的压力。AI工作负载要求低延迟、高吞吐量和无损通信。任何数据包丢失或延迟都可能导致整个训练过程停滞。因此,网络已经成为AI基础设施的关键性能组件。[参考文献1] VIAVI测试解决方案可帮助组织确保其AI数据中心网络经过优化、运行可靠,并具备扩展能力。 AI工作负载的关键网络概念 AI流量模式与集合通信库(CCL) AI工作负载依赖于一种独特的流量模式,专为分布式系统中的大容量并行数据处理而设计。训练现代AI模型涉及将大规模数据集分成块,并将它们分布在多个xPU(例如,GPU或自定义加速器)上进行同时处理。这些操作的结果必须在训练期间反复同步,需要精确的协调和超可靠的网络通信。 •包含大量大象流的流量模式•数据和计算密集型工作负载•需要大量短小的远程内存访问操作•节点同时开始传输•任何一个流发生延迟,都会拖慢所有节点的处理进度•AI应用对网络弹性高度敏感 集合通信库是一个软件库,旨在促进并行和分布式计算环境中多个进程之间的高效数据交换和同步。它提供了集合通信操作的优化实现,使多组进程能够在通信任务上协同工作。 NVIDIA的NCCL实现了针对NVIDIA GPU和网络优化的多GPU与多节点通信原语。NCCL提供全收集、全归约、广播、归约、归约-分散以及点对点发送和接收等例程,这些例程经过优化,可通过节点内的PCIe和NVLink高速互连以及跨节点的NVIDIA Mellanox网络实现高带宽和低延迟。[参考文献2] NCCL在深度学习框架中具有重要应用,其中AllReduce(全归约)集合通信被广泛用于神经网络训练。通过NCCL提供的多GPU与多节点通信,可实现神经网络训练的高效扩展。 RingAllReduce RingAllReduce(环状全归约)是一种分布式算法,主要用于深度学习,在分布式训练设置中跨多个设备(如GPU或节点)有效地平均梯度。设备排列在逻辑环中(可视为一个通信器)。每台设备只与其直接相邻的设备(环中的下一台和上一台设备)通信。 它分为两个阶段:ReduceScatter(聚合阶段)与AllGather(分发阶段)。[参考文献3] ReduceScatter(归约分散)阶段: 1.总数据被分成N个块,其中N是设备(或进程)的数量。2.每台设备向下一台设备发送一个数据块,同时接收来自前一台设备的数据块。3.在接收到块时,每台设备执行将接收到的数据与其本地块相结合的归约操作。本文档将以求和操作为例进行说明。4.这个过程持续N-1个步骤,之后每个设备将持有归约结果的一个块。 在第一次发送和接收完成后,每个GPU将拥有一个块,该块由两个不同GPU上相应块的总和组成。例如,第二GPU上的第一个块将是来自第二GPU和第一GPU的该块中的值的总和。 在NCCL运算参数-o,--op 中,指定要执行的归约运算。仅与归约运算相关,如AllReduce(全归约)、Reduce(归约)或ReduceScatter(归约分散)。默认值:Sum [参考文献4] AllGather(全收集)阶段: 1.每台设备将其归约的块传递给下一台设备,同时从前一台设备接收另一个缺失的块。2.在N - 1个步骤之后,所有设备都将接收到完整的聚合数据。 在AllGather(全收集)阶段结束时,每个GPU都将拥有整个数组的完整累积值。所有节点中的所有梯度都已同步。 AlltoAll 最具挑战性的通信模式之一是AlltoAll(全对全),在这种模式下,集群中的每个处理器都要与其他所有处理器交换数据。这导致了极其密集的通信流,并对交换结构提出了很高的要求。全对全通信是一种通信模式,其中每个xPU与其他xPU交换数据。在NCCL 2.12中,NVIDIA引入了一个名为PXN的新功能,该功能可以优化消息路径以提高效率。[参考文献5] 在Rail优化网络拓扑中,每个DGX系统的NIC-0连接到同一个叶交换机(L0),NIC-1连接到同一个叶交换机(L1),依此类推。如果没有PXN,上图中的消息将经过三跳网络交换机(L0、S1和L3),这可能会导致争用,并因其他流量的干扰而变慢。在同一对NIC之间传递的消息被聚合,以最大化有效消息速率和网络带宽。 双二叉树 NCCL 2.4引入了双二叉树,它提供了满带宽和对数级延迟,甚至低于2D环的延迟。在双二叉树中,第一二叉树中的一半秩是节点,另一半秩是叶。第二个二叉树将其反转,使用叶作为节点,反之亦然,每个二叉树皆如此。该图说明了如何使用这种模式通过翻转树来反转节点和叶,从而构建双二叉树。[参考文献6] 如果将这两棵树叠加起来,除了根秩具有一个父级和一个子级之外,所有秩都有两个父级和两个子级。如果我们用两棵树中的每一棵分别处理一半的数据,那么每个秩最多会接收和发送两次半量数据;在发送和接收的数据量方面,这与环算法一样最优。 Halving Doubling(折半倍增) 这种算法结合了ReduceScatter(归约分散),通过递归向量折半和距离倍增实现;随后是AllGather(全收集),通过递归向量倍增和递归距离折半来实现(用于AllReduce(全归约))。[参考文献7] 在第一步中,进程的数量p减少到2的幂值。前2r个进程成对执行,从每个偶数秩向奇数秩(秩+ 1)传递输入向量的后半部分,从每个奇数秩向偶数秩(秩− 1)传递输入向量的前半部分。所有2r进程各自计算其对应一半部分的归约。第一步结束时,将每个奇数进程(1 …… 2r - 1)的结果发送至秩- 1,放入缓冲区的第二部分。 在第二步中,偶数秩/奇数秩的进程将其缓冲区的后半部分/前半部分发送到秩+1/秩-1。在接下来的步骤中,缓冲区递归折半,距离倍增。这个过程一直持续到ReduceScatter(归约分散)阶段完成。 AllGather(全收集)是ReduceScatter(归约分散)的逆过程,不涉及归约操作。 根据xPU的数量、向量长度和归约例程,在训练期间将调用一个或多个流量模式。TestCenter可以跨多个端口模拟这些流量模式的组合。此外,非AI训练流量可以作为背景流量添加。 基于融合以太网的RDMA第2版(RoCEv2) 由于CPU处理和内核交互,传统的网络堆栈会引入延迟。远程直接内存访问(RDMA)通过在没有CPU参与的情况下在不同节点的内存之间实现直接数据传输,消除了这些瓶颈。这对于AI工作负载尤其有利,因为同步事件必须频繁、快速且延迟最小。 RoCEv2(基于融合以太网的RDMA第2版)是数据中心最广泛采用的RDMA协议。它通过标准以太网运行,并支持使用UDP封装跨第3层网络进行路由。这种灵活性允许AI工作负载跨大型、多机架甚至多站点部署进行扩展。 自2014年推出以来,RoCEv2因其低延迟、高带宽的能力而被广泛应用于数据中心。它的拥塞控制机制利用IP ECN(显式拥塞通知)位进行拥塞标记,利用拥塞通知数据包(CNP)进行确认和流量调节。[参考文献8] 为了使RoCEv2有效运行,底层网络必须支持无损传输。这需要先进的拥塞管理协议,包括: •优先级流量控制(PFC):当缓冲区已满时,通过暂停每个优先级类别的流量来防止第2层的数据包丢失。 •显式拥塞通知(ECN):标记经历拥塞的数据包,以便端点可以降低其传输速率。•数据中心量化拥塞通知(DCQCN):一种拥塞控制算法,在拥塞时成倍地降低传输速率,在拥塞解除时逐渐提高速率。这有助于防止网络拥塞和数据包丢失,同时在基于RDMA的网络中保持高吞吐量和低延迟。•拥塞通知数据包(CNP):DCQCN(数据中心量化拥塞通知)的一部分,用于通知发送方自适应降低速率。 数据中心量化拥塞通知(DCQCN) 由交换机和NIC促成的关键拥塞控制机制是DCQCN和优先级流量控制(PFC)。在这些大规模环境中,不正确或未经优化的网络设置会导致应用程序性能低下。因此,在拥塞情况下,验证交换结构性能、优化配置并确保网络稳定性至关重要。 DCQCN是专门为RoCEv2设计的拥塞控制算法。它有助于防止网络拥塞和数据包丢失,同时在基于RDMA的网络中保持高吞吐量和低延迟。当发送方收到CNP时,它会成倍地降低传输速率。如果一段时间内没有检测到拥塞,发送方会逐渐增加其速率。这确保了网络利用率保持较高,同时避免了拥塞。 作为接收方: •如果某个流的标记数据包到达,并且在最近N微秒内没有为该流发送CNP,则立即发送CNP。•如果在该时间窗口内到达的任一数据包被设置了ECN标志位,则接收方最多每N微秒(CNP生成间隔)为该流生成一个CNP数据包[参考文献9] 作为发送方: 自该QP最近一次收到RoCEv2 CNP以来,当经过了可配置的时间和/或在该QP上已传输了可配置的字节数时,发送方应提高该QP上的注入速率。此外,它还维护一个名为Alpha的参数,该参数用于估计网络中的拥塞程度,并用于降低速率。 在速率降低阶段,如果收到该QP的CNP,则QP速率降低。Alpha用于控制下降速率,直到达到最小速率,公式如下:RC(当前速率)= RC (1 - Alpha/2) (0 < Alpha < 2)。如果连续收到CNP,速率将降低到配置的最小速率。 当最后一次减少后达到时间复位或字节复位阈值时,系统进入增加阶段。速率将增加到目标速率。 优先级流量控制(PFC) PFC在第2层(数据链路层)运行,基于IEEE 802.1Qbb。网络流量分为8个优先级(0-7)。每个优先级都可以独立控制。 •当交换机缓冲区接近溢出时(由Xoff阈值指示,表示特定优先级队列中的高缓冲区利用率),交换机发送PFC暂停帧,提醒上游端口暂停数据传输。 •一旦缓冲区使用率低于