当前位置: 首页 > news >正文

多卡并行——通信原语

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


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所有卡全局特征
http://www.cnnetsun.cn/news/90564.html

相关文章:

  • 揭秘Dify中PDF加密与权限验证机制:企业级数据防护必备技能
  • 酒精饮料市场:挑战中寻找机遇 eBest
  • 为什么顶尖数据团队都在用R Shiny做多模态报告?真相令人震惊
  • ChatTTS与GPT-SoVITS语音合成对比分析
  • MySQL Shell 使用方法
  • Docker多阶段构建与精简基础镜像(边缘Agent瘦身必看)
  • PPIO上线阿里Wan 2.6:制作电影级AI视频,对标Sora2
  • 【混合检索的Dify结果融合】:揭秘高效信息聚合背后的黑科技
  • 从零搭建高效音频流水线:Dify 1.7.0切片配置完整教程
  • 大数据ETL中的数据质量提升工具与方法
  • 筑巢引凤 - Ascend C开发环境极速部署与验证全攻略
  • 模型训练中的精度保障:Ascend C算子数值稳定性分析
  • 【金融风险对冲实战指南】:掌握R语言在投资组合风险管理中的7大核心技巧
  • 空间转录组批次校正实战指南(R语言完整代码+案例解析)
  • 计算机毕业设计附项目源码帮做/Java管理系统/springboot网站/深度学习/神经网络算法/yolo图像识别/从选题到部署,一篇搞定!
  • 紧急应对模型版本混乱:R与Python部署同步的实时解决方案
  • 气象模型预测失败的真相,R语言误差分析告诉你答案
  • 【Dify 1.7.0语音识别革命】:为什么专业团队都在抢用新转写引擎?
  • 强化学习DeepQLearning求最优策略的代码实现
  • 加密PDF处理新进展(Dify进度跟踪深度剖析)
  • 从零构建智能Agent文档系统:Dify配置与最佳实践全揭秘
  • 高负载环境下Docker Offload调度失控?优先级设置不当是元凶!
  • 还在手动校验语音数据?Dify 1.7.0自动检测功能已上线(限时体验)
  • 专家警告:不掌握量子计算镜像缓存技术,你的研发效率已落后同行三年
  • 对标行业高标准,全星研发项目管理系统赋能汽车芯片研发升级:PLM系统更专业化
  • LC.669 | 修剪二叉搜索树 | 树 | 递归与重连
  • DAY29 pipeline管道
  • A29语音模组:100dB消回音黑科技,超大音量下也能清晰通话
  • 1688 拍立淘接口(item_search_img)技术全景解析
  • Dify如何逆向解析加密PDF?,深入剖析现代文档安全的攻防博弈