news 2026/8/22 0:46:48

多卡并行——通信原语

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多卡并行——通信原语

多卡并行(主要指数据并行 / 模型并行)中,通信操作本质是在多进程/多设备之间搬运张量。下面按你图里的典型操作逐一说明,并给出直观语义与常见用途。


1. Reduce

语义:多卡各自有一个张量 → 按某个规约算子合成一个结果 → 只保留在指定一张卡
[
y=op(x0,x1,…,xN−1)y = \text{op}(x_0, x_1, \dots, x_{N-1})y=op(x0,x1,,xN1)
]

常见算子:sum / mean / max / min
用途

  • 统计全局 loss(只在 rank0 用)
  • 收集指标但不回传给所有卡

2. Broadcast

语义:一张卡上的张量 → 复制到所有卡

x0→x0,x0,…,x0x_0 \rightarrow x_0, x_0, \dots, x_0x0x0,x0,,x0

用途

  • 初始化模型参数(rank0 加载,其余同步)
  • 同步配置、超参数

3. Gather

语义:每张卡一个张量 → 按 rank 顺序拼接 → 放在指定一张卡

y=[x0∣x1∣…∣xN−1]y = [x_0 | x_1 | \dots | x_{N-1}]y=[x0x1xN1]

特点

  • 输出 shape 会变大
  • 非对称(只有 root 有结果)

用途

  • 验证 / 推理阶段收集所有样本结果
  • 日志、评测(只在 rank0)

4. Scatter

语义:一张卡有一个“大张量” → 切分 → 分发给各卡

[x0,x1,…,xN−1]→xi[x_0, x_1, \dots, x_{N-1}] \rightarrow x_i[x0,x1,,xN1]xi

用途

  • 将数据 batch 切分到不同 GPU
  • pipeline / tensor 并行中的输入分发

5. All-Reduce

语义:Reduce + Broadcast

y=op(x0,…,xN−1),每张卡都拿到 yy = \text{op}(x_0, \dots, x_{N-1}),\quad \text{每张卡都拿到 } yy=op(x0,,xN1),每张卡都拿到y

这是训练中最核心的操作

用途

  • 梯度同步(DDP 标配)

    grad_i → AllReduce(sum) → grad_global

关键点

  • 通信量大,但高度优化(ring / tree)
  • 通常与 backward 重叠(bucket + async)

6. All-Gather

语义:Gather + Broadcast

y=[x0∣x1∣…∣xN−1],每张卡都有 yy = [x_0 | x_1 | \dots | x_{N-1}],\quad \text{每张卡都有 } yy=[x0x1xN1],每张卡都有y

用途

  • 对比学习(CLIP / InfoNCE):需要“全局 batch”
  • MoE / 检索 / 多卡负样本
  • 模型并行中拼接中间特征

常见陷阱

  • 显存暴涨(batch × world_size)
  • 反向梯度是否需要all_gather_with_grad

总结对照表

操作输入输出位置是否对称典型用途
ReduceN → 1单卡指标、统计
Broadcast1 → N所有卡参数同步
GatherN → 1单卡验证收集
Scatter1 → N所有卡数据分发
All-ReduceN → N所有卡梯度同步
All-GatherN → N所有卡全局特征
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 19:53:13

2026趋势展望:随着AI能力完善,数据分析实现认知-行动一体化

结合过去几年我们对前沿趋势的关注,以及从服务客户的一线获取的一手信息,我们展望了2026年数据分析的十大趋势。也欢迎你关注我们的账号,我还将继续解读更多2026年的趋势。 趋势一:Data Agent开始规模化兑现价值 趋势二&#xf…

作者头像 李华
网站建设 2026/8/21 23:36:08

跨语言协作困境,R-Python库版本同步的5个秘密武器曝光

第一章:跨语言协作困境,R-Python库版本同步的5个秘密武器曝光在数据科学团队中,R与Python的混合使用已成为常态,但随之而来的库版本冲突、依赖不一致等问题严重阻碍了协作效率。不同语言生态间的隔离使得统一环境管理变得异常复杂…

作者头像 李华
网站建设 2026/8/21 18:27:34

如何用3步实现高可用?:Docker Compose健康检查配置全攻略

第一章:Docker Compose 的 Agent 服务健康检查在微服务架构中,确保容器化服务的可用性至关重要。Docker Compose 提供了内置的健康检查机制,可用于监控 Agent 类服务的运行状态,自动识别并重启异常实例,从而提升系统的…

作者头像 李华
网站建设 2026/8/21 12:29:02

【加密PDF批量解析新突破】:Dify黑科技实战指南,效率提升90%

第一章:加密PDF批量解析新突破概述近年来,随着企业数字化进程加速,大量敏感文档以加密PDF格式存储与传输。传统解析方式依赖人工逐个输入密码或使用图形化工具,效率低下且难以应对海量文件处理需求。近期,技术社区在自…

作者头像 李华
网站建设 2026/8/20 22:39:36

Qwen3-32B镜像下载与高效推理实战指南

Qwen3-32B镜像下载与高效推理实战指南 你有没有试过让一个7B模型写段数据库连接池的代码,结果它连超时重试都没加?或者让它读一份50页的技术方案,看到第30页就开始“自由发挥”,把架构图都编出来了? 更别提那些闭源API…

作者头像 李华
网站建设 2026/8/21 7:51:47

Windows下TensorFlow-GPU 2.5.0环境搭建指南

Windows下TensorFlow-GPU 2.5.0环境搭建指南 在深度学习项目开发中,GPU加速几乎成了标配。但如果你曾在Windows上尝试配置tensorflow-gpu,可能都经历过那种“明明按教程一步步来,却始终卡在DLL缺失或版本不兼容”的崩溃时刻。尤其是面对CUDA…

作者头像 李华