分布式训练DP与DDP

动画理解Pytorch 大模型分布式训练技术 DP,DDP,DeepSpeed ZeRO技术_哔哩哔哩_bilibili

单卡运行流程

DP(data parallel)

从硬盘读取数据,然后一个cpu进程将数据分成多份,给每个GPU训练,然后计算出梯度 进行网络更新(无效更新),然后再将各个GPU算出来的梯度,返回到gpu0进行梯度平均,再更新网络0,网络0再把更新后的网络参数广播到其他网络上。

DP存在的问题: 单进程,多线程,Python GIL只能利用一个CPU核。

GPU0负责手机梯度,更新参数,同步参数,通信,计算压力大。(即卡间负载极不平衡)

DDP: 让每个GPU都能进行接收处理以及通讯。

图中scatter的意思是,通过分发,让不同的节点有不同的值,reduce 的意思是 收集所有节点的值,并进行计算。

allgather 的意思是,把更新后的值,同步到 各个GPU,最后完成更新。充分利用各个GPU上下行的带宽。

计算参数梯度的个数满一个'桶'的时候,就开始流水并行化更新同步。

(他会预先分配好,哪些参数该谁更新,这样就避免了一个参数连圈转的发送和接收(相当于原来是A给B给C给D,现在是,A,B,C直接给D了)

相关推荐
yzx99101315 小时前
递归算法入门:像俄罗斯套娃一样思考
人工智能·算法
GEO从入门到精通15 小时前
在哪里能买到GEO学习工具或课程?
人工智能·学习
测试员周周15 小时前
【Appium 系列】第14节-断言与验证 — Validator 的设计
android·人工智能·python·功能测试·ios·单元测试·appium
心中有国也有家15 小时前
从零上手 CANN 学习中心:像逛技术便利店一样学昇腾
学习·算法·开源
小白|15 小时前
tensorflow:昇腾CANN的TensorFlow适配层
人工智能·python·tensorflow
武汉唯众智创15 小时前
全栈物联网实训平台拆解:通信协议+边缘AI+实战源码
人工智能·物联网·嵌入式开发·物联网实训平台·高校实训·python物联网
oo哦哦15 小时前
搜索矩阵系统的最短路密码:用Dijkstra算法和网络流理论,解释为什么你做了1000个关键词,流量还不如别人30个
网络·算法·矩阵
Matlab程序猿小助手15 小时前
【MATLAB源码-第319期】基于matlab的帝王蝶优化算法(MBO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·算法·matlab
码点滴15 小时前
CRI-O选型与容器运行时标准
开发语言·人工智能·架构·kubernetes·cri-o
一起聊电气15 小时前
智能断路器:守护智能照明系统的AI电气安全闸门
网络·人工智能·安全