摘要
模型装不进单卡就得切,但切在哪一层、切多少份,直接决定通信量:切得好通信少一半,切错了加卡之后延迟反而更高。本文讲推理侧张量并行的切法要点——为什么常见一层按列切另一层按行切、并行度的拐点在哪、以及它和批大小与互联带宽的关系。2026 奇点智能技术大会(11 月 20-21 日·北京万达文华酒店)AI 算力与推理优化专题会讨论这类部署取舍。
▸ 核心结论:并行度不是越高越好;过了拐点,通信增长盖过计算收益,端到端反而变慢
▸ 关键权衡:批越大通信占比越低、并行越划算,代价是首 token 延迟上升
▸ 适合谁读:做推理部署的工程师——加卡之前先分清是显存不够还是延迟不达标
本文的结构 两种切法 一 张量并行 vs 流水并行的直观差异 | 切在哪 二~三 最省的切法 / 通信量怎么估 | 约束 四~五 互联带宽 / 与批大小的关系 | 落地 六~八 常见坑、衔接大会、落地顺序 显存只差一点时,先考虑量化和缓存优化,别急着上并行一、两种切法的直观差异
张量并行把每一层的权重矩阵切成几块,分到不同卡上,每层计算完都要一次通信把结果拼起来。流水并行把不同层放到不同卡上,数据像流水线一样从第一段流到最后一段,卡之间只在边界传激活值。
直观上:张量并行通信次数多、每次量小、延迟低;流水并行通信次数少、单次量大、但存在填充气泡。推理服务通常更看重延迟稳定,所以偏向张量并行,除非模型层数极多。
两种切法对显存的作用也不同。张量并行把每层的权重分摊到多卡,显存下降随并行度线性;流水并行只要求单卡装得下层,显存下降是阶梯式的。
实际部署里常见的是两者结合:先在层内切,再把层分段。这样既降低单卡显存压力,又控制通信总量,代价是并行配置的调优空间变大。
还有一种介于两者之间的做法是按层分组的混合并行:一部分层用张量并行,一部分用流水。它可以按层对通信的敏感度做差异化处理,代价是配置复杂度上升。
二、切在哪一层最省
| 切分位置 | 通信量 | 说明 |
|---|---|---|
| 按列切后接按行切 | 每层一次 | 最常见的组合,通信量最小 |
| 全按列切 | 每层一次且更大 | 需要额外归约,一般不选 |
| 只切部分层 | 减少但负载不均 | 适合显存刚好差一点 |
经典的组合是相邻两个权重矩阵一个按列切、一个按行切,这样中间结果不需要通信,只在层输出处做一次归约。这是把通信量压到最小的关键设计,几乎成了默认做法。
切分位置的选择还受权重形状影响。某些层的隐藏维不便于整除,强行切分会产生填充或不对称,既不省带宽也不省显存,反而带来额外的边界处理。
工程上通常把不易切分的层整体放在一张卡上,其余层正常切。这种混合切分需要框架支持不规则映射,实现复杂度比统一切分高。
切分位置的选择还受框架实现影响。有些框架对特定切分模式有专门优化,换一种切法虽然理论通信量相近,实际效率却差别明显,所以要参考框架的推荐做法。
相邻两个权重矩阵的经典组合(每层只需一次通信) X --> [ W1 按列切 ] --> 中间结果 --> [ W2 按行切 ] --> 归约 --> 输出 [W1a][W1b] [W2a] | | [W2b] GPU0 GPU1 GPU0 GPU1 为什么这样最省:中间结果天然不需要跨卡拼接,只在层输出处归约一次 反面:两层都按列切 -> 中间还要再归约一次 -> 通信量翻倍 并行度拐点(示意,必须实测) 低并行度 通信占比小,延迟随并行度下降 -> 值得加 拐 点 通信增长开始追上计算收益 -> 这里是延迟最低点 高并行度 通信主导,加卡反而变慢 -> 别再加 批大小的影响 批变大 -> 计算增长快于通信 -> 通信占比下降 -> 高并行度更划算 但首 token 延迟上升。交互场景优先降并行度,宁可多占几张卡做副本 互联带宽是硬约束:并行度通常限制在机内卡数以内,除非有更高带宽的互联方案三、通信量怎么估
单次通信量与激活值大小成正比,也就是批大小乘隐藏维乘数据类型字节数。张量并行度翻倍,单卡上要传的份额变小,但通信次数不变,所以总通信量随并行度线性增长。
这说明张量并行度不是越高越好。超过某个点之后,通信时间会超过计算时间的下降幅度,端到端延迟反而上升。这个拐点与互联带宽强相关,必须实测。
估算通信量时别忘了解码阶段的特点。生成阶段的批很小、序列很长,通信量与计算量的比值比预填充阶段高得多,所以并行度的最优值在两个阶段可能不同。
这也是分离式计算与统一计算架构差异的来源之一。把两个阶段放在不同配置的集群上,各取最优并行度,能拿到比统一配置更好的整体效率。
估算时还要把通信的启动开销算进去。并行度高时单次消息变小,启动开销占比上升,这条曲线会让最优点比纯带宽估算更靠前。
四、互联带宽的硬约束
张量并行对卡间带宽极度敏感。同一台机器内的 NVLink 带宽比跨机的以太网高出数倍,所以并行度通常会限制在一台机器内的卡数以内。
跨机做张量并行时,延迟会明显恶化,通常需要更快的互联方案。这也是超节点概念流行的原因——把更大范围的 GPU 用高带宽互联连起来,让张量并行的规模可以扩大。
互联带宽还有一个常被忽略的指标是延迟而非带宽。小消息频繁传递时,延迟比带宽更能决定性能。张量并行的通信恰好以小消息为主,所以延迟指标要重点看。
因此评估集群时不能只看标称带宽,要实测小消息的往返延迟。两台机器参数相同但拓扑不同,张量并行的表现可能差出一大截。
拓扑感知的并行度配置值得投入。让通信密集的组落在同一交换域内,能在不换硬件的情况下改善延迟,实现成本主要是配置管理而非框架改动。
五、与批处理的关系
张量并行的通信量随批大小增长,而计算量的增长更快。所以批越大,通信占比越低,张量并行的效率越高。
这个性质对服务设计有指导意义:如果一定要用高并行度,就把批凑大一些,代价是首 token 延迟上升。反过来,低延迟的交互场景应当尽量减小并行度,宁可多占几张卡做副本。
批大小还会影响并行度的可用范围。批很小的时候,单卡就能处理好计算,加并行的收益远小于通信开销,所以低延迟场景反而应当用较小的并行度。
这种反直觉的结论只能用实测验证。建议把批大小与并行度做一张二维表,找出延迟最低的组合,而不是分别调优再拼起来。
解码与预填充的最优配置不同,也意味着统一部署时要选一个折中方案。若业务以长输出为主,应偏向预填充的优化;以短交互为主则相反。
六、常见坑
坑一是按参数均匀切分而不按计算量切分。不同层计算量差异明显,平均切会让某些卡成为瓶颈,其他卡干等。
坑二是忽略通信与计算的流水重叠。把通信做成阻塞式,延迟会比理论值高出一大截,而且随并行度增大而恶化得更快。
坑三与激活值的内存布局有关。切分后期望的布局与实际不符会触发额外的转置拷贝,这种开销不出现在任何显式指标里,却会实实在在吃掉带宽。
坑四与容错有关。并行度越高,单点故障影响的范围越大。张量并行组内任一卡故障通常会导致整组重启,所以并行度也是可用性的一个参数。
坑五与量化叠加有关。张量并行配合量化时,权重切分的边界需要与量化的分组对齐,不对齐会导致额外的反量化与重排开销,抵消并行收益。
七、衔接大会专题
11 月 20-21 日,北京万达文华酒店,C++ 及系统软件技术大会的 AI 算力与推理优化专题会讨论推理部署与算子层优化;奇点智能技术大会的 AI Infra 专题从服务整体延迟与容量的角度讨论并行策略。
带着「我们加卡之后延迟变好还是变差」去参会,问题很实际。
参会时可以留意各家在超节点上的实测数据。同样标称带宽,不同互联方案在张量并行下的有效带宽差异很大,实测比参数更有参考价值。
另一个值得关注的问题是并行推理与批处理的配合。如何在保证延迟的前提下把批凑大,是服务设计中的核心权衡之一。
参会时可以留意各家在「并行度与延迟关系」上的实测曲线。曲线形状比单个数值更能说明互联质量与实现水平。
八、落地顺序
先确认单卡装不下是显存问题还是容量问题。显存差一点,优先考虑量化与缓存优化;确实需要并行,再上张量并行。
上并行后固定批大小与输入长度做对比测试,把并行度从一逐步调高,找到延迟最低的那个点,不要凭直觉设值。
测试时建议固定输入长度分布与并发曲线,只变并行度。这样得到的曲线可以直接用于决策,避免把其他变量的影响算进来。
最后一点:并行度调整后要重新验证数值正确性。切分方式变化可能引入微小的数值差异,短样本上的比对能快速确认是否踩到了边界问题。
最后一个提醒:并行度调整属于影响面较大的变更,建议与容量规划一起评估,而不是只在出现延迟问题时临时调整。
补充问答
问:并行度越高延迟越低吗?
答:不是。通信量随并行度线性增长,超过某个拐点后通信时间会盖过计算收益,端到端延迟反而上升。拐点与互联带宽强相关,必须实测。
问:为什么常见列切加行切?
答:相邻权重一个按列切一个按行切,中间结果不需要通信,只在层输出做一次归约。这是把通信量压到最小的组合,几乎成为默认做法。
问:能跨机做张量并行吗?
答:能但代价大。跨机互联带宽远低于机内,延迟会明显恶化。所以并行度通常限制在机内卡数以内,除非有更高带宽的互联方案。
问:批大小为什么重要?
答:批越大计算量增长越快,通信占比越低,张量并行效率越高。代价是首 token 延迟上升,所以要按业务对延迟的敏感度来权衡。
问:平均切分有什么问题?
答:按参数量平均切不等于按计算量平均。不同层计算量差异明显,平均切会让部分卡成为瓶颈,其他卡干等,整体效率下降。
大会信息
2026 奇点智能技术大会 + C++ 及系统软件技术大会
时间:2026 年 11 月 20-21 日
地点:中国·北京万达文华酒店
大会报名:免费领取大会PPT资料
立即报名,锁定 Lukasz Kaiser Keynote 与 70+ 场演讲完整资料!