cuda、cudnn和tensorrt

cuda、cudnn和tensorrt

cuda、cudnn和tensorrt的关系

CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。CUDA的主要作用是连接GPU 和 应用程序,方便用户通过 CUDA 的 API 调度 GPU 进行计算。

cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。它能将模型训练的计算优化之后,再通过 CUDA 调用 GPU 进行运算.

当然你也可直接使用 CUDA,而不通过 cuDNN ,但运算效率会低好多。因为你的模型训练计算没有优化。

TensorRT是英伟达针对自家平台做的加速包,只负责模型的推理(inference)过程,一般不用TensorRT来训练模型的,而是用于部署时加速模型运行速度。

TensorRT主要做了这么两件事情,来提升模型的运行速度。

  1. TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。
  2. TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU的特性做了优化。现在大多数深度学习框架是没有针对GPU做过性能优化的,而英伟达,GPU的生产者和搬运工,自然就推出了针对自己GPU的加速工具TensorRT。一个深度学习模型,在没有优化的情况下,比如一个卷积层、一个偏置层和一个reload层,这三层是需要调用三次cuDNN对应的API,但实际上这三层的实现完全是可以合并到一起的,TensorRT会对一些可以合并网络进行合并。

https://zh.wikipedia.org/zh-hans/CUDA
https://www.cnblogs.com/qiynet/p/13976600.html
https://www.cnblogs.com/chengbeixfh/p/15901465.html
http://giantpandacv.com/project/部署优化/AI 部署及其它优化算法/TensorRT/一,TensorRT介绍,安装及如何使用?/
https://blog.csdn.net/IAMoldpan/article/details/117908232
https://blog.csdn.net/weixin_42111770/article/details/114336102

posted @ 2022-10-28 17:09  michaelchengjl  阅读(713)  评论(0编辑  收藏  举报