1. 加速的必要性
如上图所示,训练(training)是双向运算,而推理(inference)为单向运算。为了提高训练速度,会使用多GPU分布式训练;而部署推理时,为了降低成本,往往使用单个GPU机器或嵌入式平台(比如 NVIDIA Jetson)进行部署;在实际项目中,一个项目可能会使用多个模型,而模型使用的框架也不能确保统一化。
使用TensorRT加速最直接的效果如下:
-
加快推理速度,降低延迟。
-
推理框架统一化,方便部署。
2. 优化原理
TensorRT优化方法主要有以上5种方法,接下来重点介绍前两种:
2.1 层间融合或张量融合(Layer & Tensor Fusion)
上图是GoogLeNetInception模块的计算图,