我们对PaddlePaddle的最新版本v1.5.0,在训练性能和显存占用方面进行了基准测试。
SE-ResNeXt50模型单卡训练速度与PyTorch持平,八卡训练速度和显存占用都优于PyTorch。
| 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模型训练速度和显存占用都优于PyTorch。
| 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模型训练速度和显存占用都优于MXNet。
| 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 |
Deep Lab V3+模型训练速度和显存占用都优于TensorFlow。
| 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模型不支持多卡训练,其单卡训练速度和显存占用都优于TensorFlow。
| 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 |
TensorFlow的PaddingRNN开源模型多卡训练失败,故只测试单卡训练的情况。
PaddleRNN模型在static模式下,单卡训练速度和显存占用都差于TensorFlow。
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 |
TensorFlow的BERT开源模型暂无多卡实现。
BERT模型单卡训练速度和显存占用都优于TensorFlow。
| 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模型单卡训练速度与TensorFlow持平;多卡训练速度和显存占用优于TensorFlow。
| 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 |
DDPG模型不支持多卡训练,其训练速度与竞品持平,显存占用优于TensorFlow。
| 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 | - |