【深度学习-基础知识】单机多卡和多机多卡训练

1. 单机多卡训练(Single Machine, Multi-GPU)

概念

  • 在同一台服务器上,有多块 GPU。
  • 一个训练任务利用所有 GPU 并行加速训练。
  • 数据集存放在本地硬盘或共享存储上。

核心原理

  1. 数据并行(Data Parallelism)

    • 将一个 batch 划分成多个 mini-batch,每块 GPU 处理一个 mini-batch。
    • 每个 GPU 都有完整的模型副本。
    • 前向计算在各自 GPU 独立进行。
    • 反向传播结束后,通过 梯度同步 (All-Reduce)聚合梯度,再更新模型参数。
      • All-Reduce: 梯度求和取平均 + 同步更新,这样保证梯度是基于全局 batch 的估计
  2. 梯度同步方式

    • PyTorch 的 DistributedDataParallel(DDP) 或 TensorFlow 的 MirroredStrategy 都使用 NCCL(NVIDIA Collective Communication Library)在 GPU 间高速同步。
      • 多GPU训练中,不同GPU需要频繁交换数据(如梯度)。如果直接用通用通信方式(比如通过CPU或普通网络库),效率极低。
      • NCCL(NVIDIA Collective Communications Library, NVIDIA 集合通信库)多GPU和多节点环境优化的通信库。
    • 由于在同一台机器,带宽高、延迟低,通信成本较低。

优缺点

  • 优点

    • 实现简单,通信效率高。
    • 训练速度明显提升。
  • 缺点

    • 受限于单机 GPU 数量和显存大小。
    • 数据量非常大时无法容纳。

实现要点

  • 使用 torch.nn.DataParallel(老方法)或 torch.nn.parallel.DistributedDataParallel(推荐)。
  • Batch size 可以拆分到每张 GPU。
  • 注意随机种子和数据划分,保证每个 GPU 数据不同。

2. 多机多卡训练(Multi-Machine, Multi-GPU)

概念

  • 训练任务跨多台服务器,每台服务器有多块 GPU。
  • 每台机器称为 Node ,每块 GPU 称为 Rank
  • 适合大规模数据集或模型,单机无法容纳。

核心原理

  1. 分布式数据并行(Distributed Data Parallel, DDP)

    • 每个 GPU 依然保留完整模型副本。
    • 每个 GPU 处理自己分配的 mini-batch。
    • 梯度通过 All-Reduce 在所有 GPU 间同步,包括跨机通信。
      • AllReduce 的设计就是 每个 GPU 都计算自己负责的部分,然后通过网络传递累加,最终所有 GPU 得到相同结果。
  2. 通信机制

    • 跨机通信通常通过高速网络(InfiniBand 或 10/25/100GbE)进行。
    • 需要指定 Master Node IP 和端口,其他节点通过 NCCL 或 Gloo 与 Master 节点通信。
    • 训练框架(如 PyTorch DDP、Horovod)负责梯度同步。
  3. 梯度同步策略

    • 每次反向传播完成后,将梯度在所有 GPU 汇总并平均,然后更新模型。
    • 可使用 梯度压缩 / 分层同步 优化跨机通信开销。

优缺点

  • 优点

    • 可以训练超大模型或超大数据集。
    • 扩展性好,GPU 数量理论上无限。
  • 缺点

    • 实现复杂,需要网络配置和多机同步。
    • 跨机通信延迟高,成为训练瓶颈。
    • 出错排查困难(网络、节点故障、不同版本依赖)。

实现要点

  • 确定每个 GPU 的 global rank(全局编号)。
  • 配置 MASTER_ADDRMASTER_PORT
  • 使用 torch.distributed.launchtorchrun 启动训练。
  • 注意 Batch size 调整(全局 batch = 每 GPU batch × GPU 数 × 节点数)。
  • 数据集划分需要确保不同节点不重复读取。

3. 核心区别总结

维度 单机多卡 多机多卡
训练范围 一台机器 多台机器
GPU 通信 同机高速互连(PCIe/NVLink) 网络跨机(Ethernet/InfiniBand)
实现复杂度 高,需要网络配置
扩展性 受限于单机 GPU 数量 高,可扩展到上百 GPU
通信开销 高,可能成为瓶颈
框架示例 PyTorch DDP、MirroredStrategy PyTorch DDP、Horovod
相关推荐
格林威1 小时前
工业视觉检测:提供可视化UI调试工具的实现方式是什么?
开发语言·人工智能·数码相机·ui·计算机视觉·视觉检测·工业相机
TImCheng06091 小时前
零基础AI认证学习路径:线上课程与考试机制分析
人工智能
捧 花1 小时前
Claude Code 使用指南
人工智能·claude·claude code·superpower
量子-Alex1 小时前
【大模型】监督微调与强化学习:大型语言模型后训练方法的研究
人工智能·语言模型·自然语言处理
暗夜猎手-大魔王1 小时前
转载--AI Agent 架构设计:记忆污染(OpenClaw、Claude Code、Hermes Agent 对比)
人工智能
2zcode1 小时前
面向健身与康复训练的基于深度学习的人体姿态检测与动作纠正系统
人工智能·深度学习·智能电视
HIT_Weston1 小时前
66、【Agent】【OpenCode】用户对话提示词(Agent 主动性)
人工智能·agent·opencode
Chengbei111 小时前
轻量化 Web 安全日志分析神器 星川智盾日志威胁检测、地理溯源、MITRE ATT&CK 映射,支持 Windows/macOS/Linux
前端·人工智能·安全·web安全·macos·系统安全·安全架构
久菜盒子工作室1 小时前
中国工业气体行业研究报告(2026)
大数据·人工智能
GISer_Jing1 小时前
AI时代面试新常态——从“会用工具”到“深挖原理”的跨越
前端·人工智能·ai编程