云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

 

谈谈基于以太网的GPU Scale-UP网络

   

Intel Gaudi-3 采用 RoCE 互联技术,促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势,为高性能计算提供了强大且高效的连接选项。

要实现以太网替代 NVLink,需要对 GPU 架构进行全面修改,本质上等同于将 HBM 连接到以太网上并实现一系列通信优化。全球仅有少数公司掌握这项技术,包括针对计算需求的 In-Network-Computing 优化,如 SHARP。

博通打造NVLink竞品,需解决关键挑战:
- 数据传输速度和延迟优化
- 产品互联性和兼容性提升
- 生态系统发展和合作伙伴支持

链接延迟是不可避免的,源于高吞吐量高速 Serdes FEC 和超大型互连。单纯修改包协议或采用 HPC 以太网并不能解决此问题。

2.传输的语义是什么?做网络的这群人大概只懂个SEND/RECV。举个例子,UEC定义的Reliable Unordered Delivery for Idempotent operations(RUDI)其实就是一个典型的技术上的错误,一方面它满足了交换律和幂等律,但是针对一些算子,例如Reduction的加法如何实现幂等?显然这群人也没做过,还有针对NVLink上那种细颗粒度的访存,基于结合律的优化也是不支持的。更一般来说,它必须演进到Semi-Lattice的语义才行。

优化 NVLINK 上的内存池化,解决计算密集型算子(如 KV Cache)的时间/空间权衡问题,从而增强计算能力。

4.动态路由和拥塞控制能力1:1无收敛的Lossless组网对于万卡集群通过一些hardcode的调优没什么太大的问题,而对于十万卡和百万卡规模集群来看,甚至需要RDMA进行长传,这些问题目前来看没有一个商业厂商能解决的。

考虑到超大规模模型训练的一系列需求,把HBM直接挂载在以太网上并实现了一系列集合通信卸载的,放眼全球现在也就只有少数几个团队干过,前三个问题我是在四年前做NetDAM项目时就已经完全解决干净了,第四个去年也在某个云的团队一起解决干净了。下面我们将介绍一些Gaudi3/Maia100/TPU等多个厂商的互联,然后再分析一下NVLink的演进,最后再来谈谈如何能够真正地解决这些问题 at Scale

1. 当前ScaleUP互联方案概述

1.1 Intel Gaudi3

Gaudi的Die架构采用24个RoCE 200Gbps链路,21个用于内部全互联,3个用于外部连接,形成超大规模组网拓扑。每个边缘交换机的交换容量为25.6T。Intel WhitePaper值得深入研究,解决其提出的问题。

1.1.1 拥塞控制

Intel 采用 Selective ACK 机制取代 PFC,并使用 SWIFT 作为拥塞控制算法,避免 ECN。这种方法类似于 Google Falcon 在 Intel IPU 上的 Reliable Transport Engine,为数据中心网络提供了可靠、高效的传输。

1.1.2 多路径和In-Network Reduction

Intel 宣称支持 Packet Spraying,但使用博通交换机而非自有 Tofino。In-Network Reduction 兼容 FP8/BF16 等,而 Operator 仅支持求和、最小值和最大值。UEC 的 In-Network-Computing (INC) 工作组已明确此配置。

1.2 Microsoft Maia100

没有太多的信息,只有4800Gbps单芯片的带宽,然后单个服务器机框4张Maia100,整个机柜8个服务器构成一个32卡的集群。e7565a141158ed6e801440e4d1e8e49f.jpeg放大交换机和互联的线缆来看,有三个交换机,每个服务器有24个400Gbps网络接口,网口间有回环的连接线(图中黑色),以及对外互联线(紫色)。52e8916fea5aae8fee3dd70228ecd6c3.jpeg也就是说很有可能构成如下的拓扑:12b2378a12cd7ced7929d72f7ab5ad64.jpeg即在主板内部构成一个口字形的互联,然后在X方向构成一个环,而在Y方向则是分别构成三个平面连接到三个交换机。交换机上行进行机柜间的Scale-Out连接,每个机柜每个平面总共有32个400G接口, 再加上1:1收敛,上行交换机链路算在一起正好一个25.6T的交换机,这样搭几层扩展理论应该可行,算是一个Scale-Up和Scale-Out两张网络合并的代表。

至于协议对于Torus Ring来看,简单的点到点RoCE应该问题不大,互联到Scale-Out交换机时就需要多路径的能力了。缺点是延迟可能有点大,不过这类自定义的芯片如果不是和CUDA那样走SIMT,而是走脉动阵列的方式,延迟也不是太大的问题。另外Torus整个组就4块,集合通信延迟影响也不大。但是个人觉得这东西可能还是用于做推理为主的,一般CSP都会先做一块推理用的芯片,再做训练的。另外两家CSP也有明确的训练推理区分AWS Trainium/Inferentia, Google也是V5p/V5e。

