深度学习之分布式
本系列介绍用于大模型如何利用AI集群来进行分布式训练。
内容知识来源于网络知识,侵删。
- 分布式集群
- 分布式算法
- 分布式并行
前言
一、AI集群服务器架构
-
参数服务器(PS)模式
有一个或多个中心节点,这些节点用于聚合参数和管理模型参数。而集合通讯(CC)模式没有中心节点,每个节点不仅要负责训练,同时还需实时掌握全局梯度信息。
-
同步与异步执行
同步:等待所有节点完成梯度计算再更新网络参数。
异步:不等待所有节点完成梯度,直接利用旧的网络参数来进行计算。
半同步:设置一个阈值,超过这个阈值就不等了。 -
环同步算法
第一步:沿环收集数据
第二步:沿环广播
二、AI集群软硬件通信
- 通信硬件实现
机器内:
CPU内核之间:内存共享;
CPU-GPU之间:PCIe、NVLink;
GPU内核之间:NVLink(直连模式),多通道、差分、双单工双向链路。
机器间:
跨机器:TCP/IP网络;
AI集群:RDMA网卡(直连模式):无需CPU干预,远程主机CPU缓存不会被访问的内存内容所填充;可以在用户态执行数据传输;每个应用程序都能之间访问集群中的设备的虚拟内存。 - 通信软件实现
MPI:通用接口,;
NCCL/HCCL(英伟达):GPU通信优化,集中式通信;
Gloo(Facebook):提供集合通信算法。 - 通信实现方式
点对点通信
Pytorch:
集合通讯:
pytorch:
三、分布式通信原语
- 通信原语
一对多:分发、广播;
多对一:收集、规约 ;
多对多。
四、框架分布式功能
- 并行处理硬件架构
单指令单数据集(SISD)、单指令多数据集(SIMD)、多指令单数据集(MIMD)、多指令多数据集(MIMD) - AI框架中的分布式训练
基于内嵌式分布式策略:TensorFlow/MindSpore为代表的基于计算图的AI框架,自动;
基于提供通信原语分布式训练策略:以解释执行AI框架Pytorch,灵活。
参考文献:
b站 up主 ZOMI酱 :https://www.bilibili.com/video/BV1ge411L7mi/?spm_id_from=333.788&vd_source=071a6a156f5d29dbb9701c2bdbda3878