想象一座超大型物流园区。园区里有几十栋分拣大楼,每栋大楼内,传送带以惊人速度在工位之间运送货物;大楼之间,则是宽阔但速度有限的货运公路。园区里同时跑着三种业务:同一栋楼内的工位要高频交换半成品;不同楼之间按工序接力送货;所有分拣中心还要定期同步一份全园总账。聪明的物流规划师不会让所有货车挤同一条路,而是让每种业务走最合适的路:高频的半成品交换走楼内传送带,跨楼的接力货物走公路,全园总账则均匀摊到每一条路网上。AI 大模型训练集群,正是这样一座“物流园区”:GPU 是工位,NVLink 是传送带,跨节点网络是公路,而三种并行策略——张量并行、流水线并行、数据并行——就是那三种货运业务。通信拓扑优化,就是给这座园区设计一张“不堵车”的路网。

岗位关联

对于 AI 从业者:理解并行通信的拓扑匹配,是设计千卡级训练集群、把 GPU 利用率拉满的核心技能,直接决定大模型训练的吞吐上限与硬件成本。

目录
  1. 可视化演示
  2. 通信模式基础
  3. 物理网络拓扑
  4. 张量并行优化
  5. 流水线并行优化
  6. 数据并行优化
  7. 三维并行协同
  8. 带宽争用缓解
  9. 千卡集群效益
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

通信模式基础

物流园区里有三种业务:同一栋楼内工位之间要频繁交换半成品;不同楼之间按工序接力送货;所有分拣中心每隔一段时间要同步一次全园总账。三种业务频率不同、体量不同、对路线的需求也不同。规划师动手之前,必须先摸清每种业务的“货运特征”。

分布式训练里,三种并行策略正好对应这三种货运业务。张量并行把一层网络拆到多张 GPU 上,每层前向和反向都要做一次全局归约(All-Reduce,把各卡的局部结果合并成完整结果);流水线并行把网络按层切成多段,相邻段只在边界传输激活值;数据并行让每个副本计算完整梯度后做全域梯度同步。它们统称为通信原语,但特征迥异:有的是集合通信(多对多汇聚),有的是点对点通信(一对一传送),有的还需要同步屏障(barrier,让所有 rank 对齐到同一时刻)。

集合通信中最常用的是 All-Reduce,工程上常用环状实现(ring all-reduce):把数据切成 N 份,沿环形链路逐卡搬运,每个 GPU 的发送总量约为消息大小的 2(N-1)/N 倍。通信频率与体量的差异,决定了后续所有拓扑优化的方向。

三类业务特征差异如此之大,自然不能都挤同一条路。规划师的第一步,就是先看清每种通信的“货运特征”,再为它们匹配不同的物理路线——这正是通信拓扑优化的起点。

Tring=2×N−1N×MBT_{ring} = \displaystyle 2 \times \frac{N-1}{N} \times \frac{M}{B}
环形 All-Reduce 的耗时:把数据 M 切成 N 份沿环搬运,每个 GPU 发送约 2M 的数据量,再除以链路带宽 B。
  1. 单段传输时间$M/B$ 表示数据量 $M$ 在带宽为 $B$ 的链路上传完所需的时间。
    MB\frac{M}{B}
  2. 分片搬运系数环形 All-Reduce 把数据切成 N 份,每个 GPU 只需搬运其中 N-1 份。
    N−1N\frac{N-1}{N}
  3. 两阶段系数系数 2 来自 reduce-scatter 与 all-gather 两个阶段都要搬运一次。
    2×N−1N2 \times \frac{N-1}{N}

物理网络拓扑

物流园区的基础设施由两类路网构成:楼内的传送带带宽极高(NVLink,单条可达数百 GB/s),但只能覆盖同一栋楼;楼与楼之间的货运公路带宽低一个量级(跨节点网络,如 InfiniBand,通常只有几十 GB/s),却连接整个园区。

