NVIDIA-GPU部署

Paddle Inference 支持通过以下两种方式在Nvidia-GPU上运行推理任务:

(1)GPU 原生推理 : PaddlePaddle 深度学习开源框架中存在大量用 CUDA 实现的算子,如果您选择用 GPU 原生推理,那么用于部署的模型会在一系列内部优化之后直接调用这些原生算子实现;

(2)GPU TensorRT 加速推理 : TensorRT 是一个针对 NVIDIA GPU 及 Jetson 系列硬件的高性能机器学习推理 SDK,可以使得深度学习模型在这些硬件上的部署获得更好的性能。Paddle Inference 采用子图的方式对 TensorRT 进行了集成,即我们可以使用该模块来提升 Paddle Inference 的推理性能。TensorRT 接入方式支持 fp32,fp16,int8 精度的推理,除了 CUDA 和 cuDNN,使用前您还需确保您的机器上已经安装了 TensoRT 。这通常会带给您比 GPU 原生推理更好的性能;

Note

目前Paddle Inference可以支持绝大多数的 NVIDIA-GPU平台,如果您不确定您的GPU平台是否被支持,请查阅本篇文档附录中的硬件支持列表

本章节为您详细介绍了如何实现基于原生推理和TensorRT推理,并提供了可参考的示例代码,主要分为以下三个部分:

GPU 原生推理 : 介绍如何使用 GPU 原生推理将模型部署在 GPU 硬件上,包括根据示例代码介绍 Paddle Inference C++/Python API 的使用流程,如何安装 Paddle Inference 推理库,以及如何在 Ubuntu、Windows 等操作系统上编译和执行示例代码。

Note

GPU 原生推理仅支持 fp32,fp16 精度目前处于实验阶段。使用前,您需要确保您的机器上已经安装了 CUDA 和 cuDNN。

GPU TensorRT 加速推理(NV-GPU/Jetson) : 介绍如何使用 TensorRT 加速模型推理,根据示例代码介绍启用 TensorRT 加速的 API、 保存优化后的模型降低首帧耗时、支持动态 shape 的 API 等内容。还会介绍 Paddle Inference 接入 TensorRT 的原理。

GPU TensorRT 低精度或量化推理 : 介绍 Paddle Inference 使用 TensorRT情况下,实现对低精度和量化推理的支持。

附录:硬件支持列表

Paddle Inference 对 NVIDIA GPU 的支持能力请参考下表:

GPU架构

Compute Capability

对应GPU硬件型号

请下载以下CUDA版本的飞桨安装包

Fermi

sm_20

GeForce 400、 500、 600、 GT-630

不支持

Kepler

sm_30

GeForce 700、 GT-730

不支持

Kepler

sm_35

Tesla K40

CUDA10

Kepler

sm_37

Tesla K80

CUDA10

Maxwell

sm_50

Tesla/Quadro M series

CUDA10、CUDA11

Maxwell

sm_52

Quadro M6000 、 GeForce 900、 GTX-970、 GTX-980、 GTX Titan X

CUDA10、CUDA11

Pascal

sm_60

Quadro GP100、Tesla P100

CUDA10、CUDA11

Pascal

sm_61

GTX 1080、 GTX 1070、 GTX 1060、 GTX 1050、 GTX 1030 (GP108)、 GT 1010 (GP108) Titan Xp、 Tesla P40、 Tesla P4

CUDA10、CUDA11

Volta

sm_70

DGX-1 with Volta、 Tesla V100、 GTX 1180 (GV104)、 Titan V、 Quadro GV100

CUDA10、CUDA11

Turing

sm_75

GTX/RTX Turing _ GTX 1660 Ti、 RTX 2060、 RTX 2070、 RTX 2080、 Titan RTX、 Quadro RTX 4000、 Quadro RTX 5000、 Quadro RTX 6000、 Quadro RTX 8000、 Quadro T1000/T2000、 Tesla T4

CUDA10、CUDA11

Ampere

sm_80

NVIDIA A100、 GA100、 NVIDIA DGX-A100

CUDA11

Ampere

sm_86

Tesla GA10x cards、 RTX Ampere _ RTX 3080、 GA102 _ RTX 3090、 RTX A2000、 A3000、 RTX A4000、 A5000、 A6000、 NVIDIA A40、 GA106 _ RTX 3060、 GA104 _ RTX 3070、 GA107 _ RTX 3050、 RTX A10、 RTX A16、 RTX A40、 A2 Tensor Core GPU

CUDA11、CUDA11.2(推荐)

Paddle Inference 对 NVIDIA Jetson平台 的支持能力请参考下表:

GPU架构

Compute Capability

对应Jetson硬件型号

Maxwell

SM53

CTegra (Jetson) TX1 / Tegra X1C /Jetson Nano

Pascal

SM62

Tegra (Jetson) TX2

Volta

SM72

Jetson AGX Xavier