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

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

在这里插入图片描述

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、MirroredStrategyPyTorch DDP、Horovod
http://www.dtcms.com/a/335393.html

相关文章:

  • 【Linux系统】动静态库的制作
  • 接口参数校验工具类ValidationParamUtils,让参数校验从“繁琐、重复”变得“省事、简单”!
  • Python文本过滤与清理完全指南:从基础到高级工程实践
  • go基础学习笔记
  • RAG 分块中表格填补简明示例:Markdown、HTML、Excel、Doc
  • C++核心语言元素与构建块全解析:从语法规范到高效设计
  • 编译器生成的合成访问方法(Synthetic Accessor Method)
  • TensorRT-LLM.V1.1.0rc0:在无 GitHub 访问权限的服务器上编译 TensorRT-LLM 的完整实践
  • Linux容器基石:LXC核心概念与实践指南
  • Flink Stream API核心概念继承体系
  • 代码随想录算法训练营四十四天|图论part02
  • 像海绵一样吸收技术书籍的高效学习方法
  • [Go]包管理发展之路(Go Modules VS GOPATH)
  • 【Jenkins】02 - 自动化部署配置
  • 简单的 VSCode 设置
  • 利用vscode时进行调试,即使设置justMyCode为False仍然失败,如何解决?
  • 嵌入式练习项目——————抓包获取天气信息
  • 【Linux | 网络】高级IO
  • SQL性能优化全攻略
  • 基于libcurl与epoll的高性能异步FTP客户端
  • 数据准备|生成折线图
  • 如何让AI视频模型(如Veo)开口说中文?一个顶级提示词的深度拆解
  • Spring Boot 项目配置 MySQL SSL 加密访问
  • 【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略
  • 计算机网络 HTTP和HTTPS 区别
  • Rust 条件语句
  • deepseek一键生成word和excel并一键下载
  • 初识CSS
  • [python学习记录1]python简介
  • SHAP分析!NRBO-Transformer-BiLSTM回归预测SHAP分析,深度学习可解释分析!