一张 GPU 要和另一张 GPU 通信,先看对方在不在同一栋楼:在楼内走 NVLink 域(NVLink domain),跨楼则必须经过网络。现代集群还会构建全互联拓扑(如 fat-tree 胖树或 full mesh),让任意两个节点之间都存在多条可用路径,为流量调度提供选择空间。框架在通信拓扑优化时,第一件事就是建立一张“园区地图”:哪些 GPU 在同一个域、哪些链路带宽高、哪些路径会被共享。

端到端通信的瓶颈由路径上最慢的一段决定,这就是“短板效应”。地图的价值在于:先找到短板,才能决定某类流量该不该走这条路。

有了这张“园区地图”,规划师才能回答“每种货该走哪条路”。接下来三类并行策略的优化,本质上都是在这张地图上做路线规划。

Beff=min⁡iBiB_{eff} = \displaystyle \min_{i} B_i
一条通信路径由多段物理链路串联,有效带宽等于其中最慢一段的带宽。
  1. 路径与链路通信路径由多段物理链路 $B_1, B_2, \ldots, B_k$ 依次串联组成。
    B1,B2,…,BkB_1, B_2, \ldots, B_k
  2. 短板决定带宽$\min$ 表示取所有链路中最慢的一段,整条路径的有效带宽不可能超过它。
    min⁡iBi\min_{i} B_i
  3. 优化启示找到瓶颈链路,才能决定哪类流量应该改走哪条路。
    Beff=min⁡iBiB_{eff} = \min_i B_i

张量并行优化

张量并行是园区里“最急性子”的业务:同一栋楼内的几个工位,每处理一小步就要互相交换一次半成品。这种高频交换如果走楼间公路,光是排队上车的时间就比干活还长。

张量并行把一层矩阵沿维度切到多张 GPU 上,前向和反向每经过一层,都需要一次 All-Reduce 把各卡的局部结果合并。通信频率等于层数乘以 2,非常高;但每次数据量只有激活张量大小,约等于隐藏维乘序列长度。

因此拓扑优化的第一条铁律:张量并行的 All-Reduce 必须限制在 NVLink 域内。框架在做 rank 分配时,会把 TP 组的所有卡放在同一节点上,并利用 NCCL 等通信库把路由锁定在域内链路,坚决避免跨节点。若 TP 组被跨节点放置,高频小流量就会反复压上低速公路,训练吞吐瞬间崩塌。

传送带虽然只在楼内,但对这种高频业务已经绰绰有余。把 All-Reduce 关在楼内,等于把最拥堵的流量从公路上清走了——域内带宽高、路径短,正是张量并行通信的归宿。

VTP=2×H×SV_{TP} = \displaystyle 2 \times H \times S
张量并行每层 All-Reduce 的通信体量:隐藏维 H 乘序列长度 S,前向反向各一次,再乘 2。
  1. 激活张量$H \times S$ 是单次 All-Reduce 的激活大小,其中 $H$ 为隐藏层维度、$S$ 为序列长度。
    H×SH \times S
  2. 前反向各一次每层前向与反向各需一次 All-Reduce,因此乘 2。
    2×H×S2 \times H \times S

流水线并行优化

流水线业务是“接力型”:第一栋楼处理完一批货,整箱运给第二栋楼,第二栋再运给第三栋。每次只送一箱,路线固定,方向单一。

流水线并行把网络按层切成 P 个阶段(stage),每个阶段放在不同节点上。只有相邻阶段的边界需要传输激活张量,通信原语是点对点的 send/recv,每个微批次发生一次,体量约为微批量乘隐藏维。

这种低频、小体量、单向的通信,恰恰适合走跨节点网络:网络带宽虽低但完全够用,还能避开与域内高频流量的争用。框架会把 PP 组的 stage 沿节点顺序摆放,让点对点传输的物理链路与逻辑邻接关系一致,减少绕路与延迟。

接力送货不需要占用楼内传送带——把它安排在楼间公路上,既省力又不添堵。流水线并行是唯一“天生该走网络”的并行策略,拓扑优化要做的不是阻止它,而是给它一条顺路的公路。

