今天早上,一个潜在用户问了一个很典型、也很“工程现场”的问题:
我们想通过一台 server,扩展 16 张 NVIDIA RTX5060 GPU 卡,每张卡是 PCIe Gen5 x8,有没有比较现实、可落地的方案?
这个问题乍一听有点夸张。
因为普通服务器主板上就算有几个 PCIe x16 插槽,也很难直接插 16 张 GPU。更不用说 16 张卡的物理空间、供电、散热、线缆、链路训练、BIOS 枚举、驱动识别,每一个环节都可能让工程师卡半天。
但如果从 PCIe lane 资源的角度重新看这个问题,它反而变得很清楚:
RTX5060 这类卡电气链路是 PCIe Gen5 x8。也就是说,一张卡真正需要的是 8 条 PCIe lane,而不是完整 x16。
16 张 RTX5060:
16 × x8 = 128 lanes
如果再给上行连接主机预留一个 Gen5 x16:
128 lanes + 16 lanes = 144 lanes
这个数字非常巧,刚好等于 Broadcom PEX89144 PCIe 5.0 Switch 芯片的 144 lane 总资源。
也就是说,这不是“硬凑出来”的方案,而是 lane 资源刚好对得上的方案。
一、先把问题说简单:为什么普通主板做不了?
很多初级工程师刚接触 PCIe 扩展时,容易把 PCIe switch、PCIe bifurcation、riser cable、转接卡混在一起。
我们先用最直白的话讲清楚。
普通服务器主板上的 PCIe slot,本质上是 CPU 或 chipset 给出来的 PCIe 资源。比如一个 PCIe Gen5 x16 slot,就只有 16 条 lane。主板最多可以通过 bifurcation 把它拆成:
x8 + x8 或者 x4 + x4 + x4 + x4
但它不能凭空变成 16 个 x8。
一个 x16 插槽,直接拆,最多只能拆出 2 个 x8。你想挂 16 张 x8 GPU,需要的是 128 条下行 lane。这个时候,就不能靠简单转接线或者被动 riser 解决了,而是需要一个真正的 PCIe switch。
PCIe switch 可以理解成 PCIe 世界里的“高速交换机”。
它一端连接主机,另一端连接很多 endpoint,比如 GPU、SSD、NIC、DPU、FPGA 加速卡。主机看到的是 switch 后面挂了一串设备;switch 负责在这些设备和主机之间转发 PCIe TLP 数据包,并完成端口管理、链路训练、错误处理和拓扑组织。
所以,这个方案的关键不是“把一根线拆成十六根线”,而是通过 PEX89144 这颗 144 lane PCIe Gen5 switch,把一台主机的 PCIe 拓扑扩展成一个高密度、多端口的外部 GPU 测试平台。
二、这块 144 Lane Switch 板的资源为什么刚好合适?
我们之前介绍过这块基于 Broadcom PEX89144 的 PCIe 5.0 switch 扩展板。
它的核心配置可以简单理解为:
核心芯片:Broadcom PEX89144 总 lane 数:144 lanes 板上接口:18 个 MCIO x8 接口速率:PCIe Gen5 每两个 MCIO x8 可以组合成一组 x16 18 个 MCIO x8 等价于 9 组 x16
这张板有一个很重要的特点:它没有把 PEX89144 的 lane 资源浪费掉,而是通过 18 个 MCIO x8 接口把 144 lanes 尽可能完整地释放出来。
这对于测试实验室来说非常有价值。
因为在真实的研发验证场景里,我们经常不是只想插一张卡,而是想模拟复杂系统:
多 GPU 多 SSD GPU + SSD 混插 GPU + NIC 混插 多 endpoint 同时枚举 某个端口异常时观察其它端口是否受影响 某条链路降速时定位是主机、switch、线缆还是 endpoint 的问题
这类问题,在普通 PC 主板上很难做。在高端服务器里做,又经常被机箱结构、主板 BIOS、线缆长度、散热空间限制住。
而这块 144 lane switch 板的价值,就是把原本藏在服务器内部的 PCIe fabric,拉到桌面上,变成一个可以搭、可以拆、可以改、可以测的工程平台。
三、这次客户需求的拓扑:2 个 MCIO x8 做上行,16 个 MCIO x8 做下行
针对这位客户提出的 16 张 RTX5060 GPU 扩展需求,我们建议采用下面的连接方式:
Server PCIe Gen5 x16 slot ↓ Uplink Adapter ↓ 2 条 MCIO x8 cable ↓ PEX89144 144 Lane PCIe Gen5 Switch Board ↓ 16 个 MCIO x8 downlink ↓ 16 张 Downlink Adapter,转成 PCIe x16 机械插槽 ↓ 16 张 NVIDIA RTX5060 GPU
从 lane 分配上看:
用途 | 接口数量 | Lane 数量 | 说明 |
|---|---|---|---|
上行连接 server | 2 × MCIO x8 | 16 lanes | 组成一个 Gen5 x16 uplink |
下行连接 GPU | 16 × MCIO x8 | 128 lanes | 每张 RTX5060 占用 Gen5 x8 |
总计 | 18 × MCIO x8 | 144 lanes | PEX89144 lane 资源全部用满 |
这就是这个方案最漂亮的地方:
18 个 MCIO x8,一个不多,一个不少。
2 个做 uplink,16 个做 downlink。 上行 x16,下行 16 个 x8。 144 lanes 刚好全部用完。
从工程角度看,这种拓扑非常干净,也非常适合向客户解释。
四、不要把它理解成“16 张卡都各自拥有直通 CPU 的 x8 带宽”
这里需要特别提醒一句,也是很多客户第一次看这种方案时最容易误解的地方。
这套方案可以扩展 16 张 Gen5 x8 GPU,但它并不等于服务器 CPU 同时拥有 16 组独立 Gen5 x8 直连链路。
原因很简单:
下行总资源是 16 × x8 = 128 lanes 但是上行回到主机的是 x16,也就是 16 lanes
如果 16 张 GPU 同时向 CPU 大规模搬运数据,那么最终都会经过这条 x16 uplink。这个时候,上行链路就会成为汇聚点。
所以我们要把应用场景分清楚。
这套方案非常适合:
多 GPU 枚举测试 多 GPU 驱动加载测试 多卡稳定性测试 GPU 批量烧机 CUDA / AI 推理环境搭建验证 多 endpoint PCIe 链路训练测试 Switch 端口压力测试 GPU 卡兼容性筛选 外置 PCIe 拓扑调试 GPU 与其它 PCIe 设备混插验证
但如果客户的目标是让 16 张 GPU 同时满速和 CPU 内存之间做持续 DMA,并且每张卡都要求接近 Gen5 x8 的主机带宽,那就要明确告诉客户:这不是 16 路 CPU 直连 x8,它是一个通过 x16 uplink 汇聚的 switch 扩展拓扑。
这不是缺点,而是 PCIe switch 拓扑设计中必须讲清楚的边界。
工程沟通里,最怕的不是方案做不到,而是客户把方案理解错。
五、为什么 RTX5060 这种 Gen5 x8 卡反而很适合这个平台?
如果客户要扩的是 16 张 RTX5090、RTX6000 Pro 这类更高功耗、更高端的 GPU,事情会复杂很多。不是不能做,而是供电、散热、机械固定、驱动策略、实际 workload 都会变得更重。
但 RTX5060 这种 PCIe Gen5 x8 形态,反而很适合拿来做多卡扩展和测试。
原因有几个。
第一,它每张卡只需要 x8 电气链路。 这使得 144 lane switch 可以挂到 16 张卡,而不是只能挂 8 张 x16 卡。
第二,Gen5 x8 的单卡理论链路能力已经很高。 对于很多 AI 推理、轻量训练、视频处理、CUDA 测试、批量应用验证来说,GPU 不是每一秒都在疯狂和 CPU 搬运数据。很多时候,数据加载完成以后,主要计算发生在 GPU 本地显存里。
第三,多卡数量本身有测试价值。 很多问题不是单卡能暴露出来的。比如:
第 1 张卡能识别,第 16 张卡还能不能识别? 单卡跑没问题,16 张一起加载驱动有没有问题? 热启动后设备顺序是否变化? Linux 下 lspci 拓扑是否稳定? nvidia-smi 是否能稳定看到所有 GPU? 某一张卡 link retrain,会不会影响 switch 其它端口? 某一张卡掉线,系统是冻结、报错,还是只隔离该端口? 多张卡同时跑压力时,AER 计数是否增加? 端口是否出现降速、降宽、链路不稳定?
这些问题都不是“买一台普通 PC 插一张显卡”能验证出来的。
六、这套连接方式的实际落地细节
从外观上看,这套系统可能是这样的:
主机服务器里插一张 uplink adapter。 这张 uplink adapter 通过 PCIe x16 金手指插入 server 的 PCIe Gen5 x16 slot。 然后从 uplink adapter 引出 2 根 MCIO x8 cable,连接到 PEX89144 switch 板的 2 个 MCIO x8 接口,形成一个 Gen5 x16 uplink。
Switch 板剩下 16 个 MCIO x8 接口,分别连接 16 张 downlink adapter。 每张 downlink adapter 把 MCIO x8 转成 PCIe x16 机械插槽。 RTX5060 GPU 插在这些 PCIe 插槽里,虽然物理是 x16 插槽,但实际跑的是 Gen5 x8 链路。
这里有几个工程细节一定要提前确认。
第一,GPU 供电不能靠 MCIO 线缆想当然解决。 GPU 插槽的 12V 供电、辅助电源、转接板供电,都要单独设计清楚。尤其是 16 张卡同时上电,瞬态电流和电源时序不能随便糊弄。
第二,散热必须提前规划。 16 张 GPU 就算不是顶级高功耗卡,也不是随便摊在桌子上就能长期稳定跑。开放式测试架、风道、风扇、温度监控,都要纳入方案。
第三,线缆长度和信号完整性要谨慎。 PCIe Gen5 是 32GT/s,不是低速 GPIO。MCIO 线缆、adapter、连接器、走线、retimer 是否需要介入,都要看实际链路裕量。能枚举不代表长期压力下稳定;能跑 Gen5 不代表每次热启动都稳定。
第四,server BIOS 必须配合。 建议重点检查:
Above 4G Decoding Resizable BAR PCIe speed 固定 Gen5 或 Auto 策略 MMIO 资源分配 IOMMU/VT-d 设置 SR-IOV 或相关虚拟化选项 热插拔相关选项 系统启动时的 PCIe 枚举顺序
很多多 GPU 问题,最后不是硬件坏了,而是 BIOS 没给足资源,或者系统在大规模 PCIe BAR 分配时出问题。
第五,驱动和操作系统要提前验证。 硬件层面能枚举,只是第一步。后面还要确认:
Linux 下 lspci 是否看到全部 GPU 每张卡的 LnkSta 是否是 Speed 32GT/s、Width x8 nvidia-smi 是否稳定识别全部 GPU CUDA sample 是否能遍历全部 device 多卡压力测试是否会触发 Xid error 重启、冷启动、热启动后设备顺序是否稳定 长时间运行后是否有 AER、DPC、Surprise Down 记录
这些都是实际客户项目里非常关键的验收项。
七、这块板不是“插槽扩展器”,而是一个 PCIe 拓扑实验平台
如果只把它理解成“多插槽扩展板”,就低估了它的价值。
真正有意思的地方在于,PEX89144 这类 PCIe switch 可以构建复杂的 PCIe 拓扑。对于测试工程师来说,它不是简单地把一个插槽变成很多插槽,而是把整个 PCIe fabric 变成了一个可观察、可控制、可调试的实验环境。
比如在这次 16 张 RTX5060 的方案里,我们至少可以做这些测试:
1. 多 GPU 枚举与资源分配测试
16 张 GPU 同时挂在一个 switch 后面,系统能不能稳定识别? BIOS 能不能分配足够 MMIO? 操作系统启动过程中有没有卡住? GPU 的 bus number、device number 是否稳定? 不同 server 平台之间表现是否一致?
这类测试对客户非常有实际价值。因为很多真实项目的问题,根本不是单张卡性能不够,而是系统级资源分配、枚举、驱动初始化阶段就出问题。
2. PCIe Gen5 x8 链路训练测试
每张 GPU 都要经过:
GPU downlink adapter MCIO cable PEX89144 switch port uplink adapter server root complex
链路训练涉及 Tx/Rx equalization、preset、信号完整性、时钟、retimer 或 connector 质量等多个因素。
如果 16 张卡里有一张只能跑 Gen4,或者只能跑 x4,或者偶发降速,这时候 switch 平台就能帮助工程师快速定位:
是某张 GPU 的问题? 是某根 MCIO 线缆的问题? 是某张 downlink adapter 的问题? 是 switch 某个端口的问题? 是 server BIOS 或 root port 的问题? 还是信号裕量本来就不够?
这就是测试平台的意义。
它不是为了让你“感觉能插上”,而是为了让你知道问题到底出在哪里。
3. 多卡压力与稳定性测试
16 张 GPU 同时运行压力程序,和一张 GPU 单独运行,是完全不同的系统状态。
多卡同时运行时,会出现:
更高的瞬态功耗 更高的系统温度 更复杂的 PCIe traffic 更多的中断和 DMA 访问 更复杂的驱动调度 更高概率暴露边缘链路问题
这类问题经常不是一分钟出现,而是几个小时甚至几十个小时后才出现。
比如:
某张卡突然掉线 nvidia-smi 卡住 系统 dmesg 出现 AER 某个 PCIe port Surprise Down GPU driver 出现 Xid error 重启后少识别一张卡 某条链路从 Gen5 退到 Gen4 某个 adapter 摸起来明显过热
这些都属于典型的系统级验证问题。
如果没有这样一套可重复搭建的 PCIe switch 测试平台,很多问题只能靠猜。
4. GPU 与其它 PCIe 设备混插测试
今天客户问的是 16 张 RTX5060,但这块 144 lane switch 板并不只能挂 GPU。
它也可以挂:
Gen5 SSD NVMe JBOF 高性能 NIC DPU FPGA 协议分析仪 故障注入卡 Retimer/Redriver 测试板 客户自己的 endpoint EVB
这就很适合做混插场景。
比如:
8 张 GPU + 8 块 Gen5 SSD 12 张 GPU + 4 张 100G/200G NIC GPU + SSD 做数据流测试 GPU + DPU 做加速与网络转发测试 GPU + 自研 PCIe endpoint 做兼容性验证
很多 AI 服务器、存储服务器、加速卡系统,并不是单一设备工作,而是 GPU、NIC、SSD、DPU 在一个复杂拓扑里共同工作。实验室如果想提前模拟这种环境,一块高密度 switch board 就很有价值。
八、这个方案最适合什么客户?
这套 16 张 RTX5060 扩展方案,不一定适合所有人。
如果客户只是玩游戏、做普通图形渲染、想让 16 张消费级显卡像一台高端 AI 训练服务器那样工作,那这个方案可能不是最优解。
但如果客户是下面几类团队,就非常值得认真评估:
GPU 板卡测试团队 AI 推理平台研发团队 服务器系统集成团队 PCIe endpoint 芯片验证团队 GPU 兼容性测试实验室 多卡驱动与软件栈验证团队 高校或研究机构的异构计算实验室 需要低成本构建多 GPU 原型平台的工程团队 做 PCIe Gen5 链路、拓扑、压力、故障定位的团队
尤其是那些“不一定要追求每张 GPU 都有满血 CPU 直连带宽,但非常需要多卡数量、多端口拓扑、多设备稳定性验证”的客户,这套方案就非常有价值。
一句话总结:
它不是为了替代顶级 GPU 训练服务器,而是为了在实验室里快速搭出一个多 GPU PCIe Gen5 验证环境。
九、真正的价值:把复杂 PCIe 系统提前搬到桌面上
很多客户的问题,表面上看是“我想多接几张卡”。
但深层需求其实是:
我想知道我的 server 能不能识别这么多设备。 我想知道我的 GPU 在 Gen5 x8 下是否稳定。 我想知道我的线缆和 adapter 有没有问题。 我想知道 switch 后面挂满设备以后系统会不会乱。 我想知道某个端口异常,会不会把整台机器拖死。 我想知道多卡系统的真实边界在哪里。
这些问题,靠纸面规格回答不了,靠普通主板也很难验证。
PEX89144 144 lane PCIe 5.0 switch 扩展板的意义,就是让这些问题可以被真实搭建、真实连接、真实运行、真实测出来。
这也是为什么我们一直说,这块板不是一个简单的“PCIe 扩展板”,而是一个 PCIe Gen5 拓扑实验平台。
它可以把一台服务器的 PCIe x16 uplink,扩展成 16 个 Gen5 x8 downlink;也可以根据 firmware 和端口配置,构建不同的上行、下行、多主机、混合 endpoint 拓扑。
对于研发验证工程师来说,这种灵活性非常重要。
因为真实项目里,最麻烦的问题往往不是标准答案,而是各种“不知道为什么就是不稳定”的边缘问题。
十、回到今天这个客户问题:16 张 RTX5060,怎么接?
我们最终给客户的建议可以概括成一句话:
使用 PEX89144 144 lane PCIe 5.0 switch 扩展板,采用 2 个 MCIO x8 作为 uplink,通过 uplink adapter 连接 server 的 PCIe Gen5 x16 slot;剩余 16 个 MCIO x8 作为 downlink,每一路通过 downlink adapter 转成 PCIe 插槽,用于连接 16 张 RTX5060 GPU,每张 GPU 以 PCIe Gen5 x8 方式工作。
这个方案的 lane 分配非常清晰:
2 个 MCIO x8 = 1 个 x16 uplink 16 个 MCIO x8 = 16 个 x8 downlink 合计 18 个 MCIO x8 刚好使用 144 lanes
从工程角度看,这就是一个非常漂亮的 PCIe Gen5 多 GPU 扩展案例。
它把 PEX89144 的 144 lane 能力真正用满,也把 MCIO x8 接口的灵活性体现得非常充分。
更重要的是,它把“PCIe switch 到底能干什么”这件事讲得非常直观:
它不是让一台普通服务器凭空变成魔法机器。 它是让工程师可以在可控的平台上,构建真实、复杂、高密度的 PCIe Gen5 拓扑。 然后把多 GPU、多 endpoint、多线缆、多 adapter、多端口异常这些问题,在实验室里提前暴露出来、定位出来、解决掉。
对于真正做研发、验证、测试、系统集成的人来说,这就是它最大的价值。
因为在高速 PCIe 系统里,最贵的不是一块板卡,也不是一根线缆。
最贵的是问题发生以后,你不知道它到底从哪里来。
而一块好的 PCIe switch 测试平台,就是为了让这些问题不再靠猜。