Skip to content

PaddleX在使用高性能docker镜像部署后,使用client进行推理速度非常慢 #4484

@ruterfu

Description

@ruterfu

Checklist:

描述问题

我本地使用NVIDIA L20 GPU运行Docker镜像(下面提及)进行推理,但是发现无论是单请求还是多个请求同时进行,OCR速度只有1.4s/张,速度非常慢,GPU几乎只吃了28%的功率(101w / 350w),且使用率不高(在使用 watch -n 1 nvidia-smi 进行1秒刷新,看到GPU负载大部分时间小于30%,只有偶尔冲破40%一丢丢,功率也是100w左右,此时GPU没有其他任何负载)。我按照文档开启了高性能推理,也几乎一次性运行成功没有报错。

复现

  1. 高性能推理

  2. 服务化部署

  • 您在服务化部署中是否有使用高性能推理插件? **是 **
    • 您使用了哪一种服务化部署方案? Docker OCR
  • 如果是多语言调用的问题,请给出调用示例子。**无 **
  1. 端侧部署 (未涉及)

    • 您是否完全按照端侧部署文档教程跑通了流程?
    • ~~您使用的端侧设备是?对应的PaddlePaddle版本和PaddleLite版本分别是什么? ~~
  2. 您使用的模型数据集是? PP-OCRv5_server_rec 和 PP-OCRv5_server_det

  3. 请提供您出现的报错信息及相关log

我使用 PaddleX 服务化部署指南] 尝试运行OCR服务,我下载了 Docker 镜像是

docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:paddlex3.2-gpu

和下载了 高稳定性服务化部署 SDK - 通用 OCR/root/paddlex_hps_OCR_sdk

docker run -itd \
	--name paddle \
	-e PADDLEX_HPS_DEVICE_TYPE=gpu \
	-e PADDLEX_HPS_USE_HPIP=1 \
	-v /root/paddlex_hps_OCR_sdk/server:/app \
	-w /app \
	--gpus all \
	--init \
	--network host \
	--shm-size 8g \
	ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:paddlex3.2-gpu \
	/bin/bash

运行成功后后,我通过 docker exec -it paddle bash 进去后,直接运行 bash server.sh &,控制台日志信息如下**(没有报错)** build.log 最后显示

I0821 15:24:35.663813 42 grpc_server.cc:4117] Started GRPCInferenceService at 0.0.0.0:8001
I0821 15:24:35.664239 42 http_server.cc:2815] Started HTTPService at 0.0.0.0:8000
I0821 15:24:35.705663 42 http_server.cc:167] Started Metrics Service at 0.0.0.0:8002

我上传了一份PDF 文件(纯文本) 然后用 高稳定性服务化部署 SDK - 通用 OCR 里面的 client.py 进行测试,主要操作如下:

  1. 我通过 conda create -n ocr python=3.10 创建了一个全新的环境。

  2. 安装 里面的 paddlex_hps_client-0.2.0-py3-none-any.whl (没有安装其他任何组件),上传了一个PDF文件,执行

    python client.py --file test.pdf --file-type=0 --no-visualization
    

结果:

从结果来看,它只识别了10页,我手机的秒表粗略进行计时,大概耗时15秒(虽然我手动计时可能有误差,但是误差不会超过1秒)也就是估算着1.5秒/张的速度。

然后我开了8个控制台尝试测试它的多个请求处理速度,对控制台开启广播输入后(就是1个控制台输入,其他7个控制台会同步执行相同内容),8个控制台同时运行上面的命令,最终耗时 1分49秒,估算1.36秒/张。

环境

  1. 请提供您使用的PaddlePaddle、PaddleX版本号、Python版本号

    ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:paddlex3.2-gpu预设环境
    和
    本地python 3.10
    
  2. 请提供您使用的操作系统信息,如Linux/Windows/MacOS

    CPU:AMD EPYC 7532 32-Core Processor
    内存:96GB
    GPU:NVIDIA L20
    系统:Ubuntu 22.04.5 LTS 
    
  3. 请问您使用的CUDA/cuDNN的版本号是?

    Cuda:12.6 + cuDNN 9
    

    其中cuda是通过 运行 ./cuda_12.6.1_560.35.03_linux.run 安装,而cudnn通过如下方式安装

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get -y install cudnn9-cuda-12
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions