Skip to content

Latest commit

History

1,306 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PaddlePaddle Benchmark

我们对PaddlePaddle的最新版本v1.5.0,在训练性能和显存占用方面进行了基准测试。

目录

测试环境

  • 测试对象

    • 本次测试PaddlePaddle v1.5.0,具体commit是:401c03fc20478f5cc067440422fc3a7b306d0e32
    • 基准测试程序benchmark,具体commit是:3c34ed6b166f6b77e759b4c54e8854652ad3d776
  • Docker镜像

    • Paddle编译镜像
      • CUDA 9.0,paddlepaddle/paddle_manylinux_devel:cuda9.0_cudnn7
      • CUDA 10.0,paddlepaddle/paddle_manylinux_devel:cuda10.0_cudnn7
    • Paddle测试镜像
      • CUDA 9.0,paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7
      • CUDA 10.0,paddlepaddle/paddle:latest-gpu-cuda10.0-cudnn7
    • TensorFlow测试镜像
      • CUDA 9.0,tensorflow/tensorflow:1.12.0-gpu
      • CUDA 10.0,tensorflow/tensorflow:1.14.0-gpu
    • PyTorch
      • CUDA 9.0,
      • CUDA 10.0,
  • GPU服务器参数

    • GPU型号:Nvidia Tesla V100-SXM2,显存16 GB
    • CPU型号:Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz,38核
    • Driver Version: 418.39
    • CUDA Version:9.0.176,10.0.130
    • NCCL Version:2.4.2
    • cuDNN Version:7.4.2.24,7.5.0.56

    注意:测试所用GPU服务器为虚拟机,跟相同配置的物理机测试结果可能会有一定的差别。

  • CPU服务器参数

    • CPU型号:Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz,24核
    • 指令集:AVX2

PaddleCV

方向模型PaddleTensorFlowPyTorchMXNet数据集batch_size(单卡)
图像分类SE-ResNeXt50PaddleCV/image_classification-SENet-PyTorch-ILSVRC201232
目标检测Mask-RCNNPaddleCV/rcnn-maskrcnn-benchmark-COCO171
目标检测YOLOv3PaddleCV/yolov3--gluon-cvCOCO178
图像分割DeepLab V3+PaddleCV/deeplabv3+tensorflow/models--cityscape2
图像生成Cycle-GANPaddleCV/PaddleGANCycleGAN--horse2zebra1

SE-ResNeXt50

SE-ResNeXt50模型单卡训练速度与PyTorch持平,八卡训练速度和显存占用都优于PyTorch。

  • 训练速度(单位:images/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0PyTorch 1.1.0Paddle 1.5.0PyTorch 1.1.0
1 GPU168.334163.130168.478163.294
8 GPUs (单进程)843.348595.274836.357573.732
8 GPUs (多进程)----
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0PyTorch 1.1.0Paddle 1.5.0PyTorch 1.1.0
单卡显存占用5515 MiB5677 MiB5535 MiB5695 MiB
单卡最大batch_size112112112112

Mask-RCNN

Mask-RCNN模型训练速度和显存占用都优于PyTorch。

  • 训练速度(单位:images/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0PyTorch 1.1.0Paddle 1.5.0PyTorch 1.1.0
1 GPU3.8113.2403.780-
8 GPUs (单进程)18.707-18.505-
8 GPUs (多进程)23.01421.86423.199-
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0PyTorch 1.1.0Paddle 1.5.0PyTorch 1.1.0
单卡显存占用3871 MiB4548 MiB3907 MiB-
单卡最大batch_size555-

YOLOv3

YOLOv3模型训练速度和显存占用都优于MXNet。

  • 训练速度(单位:images/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0MXNetPaddle 1.5.0MXNet
1 GPU29.90118.57830.59117.001
8 GPUs (单进程)58.17535.57457.99733.755
8 GPUs (多进程)99.530-104.553-
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0MXNetPaddle 1.5.0MXNet
单卡显存占用10583 MiB14304 MiB10599 MiB9842 MiB
单卡最大batch_size14141414

DeepLab V3+

Deep Lab V3+模型训练速度和显存占用都优于TensorFlow。

  • 训练速度(单位:images/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU13.6956.414.2616.309
8 GPUs (单进程)59.72116.50858.02416.427
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用5163 MiB8934 MiB5167 MiB8927 MiB
单卡最大batch_size9797

Cycle-GAN

Cycle-GAN模型不支持多卡训练,其单卡训练速度和显存占用都优于TensorFlow。

  • 训练速度(单位:images/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU7.5136.4527.5916.823
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用2479 MiB5094 MiB2499 MiB5089 MiB

PaddleNLP

方向模型PaddleTensorFlowPyTorch数据集batch_size(单卡)
语言模型PaddingRNNPaddleNLP/language_modelbenchmark/PaddingRNN/lstm_tf-PTB文本数据集20
语义表示BERTLARKgoogle-research/bert-XNLI32
机器翻译TransformerPaddleNLP/neural_machine_translation/transformertensor2tensor-En-de4096

PaddingRNN

TensorFlow的PaddingRNN开源模型多卡训练失败,故只测试单卡训练的情况。 PaddleRNN模型在static模式下,单卡训练速度和显存占用都差于TensorFlow。

  • 训练速度(单位:steps/s)
static模式
small模型
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU61.20873.99163.40072.406
static模式
large模型
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU17.47918.52917.10717.914
  • 显存占用
static模式
small模型
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用660 MiB660 MiB657 MiB647 MiB
static模式
large模型
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用6089 MiB5858 MiB6083 MiB8711 MiB

BERT

TensorFlow的BERT开源模型暂无多卡实现。 BERT模型单卡训练速度和显存占用都优于TensorFlow。

  • 训练速度(单位:steps/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU4.0443.4204.003-
8 GPUs (单进程)1.803-1.817-
8 GPUs (多进程)3.114-3.089-
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用6551 MiB15430 MiB6545 MiB-
单卡最大batch_size998492169984-

Transformer

Transformer模型单卡训练速度与TensorFlow持平;多卡训练速度和显存占用优于TensorFlow。

  • 训练速度(单位:steps/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU4.8654.7504.8834.721
8 GPUs (单进程)4.2272.3024.3552.520
8 GPUs (多进程)4.445-4.460-
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用7137 MiB8948 MiB7147 MiB8711 MiB
单卡最大batch_size12000111441200011144

PARL

方向模型PaddleTensorFlowPyTorch数据集batch_size(单卡)
强化学习DDPG Deep Explorebenchmark/DDPG_Deep_Explore/Fluid_versionbenchmark/DDPG_Deep_Explore/TF_version-测试数据100

DDPG

DDPG模型不支持多卡训练,其训练速度与竞品持平,显存占用优于TensorFlow。

  • 训练速度(单位:epoch/s)
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
1 GPU1.6151.6061.578-
  • 显存占用
CUDA 9.0CUDA 10.0
Paddle 1.5.0TensorFlow 1.12.0Paddle 1.5.0TensorFlow 1.14.0
单卡显存占用563 MiB630 MiB557 MiB-

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages