From c2f9874e32cdff2ab5cebb63b7399aa93140752b Mon Sep 17 00:00:00 2001 From: sjtubinlong Date: Mon, 9 Dec 2019 17:59:46 +0800 Subject: [PATCH] add Inference Benchmark --- .../python/docs/PaddleSeg_Infer_Benchmark.md | 521 ++++++++++++++++++ 1 file changed, 521 insertions(+) create mode 100644 deploy/python/docs/PaddleSeg_Infer_Benchmark.md diff --git a/deploy/python/docs/PaddleSeg_Infer_Benchmark.md b/deploy/python/docs/PaddleSeg_Infer_Benchmark.md new file mode 100644 index 00000000..747d5588 --- /dev/null +++ b/deploy/python/docs/PaddleSeg_Infer_Benchmark.md @@ -0,0 +1,521 @@ +# PaddleSeg 分割模型预测性能测试 + +## 测试软件环境 +- CUDA 9.0 +- CUDNN 7.6 +- TensorRT-5.1.5 +- PaddlePaddle v1.6.1 +- Ubuntu 16.04 +- GPU: Tesla V100 +- CPU:Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz + +## 测试方法 +- 输入采用 1000张RGB图片,batch_size 统一为 1。 +- 重复跑多轮,去掉第一轮预热时间,计后续几轮的平均时间:包括数据拷贝到GPU,预测引擎计算时间,预测结果拷贝回CPU 时间。 +- 采用Fluid C++预测引擎 +- 测试时开启了 FLAGS_cudnn_exhaustive_search=True,使用exhaustive方式搜索卷积计算算法。 +- 对于每个模型,同事测试了`OP`优化模型和原生模型的推理速度, 并分别就是否开启`FP16`和`FP32`的进行了测试 + + + +## 推理速度测试数据 + +**说明**: `OP优化模型`指的是`PaddleSeg 0.3.0`版以后导出的新版模型,把图像的预处理和后处理部分放入 GPU 中进行加速,提高性能。每个模型包含了三种`eval_crop_size`:`192x192`/`512x512`/`768x768`。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

模型

+
+

原始模型      (单位 ms/image)

+
+

OP 优化模型    (单位 ms/image)

+
+

Fluid

+
+

Fluid-TRT FP32

+
+

Fluid-TRT FP16

+
+

Fluid

+
+

Fluid-TRT FP32

+
+

Fluid-TRT FP16

+
+

deeplabv3p_mobilenetv2-1-0_bn_192x192

+
+

4.717

+
+

3.085

+
+

2.607

+
+

3.705

+
+

2.09

+
+

1.775

+
+

deeplabv3p_mobilenetv2-1-0_bn_512x512

+
+

15.848

+
+

14.243

+
+

13.699

+
+

8.284

+
+

6.972

+
+

6.013

+
+

deeplabv3p_mobilenetv2-1-0_bn_768x768

+
+

63.148

+
+

61.133

+
+

59.262

+
+

16.242

+
+

13.624

+
+

12.018

+
+

deeplabv3p_xception65_bn_192x192

+
+

9.703

+
+

9.393

+
+

6.46

+
+

8.555

+
+

8.202

+
+

5.15

+
+

deeplabv3p_xception65_bn_512x512

+
+

30.944

+
+

30.031

+
+

20.716

+
+

23.571

+
+

22.601

+
+

13.327

+
+

deeplabv3p_xception65_bn_768x768

+
+

92.109

+
+

89.338

+
+

43.342

+
+

44.341

+
+

41.945

+
+

25.486

+
+

icnet_bn_192x192

+
+

5.706

+
+

5.057

+
+

4.515

+
+

4.694

+
+

4.066

+
+

3.369

+
+

icnet_bn_512x512

+
+

18.326

+
+

16.971

+
+

16.663

+
+

10.576

+
+

9.779

+
+

9.389

+
+

icnet_bn_768x768

+
+

67.542

+
+

65.436

+
+

64.197

+
+

18.464

+
+

17.881

+
+

16.958

+
+

pspnet101_bn_192x192

+
+

20.978

+
+

18.089

+
+

11.946

+
+

20.102

+
+

17.128

+
+

11.011

+
+

pspnet101_bn_512x512

+
+

72.085

+
+

71.114

+
+

43.009

+
+

64.584

+
+

63.715

+
+

35.806

+
+

pspnet101_bn_768x768

+
+

160.552

+
+

157.791

+
+

110.544

+
+

111.996

+
+

111.22

+
+

69.646

+
+

pspnet50_bn_192x192

+
+

13.854

+
+

12.491

+
+

9.357

+
+

12.889

+
+

11.479

+
+

8.516

+
+

pspnet50_bn_512x512

+
+

55.868

+
+

55.205

+
+

39.659

+
+

48.647

+
+

48.076

+
+

32.403

+
+

pspnet50_bn_768x768

+
+

135.268

+
+

131.268

+
+

109.732

+
+

85.167

+
+

84.615

+
+

65.483

+
+

unet_bn_coco_192x192

+
+

7.557

+
+

7.979

+
+

8.049

+
+

4.933

+
+

4.952

+
+

4.959

+
+

unet_bn_coco_512x512

+
+

37.131

+
+

36.668

+
+

36.706

+
+

26.857

+
+

26.917

+
+

26.928

+
+

unet_bn_coco_768x768

+
+

110.578

+
+

110.031

+
+

109.979

+
+

59.118

+
+

59.173

+
+

59.124

+
+

 

+ +## 数据分析 +### 1. 新版OP优化模型的加速效果 +下图是`PaddleSeg 0.3.0`进行OP优化的模型和原模型的性能数据对比(以512x512 为例): +![OP加速对比](https://paddleseg.bj.bcebos.com/inference/benchmark/op_opt_512x512.png) + +`分析`: +- 优化模型的加速效果在各模型上都很明显,最高优化效果可达100% +- 模型的 `eval_crop_size`越大,加速效果越明显 + + +### 2. 使用 TensorRT 开启 FP16 和 FP32 优化效果分析 + +在原始模型上的加速效果: +![优化模型](https://paddleseg.bj.bcebos.com/inference/benchmark/trt_opt_origin_512x512.png) + +在优化模型上的加速效果: +![原始模型](https://paddleseg.bj.bcebos.com/inference/benchmark/trt_opt_new_512x512.png) + + +`分析`: +- unet和icnet模型,使用Fluid-TensorRT的加速效果不明显,甚至没有加速。 +- deeplabv3p_mobilenetv2模型,Fluid-TensorRT在原生模型的加速效果不明显,仅3%-5%的加速效果。在优化模型的加速效果可以达到20%。 +- `deeplabv3_xception`、`pspnet50` 和 `pspnet101`模型,`fp16`加速效果很明显,在`768x768` 的size下加速效果最高可达110%。 + + + +### 3. 不同的EVAL_CROP_SIZE对图片想能的影响 + +在 `deeplabv3p_xception`上的数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/xception.png) + +在`deeplabv3p_mobilenet`上的数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/mobilenet.png) +在`unet`上的测试数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/unet.png) +在`icnet`上的测试数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/unet.png) +在`pspnet101`上的测试数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/pspnet101.png) +在`pspnet50`上的测试数据对比图: +![xception](https://paddleseg.bj.bcebos.com/inference/benchmark/pspnet50.png) + +`分析`: +- 对于同一模型,`eval_crop_size`越大,推理速度越慢 +- 同一模型,不管是 TensorRT 优化还是 OP 优化,`eval_crop_size`越大效果越明显 + -- GitLab