VPP=2×B×H×(P−1)V_{PP} = \displaystyle 2 \times B \times H \times (P-1)
流水线并行单次训练步的通信体量:微批次大小 B、隐藏维 H、阶段边界数 P-1,前向反向共两趟。
  1. 单次传输量$B \times H$ 是一个微批次的激活张量尺寸,即批量大小乘隐藏维。
    B×HB \times H
  2. 边界次数$P-1$ 是 P 个流水线阶段之间相邻边界的数量。
    P−1P - 1
  3. 前反向两趟前向与反向各传输一次激活,因此乘以 2。
    2×B×H×(P−1)2 \times B \times H \times (P-1)

数据并行优化

数据并行业务是“对账”:所有分拣中心各自独立完成一天的订单,到了固定时刻,把各自的总账汇总并同步成一份。频率低,但一同步就是全量账本。

数据并行中每个 rank 持有一份完整模型,每步训练结束后,需要把所有 rank 算出的梯度做一次 All-Reduce 求平均。频率是每步一次,属于低频;体量接近模型参数总量,属于大流量。

这种全域大流量 All-Reduce 最适合利用全互联拓扑:环形实现把流量均匀铺到所有链路上,避免某条链路被灌爆;多路径调度还能让不同数据分片走不同物理路径,进一步摊薄负载。拓扑优化的目标就是让“对账业务”占满全园的每一条路,而不是挤在一条路上。

全园区的对账不可避免要占公路,但通过铺满全互联拓扑的每一条路,让大流量均匀散开,就不至于堵死某一条。这就是数据并行通信优化的精髓:不是消灭流量,而是把流量摊平。

VDP=2×∣θ∣V_{DP} = \displaystyle 2 \times |\theta|
数据并行每步梯度同步体量:约为模型参数总量 $|\theta|$ 的两倍(All-Reduce 两阶段)。
  1. 参数量$\theta$ 表示模型全部参数张量,梯度与参数尺寸相同,一次同步的数据量与 $|\theta|$ 同量级。
    ∣θ∣|\theta|
  2. All-Reduce 两段环形 All-Reduce 包含 reduce 与 all-gather 两个阶段,每阶段近似搬运一份参数量,故系数为 2。
    2×∣θ∣2 \times |\theta|

三维并行协同

真实的大模型训练不止一种业务——三种并行同时开跑,整个园区共享同一套路网。规划师要做的,是整体排班:让高频小货走楼内,让接力货走公路,让全域对账铺满全网。

3D 并行把模型同时按 TP、PP、DP 三个维度切分。协同优化的核心是“拓扑匹配”:TP 组严格约束在 NVLink 域内,PP 的 stage 跨节点排放,DP 组使用全域全互联。三类通信各走各路,互不争抢,再辅以通信错峰(把不同并行策略的通信时刻错开),把瞬时链路压力降到最低。

通信时间预算可以按链路类型拆分:域内只承载 TP 流量,跨节点网络承载 PP 与 DP 流量。总通信时间约等于两项之和;若不做拓扑匹配,三类流量会挤在同一链路上,总时间成倍上涨。

一个好的整体规划,能让三种业务在同一张路网上互不干扰——这就是 3D 并行拓扑优化的全部魔法:把“共享”变成“分流”,把“争抢”变成“协作”。

Ttotal=VTPBNVLink+VPP+VDPBnetT_{total} = \displaystyle \frac{V_{TP}}{B_{NVLink}} + \frac{V_{PP} + V_{DP}}{B_{net}}
3D 并行总通信时间预算:TP 流量走 NVLink 域内,PP 与 DP 流量共享跨节点网络带宽。
  1. 域内项$V_{TP} / B_{NVLink}$ 是张量并行流量在 NVLink 域内的通信耗时,带宽高所以占比小。
    VTPBNVLink\frac{V_{TP}}{B_{NVLink}}
  2. 跨网项$(V_{PP} + V_{DP}) / B_{net}$ 是流水线与数据并行流量共享跨节点网络的耗时。
    VPP+VDPBnet\frac{V_{PP} + V_{DP}}{B_{net}}
  3. 预算意义两项相加给出总通信时间上界,指导框架把流量按链路类型分流。
    Ttotal=VTPBNVLink+VPP+VDPBnetT_{total} = \frac{V_{TP}}{B_{NVLink}} + \frac{V_{PP} + V_{DP}}{B_{net}}