1.3 Google TPU

TPU互联大家已经很清楚了,Torus Ring的拓扑结构和光交换机来做链路切换。6bd466fe2b6727d09ef1de83a80d8580.jpeg2c3f48f7237ccbdb99014410d69e83b2.jpegOCS有两个目的,一个是按照售卖的规模进行动态切分,例如TPUv5p 单芯片支持4800Gbps的ICI(Inter-Chip Interconnect)连接,拓扑为3D-Torus,整个集群8960块TPUv5p 最大售卖规模为6144块构成一个3D-Torus。d4b18c7ffd41bdfda6fed79f8ac101f6.jpeg通过OCS可以切分这些接口进行不同尺度的售卖, 另一个是针对MoE这些AlltoAll的通信做扩展bisection 带宽的优化。f65b056fe15d0c65c00fd1f453add8db.jpeg还有一个是容错,这是3D Torus拓扑必须要考虑的一个问题,有一些更新是这周NSDI‘24 讲到一个《Resiliency at Scale: Managing Google’s TPUv4 Machine Learning Supercomputer》[2] 后面我们将专门介绍。另一方面Google还支持通过数据中心网络扩展两个Pod构建Multislice的训练,Pod间做DP并行。d8b99aa3ea15e698cd0ce0ed674a77d3.jpeg796fba852b40fed472a86025cbdaf6b4.jpeg

1.4 AWS Trainium

Trainium 架构由 16 片组成一个小型簇集,采用 2D Torus Ring 结构进行片间互连。这种结构确保了高速、低延迟的数据传输,为 AI 和机器学习模型的训练提供了卓越的性能。

1.5 Tesla Dojo

Tesla Transport Protocol(TTP)由 Tesla 开发,简化了芯片内部和外部通信。它整合了 Wafer/NOC 和以太网扩展,实现了统一通信,提升了效率和性能。

54a4c65a1fd04fe0d874d300fa2630ff.jpeg

它通过台积电的System-on-Wafer将25个D1计算单元封装在一个晶圆上, 并采用5x5的方式构建2D Mesh网络互联所有的计算单元, 单个晶圆构成一个Tile.每个Tile有40个I/O Die。2742627e564ff73606234a77ee525f97.jpegTile之间采用9TB/s互联。724f2e0c11eb8c4bdf1172a42aaea3f5.jpeg可以通过片上网络路由绕开失效的D1核或者Tile。92acb763c4d4a55e68961869b9e4fe31.jpeg

对外Scale-Out的以太网有一块DIP,每个D1计算引擎有自己的SRAM, 而其它内存放置在带HBM的Dojo接口卡(DIP)上。f5bd2549af36398aa396e737b0327826.jpeg每个网卡通过顶部的900GB/s特殊总线TTP(Tesla Transport Protocol)连接到Dojo的I/O Die上, 正好对应800GB HBM的带宽,  每个I/O Die可以连接5个Dojo接口卡(DIP)。

001ff3b669c5b9690a9be9b3d38bf794.jpeg

由于内部通信为一个2D Mesh网络, 长距离通信代价很大, 针对片上路由做了一些特殊的设计。bc8bf8392e5d6cbf9f3f0f3ed6b5636a.jpeg路由在片上提供多路径,并且不保序, 同时针对大范围长路径的通信, 它很巧妙的利用Dojo接口卡构建了一个400Gbps的以太网TTPoE总线来做shortcut。ed77895ffb3e8c9ddaee2f9e3ae6df69.jpegDojo通过System-on-wafer的方式构建了基于晶圆尺度的高密度的片上网络, 同时通过私有的片间高速短距离总线构建了9TB/s的wafer间的通信网络. 然后将I/O和内存整合在DIP卡上,提供每卡900GB/s连接到晶圆片上网络的能力,构建了一个超大规模的2D Mesh网络, 但是考虑到片上网络通信距离过长带来的拥塞控制, 又设计了基于DIP卡的400Gbps逃生通道,通过片外的以太网交换机送到目的晶圆上。

1.6 Tenstorrent

Tenstorrent 的片上网络采用简单有效的以太网设计,由 Tensor+ 控制头组成以太网报文,支持多种通信语义。网络结构划分为阶段,每个阶段的指令数和带宽可估计,从而简化映射到核上的约束。
该2D Mesh 结构可扩展至 40960 个核心的大规模互联,提供高效且可扩展的片间通信。

