AI视频行为分析系统项目复盘——技术篇3:tensorRT技术梳理

0 背景

见《AI视频行为分析系统项目复盘——技术篇1》

1 tensorRT 介绍

NVIDIA®TensorRT™是一个深度学习平台,用于模型推理加速(仅支持NVIDIA自家GPU,CPU加速一般使用OpenVINO)。

1.1 tensorRT 诞生意义

深度学习计算量相对普通程序还是挺大的,目前CV落地还不是很普及其中一个点就是对硬件要求较高。其次,算法的计算速度直接影响产品的成本和体验,谁能在硬件成本限制下支撑起算法精度,谁就有产品竞争力。

工程上,GPU上的模型推理,业界主流使用TensorRT去加速,一方面极大提高推理速度(主要目的),另一方面减少显存等等。

1.2 tensorRT 原理

TensorRT主要做了两件事:

  1. TensorRT支持INT8和FP16的计算。模型训练通常使用float32或16,TRT推理时可以选择不用这么高精度。
  2. TensorRT对网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU的特性做了优化。

待续

2 tensorRT 真实情况下的效果

关于tensorRT到底能加速多少,除了与加速原理相关(如某些网络模块加速幅度更快),这个一般好像还得看运气,实际上挺多因素有影响。

参考1:速度提升100%——『深度应用』YoloV5 RTX2080Ti TensorRT与PyTorch速度对比

参考2:

参考3:

3 tensorRT实现的几种方案

3.1 方案1:基于TensorFlow内置的TensorRT

自TensorFlow 1.7后,TensorFlow已经集成TensorRT了(Google和NVIDIA的合作)。

3.2 方案2:基于TensorRT自身语法

一般将其他框架模型转成ONNX格式,然后使用TensorRT自身语法去加载并推理ONNX模型。

此方案一个比较好的参考资料:wang-xinyu/tensorrtx (几十个主流算法的tensorRT实现

4 tensorRT技术未来趋势预估

待续

上一篇:Nvidia-smi报错NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver.


下一篇:Nvidia Jetson Xavier刷机以及系统迁移至SSD