NVIDIA 加速 AI 平台和产品(如 NVIDIA EGX 、 DGX 、 OVX 和 NVIDIA AI for Enterprise)需要数据中心网络提供最佳的性能。NVIDIA Spectrum 以太网平台通过芯片级创新实现了这一性能。
融合以太网 RDMA(RoCE)自适应路由技术通过减少网络拥塞问题加快了应用程序的速度。这篇文章介绍了 NVIDIA Spectrum 以太网平台的自适应路由技术,并提供了一些初步的性能基准。
是什么让网络变慢了?
您不必是云服务提供商就可以从横向扩展网络中获益。网络行业已经发现,具有第 2 层转发和生成树的传统网络架构效率低下,而且难以扩展。他们过渡到 IP 网络结构。
这是一个很好的开始,但在某些情况下,它可能不足以解决数据中心中引入的新型应用程序和大量的流量。
可扩展 IP 网络的一个关键属性是它们能够跨多个交换机层次结构分发大量的流和流量。
在一个完美的世界中,数据流是完全不相关的,因此在多个网络链路上分布均匀、负载平衡平稳。该方法依赖于现代哈希和多路径算法,包括等价多路径(ECMP)。运营商受益于在规模迥异的数据中心中广泛部署的高端口数、固定规格的交换机。
然而,在许多情况下,这是行不通的,通常包括无处不在的现代工作负载,如 AI 、云和存储。
这是一个有限熵的问题。熵是一种衡量流经给定网络的流量的丰富性和多样性的方法。
当您有数千个从全球各地的客户端随机连接的流时,您的网络被称为有 high entropy 。然而,当您只有少数大型流时(这在 AI 和存储工作负载中经常发生),大型流会控制带宽,因此会出现 low entropy 。这种低熵流量模式也称为 “大象流” 分布,在许多数据中心工作负载中都很明显。
那么为什么熵很重要呢?
使用静态 ECMP 的传统技术,您需要高熵来将流量均匀地分布在多个链路上,而不会出现拥塞。然而,在“大象流”场景中,多个流可能出现在同一条链路上,从而创建一个超过线路带宽的流量热点或微突发。这会导致拥塞、延迟增加、数据包丢失和重传。
对于许多应用程序,性能不仅取决于网络的平均带宽,还取决于流完成时间的分布。完成时间分布中的长尾或异常值可能会显著降低应用程序性能。图 2 显示了低熵对流完成时间的影响。
此示例由单个架顶交换机组成,具有 128 个 100G 端口。
64 个端口是连接到服务器的 100G 下游端口。
64 个端口是连接到第 1 层交换机的 100G 上游端口。
每个下游端口接收四个带宽相等的流:25G 每个流,总共 256 个流。
所有流量都通过静态哈希和 ECMP 处理。
在最好的情况下,此配置的可用带宽不会被超额使用,因此可能会出现以下结果。在最坏的情况下,与理想情况相比,流程可能需要长达 2.5 倍的时间才能完成。
在这种情况下,一些端口拥塞,而其他端口未使用。最后一个流(最坏情况流)的预期持续时间是预期第一个流持续时间的 250% 。此外,10% 的流预计流完成时间超过 150% 。也就是说,有一组长尾流,完成时间比预期的要长。为了高置信度的避免拥塞(98%),必须将所有流的带宽降低到 50% 以下。
为什么有许多流会而受到影响而完成时间过长?这是因为 ECMP 上的一些端口非常拥挤。当流完成传输并释放一些端口带宽时,滞后流通过相同的拥塞端口,导致更多拥塞。这是因为在对标头进行哈希处理后,路由是静态的。
自适应路由
NVIDIA 正在为Spectrum交换机引入自适应路由。通过自适应路由,转发到 ECMP 组的流量选择拥塞程度最低的端口进行传输。拥塞程度基于出口队列负载进行评估,确保 ECMP 组在不考虑熵级别的情况下保持良好平衡。向多个服务器发出多个请求的应用程序以最小的时间变化接收数据。
这是如何实现的?对于转发到 ECMP 组的每个数据包,交换机在其出口队列上选择负载最小的端口。评估的队列是那些与数据包服务质量匹配的队列。
相比之下,传统的 ECMP 基于哈希方法进行端口决策,这通常无法产生清晰的比较。当相同流的不同数据包通过网络的不同路径传输时,它们可能会在到达目的地时出现乱序的情况。在 RoCE 传输层,NVIDIA ConnectX NIC 负责处理无序数据包,并将数据按顺序转发给应用程序。这使得自适应路由对从中受益的应用程序透明。
在发送方面,ConnectX 可以动态标记符合网络重新排序的条件的流量,从而确保在需要时可以强制执行消息间排序。交换机自适应路由分类器只能对这些标记的 RoCE 流量进行分类,使其使用这种独特的转发方式。
Spectrum 自适应路由技术支持各种网络拓扑。对于 CLOS(或叶/脊椎)等典型拓扑,到给定目标的各种路径的距离是相同的。因此,交换机通过拥塞最小的端口传输数据包。在路径之间距离不同的其他拓扑中,交换机倾向于通过最短路径发送流量。如果拥塞发生在最短路径上,则选择拥塞最小的备选路径。这确保了网络带宽得到有效利用。
工作负载测试结果
存储
为了验证 RoCE 中自适应路由的效果,我们从测试简单的 RDMA 写测试应用程序开始。在这些在多个 50 Gb/s 主机上运行的测试中,我们将主机分成几对,每对主机在很长一段时间内互相发送大型 RDMA 写流。这种类型的流量模式是存储应用程序工作负载中的典型模式。
图 4 显示了基于哈希的静态路由在上行链路端口上发生冲突,导致流完成时间增加,带宽减少,流之间的公平性降低。在转移到自适应路由后,所有问题都得到了解决。
在第一个图中,所有流几乎同时完成,峰值带宽相当。
在第二个图中,一些流实现了相同的带宽和完成时间,而其他流发生冲突,导致完成时间更长,带宽更低。实际上,在 ECMP 的情况下,一些流在 13 秒的理想完成时间 T 内完成,而性能最差的流需要 31 秒,约为 T 的 2.5 倍。
人工智能/高性能计算
为了继续评估 RoCE 工作负载中的自适应路由,我们在一个 32 服务器测试台上测试了常见 AI 基准测试的性能收益,该测试台在两级胖树网络拓扑中使用四个 NVIDIA Spectrum 以太网交换机构建。该基准测试评估了分布式 AI 训练和 HPC 工作负载中常见的集合操作和网络流量模型,如 all-to-all 流量和 all-reduce 操作。
总结
在许多情况下,基于静态哈希的转发会导致高拥塞和可变的流完成时间。这会降低应用程序的性能。
NVIDIA Spectrum 自适应路由解决了这个问题。这项技术增加了网络使用的带宽,最大限度地减少了流完成时间的变化,从而提高了应用程序的性能。
将此技术与 NVIDIA ConnectX 网卡提供的 RoCE 乱序包支持相结合,应用程序对所使用的技术是透明的。这确保了 NVIDIA Spectrum 以太网平台提供了实现数据中心性能最大化所需的加速以太网能力。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !