一、写在前面 随着深度学习技术的不断发展,模型的训练成本也越来越高。训练一个高效的通用模型,需要大量的训练数据和算力。在很多非大模型相关的常规任务上,往往也需要使用多卡来进行并行训练。在多卡训练中,最为常用的就是分布式数据并行(DistributedDataParallel,DDP)。但是现有的有关DDP的教程和博客比较少,内容也比较分散繁琐。在大多数情况下,我们只需要学会如何使用即可,不需要特别深入地了解原理。为此,写下这个系列博客,简明扼要地介绍一下DDP的使用,抛开繁杂的细节和原理,帮助快速上手使用(Allinoneblog)。 篇幅较长,分为上下两篇:这篇简要介绍相关背景和理论知识,下...

  RS0QO45IsVdZ   18天前   30   0   0 AI综合

一、简要回顾DDP 在上一篇文章中,简单介绍了Pytorch分布式训练的一些基础原理和基本概念。简要回顾如下: 1,DDP采用Ring-All-Reduce架构,其核心思想为:所有的GPU设备安排在一个逻辑环中,每个GPU应该有一个左邻和一个右邻,设备从它的左邻居接收数据,并将数据汇总后发送给右邻。通过N轮迭代以后,每个设备都拥有全局数据的计算结果。 2,DDP每个GPU对应一个进程,这些进程可以看作是相互独立的。除非我们自己手动实现,不然各个进程的数据都是不互通的。Pytorch只为我们实现了梯度同步。 3,DDP相关代码需要关注三个部分:数据拆分、IO操作、和评估测试。 二、DDP训练框架...

  RS0QO45IsVdZ   18天前   33   0   0 AI综合
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~