InternLM/doc/train_performance.md

5.1 KiB
Raw Blame History

训练性能

InternLM 深度整合了 Flash-Attention, Apex 等高性能模型算子,提高了训练效率。通过构建 Hybrid Zero 技术实现计算和通信的高效重叠大幅降低了训练过程中的跨节点通信流量。InternLM 支持 7B 模型从 8 卡扩展到 1024 卡,千卡规模下加速效率可高达 90%,训练吞吐超过 180TFLOPS平均单卡每秒处理的 token 数量超过3600。下表为 InternLM 在不同配置下的扩展性测试数据:

GPU Number 8 16 32 64 128 256 512 1024
TGS (Tokens/GPU/Second) 4078 3939 3919 3944 3928 3920 3835 3625
TFLOPS 193 191 188 188 187 185 186 184

我们在GPU集群上测试了多种并行配置下InternLM训练7B模型的性能。在每组测试中每张GPU在单次迭代中处理的token数量一致。测试使用的硬件和参数配置如下表所示

硬件 硬件型号
GPU nvidia_a100-sxm4-80gb
Memory 2TB
Inter-machine bandwidth 4 * 100Gb RoCE
CPU 128 core Intel(R) Xeon(R) CPU
超参 tp=1 tp=2
micro_num 4 4
micro_bsz 2 4
seq_len 2048 2048

InternLM中zero1的配置决定了优化器状态的分配范围。

  • zero1=-1表明优化器状态分布在全部数据并行节点等同于Deepspeed Zero-1的效果
  • zero1=8tp=1的情况下优化器状态分布在单节点8张GPU内并且不同节点上的优化器状态保持一致。

吞吐量测量

吞吐量定义为TGS平均每GPU每秒处理的token的数量Tokens per GPU per Second。在该项测试的训练配置中pack_sample_into_one=Falsecheckpoint=False, dtype=torch.bfloat16。测试结果如下表所示。采用zero1=8tp=1InternLM针对7B模型训练的扩展性在千卡训练的加速效率可以达到88%

并行配置 8卡 16卡 32卡 64卡 128卡 256卡 512卡 1024卡
(tp=1, zero1=-1) 4062 3842 3752 3690 3571 3209 2861 2271
(tp=1, zero1=8) 4078 3939 3919 3944 3928 3920 3835 3625
(tp=2, zero1=-1) 3822 3595 3475 3438 3308 3094 2992 2785
(tp=2, zero1=4) 3761 3658 3655 3650 3651 3653 3589 3486

FLOPS测试

模型训练的计算量参考 Megatron 论文中FLOPS计算方式。为了保证训练过程中的FLOPS恒定在该项测试的训练配置中pack_sample_into_one=Truedtype=torch.bfloat16

当开启 Activation Ckpt后测试结果如下表所示InternLM针对7B模型的千卡训练可以达到 >180 TFLOPS

  • TGS: Tokens per GPU per Second

  • Global Bsz: 一个step中所有GPU处理的token数量

TP Zero1 Pack Sample Into One Activation Ckpt GPU Num Seq Len Micro Bsz Micro Num Global Bsz TGS TFLOPS
1 8 TRUE TRUE 8 2048 8 1 0.125M 3314 193
1 8 TRUE TRUE 16 2048 8 1 0.25M 3268 191
1 8 TRUE TRUE 32 2048 8 1 0.5M 3323 188
1 8 TRUE TRUE 64 2048 8 1 1M 3217 188
1 8 TRUE TRUE 128 2048 8 1 2M 3260 187
1 8 TRUE TRUE 256 2048 8 1 4M 3215 187
1 8 TRUE TRUE 512 2048 8 1 8M 3199 186
1 8 TRUE TRUE 1024 2048 8 1 16M 3163 184
1 8 TRUE TRUE 512 2048 4 1 4M 2963 173
1 8 TRUE TRUE 1024 2048 2 1 4M 2341 136
1 8 TRUE TRUE 1024 2048 4 1 8M 2796 160

当关闭 Activation Ckpt后测试结果如下表所示

TP Zero1 Pack Sample Into One Activation Ckpt GPU Num Seq Len Micro Bsz Micro Num Global Bsz TGS TFLOPS
1 8 TRUE FALSE 8 2048 2 4 0.125M 4103 183
1 8 TRUE FALSE 16 2048 2 4 0.25M 3939 177
1 8 TRUE FALSE 32 2048 2 4 0.5M 3919 176
1 8 TRUE FALSE 64 2048 2 4 1M 3944 174
1 8 TRUE FALSE 128 2048 2 4 2M 3928 173
1 8 TRUE FALSE 256 2048 2 4 4M 3920 173
1 8 TRUE FALSE 512 2048 2 4 8M 3900 173
1 8 TRUE FALSE 1024 2048 2 4 16M 3625 160
1 8 TRUE FALSE 512 2048 2 2 4M 3084 139
1 8 TRUE FALSE 1024 2048 2 1 4M 2346 105
1 8 TRUE FALSE 1024 2048 2 2 8M 2817 124