Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paddle Serving 部署 PaddleOCR TRT 没加速效果 #5322

Closed
halleywj opened this issue Jan 22, 2022 · 4 comments
Closed

Paddle Serving 部署 PaddleOCR TRT 没加速效果 #5322

halleywj opened this issue Jan 22, 2022 · 4 comments
Assignees

Comments

@halleywj
Copy link

halleywj commented Jan 22, 2022

hello

我按照 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/README_CN.md 部署了服务 , 我看到 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/pipeline_http_client.py 是单张图片调用的 , 不支持 batch 调用 。
我看 server 端的代码 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/web_service.py 应该只是同一张图检测到了多个框的识别做了打 batch , 检测应该只能支持单张 。

https://github.com/PaddlePaddle/Serving/blob/v0.7.0/examples/Pipeline/PaddleOCR/ocr/web_service.py 侧我看到检测好像支持打 batch(也可能是 preprocess 底下的 images 有一些误导性) , 但 client 也还是单张调用 。
同时 https://github.com/PaddlePaddle/Serving/blob/v0.7.0/examples/Pipeline/PaddleOCR/ocr/benchmark.py 里面函数的 batch size 底下都没用到 , https://github.com/PaddlePaddle/Serving/blob/v0.7.0/examples/Pipeline/PaddleOCR/ocr/benchmark.sh 里面 batch size 都是 1 。看上去也没大 batch size 的测速 。

而我这边测试在多并发的 client 调用下 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/config.yml 开启 trt(use_trt: True)速度基本也没很大变化 , 基本接近文档的 T4 qps 20+ (https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/README_CN.md)
无论开不开 trt , precision 设置成 fp32 还是 fp16 还是 int8 , 基本速度都没差别 。
我都不确定是否实现是对的 。
GPU 使用率都能达到 80-90 及以上 。
用的模型都是 2.4 默认模型 , PP-OCRv2 。 Python Pipeline Serving 、 http 接口 。
简易测速脚本参考 #5360

我参考 https://github.com/PaddlePaddle/Serving/blob/v0.7.0/doc/Python_Pipeline/Pipeline_Design_CN.md#2%E8%AF%A6%E7%BB%86%E8%AE%BE%E8%AE%A1 开启了 batch_size 和 auto_batching_timeout , 看起来是生效的 , 但感受上更慢了 , 并且会因为图片大小不一样挂掉 。
所以是否要先 preprocess 把图片 resize 成一样 , 或者 padding 成一样 。(我之后可以实验一下这样是否会有效果) 。

所以这里我想问一下:

  1. 关于开 trt 速度基本不变 , 是正常的吗 ?是否和 batch size 1 有关系 , 还是可能有别的原因 。
  2. 除了 https://github.com/PaddlePaddle/Serving/blob/v0.7.0/doc/Python_Pipeline/Performance_Tuning_CN.md 这里的 1.5(我大致试了一下了 , 都没看到加速 , 减少 并发度 是会减速的)还能怎样加快推理速度 ?环境是 T4 。
  3. 用 ch_PP-OCRv2_rec_slim + ch_PP-OCRv2_det_slim 这套模型在 T4 + TRT 会更快吗 ? 还是说和 PP-OCRv2 应该差不多 ?

具体环境:
cuda11.2-cudnn8-TensorRT8 , paddlepaddle 、 paddle-serving 均是该版本 。
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/config.yml#L22 use_profile 也关掉了 。

感谢 。

@halleywj halleywj changed the title Paddle Serving 部署 PaddleOCR 如何打 batch Paddle Serving 部署 PaddleOCR TRT 没加速效果 Jan 22, 2022
@halleywj
Copy link
Author

halleywj commented Jan 24, 2022

我看到一些相关的 issue:

  1. tensorrt 加速效果不明显 #4914 , 回复是预期检测加速 20-30% 。 我已经用的是 TRT8 , min_subgraph_size 在 Paddle Serving 里默认是 3 , 我没修改 https://github.com/PaddlePaddle/Serving/blob/c14a765892a5624111408147d8ec3799aa84ad49/python/paddle_serving_app/local_predict.py#L208
  2. RTX 6000显卡服务端PP YOLOv2 推演速度 Serving#1315 说 ir_optim 需要开 , 开完才能看到区别 。 但在我的测试过程中 , 默认都是开的 。https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/deploy/pdserving/config.yml#L45 , 没修改过 。 所以我的速度没区别也和这个没关系 。

@TeslaZhao @LDOUBLEV 希望帮忙看一下 , 谢谢 。

@tink2123
Copy link
Collaborator

您好~ Serving 的 pipeling 部署目前还不支持TensorRT加速,相关同学还在开发,可以关注下后续版本。

@halleywj
Copy link
Author

好的 , 多谢 。

@zlszhonglongshen
Copy link

还有人继续测试嘛?现在速度有提升嘛

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants