AMD Helios TH6 scale up交换机设计解析:AI集群互联架构与运维实践

📅 发布时间:2026/10/5 1:28:27
AMD Helios TH6 scale up交换机设计解析:AI集群互联架构与运维实践
1. 从一颗芯片到一张网AMD Helios TH6 到底在做什么第一次看到“AMD Helios 首次公开 TH6 scale up 交换机设计”这个标题我脑子里蹦出来的第一个念头是AMD终于把手里那张牌摊开了。过去几年大家聊AI集群聊的都是GPU怎么堆、显存怎么扩、卡间互联怎么提速但真正决定一个万卡集群能不能跑起来、跑得稳不稳的往往不是单卡峰值算力而是那张把成千上万颗加速器“缝”在一起的互联网络。Helios TH6 就是干这个的——它是一颗面向 scale up 场景的交换机芯片解决的是同一套计算系统内部加速器之间怎么高速、低延迟、无阻塞地互相说话的问题。如果你平时接触的是传统数据中心里那些千兆、万兆交换机或者你熟悉的是华为、H3C、锐捷那一套园区网和企业网配置那TH6所在的赛道跟你日常摸的设备完全不是一个物种。它面向的是AI训练集群、超算中心、大规模并行计算这类场景端口速率、交换时延、拥塞控制、拓扑组网方式全都走的是另一套逻辑。我写这篇东西就是想把这颗芯片公开的设计思路、它背后的 scale up 互联需求、以及一个网络工程师如果真要去接触这类设备需要提前补哪些课尽量用大白话讲清楚。不管你是做传统网络运维想往AI集群方向转还是做服务器/存储集成想搞明白互联层或者纯粹是对高速交换芯片好奇这篇都能给你一个能落地的认知框架。先说清楚一个基本盘scale up 和 scale out 是两回事。scale out 是把一堆独立服务器用网络连起来每台机器有自己的操作系统、自己的内存空间靠以太网或InfiniBand做节点间通信典型代表就是传统HPC集群和现在大部分AI训练集群的节点间网络。scale up 则是把多颗加速器在逻辑上当成一个更大的计算单元来用共享统一的内存地址空间卡与卡之间的通信延迟要压到纳秒级带宽要拉到TB/s级别。TH6 服务的是后者所以它的设计目标、端口形态、协议栈跟你在机房机柜里见到的那些盒式交换机有本质区别。提示scale up 互联对延迟的敏感程度远超普通数据中心网络。传统以太网交换机微秒级的转发延迟在这里可能直接成为瓶颈所以这类芯片往往采用更激进的架构比如更宽的内部总线、更短的流水线、更定制化的链路层协议。2. 拆解 TH6 的核心设计逻辑为什么 scale up 交换机不能照搬以太网那套2.1 scale up 场景对交换机的三个硬指标要理解 TH6 为什么长这样得先搞清楚 scale up 场景到底在逼交换机做什么。我把它归纳成三个硬指标这三个指标基本决定了芯片架构的走向。第一个是极低延迟。在传统以太网里一台交换机从收到帧到转发出去几十微秒到几百微秒都算正常大家也习惯了。但在 scale up 场景里多颗加速器要协同完成一次矩阵运算或者一次梯度同步卡间通信的延迟直接叠加在计算时间上。如果每次通信都要花几微秒那再强的算力也被通信拖垮。所以 TH6 这类芯片的目标是把单跳延迟压到百纳秒级别这要求内部交换流水线极短缓存策略、仲裁机制、转发查表全都要重新设计。第二个是超高带宽密度。scale up 集群里每颗加速器都要跟其他加速器通信端口数量随节点数增长呈平方级上升。一颗交换机芯片要在有限的面积和功耗里塞进尽可能多的SerDes通道单通道速率也要拉到很高。TH6 公开的设计里端口密度和单端口速率都是围绕这个目标来的。你可以把它想象成一个超宽的高速公路枢纽车道越多、每车道限速越高整体吞吐才上得去。第三个是确定性转发。传统以太网是“尽力而为”拥塞了就丢包重传这对普通业务没问题但对scale up里的同步通信是灾难。一次集合通信操作里只要有一个包延迟抖动或者丢了整个同步就得等所有卡都闲着。所以TH6这类芯片在拥塞控制、流控机制上必须做到确定性让每个包的转发路径和延迟可预测。2.2 从“交换机”到“互联枢纽”的架构转变传统交换机的核心是一个共享的交换矩阵加一堆端口包进来查表、排队、转发出去。TH6 的设计思路更接近一个“互联枢纽”它要处理的不只是标准以太网帧还可能是定制化的链路层协议、更短的包头、更激进的流控信号。公开信息里提到的 scale up 交换机设计核心变化在于它把交换功能做得更贴近物理层减少了协议栈的层级从而把延迟压下来。我打个比方传统以太网交换机像是一个邮局信件要经过分拣、登记、排队、再投递流程完整但慢。TH6 更像是一个内部对讲系统你说一句话对方几乎同时听到中间没有那么多文书流程。代价是这个系统只能用在特定场景不能像邮局那样连接全世界。这就是 scale up 交换机和 scale out 交换机的本质区别——前者追求极致效率后者追求通用和兼容。2.3 为什么 AMD 要自己做这颗芯片这个问题很多人会问AMD 不是做CPU和GPU的吗怎么突然搞起交换机芯片了其实逻辑很顺。当你的加速器要组成大规模集群时互联层就是命脉。如果互联芯片依赖第三方那你的系统性能上限就被别人卡住了。英伟达有NVLink和NVSwitch把卡间互联牢牢握在手里AMD 要在这个赛道竞争就必须有自己的 scale up 互联方案。Helios TH6 就是这个方案里的关键一环。自己做芯片还有一个好处可以针对自家加速器的通信模式做深度优化。比如AMD的加速器在集合通信时有什么特点、数据流模式是什么样这些信息如果交给通用交换机芯片厂商对方很难做到最优。自研芯片可以把这些know-how直接烧进硬件设计里换来更好的实际性能。3. TH6 关键技术与实操层面的对应关系3.1 端口设计与链路聚合的实际考量虽然公开资料没有给出TH6的完整端口规格表但从scale up交换机的通用设计规律来看这类芯片通常采用高密度SerDes通道单通道速率在100Gbps到200Gbps甚至更高通过多通道绑定实现单端口400G、800G乃至更高速率。对于做网络的人来说这意味着你以前在交换机上配的链路聚合、端口channel这些概念在这里依然存在但参数和调优逻辑完全不同。传统交换机做链路聚合主要是为了增加带宽和冗余哈希算法决定流量走哪条链路。但在scale up场景里链路聚合更多是为了把多条物理通道绑成一条逻辑通道让单次通信能跑满所有通道的带宽。哈希算法的选择变得极其关键因为如果哈希不均某条通道拥塞了整个逻辑通道的性能就掉下来了。我实测过类似场景同样的硬件配置换一种哈希策略集合通信的完成时间能差出百分之十几。注意scale up 互联里的负载均衡不能只靠传统五元组哈希。加速器之间的通信模式往往是大块数据流五元组信息区分度不够容易哈希冲突。实际调优时可能需要结合流的大小、目的地址分布来做更细粒度的均衡。3.2 拥塞控制从“丢包重传”到“主动预防”这是TH6这类芯片最核心的技术点之一也是传统网络工程师最容易踩坑的地方。传统以太网靠TCP或者RoCEv2的拥塞控制基本逻辑是发现丢包了才降速属于“事后补救”。但在scale up场景里丢包代价太高必须做到“事前预防”。TH6的设计里大概率采用了基于信用的流控机制或者更精细的拥塞通知机制。简单说发送方在发数据之前要先确认接收方有足够的缓存空间没有确认就不发。这样从源头上避免了拥塞丢包。这种机制在传统交换机里也有比如以太网的PFC优先级流控但scale up场景对它的要求更严格响应要更快粒度要更细。实操层面如果你要去调优这类设备PFC的阈值设置、水线配置、死锁避免策略都是必须掌握的。我见过不少案例PFC配置不当导致整个集群出现“拥塞扩散”一个端口的反压信号层层传递最后把整张网都拖慢了。TH6这类芯片在设计上应该对这些问题有专门的优化但使用者仍然需要理解背后的机制才能在实际部署中把参数调对。3.3 拓扑组网从Clos到更定制化的结构传统数据中心网络喜欢用Clos架构也就是叶脊结构好处是可扩展、易管理。但scale up集群的拓扑往往更定制化可能是全互联、环形、多维网格或者混合结构。TH6作为交换芯片要能支持这些拓扑的组网需求。全互联拓扑在小规模集群里延迟最低每颗加速器直接连到其他所有加速器但端口数随节点数平方增长规模一大就不现实。所以大规模集群通常采用多层交换结构TH6可能被用在第一层或者中间层负责把一定数量的加速器连成一个域再通过上层交换把多个域连起来。这种分层设计里每一层的收敛比、 oversubscription 比例都需要仔细计算。我拿一个具体场景举例假设你有64颗加速器要互联每颗加速器有8个高速端口。如果做全互联每颗加速器要连63条链路端口不够。如果做两层交换第一层用TH6把每8颗加速器连成一个组组内全互联第二层再把8个组连起来。这样每颗加速器只需要连7条组内链路加1条上行链路端口刚好够用。这种计算在规划阶段就必须做清楚否则买回来的设备端口对不上组网方案就得推倒重来。4. 从传统网络运维转向 scale up 互联需要补哪些课4.1 知识体系的差异对照如果你做了几年传统交换机运维手里摸过华为、H3C、思科的各种盒式交换机配过VLAN、STP、OSPF、BGP那你的网络基础是扎实的但scale up互联这套东西你得重新学一遍。我把关键差异整理成一张表方便你对照。维度传统数据中心交换机scale up 互联交换机如TH6主要协议以太网、TCP/IP、RoCEv2定制链路层、内存语义协议延迟目标微秒级百纳秒级拥塞控制丢包重传、ECN基于信用、主动流控拓扑叶脊Clos为主全互联、网格、定制结构配置方式CLI、SNMP、NETCONF可能通过管理控制器、API故障排查ping、traceroute、抓包链路误码、信用计数、流控状态端口速率10G/25G/100G/400G400G/800G及以上典型设备华为CE系列、H3C S系列专用互联芯片/模块这张表不是要吓唬人而是让你清楚哪些经验可以迁移哪些需要从零建立。比如你对链路聚合、VLAN、路由协议的理解在scale up场景里基本用不上但你对网络分层、流量工程、故障定位的思维方式是可以迁移的。4.2 必须掌握的底层概念转向scale up互联有几个底层概念你必须吃透否则连设备手册都看不懂。第一个是SerDes和链路训练。高速串行链路在建立连接时要经过训练过程协商速率、均衡参数、时钟同步。传统交换机上这些是自动完成的你基本不用管。但在scale up场景里链路误码率要求极高SerDes的均衡参数可能需要手动调优链路训练失败的排查也是家常便饭。你需要理解眼图、抖动、均衡这些概念知道怎么用工具看链路质量。第二个是内存语义和远程直接内存访问。scale up互联的核心是让一颗加速器能直接访问另一颗加速器的内存不需要经过操作系统和CPU。这涉及地址映射、权限管理、完成通知等机制。如果你不懂这些就无法理解为什么某些通信模式性能好、某些差。第三个是集合通信原语。AllReduce、AllGather、Broadcast、ReduceScatter这些操作是AI训练里的基本通信模式。交换机的设计要针对这些模式做优化比如AllReduce的环形算法和树形算法对网络的要求完全不同。你作为网络运维需要知道当前集群跑的是什么通信模式才能判断网络配置是否合理。4.3 实操环境搭建建议如果你想自己动手学习这类技术但手头没有真实的scale up设备我建议从以下几个方向入手。第一用高性能服务器加高速网卡搭一个小型测试环境。比如两台服务器各插一张400G网卡直连或者通过支持PFC的交换机连接跑RoCEv2的集合通信测试。虽然这不是真正的scale up互联但能让你熟悉高速链路的配置、流控参数的调整、性能测试的方法。第二学习开源的集合通信库比如NCCL或者它的替代品。这些库的文档和源码能让你理解通信模式对网络的要求。你可以通过修改参数、观察性能变化建立起对互联性能的直觉。第三关注行业公开的技术资料和会议演讲。AMD、英伟达、英特尔这些厂商在Hot Chips、SC等会议上都会分享互联技术的设计思路。虽然细节有限但架构层面的信息足够你建立认知框架。提示不要试图用传统交换机的学习路径去套scale up互联。传统网络强调协议标准和互通性scale up互联强调性能优化和定制化。学习重点要放在性能分析、瓶颈定位、参数调优上而不是协议配置。5. 实际部署中容易踩的坑与排查思路5.1 链路层问题误码、降速、训练失败高速链路在实际部署中最常见的问题就是误码。线缆质量、连接器清洁度、端口散热、电磁干扰任何一个环节出问题都可能导致误码率上升。传统交换机上误码率稍微高一点可能只是重传增多业务感知不明显。但在scale up场景里误码直接导致性能下降因为流控机制会因为误码触发重传延迟飙升。排查链路问题第一步是看端口计数器和误码统计。不同厂商的命令不一样但核心指标是类似的CRC错误、符号错误、链路降速事件。如果发现某个端口误码率明显高于其他端口先换线缆、换模块、换端口定位是物理层问题还是芯片问题。第二步是看链路训练日志确认协商速率和均衡参数是否正常。有时候链路能起来但协商到了较低的速率性能就上不去。我踩过的一个坑是光纤连接器没有清洁干净肉眼看不出来但误码率就是比旁边端口高一个数量级。换了连接器之后立刻恢复正常。所以我现在养成的习惯是凡是新布放的高速链路连接器必须用专用清洁工具处理一遍不省这个时间。5.2 流控配置问题PFC风暴与死锁PFC配置不当是scale up网络里最危险的问题之一。PFC的原理是接收方缓存快满了就发反压信号让发送方暂停。但如果网络里存在环路或者反压信号传递路径设计不当就可能出现PFC风暴——一个端口的反压信号层层放大最后整个网络都停了。更严重的是死锁几个端口互相等待对方释放缓存谁也发不出去。避免PFC风暴关键在拓扑设计和配置。首先网络里不能有环路STP或者类似的防环机制必须正常工作。其次PFC的阈值要设置合理不能太敏感也不能太迟钝。太敏感容易误触发太迟钝起不到流控作用。第三要配置PFC的死锁检测和恢复机制一旦发现死锁能自动恢复。排查PFC问题主要看PFC帧的统计和缓存水线。如果某个端口PFC帧数量异常高说明这个端口经常触发反压可能是下游拥塞或者链路带宽不匹配。如果整个网络性能突然下降同时多个端口PFC帧激增那就要怀疑PFC风暴了。5.3 性能不达预期从瓶颈定位到参数调优部署完scale up集群跑性能测试发现达不到预期这是最常见也最头疼的问题。排查思路我总结成三步。第一步确认单链路性能。用打流工具或者集合通信测试先测两颗加速器之间的点对点带宽和延迟。如果单链路就不达标问题在物理层或者链路配置。如果单链路达标问题在交换或者多节点协同。第二步确认交换节点性能。在多节点测试中观察交换机的端口利用率、缓存使用率、流控状态。如果某个端口利用率明显偏高说明负载不均衡需要调整哈希或者路由策略。如果缓存使用率经常接近上限说明拥塞控制参数需要调优。第三步确认通信模式匹配。不同的集合通信模式对网络的要求不同。AllReduce环形算法对带宽要求高但对延迟相对不敏感树形算法对延迟更敏感。如果网络配置和通信模式不匹配性能就会打折扣。这时候需要和算法团队沟通看能否调整通信模式或者调整网络参数来适配。5.4 常见问题速查表现象可能原因排查方向解决思路单链路带宽不达标链路降速、误码、线缆问题看端口速率、误码计数换线缆、清洁连接器、检查模块多节点性能波动大负载不均衡、哈希冲突看各端口利用率分布调整哈希策略、优化拓扑延迟突然飙升PFC反压、缓存溢出看PFC帧计数、缓存水线调整PFC阈值、检查环路集合通信超时链路闪断、流控死锁看链路事件日志、死锁检测更换故障链路、配置死锁恢复整体性能低于预期通信模式不匹配、收敛比过高分析通信模式、计算收敛比调整通信算法、优化组网6. 这类技术后续可以怎么深入TH6只是AMD在scale up互联领域公开的第一步后面肯定还有更多细节会陆续放出来。如果你想持续跟进我建议关注几个方向。一是互联协议的演进。scale up互联目前还没有像以太网那样统一的行业标准各家都在推自己的方案。AMD的Helios、英伟达的NVLink、以及其他厂商的方案未来会不会走向融合还是各自为战这直接影响你学什么、怎么学。二是光电共封装和硅光技术。随着端口速率继续提升传统可插拔光模块的功耗和密度瓶颈越来越明显。光电共封装把光引擎和交换芯片封在一起能大幅降低功耗和延迟。这个技术如果成熟scale up交换机的形态会发生很大变化。三是和上层软件的协同优化。交换芯片再强如果通信库和算法不配合性能也发挥不出来。未来互联芯片可能会暴露更多可编程接口让上层软件能根据通信模式动态调整网络行为。这对网络工程师来说既是挑战也是机会——你需要懂一点通信库和算法才能把网络调到最优。我个人在实际接触这类技术的过程中最大的体会是传统网络那套“配好就不管”的思路在这里行不通。scale up互联需要持续监控、持续调优因为负载模式在变、硬件状态在变、软件版本也在变。你得把自己当成性能工程师而不是配置管理员。这个转变不容易但一旦建立起来你的价值会比只会敲命令的运维高出一大截。最后分享一个我常用的学习方法遇到不懂的互联技术先画图。把芯片、端口、链路、通信路径画出来标上带宽和延迟数字很多问题一眼就能看出来。文字描述容易绕晕画成图就清楚了。这个方法我在学TH6这类新东西的时候一直在用推荐你也试试。