本 repo 用于公开 PaddlePaddle 开源实现的各个学术界、工业界前沿模型,在训练期间的性能数据,同时提供了各模型性能测试的详细复现流程,以供参考。
同时,我们也在相同的硬件执行环境下,按照业内其它知名深度学习框架公开的代码和教程,测试了对应模型的性能数据,并记录具体日志和数据。
目前我们公开了计算机视觉和自然语言处理领域的两个典型模型的性能对比数据:
我们将持续开展性能测试工作,后续将逐步公开更多性能数据,敬请期待。
我们选择了 NGC 优化后的 TensorFlow、PyTorch、MxNet,作为性能的参考。
对这些框架的性能测试,我们选用相同的物理机执行,并严格参照各框架官网公布的测试方法进行复现。
2. NGC PyTorch
3. NGC MxNet
说明:
- 本次测试选用
8 * V100-SXM2-16GB
物理机做单机单卡、单机8卡测试;选用4台8 * V100-SXM2-32GB
物理机做32卡测试。 - 测试中,我们尽可能复现不同框架的最好性能,因此以下测试结果默认打开了各个框架的各种加速功能/选项,如:
- 对于支持
DALI/XLA
的框架,以下测试为开启DALI/XLA
的数据
- 对于支持
-
单位:
images/sec
-
FP32测试
参数 PaddlePaddle NGC TensorFlow 1.15 NGC PyTorch NGC MXNet GPU=1,BS=128 383[BS=96] 408.3 364.2 387.1[BS=96] GPU=8,BS=128 2753.3[BS=96] 3105.3 2826.8 2998.1[BS=96] GPU=32,BS=128 10715.3[BS=96] 11622.9 10393.2 -[BS=96] -
AMP测试
参数 PaddlePaddle NGC TensorFlow 1.15 NGC PyTorch NGC MXNet GPU=1,BS=128 1335.1 954.9 828.7 1380.6 GPU=1,BS=256 1400.1[BS=208] 978.8 841.6 1447.6[BS=192] GPU=8,BS=128 8322.9 7829.9 6014.7 9218.9 GPU=8,BS=256 9099.5[BS=208] 7810.8 6230.1[BS=248] 9765.6[BS=192] GPU=32,BS=128 29524.6 21826.6 17940.7 - GPU=32,BS=256 31036.8[BS=208] 23280.9 21588.1 -[BS=192] 以上测试,由于显存限制,下调了部分测试的BatchSize,并在表格中注明
Pytorch AMP 8卡在BatchSize=256时会OOM,因此下调BatchSize为248
-
max_seq_len:
128
-
单位:
sequences/sec
-
FP32测试
参数 PaddlePaddle NGC TensorFlow 1.15 NGC PyTorch GPU=1,BS=32 147.14 142.67 128.53 GPU=1,BS=48 153.47 148.23 128.92 GPU=8,BS=32 1072.26 984.73 999.99 GPU=8,BS=48 1119.37 1075.27 995.88 GPU=32,BS=32 4659.2 4379.4 3994.1 GPU=32,BS=48 5036.2 4723.5 3974.0 GPU=32,BS=32[W/O AccGrad] 3379.9 2943.8 2836.7 GPU=32,BS=48[W/O AccGrad] 4160.7 3450.1 3180.0 -
AMP测试
参数 PaddlePaddle NGC TensorFlow 1.15 NGC PyTorch GPU=1,BS=64 595.49 488.32 524.48 GPU=1,BS=96 628.25 536.06 543.76 GPU=8,BS=64 3902.41 3035.76 4058.34 GPU=8,BS=96 4202.70 3530.84 4208.12 GPU=32,BS=64 17819.7 14773.4 15941.1 GPU=32,BS=96 18232.9 16554.3 16311.6 GPU=32,BS=64[W/O AccGrad] 12685.4 9993.1 10391.2 GPU=32,BS=96[W/O AccGrad] 14511.9 12767.2 12061.6