了解集合通信与模型并行策略

简介: 了解集合通信基础概念及常见的集合通信原语;以及大模型并行策略:包括数据并行、流水并行、张量并行和专家并行。

集合通信

集合通信基础

通过HCCS实现两两互联(Full Mesh),如NPU与NPU之间,CPU与CPU之间;NPU和CPU之间通过PCIE连接。
Full Mesh是指在一个网络拓扑中,每个节点都直接连接到其他节点,形成一个完全互联的网络结构。在Full Mesh网络中,任何两个节点之间都可以直接通信。

2.A+X(16P):

双mesh组网(8P Full-mesh)

集合通信原语

  • 一对多
    Broadcast:将通信域内root节点的数据广播到其他rank

    Scatter:将通信域内root节点的数据均分并散布至其他rank

  • 多对一

  • 多对多



模型并行策略

  • 数据并行(Data Parallelism,DP)

    数据并行是指将一个批次(batch)的训练数据分成若干个小批次,分发给多个计算节点来进行训练的并行方式。

  • 流水并行(Pipeline Parallelism,PP)

    对于分布式训练,当模型规模太大而无法存放在单个计算节点上时,可以使用流水并行。在流水并行中,模型被逐层拆分成几个阶段,每个计算节点仅存储并执行其中的一个阶段(一个阶段可以是一层,也可以是相邻的多层)。这样可以有效减轻每个节点内的存储压力。

  • 张量并行(Tensor Parallelism,TP)

    如果单层/单阶段的模型依然太大而无法放在单个节点上怎么办?那就将它的参数进一步切分到多个节点上,每个节点计算部分结果,再通过通过节点间的通信获取到最终结果,这就是张量并行。简言之,流水并行是模型的层间切割,而张量并行是模型的层内切割。这两种模型并行的方式是可以同时存在的。

  • 专家并行(Experts Parallelism,EP)

    专家并行是在分布式学习中专门针对MoE场景的并行策略,其主要思想就是将不同专家放在不同计算节点上进行并行计算。专家并行与之前所有的并行相比,最大的不同在于,输入数据需要通过一个动态的路由选择机制分发给相应专家,此处会涉及到一个所有节点上的数据重分配的动作,然后在所有专家处理完成后,又需要将分散在不同节点上的数据按原来的次序整合起来。

参考资料

相关文章
|
安全 Linux KVM
倚天产品介绍|倚天虚拟化:CPU虚拟化原理介绍
虚拟化技术中最关键的技术之一就是CPU虚拟化。在没有硬件辅助虚拟化技术出来之前,通常都是通过TCG(软件进行指令翻译)的方式实现CPU虚拟化。但是由于TCG方式的虚拟化层开销太大,性能太差,因此引入了硬件辅助虚拟化技术。
|
数据库
【latex】在Overleaf的IEEE会议模板中,快速插入参考文献
【latex】在Overleaf的IEEE会议模板中,快速插入参考文献
4799 1
|
算法 Linux 开发者
GitHub Copilot 使用技巧之快捷键大全
GitHub Copilot 使用技巧之快捷键大全
1602 0
|
缓存 安全 SoC
来看看ARM gicv2/gicv3的详解
来看看ARM gicv2/gicv3的详解
2037 0
|
9月前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch 分布式训练底层原理与 DDP 实战指南
深度学习模型规模激增,如Llama 3.1达4050亿参数,单卡训练需数百年。并行计算通过多GPU协同解决此问题。本文详解PyTorch的分布式数据并行(DDP),涵盖原理、通信机制与代码实战,助你高效实现多卡训练。
1628 5
PyTorch 分布式训练底层原理与 DDP 实战指南
|
4月前
|
机器学习/深度学习 自然语言处理 Shell
必知必会:大模型训练通信开销计算详解与面试指南
必知必会:大模型训练通信开销计算详解与面试指南
必知必会:大模型训练通信开销计算详解与面试指南
|
机器学习/深度学习 存储 缓存
ATB概念之:算子tiling
算子 tiling 是一种优化技术,用于提高大规模张量运算的计算效率。它通过将大任务分解为小块,优化内存使用、支持并行计算,并防止内存溢出。在ATB中,tiling data指kernel的分片参数,用于指导计算。ATB提供了三种 tiling data 搬移策略:整体搬移、多stream搬移及随kernel下发搬移,旨在优化内存拷贝任务,提高计算效率。
|
搜索推荐
大模型训练常见通信源语解释
本文总结了在大模型分布式训练中常用的通信原语,包括一对多操作(Broadcast、Scatter)、多对一操作(Gather、Reduce)以及多对多操作(AllGather、AllReduce、ReduceScatter、All-To-All)。这些操作在模型并行和数据并行场景中起到关键作用,如参数初始化、数据切分与汇聚、规约运算等。通过详细介绍每种通信方式的功能与应用场景,帮助理解分布式训练中的数据交互机制。
1910 2

热门文章

最新文章