单机多卡训练-DDP

DDP原理:

为什么快?

DDP通过Ring-Reduce(梯度合并)的数据交换方法提高了通讯效率,并通过启动多个进程的方式减轻Python GIL的限制,从而提高训练速度。

神经网络中的并行有以下三种形式:

  1. Data Parallelism
    1. 这是最常见的形式,通俗来讲,就是增大batch size提高并行度。
      1. 平时我们看到的多卡并行就属于这种。比如DP、DDP都是。这能让我们方便地利用多卡计算资源。
    2. 能加速。
  2. Model Parallelism
    1. 把模型放在不同GPU上,计算是并行的。
    2. 有可能是加速的,看通讯效率。
  3. Workload Partitioning
    1. 把模型放在不同GPU上,但计算是串行的。
    2. 不能加速。

参考:[原创][深度][PyTorch] DDP系列第一篇:入门教程 - 知乎 (zhihu.com)

[原创][深度][PyTorch] DDP系列第一篇:入门教程 - 知乎 (zhihu.com)

注意点:

  1. 保存模型:

考虑到以后可能需要单卡加载你多卡训练的模型 ,建议在保存模型时,去除模型参数字典里面的module,如何去除呢,使用model.module.state_dict()代替model.state_dict()

2. 每一个epoch里面真正的打乱数据

复制代码
for epoch in range(args.num_epochs):
    train_sampler.set_epoch(epoch)  # shuffle数据
相关推荐
星雨流星天的笔记本1 天前
2.用洗洁精洗过的三口烧瓶的处理方法
学习
云边散步1 天前
godot2D游戏教程系列二(18)
笔记·学习·游戏
風清掦1 天前
【江科大STM32学习笔记-09】USART串口协议 - 9.1 STM32 USART串口外设
笔记·stm32·单片机·嵌入式硬件·学习
奶茶精Gaaa1 天前
AI实战(二)生成ui自动化
功能测试·学习·自动化
red_redemption1 天前
自由学习记录(141)
学习
xian_wwq1 天前
【学习笔记】看参识模型
笔记·学习
星雨流星天的笔记本1 天前
1、用于制备钙钛矿量子点的新三颈烧瓶的洗涤与使用方法
学习
FPGA小迷弟1 天前
高频时钟设计:FPGA 多时钟域同步与时序收敛实战方案
前端·学习·fpga开发·verilog·fpga
sensen_kiss1 天前
CPT306 Principles of Computer Games Design 电脑游戏设计原理 Pt.3 实时图形
学习·计算机视觉
東雪木1 天前
编程算法学习——栈与队列算法
学习·算法·排序算法