2. Scale-UP的技术需求

2.1 拓扑选择

我们可以注意到在ScaleUp网络选择中,Nvidia当前是1:1收敛的FatTree构建,而其它几家基本上都是Torus Ring或者2D Mesh,而Nvidia后续会演进到DragonFly。5b08c304d692ee996a0a77d02c854f78.jpeg背后的逻辑我们可以在hammingMesh的论文中看到的选择如下:7033ca51058af67f4ce29e8564dbb6f9.jpeg可以看到对于Allreduce带宽来看,Torus是最便宜的,性能也能够基本跑到峰值。但是针对MoE这类模型的AlltoAll就要考察bisection带宽了,而DragonFly无论是在布线复杂度还是GlobBW以及网络直径上都还不错,所以明白了Bill Dally的选择了吧?

2.2 动态路由和可靠传输

当网络规模扩展至十万卡时,现有的流量工程解决方案存在局限性。单板级优化,如RoCE缺陷修复、Adaptive Routing和Packet Spraying,只能部分解决万卡规模问题。
对于超大规模网络,需要同时解决流量工程和亲和性控制的难题。

基于元数据的静态路由,管控平面调度和多轨道技术都可以作为解决方案的组成部分。通过综合应用这些技术,可以有效管理超大规模网络中的海量流量,确保网络性能和可靠性。

算法应对突发流量十分困难。令人担忧的是,人们往往忽视突发流量的根源,执着于通过测试交换机缓冲区来抑制它。一些人甚至诉诸确定性网络和傅立叶分析,这显然是徒劳的。


在工业界,优化调度仍面临挑战,取决于其他厂商的洞察力。
谷歌的研究表明,系统失效和弹性售卖会导致数据碎片,从而增加调度难度。
ICI内部路由解决方案与OCS交换机协作,提供完善的解决方案。
这篇论文深入披露了ICI的架构,包括物理层、可靠传输层、路由层和事务层,为理解该解决方案提供详细的技术见解。

以太网的路由层对于支持 ScaleUP 至关重要,因为它提供 DragonFly 和失效链路切换能力,确保以太网在复杂网络环境下保持高可用性。

3. Scale UP延迟重要么?

GPU延迟隐藏优化
GPU延迟隐藏通过以下方式实现:
* NVLink:内存语义,提供高带宽、低延迟。
* RDMA:消息语义,主要用于异构计算,延迟会更高。
GPU作为吞吐量优化的处理器,追求低延迟会导致实现问题。NVLink的内存语义使其具有较低延迟,而RDMA的消息语义和异构计算实现导致延迟较高。

3.1 RDMA实现的缺陷

RDMA相较NVLink延迟高的问题因CPU限制而起。NVIDIA引入GDA-KI技术,有效降低访存延迟,使得访问延迟变得更加容易隐藏。

3.2 细粒度的内存访问

NVLink 的细粒度访问对传输效率和延迟至关重要。利用以太网 RDMA 替换 NVLink 时,需要采用 HPC 以太网来支持较长的数据包。
此外,为实现 RDMA 消息的内部半格语义,需要遵循 NetDAM 中提出的解决方案。通过满足这些要求,可以有效弥补以太网 RDMA 在替换 NVLink 方面的不足。

  1. 交换律可以保证数据可以用UnOrder方式提交。
  2. 幂等性确保丢包重传不会导致重复处理。但在涉及副作用的加法操作(如 Reduce)时,需要采用事务或数据幂等性来处理。
  3. 结合律针对细粒度的内存访问,通过结合律编排,提升传输效率。

对于访存的需求,在主机内的协议如下:b1ea783e8dc3a8c1ad03078d01ca2899.jpeg通常是一个FLIT的大小,而在这个基础上要支持超大规模的ScaleUP互联和支撑可靠性又要加一些路由头,还有以太网头,还有如果超大规模集群要多租户隔离还有VPC头,这些其实支持起来都没有太大问题的,因为当你考虑到了 结合律即可。但是UEC似乎完全没理解到,提供了RUDI的支持交换律和幂等律支持了,结合律忘了,真是一个失误。而英伟达针对这个问题怎么解的呢?结合律编码:2ddee46de669f321f76ea97c3b873e20.jpegd5e4a10136ebc51440ed979d7f8b3339.jpeg最终细颗粒度访存的问题解决了。34d4ce05cf8a660f7d885cb67a67de01.jpeg下一代的NVLink一定会走到这条路里面来Infiniband和NVLink这两张ScaleOut和ScaleUP网络一定会融合。

3.2 ScaleUP的内存池化

大模型面临 HBM 容量不足的挑战。英伟达通过 Grace 和 NVLink C2C 扩展解决了该问题,采用池化内存以支持 ScaleUP 网络。值得关注的是,英伟达正在探索其他方式来应对这一挑战,如论文中所展示的。

3. 结论

任何一家公司如果想做Ethernet的Scale UP,需要考虑以下大量的问题:

  1. 通过优化访问内存协议并利用 GPU 的缓存,FinePack 可显著缩短延迟。其创新的 Message 语义和缓存处理机制能有效隐藏延迟,提升整体性能。
  2. ScaleUP 网络的动态路由和租户隔离功能至关重要,优化路由以避免碎片问题,特别是当资源受链路故障影响时。
  3. RDMA语义不完善,且直接复制SHARP存在隐患。为实现幂等,需要完善Semi-Lattice语义,支持有副作用操作的幂等实现。
  4. Fabric的多路径转发和拥塞控制,提升整个Fabric利用率;
  5. 大规模内存池化。

NetDAM研究突破性地实现了以太网ScaleUP直连HBM,其消息编码策略与Jim Keller的成就一致,但基于不同出发点。此外,大规模池化和原生In-Network-Computing/Programming加速进一步增强了其功能。通过与多个团队合作,引入了先进的拥塞控制和多路径转发,完善了该方案。NetDAM的论文为以太网在HPC领域应用提供了宝贵的见解,值得深入研读。

探索英特尔® 高迪 3 AI 加速器,实现令人难以置信的 AI 性能。
这款业界领先的加速器提供:
- 高达 40 倍的训练性能提升
- 高达 10 倍的推理延迟降低
- 支持广泛的 AI 框架和模型
通过高迪 3,解锁前所未有的 AI 创新,推动您的业务实现新高度。


Google TPUv4:弹性超算
Google TPUv4 超级计算机是业界首屈一指的机器学习平台,拥有惊人的规模:
* 5,760 个 TPU 单元
* 600 万个 AI 模型训练
* 每天处理 200 PB 数据
该平台采用了创新技术,实现了前所未有的弹性:
* 弹性部署:按需部署 TPU,无需预先配置
* 故障隔离:将工作负载隔离到独立的 TPU,确保可靠性
* 动态弹性:自动扩展和缩小 TPU 容量,优化利用率
TPUv4 的弹性优势使 Google 能够高效管理其庞大的 ML 工作负载,加速模型训练并推动 AI 创新。


 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频中为什么需要这么多的颜色空间?

