(English|简体中文)
通过Nvidia推出的tensorRT工具来部署主流框架上训练的模型能够极大的提高模型推断的速度,往往相比与原本的框架能够有至少1倍以上的速度提升,同时占用的设备内存也会更加的少。因此对是所有需要部署模型的用户来说,掌握用tensorRT来部署深度学习模型的方法是非常有用的。Paddle Serving提供了全面的TensorRT生态支持。
Serving 的Cuda10.1 Cuda10.2和Cuda11版本支持TensorRT。
在使用Docker环境开发 和 Docker镜像列表当中,我们给出了TensorRT的开发镜像。使用镜像启动之后,需要安装支持TensorRT的Paddle whl包,参考首页的文档
# GPU Cuda10.2环境请执行
pip install paddlepaddle-gpu==2.0.0
注意: 如果您的Cuda版本不是10.2,请勿直接执行上述命令,需要参考Paddle官方文档-多版本whl包列表
选择相应的GPU环境的url链接并进行安装,例如Cuda 10.1的Python2.7用户,请选择表格当中的cp27-cp27mu
和
cuda10.1-cudnn7.6-trt6.0.1.5
对应的url,复制下来并执行
pip install https://paddle-wheel.bj.bcebos.com/with-trt/2.0.0-gpu-cuda10.1-cudnn7-mkl/paddlepaddle_gpu-2.0.0.post101-cp27-cp27mu-linux_x86_64.whl
由于默认的paddlepaddle-gpu==2.0.0
是Cuda 10.2,并没有联编TensorRT,因此如果需要和在paddlepaddle-gpu
上使用TensorRT,需要在上述多版本whl包列表当中,找到cuda10.2-cudnn8.0-trt7.1.3
,下载对应的Python版本。
# Cuda10.2
pip install paddle-server-server==${VERSION}.post102
# Cuda 10.1
pip install paddle-server-server==${VERSION}.post101
# Cuda 11
pip install paddle-server-server==${VERSION}.post11
在Serving模型示例当中,我们有给出可以使用TensorRT加速的模型,例如detection下的Faster_RCNN模型
我们只需
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/pddet_demo/2.0/faster_rcnn_r50_fpn_1x_coco.tar
tar xf faster_rcnn_r50_fpn_1x_coco.tar
python -m paddle_serving_server.serve --model serving_server --port 9494 --gpu_ids 0 --use_trt
TensorRT版本的faster_rcnn模型服务端就启动了
在 local_predictor当中,用户可以显式制定use_trt=True
传入到load_model_config
当中。
其他方式和其他Local Predictor使用方法没有区别,需要注意模型对TensorRT的兼容性。
在 Pipeline模式当中,我们的imagenet例子给出了设置TensorRT的方式。