文章目录
- 1. TensorRT 简介
- 2. TensorRT 加速的原理
- 量化
- 网络结构优化
- 3. TensorRT 的 工作流程
- TensorRT引擎的构建:Build
- TensorRT引擎的推理:Infer
1. TensorRT 简介
- TensorRT可以帮助你把训练好的AI模型,部署到边端Nvidia的设备,并实现对模型的量化与加速。
- TensorRT基于CUDA和cudnn
CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。
cuDNN是基于CUDA的深度学习GPU加速库,它就是个锤子。
CUDA这个工作台买来的时候,并没有送锤子。
想要在CUDA上运行深度神经网络,就要安装cuDNN,这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
2. TensorRT 加速的原理
量化
TensorRT可以对模型进行int8,float16的量化,通过在**减少计算量 和 保持精度 **之间达到一个理想的平衡点。
网络结构优化
TensorRT同时对网络结构进行了重构和优化
- 通过解析模型,将网络中无用的输出层消除以减小计算。
- 对网络结构的垂直整合,举个例子,将CONV, BN, RELU 三个层融合在了一起。
- 对网络结构的水平整合。将输入为相同的张量 和执行 相同操作 的层融合在一起。
- 对 CONCAT 层的输出直接送入下面的操作,不单独进行concat后再进行计算,减少了一次传输吞吐
3. TensorRT 的 工作流程
- 分为两个流程:构建期,推理运行期
TensorRT引擎的构建:Build
- 前期准备Logger, builder, config
- 创建Network(计算图)
- 生成序列化网络引擎
TensorRT引擎的推理:Infer
- 反序列化引擎
- Buffer的相关准备
- 执行推理