news 2026/4/17 22:34: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/4/18 9:45:13

揭秘代谢组数据批量预处理:如何用R语言实现自动化质控与归一化

第一章:代谢组数据预处理的核心挑战代谢组学研究依赖高通量检测技术(如LC-MS、GC-MS和NMR)获取生物样本中的小分子代谢物信息。然而,原始数据通常包含大量噪声、缺失值和系统性偏差,直接分析可能导致错误的生物学结论。…

作者头像 李华
网站建设 2026/4/16 14:54:26

为什么你的Dify项目总在音频上失败?直击1.7.0时长限制痛点

第一章:为什么你的Dify项目总在音频上失败?在构建基于 Dify 的 AI 应用时,音频处理常常成为项目的瓶颈。尽管文本与图像模块运行流畅,但一旦涉及语音识别、合成或实时流处理,系统便频繁报错或响应迟缓。其根本原因往往…

作者头像 李华
网站建设 2026/4/18 8:46:09

揭秘农业产量波动:如何用R语言实现多模型融合精准预测

第一章:农业产量波动与预测挑战农业生产受气候、土壤、病虫害及市场政策等多重因素影响,导致产量呈现显著年际波动。准确预测农作物产量对于保障粮食安全、优化资源配置和制定农业政策至关重要。然而,传统统计模型在处理非线性关系和高维数据…

作者头像 李华
网站建设 2026/4/18 2:32:50

Dify结果过滤实战:3个案例教你构建高精度重排序模型

第一章:检索重排序的 Dify 结果过滤在构建基于大语言模型的应用时,检索增强生成(RAG)系统常面临检索结果相关性不足的问题。Dify 作为低代码 AI 应用开发平台,提供了灵活的后处理机制,支持对检索返回的文档…

作者头像 李华
网站建设 2026/4/18 2:30:54

Dify与Spring AI版本匹配难?资深架构师亲授兼容策略(限时参考)

第一章:Dify与Spring AI版本兼容性问题全景解析在构建基于Spring AI的智能应用时,集成Dify作为AI工作流引擎已成为常见实践。然而,不同版本间的依赖冲突与接口变更常导致运行时异常,影响开发效率与系统稳定性。核心兼容性挑战 Dif…

作者头像 李华
网站建设 2026/4/18 2:27:27

揭秘Dify权限分级机制:如何实现Agent工具的安全高效管控

第一章:揭秘Dify权限分级机制:如何实现Agent工具的安全高效管控Dify 作为一款支持 AI Agent 可视化编排与部署的开发平台,其核心安全架构依赖于精细化的权限分级机制。该机制通过角色定义、资源隔离与操作审计三重策略,确保不同用…

作者头像 李华