searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Megatron-LM简介

2024-09-04 09:41:55
8
0

Abstract

问题:

  • GPU显存大小限制,分布式多卡也不行(有的大模型)
  • 训练时间长
  • tensor和pipline并行不能在千卡训练的时候简单的使用

本文展示了如何在千卡训练时,使用张量、pipline和数据并行​,提出了interleaved pipelining schedule使得吞吐量提升10%(内存占用不变),方法允许在3072个gpu上以502petaFLOP/s的速度对具有1万亿参数的模型执行训练迭代(每gpu吞吐量为理论峰值的52%)。

1 Introduction

可以通过GPU设备和主机之间的参数传输和交换可以减少一些GPU显存的占用

Data-parallel scale-out(数据并行扩展)可以对训练时长上有帮助,但有两大限制:

  • 模型大了之后,每一个GPU的batch变得很小,会导致GPU利用率降低并导致通信成本增加
  • 可以使用的最大设备数量是批处理大小,限制了可用于训练的加速器数量

模型(tensor)并行来解决数据并行上的限制,但也会引入两大限制:

  • 张量并行中all-reduce通信需要通过服务器的链路,这个比GPU的nvlink的带宽要慢很多
  • 高度的模型(张量)并行会创建一些小的矩阵乘法(GEMMs),潜在降低GPU的利用率。

模型(pipline)并行是指模型的层在多个GPU上进行剥离(分层),将batch分割成更小的批处理以流水线方式并行。无论进度如何,为了保持严格的优化器语义,需要跨设备同步优化器步骤,从而在每个批处理结束时刷新管道,允许微批处理完成执行(并且不注入新的微批处理)。

  • 50%的时间用于冲洗pipline
  • 更大的batch size,pipline刷新时间越短(本文引入新的piline来提高small btach size的效率)

本文解决的问题:如何结合并行技术来最大限度地​提高给定批量大小​(减少跨节点通信)的大型模型的训练吞吐量,同时保持严格的优化器语义?

pipline, tensor, data parallelism(PTD-P)结合,在千卡上峰值设备吞吐量达到(52%)

  • 163 teraFLOP/s每张GPU
  • GPT模型吞吐量(throughput) 502 petaFLop/s

研究影响吞吐量的多个部分,配置分布式训练的指导原则:

  • 并行化策略会影响通讯量、执行内核时的计算效率,以及管道刷新导致的等待计算的空闲时间;张量并行对多GPU服务器是有效的,pipeline并行必须用于更大的模型
  • pipeline并行的调度对通信量、pipeline的bubble大小和用于存储activations的内存占比都有影响。(提出新的交错调度提升10%吞吐量)
  • 超参数(如microbatch size)会影响内存占用、内核的计算效率以及pipeline的bubble size。(微批量大小的最佳值可以提升15%吞吐量)
  • 使用较慢的节点间互联或通信密集的分区会影响扩展性能。(892GB/s用于管道并行,13TB/s用于数据并行)

2 Modes of Parallelism

pipeline并行,tensor并行,数据并行(PTD-P)

image-20230828100420240.png

数据并行

每一个worker​都有完整的模型副本​,输入数据集分片,worker定期汇总他们的梯度确保权重一致。大模型在较小的模型分片上使用DP。

  • 在GPU中超过某个阈值后,每一个GPU上分配的microbatch过小,会导致单块GPU利用率降低,而通讯成本大大增加。
  • 理论上最多支持并行的GPU数量等于batch size,这个限制了训练中可以使用的卡的规模。

流水线并行

模型的层被分散到多个GPU上,​重复相同的transformer(不同的layer)会平分到每一个GPU上​;batch分成micro-batch之间进行流水线执行,确保输入在前向和后向传递中看到一致的权重。为了保留严格的优化器语义,引入周期性的流水线刷新来保证不同设备之间优化器的同步。

  • 流水线并行中,micro batch的数量/pipline尺寸(并行使用的GPU数量)越大,通常pipeline flush消耗的时间则越小。

pipeline bubble:在每个批处理开始和结束时,设备处于空闲状态

Gpipe调度跨设备的前向和后向microbatch,每个方法在pipeline bubble、通信和内存占用之间提供不同的权衡。

0条评论
作者已关闭评论
朱****程
6文章数
0粉丝数
朱****程
6 文章 | 0 粉丝
朱****程
6文章数
0粉丝数
朱****程
6 文章 | 0 粉丝
原创

