# benchmark
**Repository Path**: mirrors_PaddlePaddle/benchmark
## Basic Information
- **Project Name**: benchmark
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-11-23
- **Last Updated**: 2025-09-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# PaddlePaddle Benchmark
我们对PaddlePaddle的最新版本[v1.5.0](https://github.com/PaddlePaddle/Paddle/tree/v1.5.0),在训练性能和显存占用方面进行了基准测试。
## 目录
* [测试环境](#测试环境)
* [智能视觉(PaddleCV)](#PaddleCV)
* [SE-ResNeXt50](#SE-ResNeXt50)
* [Mask-RCNN](#Mask-RCNN)
* [YOLOv3](#YOLOv3)
* [DeepLab V3+](#deepLab-v3)
* [Cycle-GAN](#Cycle-GAN)
* [智能文本处理(PaddleNLP)](#PaddleNLP)
* [PaddingRNN](#PaddingRNN)
* [BERT](#BERT)
* [Transformer](#Transformer)
* [强化学习(PARL)](#PARL)
* [DDPG](#DDPG)
## 测试环境
- 测试对象
- 本次测试[PaddlePaddle v1.5.0](https://github.com/PaddlePaddle/Paddle/tree/v1.5.0),具体commit是:`401c03fc20478f5cc067440422fc3a7b306d0e32`
- 基准测试程序[benchmark](https://github.com/PaddlePaddle/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
| 方向 | 模型 | Paddle | TensorFlow | PyTorch | MXNet | 数据集 | batch_size(单卡) |
|---|---|---|---|---|---|---|---|
| 图像分类 | SE-ResNeXt50 | [PaddleCV/image_classification](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification) | - | [SENet-PyTorch](https://github.com/miraclewkf/SENet-PyTorch) | - | ILSVRC2012 | 32 |
| 目标检测 | Mask-RCNN | [PaddleCV/rcnn](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/rcnn) | - | [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark) | - | COCO17 | 1 |
| 目标检测 | YOLOv3 | [PaddleCV/yolov3](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3) | - | - | [gluon-cv](https://github.com/dmlc/gluon-cv/tree/master/scripts/detection/yolo) | COCO17 | 8 |
| 图像分割 | DeepLab V3+ | [PaddleCV/deeplabv3+](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/deeplabv3%2B) | [tensorflow/models](https://github.com/tensorflow/models/tree/master/research/deeplab) | - | - | cityscape | 2 |
| 图像生成 | Cycle-GAN | [PaddleCV/PaddleGAN](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleGAN/cycle_gan) | [CycleGAN](https://github.com/hardikbansal/CycleGAN) | - | - | horse2zebra | 1 |
### SE-ResNeXt50
SE-ResNeXt50模型单卡训练速度与PyTorch**持平**,八卡训练速度和显存占用都**优于**PyTorch。
- 训练速度(单位:images/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
PyTorch 1.1.0 |
Paddle 1.5.0 |
PyTorch 1.1.0 |
1 GPU |
168.334 |
163.130 |
168.478 |
163.294 |
8 GPUs (单进程) |
843.348 |
595.274 |
836.357 |
573.732 |
8 GPUs (多进程) |
- |
- |
- |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
PyTorch 1.1.0 |
Paddle 1.5.0 |
PyTorch 1.1.0 |
单卡显存占用 |
5515 MiB |
5677 MiB |
5535 MiB |
5695 MiB |
单卡最大batch_size |
112 |
112 |
112 |
112 |
### Mask-RCNN
Mask-RCNN模型训练速度和显存占用都**优于**PyTorch。
- 训练速度(单位:images/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
PyTorch 1.1.0 |
Paddle 1.5.0 |
PyTorch 1.1.0 |
1 GPU |
3.811 |
3.240 |
3.780 |
- |
8 GPUs (单进程) |
18.707 |
- |
18.505 |
- |
8 GPUs (多进程) |
23.014 |
21.864 |
23.199 |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
PyTorch 1.1.0 |
Paddle 1.5.0 |
PyTorch 1.1.0 |
单卡显存占用 |
3871 MiB |
4548 MiB |
3907 MiB |
- |
单卡最大batch_size |
5 |
5 |
5 |
- |
### YOLOv3
YOLOv3模型训练速度和显存占用都**优于**MXNet。
- 训练速度(单位:images/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
MXNet |
Paddle 1.5.0 |
MXNet |
1 GPU |
29.901 |
18.578 |
30.591 |
17.001 |
8 GPUs (单进程) |
58.175 |
35.574 |
57.997 |
33.755 |
8 GPUs (多进程) |
99.530 |
- |
104.553 |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
MXNet |
Paddle 1.5.0 |
MXNet |
单卡显存占用 |
10583 MiB |
14304 MiB |
10599 MiB |
9842 MiB |
单卡最大batch_size |
14 |
14 |
14 |
14 |
### DeepLab V3+
Deep Lab V3+模型训练速度和显存占用都**优于**TensorFlow。
- 训练速度(单位:images/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
13.695 |
6.4 |
14.261 |
6.309 |
8 GPUs (单进程) |
59.721 |
16.508 |
58.024 |
16.427 |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
5163 MiB |
8934 MiB |
5167 MiB |
8927 MiB |
单卡最大batch_size |
9 |
7 |
9 |
7 |
### Cycle-GAN
Cycle-GAN模型不支持多卡训练,其单卡训练速度和显存占用都**优于**TensorFlow。
- 训练速度(单位:images/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
7.513 |
6.452 |
7.591 |
6.823 |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
2479 MiB |
5094 MiB |
2499 MiB |
5089 MiB |
## PaddleNLP
| 方向 | 模型 | Paddle | TensorFlow | PyTorch | 数据集 | batch_size(单卡) |
|---|---|---|---|---|---|---|
| 语言模型 | PaddingRNN | [PaddleNLP/language_model](https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/language_model) | [benchmark/PaddingRNN/lstm_tf](https://github.com/PaddlePaddle/benchmark/tree/master/PaddingRNN/lstm_tf) | - | PTB文本数据集 | 20 |
| 语义表示 | BERT | [LARK](https://github.com/PaddlePaddle/LARK) | [google-research/bert](https://github.com/google-research/bert) | - | XNLI | 32 |
| 机器翻译 | Transformer | [PaddleNLP/neural_machine_translation/transformer](https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/neural_machine_translation/transformer) | [tensor2tensor](https://github.com/tensorflow/tensor2tensor) | - | En-de | 4096 |
### PaddingRNN
TensorFlow的PaddingRNN开源模型多卡训练失败,故只测试单卡训练的情况。
PaddleRNN模型在static模式下,单卡训练速度和显存占用都**差于**TensorFlow。
- 训练速度(单位:steps/s)
static模式 small模型 |
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
61.208 |
73.991 |
63.400 |
72.406 |
static模式 large模型 |
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
17.479 |
18.529 |
17.107 |
17.914 |
- 显存占用
static模式 small模型 |
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
660 MiB |
660 MiB |
657 MiB |
647 MiB |
static模式 large模型 |
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
6089 MiB |
5858 MiB |
6083 MiB |
8711 MiB |
### BERT
TensorFlow的BERT开源模型暂无多卡实现。
BERT模型单卡训练速度和显存占用都优于TensorFlow。
- 训练速度(单位:steps/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
4.044 |
3.420 |
4.003 |
- |
8 GPUs (单进程) |
1.803 |
- |
1.817 |
- |
8 GPUs (多进程) |
3.114 |
- |
3.089 |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
6551 MiB |
15430 MiB |
6545 MiB |
- |
单卡最大batch_size |
9984 |
9216 |
9984 |
- |
### Transformer
Transformer模型单卡训练速度与TensorFlow**持平**;多卡训练速度和显存占用**优于**TensorFlow。
- 训练速度(单位:steps/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
4.865 |
4.750 |
4.883 |
4.721 |
8 GPUs (单进程) |
4.227 |
2.302 |
4.355 |
2.520 |
8 GPUs (多进程) |
4.445 |
- |
4.460 |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
7137 MiB |
8948 MiB |
7147 MiB |
8711 MiB |
单卡最大batch_size |
12000 |
11144 |
12000 |
11144 |
## PARL
| 方向 | 模型 | Paddle | TensorFlow | PyTorch | 数据集 | batch_size(单卡) |
|---|---|---|---|---|---|---|
| 强化学习 | DDPG Deep Explore | [benchmark/DDPG_Deep_Explore/Fluid_version](https://github.com/PaddlePaddle/benchmark/tree/master/DDPG_Deep_Explore/Fluid_version) | [benchmark/DDPG_Deep_Explore/TF_version](https://github.com/PaddlePaddle/benchmark/tree/master/DDPG_Deep_Explore/TF_version) | - | 测试数据 | 100 |
### DDPG
DDPG模型不支持多卡训练,其训练速度与竞品持平,显存占用**优于**TensorFlow。
- 训练速度(单位:epoch/s)
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
1 GPU |
1.615 |
1.606 |
1.578 |
- |
- 显存占用
|
CUDA 9.0 |
CUDA 10.0 |
|
Paddle 1.5.0 |
TensorFlow 1.12.0 |
Paddle 1.5.0 |
TensorFlow 1.14.0 |
单卡显存占用 |
563 MiB |
630 MiB |
557 MiB |
- |