带宽争用缓解

最怕的场景是早高峰:几路货运车同时涌进同一条公路,谁都走不快。物理链路被多条通信流共享时,每一条流只能分到带宽的 k 分之一。

通信争用是分布式训练的性能杀手。在未优化的集群里,TP 的 All-Reduce、PP 的点对点、DP 的梯度同步可能在同一时刻叠加到同一条跨节点链路上,造成链路瞬时过载,训练步的通信耗时被急剧拉长。

缓解手段有三板斧:流量分离——让不同并行策略绑定不同物理路径,从源头避免混流;路径隔离——为高优先级流预留专用链路,保证关键通信不被打扰;时间错峰——用调度错开各通信流的发射时刻,避免瞬时叠加。三者配合,相当于给路网装了红绿灯和专用道。

规划师的目标不是消灭货运,而是让每一条公路在任意时刻只有“该走它”的车流。带宽争用缓解的本质,是把隐性的资源竞争变成显性的交通规划。

Bshare=BlinkkB_{share} = \displaystyle \frac{B_{link}}{k}
当 k 条通信流同时共享一条链路时,每条流只能分到原始带宽的 k 分之一。
  1. 链路原带宽$B_{link}$ 是单条物理链路的额定带宽。
    BlinkB_{link}
  2. 并发流数$k$ 是同一时刻共享该链路的通信流条数。
    kk
  3. 公平共享每条流分得 $B_{link} / k$,并发流越多、单流越慢。
    Blinkk\frac{B_{link}}{k}

千卡集群效益

园区从三栋楼扩到一百多栋楼(千卡规模),路网变得庞大复杂。此时“随便走走”的代价急剧放大:通信时间占比一旦失控,GPU 就变成了等数据的闲人。

千卡集群(如 128 节点 × 8 卡)训练千亿参数模型时,通信占比 R 决定扩展效率。拓扑优化通过域内/跨网分流、全互联摊薄,能把 R 压到可接受范围,使千卡利用率保持在理想水平,避免“卡越多、等待越久”的扩展陷阱。

实际部署中,经过拓扑匹配的训练集群,通信开销可降低约 30%~50%,端到端训练效率提升显著,网络投资也更省——因为优化的是流量分布,而不是无限堆带宽。理解通信占比的变化规律,是判断集群规模效益的钥匙。

园区越大,规划的价值越大。通信拓扑优化,正是让千卡集群“人尽其才、路尽其用”的那张规划图——用软件的智慧,把硬件的每一分带宽都变成训练的算力。

Rcomm=TcommTcomm+TcalcR_{comm} = \displaystyle \frac{T_{comm}}{T_{comm} + T_{calc}}
通信占比:一个训练步里,通信时间占总时间(通信+计算)的比例,越小说明 GPU 越在算、越不在等。
  1. 通信时间$T_{comm}$ 是一个训练步内的通信耗时。
    TcommT_{comm}
  2. 计算时间$T_{calc}$ 是同一个训练步内的计算耗时。
    TcalcT_{calc}
  3. 占比值$R$ 表示 GPU 花在“等数据”上的时间比例,数值越小越好。
    TcommTcomm+Tcalc\frac{T_{comm}}{T_{comm} + T_{calc}}

AI 应用场景

千亿参数大模型的 3D 并行部署

阶段:模型训练与性能调优

解决的问题:传统做法只把模型切分好就扔到集群上,通信流随意走链路,导致跨节点带宽争用、训练效率低。拓扑优化让训练框架感知物理网络结构,按 TP/PP/DP 三个维度做拓扑匹配的 rank 分配与通信路由,从根源上消除“货走错路”。

具体案例:训练千亿参数大模型时,集群为 128 节点 × 8 卡。工程师把 TP=8 组严格粘在同一节点的 NVLink 域内,PP=16 个阶段沿节点顺序跨机摆放,DP=64 的梯度同步走全域全互联。调优后通信占比从 45% 降至 25%,端到端训练吞吐提升约 30%,网络丢包率明显下降。

训练框架的拓扑感知任务调度

阶段:集群资源管理与调度

解决的问题:多个训练任务共享集群时,任务常被随机分配到任意节点,导致 TP 组被拆散到不同节点、跨机柜长链路被频繁占用,训练吞吐下降。拓扑感知调度把“物理拓扑亲和”作为放置策略,像物流规划师排班一样,先满足 TP 组同节点,再满足 PP 邻接友好。

具体案例:某训练平台接入通信拓扑优化后,调度器在分配资源时读取 NVLink 域与交换机层级信息,将新任务的 TP 组固定在同一节点内,DP 组尽量铺满同一交换域。多任务混合部署下的平均训练吞吐提升约 20%,带宽争用事件减少一半。

Python 演示

python67 行
# -*- coding: utf-8 -*-"""通信拓扑优化模拟: 对比拓扑不匹配与拓扑匹配的峰值链路时间"""  class Cluster:    """物理集群: 节点内 NVLink 高速域 + 节点间低速网络"""     def __init__(self, nvlink=450.0, net=50.0):        self.nvlink = nvlink        self.net = net        self.link_load = {}     def transfer(self, gpu_a, gpu_b, volume_gb):        node_a, node_b = gpu_a // 4, gpu_b // 4        bw = self.nvlink if node_a == node_b else self.net        key = (node_a, node_b)        self.link_load[key] = self.link_load.get(key, 0.0) + volume_gb / bw     def peak_time(self):        return max(self.link_load.values(), default=0.0)  def ring_all_reduce(gpus, volume_gb, cluster):    """环形 All-Reduce: 每个 GPU 与相邻卡交换数据"""    n = len(gpus)    for i in range(n):        pair_vol = 2.0 * volume_gb * (n - 1) / n        cluster.transfer(gpus[i], gpus[(i + 1) % n], pair_vol)  def build_scenario(optimized):    cluster = Cluster()    gpus = list(range(8))  # 2 节点, 每节点 4 卡    tp_vol = 4.0   # 张量并行每层 All-Reduce 体量    pp_vol = 0.5   # 流水线并行单次点对点体量    dp_vol = 6.0   # 数据并行梯度 All-Reduce 体量     if optimized:        # 张量并行组限制在节点内, All-Reduce 走 NVLink        ring_all_reduce([0, 1, 2, 3], tp_vol, cluster)        ring_all_reduce([4, 5, 6, 7], tp_vol, cluster)        # 流水线阶段跨节点, 点对点走网络        cluster.transfer(3, 4, pp_vol)        cluster.transfer(7, 0, pp_vol)        # 数据并行全域 All-Reduce        ring_all_reduce(gpus, dp_vol, cluster)    else:        # 张量并行组跨节点放置, All-Reduce 被迫走外网        ring_all_reduce([0, 1, 4, 5], tp_vol, cluster)        ring_all_reduce([2, 3, 6, 7], tp_vol, cluster)        cluster.transfer(1, 6, pp_vol)        cluster.transfer(5, 2, pp_vol)        ring_all_reduce(gpus, dp_vol, cluster)     return cluster  def main():    for optimized in (False, True):        cluster = build_scenario(optimized)        tag = "拓扑匹配(优化)" if optimized else "拓扑不匹配"        peak = cluster.peak_time()        print("%s: 峰值链路通信时间 = %.2f ms" % (tag, peak * 1000))  if __name__ == "__main__":    main()
目的:模拟 2 节点 × 4 卡集群,对比“拓扑不匹配”与“拓扑匹配”两种方案下峰值链路通信时间,直观展示通信拓扑优化的收益。
  1. bw = self.nvlink if node_a == node_b else self.net核心判断:同一节点内走 NVLink 高速域,跨节点走低速网络。
  2. pair_vol = 2.0 * volume_gb * (n - 1) / n环形 All-Reduce 中每条链路需要搬运的数据量公式。
  3. ring_all_reduce([0, 1, 2, 3], tp_vol, cluster)优化方案中张量并行组锁在节点 0 内,All-Reduce 全程走传送带。
  4. cluster.transfer(3, 4, pp_vol)流水线并行的点对点通信跨节点发送,走网络链路。
  5. ring_all_reduce(gpus, dp_vol, cluster)数据并行梯度同步在全域 8 卡上执行,利用全互联拓扑。
  6. peak = cluster.peak_time()取最拥塞链路的通信时间作为整个方案的瓶颈。

常见误区

误区我以为 NVLink 带宽比网络高一个量级,那把张量并行、数据并行的通信都塞进 NVLink 一定最快,跨节点通信越少越好。

正解NVLink 只在节点内有效,跨节点的卡根本够不着它。数据并行与流水线并行的通信天然要跨节点,强行“塞进域内”等于把并行度限制在一个节点内,反而降低吞吐。正确做法是“该走传送带走传送带,该上公路上公路”:TP 域内、PP 与 DP 走网络。

为何常见:只看到带宽数字的差距,忽略了物理拓扑的约束和不同并行策略的通信范围。

误区通信慢就加带宽,把跨节点网络从 100G 升到 400G,不就解决了吗?干嘛费劲做拓扑优化。

正解带宽升级只能缓解“总量不够”,治不了“流量挤在同一条链路上的瞬时争用”。拓扑优化的核心是让通信模式匹配物理拓扑、把流量分布到不同链路上,这是近乎免费的“软件带宽”。堆硬件成本高且收益递减。

为何常见:把性能问题简单归因于硬件资源不足,忽视了流量分布的结构性浪费。

误区反正都是 NCCL 的 All-Reduce,框架直接调用就行,不需要管它发生在域内还是跨节点。

正解同一个 All-Reduce,在 NVLink 域内跑和在跨节点网络上跑,延迟相差十几倍。TP 的高频小 All-Reduce 必须落在域内;DP 的大 All-Reduce 则要利用全域全互联。框架需要按通信特征决定环的构成与路径。

为何常见:把上层 API 的封装等同于底层路由的优化,看不到通信库内部的拓扑感知逻辑。

误区通信反正有库管着,我把 TP、PP、DP 都调大,卡越多越快,不会出问题。

正解并行度增加会放大通信量:TP 切分越细,All-Reduce 越频繁;PP 阶段越多,边界传输越多;DP 越多,梯度同步规模越大。若通信占比 R 失控,增加千卡反而变慢。并行度与拓扑优化必须联合设计。

为何常见:忽略了通信-计算比随集群规模增长这一基本规律,以为算力可以线性叠加。

面试题

Q1. 张量并行的 All-Reduce 通信应优先在哪种物理范围内完成?

单选题 · easy

  • A.跨越所有节点的全互联网络
  • B.节点内的 NVLink 域内← 正确答案
  • C.任意物理链路都可以
  • D.只在单个 GPU 内部完成

答案:B。张量并行通信高频小体量,NVLink 域内带宽高且不占用跨节点链路。若走全互联网络,延迟高,还会和数据并行抢带宽。就像高频半成品交换必须走楼内传送带,而不是上公路。

Q2. 流水线并行中最主要的通信形式是什么?

单选题 · easy

  • A.相邻阶段间的点对点传输← 正确答案
  • B.所有 GPU 间的 All-Reduce
  • C.各节点间的全量广播
  • D.不需要任何通信操作

