00
为什么总是排错排不干净?
很多人排查算力网络问题时,习惯这样思考:
- GPU 利用率低?→ 看 NCCL
- RDMA 慢?→ 调 ECN
- Incast?→ 加 buffer
- hang?→ 看日志
但现实是:
这些问题往往不是单点问题,而是跨层结构问题。
算力网络不是一层系统。
它至少由三层结构组成:
- 硬件层
- 协议层
- 调度层
如果你不建立这三层认知模型:
你永远只能“局部修补”。
01
第一层:硬件层
这是所有性能的物理边界。
1️⃣ 组成元素
- GPU 拓扑
- PCIe 架构
- NUMA 结构
- NIC 数量与布局
- Switch Buffer
- Spine/Leaf 结构
- 光模块 / 线缆
2️⃣ 这一层决定什么?
- 最大带宽
- 最小延迟
- NUMA 跨节点代价
- PCIe Switch 抖动
- Incast 物理冲击能力
一句话:
这一层决定“天花板”。
3️⃣ 常见误区
- 8 NIC 就一定能跑满 8×400G?
- 跨 PCIe Switch 影响不大?
- NUMA 不重要?
这些都是硬件层误判。
02
第二层:协议层
这是算力网络真正的“动态系统”。
1️⃣ 组成元素
- RDMA(RC QP)
- RoCEv2
- ECN
- PFC
- DCQCN
- NCCL Ring/Tree
- SHARP(如果有)
2️⃣ 这一层决定什么?
- 拥塞收敛速度
- QP 数量
- CNP 回程路径
- ECN 打标频率
- Buffer 消耗模式
这一层本质是:
多个控制环叠加的系统。
3️⃣ 三个核心控制环
A. 主机速率控制环
ECN → CNP → DCQCN → 发送速率调整
B. 交换机队列控制环
Buffer 占用 → ECN 阈值 → 标记
C. PFC 阻塞环
Buffer 满 → Pause → 上游阻塞
03
第三层:调度层
这是很多人忽视的一层。
但在容器化集群中,这一层影响巨大。
1️⃣ 组成元素
- K8s 调度
- GPU 亲和性
- NIC 亲和性
- NUMA 绑定
- Pod 拓扑感知
- Rank 映射策略
- Hierarchical AllReduce
2️⃣ 这一层决定什么?
- GPU ↔ NIC 路径长度
- 跨 PCIe Switch 频率
- 跨 NUMA 流量比例
- Rail 利用率
- QP 分布
调度层决定的是:
物理结构是否被“破坏”。
3️⃣ 一个真实案例
如果:
- GPU0 在 NUMA0
- NIC3 在 NUMA1
- K8s 随机调度
你得到的不是:
400G × 8
而是:
跨 CPU QPI + 跨 PCIe 延迟抖动
然后你会看到:
MFU 下降 10%~20%
但网络利用率看不出来问题。
04
三层之间的耦合关系
这是本文的核心。
硬件层 → 协议层
- PCIe 抖动会影响 DCQCN 收敛
- NUMA 跨节点导致 ECN 触发模式变化
协议层 → 调度层
- QP 数量影响调度策略
- Rail 数量影响 Pod 设计
调度层 → 硬件层
- 调度错位破坏原始拓扑
- 让硬件优势失效
05
为什么必须建立三层思维?
因为:
- 只调 ECN 不够
- 只优化拓扑不够
- 只改调度不够
算力网络是:
三层耦合控制系统
任何一层失衡,都会表现为:
- GPU 利用率下降
- Step Time 波动
- 网络利用率异常
- NCCL hang
06
工程方法论
Step 1:确认调度层
- GPU/NIC 对齐?
- NUMA 是否跨?
Step 2:确认协议层
- ECN 打标频率?
- QP 数量?
- CNP 延迟?
Step 3:确认硬件层
- PCIe Switch 是否跨?
- Buffer 是否溢出?
- Spine 是否 Incast?
07
做个总结
如果你只会调参数,你只能修问题。
如果你理解三层结构,你可以设计系统。
算力网络不是一个“网络问题”。
它是:
一个跨硬件、协议、调度的系统工程。
关于这类问题,其实需要一整套系统性的理解和排查方法。
假如你从2026年开始学大模型,按这个步骤走准能稳步进阶。
接下来告诉你一条最快的邪修路线,
3个月即可成为模型大师,薪资直接起飞。
阶段1:大模型基础
阶段2:RAG应用开发工程
阶段3:大模型Agent应用架构
阶段4:大模型微调与私有化部署
配套文档资源+全套AI 大模型 学习资料,朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】👇👇