hi 各位大家好,又好久没更新了
最近一个月一直在忙 8卡v100 服务器,期间遇到了很多问题,在查阅资料时发现这方面资料并不多,因此也借这个机会来唠唠 浪潮 NF5468M5 那些事儿
前言
小故事
在去年 11 月份,我和同学打算装台 V100 服务器,但那会儿受限于再给老师做那套基于蓝牙协议的加密控制器以及各种各种条件,一直没抽出时间,计划搁浅了。
直到1月底学期末,计划才重启哪知硬件大涨价/(ㄒoㄒ)/~~,但还是直接投资了,具体配置后面会说。
为啥选 V100
其实吧,这个装机需求一方面来源于 AeroVision 的需求另一方面则是自己跑点训练、小模型去看看新时代的产物;最后嘛,还得是 ComfyUI!嘿嘿🤣
接下来说说选择,当时对比了一下得到了一下几个选项
| 型号 | 价格 | 性能参数 |
|---|---|---|
| V100-SXM2 16G | 510 | 16G HBM2 |
| PG199 | 8500 | 32G SXM4(?) |
| RTX3090 | 5100 | 24G PCIe |
最后嘛 PG199 因为没有 NvLink 舍弃了,3090 主要是当你在北理工的时候实在是怕了(。・ω・。)
所以就 v100 了
(?问为啥不是 32G 有钱我直接 141G H200 😆
配置环境
在我的 精 随 挑 意 细 翻 选 翻 下找到了 浪潮NF5468M5 这款生产于 2017 年的帅小伙,主要原因嘛还是性价比、当然也不是说隔壁的 宁畅X640 就不好主要还是浪潮的牌子好听了那么一点点…
剩下的嘛看表格吧
| 类型 | 型号 | 性能 | 其他 |
|---|---|---|---|
| CPU | 8171M | 26C52T 2.6G 205W | OEM货 TDP205W |
| MEM | SK | 2666MHz ECC 2Rx4 32G | |
| GPU | V100-SXM2 | 16G ECC | 300W |
| SSD | P4800X | 375G | U.2 |
| HDD | WD | 4T Gold | |
| RAID | Adaptec 81605ZQ | 12G SAS 1G cache | |
| 准系统 | NF5468M5 | ||
具体就这样了
配件采购这部分嘛,当然依旧某鱼
装机验证
初入迷雾
刚收到准系统,我就干了我能后悔一辈子的事儿,我在没有拍摄清晰照片的情况下,拔掉了所有原有的 Slimline 线,当时激动的我导致根本没有意识到问题的严重性——直到,开机自检过不去才发现……
当然,安装步骤嘛,还是很简单的,除了是个力气活… 这东西是真的沉啊
话接刚才,我说到我把所有 slimline 都拔了,其实也是有原因的我当时看 gpu 端给我标出来 J26 J22 等编号,俺寻思没啥,就拔了
接着第一个问题出现了,看着主板上12个 Slimline 我傻了,背板硬盘怎么插?于是乎我挑了 CPU0 的第一个 x16 通道毫不犹豫的插了上去 (这里有人可能会好奇为啥直连 cpu 你不买 raid 了吗,其实 raid 卡我是接了8块机械,至于固态嘛,为了高性能的 4K-random 我选择了直通)
处理之后美滋滋的装完了所有,这里又犯了个低级错误,应该做一次最小化测试😭
一山又一山
刚刚说没有做最小化测试,那么后果就来了,和老师约好了服务器上架,上架后发现:诶? GPU 板所有红灯亮起,风扇转速挺慢的,我一度以为是在post自检,直到重启第3次等待了20分钟发现没发热啊,我开始回忆我做过的所有操作,一切都像手册写到的那样啊(由于平时要上学,只有中午能去机房,时间线拖到比较长,再加上岁数大了🧠不好使),结果愣是没想出来。没办法,只能拆了,surprise,依旧点不亮
陷入沉思的我在沉思着,现在机器上还剩俩 CPU,12条内存,10张盘。本着柿子原则我对盘开始下手,一顿拆,只剩 U和内存 了,来,通电,开机,随着起飞的轰鸣声,依旧没亮,孩子我没招了,有请内存下场,俩u俩内存别再炸给我看了。好!那就炸给你看!
也巧,这时我那死脑子想出来了个靠谱点的主意,去瞅一眼那个板载跑码灯吧,一看 D2,卡 PCH 初始化,找大佬一问,大概率是 U 没擦干净,该来的还得来,拆了俩 CPU 果然有个针脚上有板块硅脂,欣喜若狂的我从机房薅了块橡皮擦了擦后塞了回去,再来,通电,开机!怎么和之前一样?!没办法当时根本没有考虑 CPU 有问题,直到我想起来一个关键细节:卖 cpu 的和我说他是浪潮定制的板子。等会儿?定制 ?这又是啥,我决定刨根问底,又找他问了问说是经销商刷了个什么东西,才能用。好家伙,还有这一关等着我……
第二天我把目光转向了老服务器那儿有俩 6138,没办法,苦一下你咯~ 6138换上去,终于在10天的装机过程中实现了第一次点亮
于是我开始四处求医,寻求能远程刷 PMIC 的方法,同时也了解了一下启动 POST 流程,大体上是
CPU VR PMIC 会向 bios 报告自己的最大电流能力,BIOS 根据 CPU 和 PMIC 比对,PMIC 小了就不启动
当然,后面我还会具体说明。
上网看了看,没啥开源项目、然后有一家卖方案的竟然要 3k !
我能咋办,只能换 CPU 咯,挑了个小点的 Intel Gold 6240,其实还有个小心机,到时候玩一玩 傲腾PMEM 毕竟只有二代才支持
又来?!
本以为要一切正常了,结果之前埋的雷炸咯,由于之前我把 CPU0 的第一个 x16 通道毫不犹豫的插了固态,剩下的 GPU 部分的 Slimline 只能依次顺延,如图
结果又点不亮了甚至连 bmc 都显示未开机,GPU 板红灯全亮,心里又凉了,一度以为卡有问题,开始卸卡,一张一张,最后只剩了 GPU0 依旧不亮……
没辙了,二次四处求医,最终还得感谢某鱼的一个资深大佬,给了我一张内部拓扑接线图,果不其然,成功了!和线序一对,果然是傲腾的问题!
再拆呗,一顿操作之后,通电、开机,oh yeah!成功了!成功进入 BIOS 和 PE 系统,由此告一段落
黎明前的黑暗
哈哈,装机这事儿嘛,我熟 都装多少回了啊
熟练的插入启动盘、进 ubuntu 安装,诶不对啊固态呢?根本找不到
为啥啊!明明之前还能用啊(x)
诶,遇到什么都不慌,打开 copilot 搜一搜说是拆分问题,接口是 x8 盘是 x4,又说那个是去南桥的,没协议转换 balabala…
好办啊,买个 u2 转 pcie,不得了,结果好家伙,甚至比半高大一点、比全高小一点,没辙只能再去研究了
又偶然看到,说 NVMe 盘只能通过 UEFI 引导才能读取,当时现在已经是 UEFI 了啊
灯泡一闪,又想到了一个馊主意,先把系统写进去然后直接改启动方式!
先把盘插到一个 x16 然后装系统,成功!再插回去,进 Boot menu 果然正常引导
上架的后话
上架过程中一些有意思的事儿,也来说说
第一点就是传奇 15 年老机房 PDU 不支持大插头!这是我怎么也没想到的得亏有这个
第二点嘛就是没给我分新内网 IP,诶只能服务器直通咯,这好办,后续我也会说
至此,硬件部分完成了,也辛苦大家听我唠了这么久
下面接着唠
一些知识
大概说两部分吧, 服务器启动 POST 自检顺序;NvLink 多种拓扑结构
服务器开机到底在干嘛?POST 自检其实没那么神秘
很多人以为按下服务器电源键之后,机器就会“直接进系统”。但其实,在这短暂的黑屏时间里,机器内部正在经历一段非常关键的过程——POST(Power-On Self-Test,上电自检)。
你可以把它想象成:服务器每天上班前的“自我体检 + 员工点名 + 工具试运行”。
只有当所有关键部件都确认正常,它才会放行,把控制权交给操作系统。今天我们就来通俗地扒一扒,服务器开机到底在干嘛。
一、一图看懂 POST 全过程
话不多说先看这个图:
flowchart TD
A([按下电源键]) --> B[CPU 醒来: 执行主板固件 BIOS/UEFI]
B --> C[基础环境初始化]
C --> D{核心检测: 内存能用吗?}
D -- 报错 --> E[卡死 / 蜂鸣器报警 / BMC亮红灯]
D -- 正常 --> F[拉起芯片组: 打通内部网络]
F --> G[点名外设: 显卡/硬盘/网卡/USB]
G --> H{设备都正常吗?}
H -- 有致命异常 --> E
H -- 正常 --> I[按 Boot 顺序寻找启动盘]
I --> J[加载 Bootloader: 如 grub]
J --> K([进入 Linux / Windows 操作系统])
整体逻辑其实极其简单:
先让自己能跑(CPU+内存) → 再把周围的干活工具接起来(主板/外设) → 最后找个项目开干(加载系统)。
二、逐步拆解:通电后到底发生了什么?
想象一下你早上去公司,不可能一坐下就开始狂敲键盘,对吧?你得先清醒一下,看看办公桌在不在,电脑能不能开,网络通不通。服务器也是一样的。
1. 刚通电:CPU 寻找第一条指令(Reset Vector)
服务器通电的瞬间,主板上的电源管理芯片会先充当“质检员”,确认各路供电(特别是 CPU 的核心供电)完全稳定后,才会向 CPU 发送一个复位信号(Reset)。
这就说回前面的问题了 cpu 启动会报告自己的最大电流能力给 PMIC,当然还有给 BIOS 的 CPUID
-
主板上的电源管理芯片(PMIC)和 VRM 控制器并不是一通电就无脑给 CPU 供电的。CPU 在通电初期,会通过专门的底层总线(比如 SVID)向主板报告自己的电压需求,以及最重要的——最大电流能力(ICCMax)。
-
很多刚接触硬件的人买服务器 CPU 时只看 TDP(比如标称 150W),觉得电源和主板肯定够用。但实际上,TDP 只是“热设计功耗”,主要用来衡量散热器的散热压力。在实际运行中,CPU 睿频(Boost)时由最大电流换算出来的峰值功耗会远远高于 TDP,比如那个8代i5。
-
如果主板的供电相数不够,或者 PMIC 听到 CPU 报出的最大电流后觉得“我扛不住这么大的瞬时电流”,它在这一步就会直接拉闸保护,或者强制把 CPU 锁死在最低频率(疯狂降频),这就是底层供电握手失败的后果。
-
确认供电扛得住、电压稳定后,主板才会向 CPU 发送复位信号(Reset)。此时,CPU 的脑子里一片空白,它会顺着 x86 架构硬编码的底层逻辑,去一个固定的物理地址(叫作 Reset Vector,复位向量)拿第一条指令,这个地址直接映射到了主板上的 BIOS / UEFI 闪存芯片中。
紧接着,BIOS 要做的第一件事就是读取这颗 CPU 的 CPUID,并去自己的微码库(Microcode)里寻找对应的初始化参数和微码补丁。
这里其实是二手服务器玩家最容易“翻车”的重灾区! 很多人喜欢去市面上淘那种大厂淘汰下来的低价 OEM 专供版 CPU(比如亚马逊、谷歌或国内大厂的定制版)。虽然它们的核心架构跟零售版一模一样,但这些 OEM 芯片出厂时烧录的 CPUID 是大厂专属定制的。当你把它插到普通标准的服务器主板上时,主板 BIOS 的微码库里压根没有这个特殊 CPUID 的记录。BIOS 一查发现“我不认识这个黑户”,直接就会切断初始化流程,报出 CPU 故障。这就是为什么有些 CPU 明明是好的,却在某些主板上死活点不亮的根本原因。
当这两轮底层的“供电谈判”和“身份核实”都通过后,开机的第一瞬间才算彻底稳了,CPU 开始正式执行底层的初始化代码。
收到信号的瞬间,CPU 就正式开工了。但这时候内存和硬盘都还没起作用,CPU 脑子里一片空白,它必须知道第一条指令去哪里拿。在 x86 架构的底层逻辑里,CPU 会被硬编码指向一个固定的物理地址(叫作 Reset Vector,复位向量)。这个地址直接映射到了主板上的 BIOS / UEFI 闪存芯片中。
也就是说,开机的第一瞬间,CPU 是在极其基础的模式下,直接从主板固件芯片中逐字读取,并执行最底层的初始化代码。
2. 核心检测:内存通道握手(Memory Training & Init)
CPU 醒来后会面临一个尴尬的问题:自己内部的缓存(Cache)实在太小了,想要执行后续庞大的硬件检测代码,必须赶紧把主存(RAM)拉起来。因此,内存初始化是 POST 中最早、也是最容易翻车的环节。
- 读取 SPD 信息: CPU 的内存控制器会通过 I2C 总线,去读取物理内存条上的一颗小芯片,获取里面的 SPD(Serial Presence Detect)数据。这里面写着内存出厂预设的容量、频率、电压和时序。
- 链路训练(Memory Training): 服务器主板会根据读到的参数,向内存条加压并发送测试信号。主板和内存会在电气层面上进行反复“握手”,动态测试信号的完整性和延迟,直到找出最稳定的读写时序。
- ECC 与清零: 对于服务器标配的 ECC 内存,控制器还会专门初始化纠错引擎。为了保证系统的绝对安全,固件通常还会对可用内存空间做一遍基础的读写测试和物理归零。
如果在这个阶段发生信号报错、内存不兼容或时序没对上,POST 会立刻中断。这时候主板的数码管会卡代码,蜂鸣器开始狂叫,服务器直接亮红灯罢工。
3. 总线枚举与外设唤醒(PCIe Enumeration & Option ROM)
当内存成功拉起后,BIOS/UEFI 终于有了宽裕的运行空间,可以开始向外扩展,盘点主板上插着的所有硬件了。
- PCIe 总线枚举: 系统会顺着 PCIe 总线一路扫描,通过识别 Bus、Device、Function 编号,精准找出插在机器上的独立显卡、网卡、NVMe 固态硬盘,以及服务器最关键的 RAID 阵列卡。
- 加载外设专属固件(Option ROM): 这是非常关键的一步。主板自己其实不懂怎么操作那些复杂的扩展卡,所以当它认出 RAID 卡或网卡时,会主动去加载这些硬件自带的一小段微型固件代码(传统模式下叫 Option ROM,UEFI 下是独立的 EFI 驱动)。
正是在这个阶段,显卡的底层驱动被加载,你的显示器上才会第一次亮起跑码画面;RAID 卡的固件被激活,系统才能真正看到底层由多块硬盘组建成的逻辑卷(Virtual Disk)。
4. 寻找启动项与交接控制权(Boot Selection & Handoff)
当所有硬件设备都被成功识别、初始化,并且没有报出什么致命错误后,POST 的纯硬件检测阶段就大功告成了。接下来,系统准备交接“接力棒”。
- 查询启动顺序(Boot Order): UEFI 固件会去读取保存在 NVRAM 芯片里的启动优先级列表。服务器下一步是去找本地的 RAID 卷、插在主板上的 U 盘,还是通过网卡发起 PXE 网络启动,全看这个列表的设置。
- 定位引导文件: 以现在主流的 UEFI 启动为例,主板固件会在优先级最高的硬盘里,寻找一个特定格式的 FAT32 分区(也就是大名鼎鼎的 ESP 分区)。
- 交接控制权: 找到 ESP 分区后,主板固件会顺藤摸瓜找到里面的引导程序文件(比如 Linux 环境下的
grubx64.efi,或 Windows 的bootmgfw.efi),把这个文件加载到内存里并执行。
至此,主板 BIOS/UEFI 的任务彻底完成,成功下班。它将整个服务器的硬件控制权正式移交给了 Bootloader(引导程序),接下来,就该由 Bootloader 把庞大的操作系统内核(Kernel)拉进内存,开启操作系统的运行之旅了。
三、服务器特有:旁观的“监工” BMC
如果你用的是真正的服务器(Dell、HP、Supermicro 等),在这个过程中还有一个普通 PC 没有的角色——BMC(带外管理控制器 / IPMI)。
它相当于主板上嵌着的一个“独立小电脑 + 监控摄像头”。
- 只要服务器插着电源(哪怕没开机),BMC 就在运行。
- 当系统 POST 卡住、黑屏没反应时,你可以通过网络登录 BMC,直接看到报错日志、传感器温度,甚至是开机画面的实时录像。
- 📌 类比: 一个永远旁观的监控系统,即使主系统彻底挂了,它也能告诉你临死前到底发生了什么。
四、为什么换了内存后,第一次开机会像“死机”一样等很久?
很多刚接触服务器或装机的朋友都有过这个疑惑:我只是加了两根内存,一开机风扇狂转、黑屏好几分钟,我是不是把主板烧了?
别慌,它并没有死机,它在做一件非常重要的事——Memory Training(内存训练)。
内存训练在干嘛?
其实这段过程可以解读为:“CPU 正在反复摸索,到底用什么参数才能让这些内存最稳定地跑起来。”
现实中,内存条的品牌、颗粒(三星/海力士/镁光)、主板布线、CPU 内存控制器体质都不一样。组合太多了,主板不可能提前写死一套完美的配置。所以 CPU 必须“现场试”:
- 读取内存厂家建议的参数(SPD)。
- 尝试不同的频率、时序(Timing)。
- 微调电压和信号延迟。
- 进行读写压力测试,看会不会报错。
为什么服务器特别慢?
普通家用电脑一般试几次差不多就过了(插上就跑)。但服务器是面向 7x24 小时高强度运行的,为了不翻车,它会执行极其严格的完整训练(Full Training),还会顺带校验 ECC(纠错码)功能。
所以,开机等上 3 到 15 分钟,在这个阶段完全是正常操作。
五、实战:如何用 POST 逻辑快速排障?
了解了 POST 的顺序,你就不再是个只会喊“机器坏了”的小白了。以后服务器点不亮,你可以靠“卡在哪一步”来反向推断问题:
- 按了电源没反应 / 风扇转一下就停:
卡在最前面。大概率是电源供电故障、主板短路或 CPU 挂了。 - 风扇狂转,死活没画面,蜂鸣器长响/BMC亮红灯:
卡在中间。90% 是内存问题!可以尝试拔下来拿橡皮擦擦金手指,换个插槽,或者耐心等它做完内存训练。 - 出画面了,也能进 BIOS,但进不去系统:
卡在最后面。此时 CPU、内存、主板全都没问题,单纯是找不到启动盘。去检查 RAID 阵列卡是不是掉了、系统引导文件是不是坏了、或者 Boot 顺序是不是被改了。 - 个人认为最佳方案:
买个跑码卡或者去看跑码灯,大部分都能看出来附上一个对应表
总结
POST 就是:在操作系统启动之前,确认“这台机器还能不能正常工作”的体检流程。
当服务器起不来时,本质上就是 POST 的某一步没过。理解这个底层的运行过程,比死背几条排错命令有用得多。因为你至少能迅速判断出,问题到底出在“哪一类硬件”上。
这才是硬件排障真正的起点!
大模型时代的“底座”:一文看懂 NVLink 拓扑结构的硬核演进 (Gen2 – Gen5)
当你花大几十万买了一台 8 卡 GPU 服务器,你以为它们是通过 PCIe 插槽在交流?
如果在今天你还这么想,那就太小看老黄的刀法了。PCIe 的带宽在动辄千亿参数的大模型面前,就像是用一根吸管在抽干太平洋。为了让这 8 张、甚至成百上千张 GPU 融合成“一张超级 GPU”,NVIDIA 搞出了 NVLink。
但 NVLink 不是随便拉根线连起来就完事了。从 V100(NVLink 2.0)到如今的 Blackwell(NVLink 5.0),如何把几十上百张卡“科学地”连接在一起(拓扑结构),才是老黄真正的摇钱树。
今天我们就来硬核拆解,NVLink 的拓扑结构是怎么一步步被逼成现在这个“怪物”形态的。
1. NVLink 2.0 (Volta V100):暴力的“意大利面”时代
在 V100 时代(如经典的 DGX-1),当时大模型还没现在这么夸张,一台机器 8 张卡基本顶天了。
每一张 V100 拥有 6 条 NVLink 2.0 通道(双向 300GB/s)。问题来了:8 张卡,每张只有 6 根线,你没法做到“两两互连”(完全图需要 7 根线)。
老黄的工程妥协:Hybrid Cube Mesh(混合立方体网格拓扑)
工程师只能玩“连连看”,把这 8 张卡搞出了一个带环的立体网格。
flowchart TD
subgraph DGX-1_V100_Topology [DGX-1_V100_Topology Hybrid Cube Mesh 拓扑]
direction TB
GPU0 <==> GPU1
GPU0 <==> GPU2
GPU0 <==> GPU3
GPU0 <==> GPU4
GPU1 <==> GPU3
GPU1 <==> GPU2
GPU1 <==> GPU5
GPU2 <==> GPU3
GPU2 <==> GPU6
GPU3 <==> GPU7
GPU4 <==> GPU5
GPU4 <==> GPU6
GPU4 <==> GPU7
GPU5 <==> GPU7
GPU5 <==> GPU6
GPU6 <==> GPU7
end
⚠️ 这种拓扑的致命硬伤:
在这堆“意大利面”一样的连线里,有些 GPU 之间是直接连着的(一跳),但有些 GPU(比如 GPU0 和 GPU7)之间没有直连线!
如果要传数据,GPU0 必须先把数据发给中间的兄弟(比如 GPU3),再由 GPU3 转发给 GPU7。这种“多跳(Multi-hop)”机制,不仅增加了延迟,还会疯狂占用中间 GPU 的带宽,导致木桶效应极度严重。
2. NVLink 3.0 (Ampere A100):引入“交换机”的破局
到了 A100 时代,GPT-3 横空出世。模型参数大了,显卡之间的数据交互(All-Reduce 通信)变得极其频繁。V100 那种“借道转发”的网格拓扑直接被干碎了。
老黄一拍大腿:不能再让显卡直连了,得加个“总机操作员”!于是,NVSwitch 诞生了。
在经典的 DGX A100 中,A100 升级到了 12 条 NVLink 3.0(双向 600GB/s),主板上不再是显卡连显卡,而是所有显卡的线全部打给主板上的 6 颗 NVSwitch 芯片。
拓扑演进:Switched Fabric(无阻塞全互连拓扑)
flowchart TD
subgraph NVSwitch_Fabric [DGX A100 无阻塞全互连拓扑]
direction BT
SW1[NVSwitch 1]
SW2[NVSwitch 2]
SW3[... NVSwitch 6]
G0[GPU 0]
G1[GPU 1]
G2[GPU 2]
G7[... GPU 7]
G0 === SW1 & SW2 & SW3
G1 === SW1 & SW2 & SW3
G2 === SW1 & SW2 & SW3
G7 === SW1 & SW2 & SW3
end
硬核解析:
这是一种典型的二分图(Bipartite Graph)。任意两张 GPU 之间的数据交换,统统只经过 1 跳(GPU -> NVSwitch -> GPU)。
这解决了 V100 时代的痛点,不管你是 GPU0 和 GPU1 通信,还是 GPU0 和 GPU7 通信,速度和延迟是绝对一致的!8 张彻底融合成了逻辑上的“1 张卡”。
但其实呢,浪潮 NF5468M5 上也有这种结构
3. NVLink 4.0 (Hopper H100):打破机箱的物理结界
到了 H100 时代(DGX H100),机器内部依然是 NVSwitch 拓扑。但问题是,大语言模型(LLM)已经膨胀到了千亿、万亿参数。一台机器 8 张卡根本塞不下,需要几十台机器(几百张卡)一起跑。
如果机器和机器之间用传统以太网或者 InfiniBand 连,那就像是高速公路到了省界突然变成了乡间土路。
拓扑演进:两层胖树(Fat-Tree / Spine-Leaf网络)
老黄的绝杀来了:把 NVLink 延伸到机箱外面!
NVIDIA 推出了独立成台的 NVLink Switch 交换机。机器内部有第一层(L1)NVSwitch,机器外部有第二层(L2)NVSwitch。
flowchart TD
subgraph L2_NVSwitch
L2_SW1["External NVSwitch"]
L2_SW2["External NVSwitch"]
end
subgraph DGX_A
L1_A["L1 NVSwitch"]
GA1["GPU 0"]
GA2["GPU 1"]
end
subgraph DGX_B
L1_B["L1 NVSwitch"]
GB1["GPU 0"]
GB2["GPU 1"]
end
GA1 --> L1_A
GA2 --> L1_A
GB1 --> L1_B
GB2 --> L1_B
L1_A --> L2_SW1
L1_A --> L2_SW2
L1_B --> L2_SW1
L1_B --> L2_SW2
硬核解析:
通过这种 Spine-Leaf(主干-叶子) 的 Fat-Tree 拓扑,最高可以把 256 张 H100 在物理层面上连成一张拥有恐怖带宽的巨大 GPU(NVLink Network Domain)。在这个域里,跨机柜的 GPU 通信(L1 -> L2 -> L1),其底层协议和机箱内通信完全一致,系统根本感知不到物理边界的存在!
4. NVLink 5.0 (Blackwell GB200):机柜即显卡,暴力美学的巅峰
时间来到 2024 年的 Blackwell 时代。对于 MoE(混合专家模型)来说,显卡间 All-to-All 的通信量极度变态。H100 那种跨机箱的光模块光纤连接,不仅延迟高,光电转换的功耗更是高得吓人。
于是,史上最疯狂的拓扑结构 NVL72 机柜 诞生了。
老黄直接把 72 张 Blackwell GPU 和配套的 NVSwitch 全部塞进了一个巨大的液冷机柜里。为了省掉光模块的功耗和成本,整个机柜背板全是密密麻麻的高频铜线。
拓扑演进:全无阻塞机柜级胖树(Rack-Scale Fat-Tree)
flowchart BT
subgraph Compute_Trays [计算托盘 Compute Trays]
direction LR
GB0[GB200 节点 0]
GB1[GB200 节点 1]
GB17[... GB200 节点 17]
end
subgraph Switch_Trays [交换托盘 NVSwitch Trays]
direction LR
ST0[NVSwitch Tray 0]
ST1[NVSwitch Tray 1]
ST8[... NVSwitch Tray 8]
end
GB0 -- "每秒 1.8TB 铜线盲插" --> ST0
GB0 -- "每秒 1.8TB 铜线盲插" --> ST1
GB0 -- "每秒 1.8TB 铜线盲插" --> ST8
GB1 -- "每秒 1.8TB 铜线盲插" --> ST0
GB1 -- "每秒 1.8TB 铜线盲插" --> ST1
GB1 -- "每秒 1.8TB 铜线盲插" --> ST8
GB17 -- "每秒 1.8TB 铜线盲插" --> ST0
GB17 -- "每秒 1.8TB 铜线盲插" --> ST1
GB17 -- "每秒 1.8TB 铜线盲插" --> ST8
硬核解析:
在 NVL72 里,机器没有传统的“主板”概念。计算节点(装有 CPU 和 GPU)像抽屉一样插在前面,NVSwitch 节点插在后面或顶部。中间的背板全是被动铜线。
72 张 GPU 每张引出 18 条 NVLink 5.0 通道(双向 1.8TB/s),直接打给 NVSwitch 托盘。
这种拓扑的恐怖之处在于:72 张 GPU 之间的任意两点通信,带宽完全跑满,几乎等于把一个数据中心浓缩在了一块巨型硅板上。
总结
回顾 NVLink 的拓扑演化,本质上就是一部与规模(Scale) 和 物理学定律 抗争的历史:
- Gen2 (V100): 没交换机,瞎连,管线绕路。
- Gen3 (A100): 引入局域交换机,单机内完美融合。
- Gen4 (H100): 用外部交换机砸开机箱,组成 256 卡集群。
- Gen5 (Blackwell): 把光纤换成铜线,把集群塞回一个大机柜,实现功耗与带宽的终极平衡。
大模型在卷参数,老黄在卷拓扑。当你在代码里写下 .to('cuda') 的时候,底层这些数据可是要在这样恐怖的网络里以光速狂奔的。
抽象活儿
满载的网口
刚才不是说到学校没给那么多 ip 嘛,反手就买了个 Mellanox® ConnectX®-5-pro
当时买这个吧还有个原因这东西是 Israel 产,(后来才知道好像 Mellanox® 的大部分产品都是以色列的,不管了反正到手了玩玩
于是乎现在的两个服务器↓:
flowchart LR
%% ===== Server A =====
subgraph A [Server A]
A_eth0[eth0 1G]
A_10g[eth1 10G]
A_bmc[eth2 1G]
end
%% ===== Server B =====
subgraph B [Server B]
B_10g[eth1 10G]
B_bmc[BMC Port]
end
Gateway[内网网关]
%% ===== 连接 =====
A_eth0 -- "管理网" --> Gateway
A_10g -- "10G 直连" --> B_10g
A_bmc -- "1G 管理/BMC" --> B_bmc
成功占满所有网口 √
用托盘导轨承载滑轨服务器
话不多说直接看图
服务器占满整个机架
哈哈,15年的老机房是这样的
最后
也没啥好说的了说几个“天坑” 吧
傲腾 P4800X 有一批 ES(Engineering Sample)
这东西最早也害得我查了好几次直到我看到了这句话 Engineering Sample Only 找卖家问才知道这东西貌似只是配 windows10 11,不支持 linux 我也是醉了(不大部分这种产品最早做 linux 适配?)
不过具体我也不清楚,卖家也不清楚至少我在我的 winserver 2022 没电亮 qaq
OEM 的 CPU
就像我买的那个 8171M 一样,当时只关注了 TDP205W,浪潮能读(卖家是浪潮服务器测试的)果断下单,结果由于 TDP 和 ICCMax 得到的最大功率不一样无法启动,因此买之前一定要看好看好看好!
小广一波 Intel 8171M 99新两块打包
最后一点
浪潮的那个板载 Intel Corporation Ethernet Connection X722 for 10GbE SFP+ 网卡竟然不支持华为的光电转换模块!
插上后会出现
TX/RX is disabled on this device because an unsupported SFP module type was detected
服了啊都是国内大厂何必呐
最后也没啥了,装机如果还有啥问题的话随时找我交流~