Megatron-LM简介

2024-09-04 09:41:55
8
0

Abstract

问题:

  • GPU显存大小限制,分布式多卡也不行(有的大模型)
  • 训练时间长
  • tensor和pipline并行不能在千卡训练的时候简单的使用

本文展示了如何在千卡训练时,使用张量、pipline和数据并行​,提出了interleaved pipelining schedule使得吞吐量提升10%(内存占用不变),方法允许在3072个gpu上以502petaFLOP/s的速度对具有1万亿参数的模型执行训练迭代(每gpu吞吐量为理论峰值的52%)。

1 Introduction

可以通过GPU设备和主机之间的参数传输和交换可以减少一些GPU显存的占用

Data-parallel scale-out(数据并行扩展)可以对训练时长上有帮助,但有两大限制:

  • 模型大了之后,每一个GPU的batch变得很小,会导致GPU利用率降低并导致通信成本增加
  • 可以使用的最大设备数量是批处理大小,限制了可用于训练的加速器数量

模型(tensor)并行来解决数据并行上的限制,但也会引入两大限制:

  • 张量并行中all-reduce通信需要通过服务器的链路,这个比GPU的nvlink的带宽要慢很多
  • 高度的模型(张量)并行会创建一些小的矩阵乘法(GEMMs),潜在降低GPU的利用率。

模型(pipline)并行是指模型的层在多个GPU上进行剥离(分层),将batch分割成更小的批处理以流水线方式并行。无论进度如何,为了保持严格的优化器语义,需要跨设备同步优化器步骤,从而在每个批处理结束时刷新管道,允许微批处理完成执行(并且不注入新的微批处理)。

  • 50%的时间用于冲洗pipline
  • 更大的batch size,pipline刷新时间越短(本文引入新的piline来提高small btach size的效率)

本文解决的问题:如何结合并行技术来最大限度地​提高给定批量大小​(减少跨节点通信)的大型模型的训练吞吐量,同时保持严格的优化器语义?

pipline, tensor, data parallelism(PTD-P)结合,在千卡上峰值设备吞吐量达到(52%)

  • 163 teraFLOP/s每张GPU
  • GPT模型吞吐量(throughput) 502 petaFLop/s

研究影响吞吐量的多个部分,配置分布式训练的指导原则:

  • 并行化策略会影响通讯量、执行内核时的计算效率,以及管道刷新导致的等待计算的空闲时间;张量并行对多GPU服务器是有效的,pipeline并行必须用于更大的模型
  • pipeline并行的调度对通信量、pipeline的bubble大小和用于存储activations的内存占比都有影响。(提出新的交错调度提升10%吞吐量)
  • 超参数(如microbatch size)会影响内存占用、内核的计算效率以及pipeline的bubble size。(微批量大小的最佳值可以提升15%吞吐量)
  • 使用较慢的节点间互联或通信密集的分区会影响扩展性能。(892GB/s用于管道并行,13TB/s用于数据并行)

2 Modes of Parallelism

pipeline并行,tensor并行,数据并行(PTD-P)

image-20230828100420240.png

数据并行

每一个worker​都有完整的模型副本​,输入数据集分片,worker定期汇总他们的梯度确保权重一致。大模型在较小的模型分片上使用DP。

  • 在GPU中超过某个阈值后,每一个GPU上分配的microbatch过小,会导致单块GPU利用率降低,而通讯成本大大增加。
  • 理论上最多支持并行的GPU数量等于batch size,这个限制了训练中可以使用的卡的规模。

流水线并行

模型的层被分散到多个GPU上,​重复相同的transformer(不同的layer)会平分到每一个GPU上​;batch分成micro-batch之间进行流水线执行,确保输入在前向和后向传递中看到一致的权重。为了保留严格的优化器语义,引入周期性的流水线刷新来保证不同设备之间优化器的同步。

  • 流水线并行中,micro batch的数量/pipline尺寸(并行使用的GPU数量)越大,通常pipeline flush消耗的时间则越小。

pipeline bubble:在每个批处理开始和结束时,设备处于空闲状态

Gpipe调度跨设备的前向和后向microbatch,每个方法在pipeline bubble、通信和内存占用之间提供不同的权衡。

文章来自个人专栏
DL
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0