在视频处理中,经常会用到不同色彩空间:非线性RGB,线性 RGB,YUV,XYZ……为什么需要这么多的色彩空间呢? 1、视频采集时的线性RGB颜色空间 由数码相机中的 CMOS 传感器产生并写入原始文件(Raw Fil…

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输,包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车,其CAN通信的开发可以提高车辆的安全性、可靠性和实…

怎么设置 idea terminal 窗口的编码格式

1 修改Terminal 窗口为 Git bash 窗口 打开 settings 设置界面,选择 Tools 中的 Terminal (File -> settings -> Tools -> Terminal) 修改 Shell path 为你的 Git bash 安装路径,我的在 C:\my_software\java\Git\bin\bash.exe 2 解决中文显示…

抢单业务介绍

存在的问题 会出现多个人同时访问的问题 解决办法:在判断前加锁,使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper

windows 本地部署 ChatGLM2-6b 教程

介绍 ChatGLM2-6B是智谱AI及清华KEG实验室发布的中英双语对话模型,它是 ChatGLM-6B 的第二代版本。 主要特点: 性能提升:ChatGLM2-6B 在初代模型的基础上进行了全面升级,使用了 GLM 的混合目标函数,并经过了 1.4T 中…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目,eureka是其中的一个模块,依赖主要继承父依赖 学习视频:b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

API提取IP

API代理作为IP代理的一项重要业务,在绕开地域网络限制,提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流,无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛,如使用API提取代理IP、…

02-JVM学习记录-运行时数据区

二、运行时数据区 每个JVM只有一个Runtime实例,只有一个运行时数据区。 虚拟机栈、堆、方法区最重要 方法区和堆与虚拟机的生命周期相同(随虚拟机启动而创建,虚拟机退出而销毁),程序计数器、虚拟机栈、本地方法栈生命…

区块链技术与应用学习笔记(12-13节)——北大肖臻课程

目录 12.BTC-匿名性 一、什么是匿名? 1,有可能破坏比特币匿名性的两个方面 2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性? 分解: 1、网络层怎么提高匿名性? 2、应用层怎么提高匿名性? 零知…

2024年vue 开发环境 Node.js于win10环境下的安装

2024年vue 开发环境 Node.js于win10环境下的安装 导航 文章目录 2024年vue 开发环境 Node.js于win10环境下的安装导航一、下载node.js二、安装node.js三、测试(一)四、环境配置五、测试(二)六、安装淘宝镜像七、安装vue脚手架 一、下载node.js Node.js 官方网站下载&#xff…

cgroup 资源控制介绍

目录 一 cgroup 介绍 1,cgroup 是什么 2,cgroups有四大功能 二 cgroups对 CPU 的控制 1,cpu 的工作原理 2,设置CPU使用率上限 2.1 cgroups对 CPU 的控制 原理 2.2 --cpu-period 2.3 --cpu-quota 2.4 设置…

Linux(Centos)服务器探索ffmpeg笔记 (命令行、Nvidia硬件加速、GPU、CPU、CUDA、h264_nvenc、过滤器、加水印)

目录 前言内容简介为什么会有这篇文章 1、服务器上怎么使用ffmpeg1.1 使用编译好的(需要root权限)1.2 自己怎么编译(需要root权限) 2 、非Root用户要怎么安装和使用3、ffmpeg命令的一些使用引导和参数介绍3.1 编译参数3.2 查询支持…

uniapp H5实现签名

第一种&#xff1a;跳转签名页面 1、创建审核页面audit.vue <template><view><uni-section title""><view class"auditClass"><uni-forms :model"baseFormData" ref"baseFormRef" :rules"rules&quo…

【Flink入门修炼】2-3 Flink Checkpoint 原理机制

如果让你来做一个有状态流式应用的故障恢复&#xff0c;你会如何来做呢&#xff1f; 单机和多机会遇到什么不同的问题&#xff1f; Flink Checkpoint 是做什么用的&#xff1f;原理是什么&#xff1f; 一、什么是 Checkpoint&#xff1f; Checkpoint 是对当前运行状态的完整记…

elementui el-date-picker禁止选择今年、今天、之前、时间范围限制18个月

1、禁止选择今年之前的所有年份 <el-date-pickerv-if"tabsActive 0":clearable"false"v-model"yearValue"change"yearTimeChange"type"year"placeholder"选择年"value-format"yyyy":picker-options…

03 OLED显示屏实现

文章目录 前言一、软件模拟IIC协议1.开启IIC协议2.结束IIC协议3.传输数据 二、OLED的操作1.传输数据的准备2.写入命令3.写入数据4.初始化函数5.设置光标6.显示字符7.显示字符串8.清屏9.显示汉字10.显示图片11.显示动图 三、完整代码总结 前言 这一章主要是上一节没有讲完的项目…

前端项目中使用插件prettier/jscodeshift/json-stringify-pretty-compact格式化代码或json数据

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、json代码格式化-选型二、json-stringify-pretty-compact简单试用三、prettier在前端使用四、查看prettier支持的语言和插件五、使用prettier格式化vue代码最终效果如图&#xff1a; ![在这里插入图片描述](https://im…

LLM应用实战:当KBQA集成LLM(二)

1. 背景 又两周过去了&#xff0c;本qiang~依然奋斗在上周提到的项目KBQA集成LLM&#xff0c;感兴趣的可通过传送门查阅先前的文章《LLM应用实战&#xff1a;当KBQA集成LLM》。 本次又有什么更新呢&#xff1f;主要是针对上次提到的缺点进行优化改进。主要包含如下方面&#…

多客圈子交友系统 uniapp+thinkphp6适配小程序/H5/app/api全开源,多款插件自选,支持个性定制!

网上交友的优点包括&#xff1a; 1. 方便&#xff1a;网上交友可以随时随地进行&#xff0c;不受时间和空间的限制&#xff0c;方便且高效。 2. 匿名性&#xff1a;网上交友可以实现匿名性&#xff0c;用户可以匿名地搜索、聊天或交换信息&#xff0c;保护个人隐私和安全。 3.…

COOIS 生产订单显示系统增强

需求说明&#xff1a;订单系统显示页面新增批量打印功能 增强点&#xff1a;CL_COIS_DISP_LIST_NAVIGATION -->TOOLBAR方法中新增隐式增强添加自定义打印按钮 增强点&#xff1a;BADI-->WORKORDER_INFOSYSTEM新增增强实施 实现位置&#xff1a;IF_EX_WORKORDER_INFOSYS…