答案:A。流水线并行把网络切成阶段,只在相邻阶段边界用点对点 send/recv 传激活,类似跨楼接力送货,一箱一箱单向传递,而非全域汇聚。

Q3. 环形 All-Reduce 中,单个 GPU 的发送总数据量约为多少?

单选题 · mid

  • A.恰好等于消息大小 M
  • B.等于 2M(N-1)/N← 正确答案
  • C.每个 GPU 恰好 M/N
  • D.约为 GPU 数乘 M

答案:B。环上每条边搬运 M/N,两个阶段共 2(N-1) 次搬运,总发送量为 2M(N-1)/N,N 很大时接近 2M。选项 A 忽略了两阶段翻倍,C 少算了 N-1 次搬运。

Q4. 缓解跨节点带宽争用的常用手段有哪些?

多选题 · mid

  • A.不同并行策略走不同物理路径← 正确答案
  • B.为高优先级流预留专用链路← 正确答案
  • C.错开各通信流的发射时刻← 正确答案
  • D.无限提高并行度规模

答案:ABC。流量分离、路径隔离、时间错峰是缓解争用的三板斧,分别从空间与时间上避免多条流叠加。无限提高并行度只会放大通信量,加剧争用。

Q5. 数据并行梯度同步的通信特征是什么?

单选题 · mid

  • A.高频、小数据量传输
  • B.低频、大数据量传输← 正确答案
  • C.完全的点对点单向传输
  • D.训练全程不需要通信

答案:B。数据并行每步只同步一次梯度,但体量约为参数总量的两倍,属于“低频大流量”,适合用全互联拓扑把流量摊薄到所有链路上。

Q6. 3D 并行拓扑匹配的设计目标包括哪些?

多选题 · hard

  • A.张量并行组限制在 NVLink 域内← 正确答案
  • B.流水线阶段沿节点顺序摆放← 正确答案
  • C.三类通信流互不争用物理链路← 正确答案
  • D.让所有通信都走 NVLink 域

答案:ABC。TP 域内、PP 跨节点顺排、流量按拓扑分流是 3D 协同的核心目标。D 违反物理约束,跨节点的 GPU 根本无法使用 NVLink,强行设计必然失败。

Q7. 通信占比 R 升高对千卡训练最直接的影响是什么?

单选题 · mid

  • A.训练流水的吞吐提升
  • B.并行扩展效率明显下降← 正确答案
  • C.模型的精度自动提高
  • D.集群功耗显著降低

答案:B。R 越大,GPU 等数据的时间占比越高,增加卡数带来的算力增长被通信拖累,扩展效率下降。拓扑优化的目标正是压低 R。

Q8. 节点内 NVLink 与跨节点网络的带宽差异主要来源于什么?

单选题 · mid

  • A.GPU 芯片型号不同
  • B.物理层级与线缆规格的差距← 正确答案
  • C.显存容量大小不同
  • D.操作系统调度策略不同

答案:B。NVLink 是板级/机箱内的高速互联,跨节点网络要经过网卡、线缆与交换机,物理距离和转发层级都更长,带宽低一个量级,这是拓扑分层的根源。

Q9. 以下哪些属于物理网络拓扑的组成部分?

多选题 · easy

  • A.节点内 NVLink 高速域← 正确答案
  • B.跨节点的 InfiniBand 网络← 正确答案
  • C.全互联的胖树拓扑← 正确答案
  • D.显卡驱动版本号

答案:ABC。物理拓扑由域内互联、跨节点网络与集群级全互联构成。显卡驱动属于软件栈,不属于物理网络拓扑。

Q10. 张量并行每层 All-Reduce 的通信体量主要正比于什么?

单选题 · hard

  • A.隐藏维与序列长度的乘积← 正确答案
  • B.模型参数的总量大小
  • C.训练微批次的批量大小
  • D.网络层数与隐藏维的乘积

答案:A。单次 All-Reduce 体量为激活张量大小,正比于 H×S(隐藏维乘序列长度)。参数量是数据并行同步量的度量,批量大小是流水线传输量的度量。