太详细了!CUDA与TensorRT入门资料汇总

作者 | 汽车人  编辑 | 自动驾驶与AI

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【模型部署】技术交流群

本文只做学术分享,如有侵权,联系删文

cuda与tensorrt是CV领域模型部署的必备,自动驾驶之心为大家整理了cuda与tensorrt常见入门资料,希望能够帮助到大家!

所有内容出自:基于TensorRT的CNN/Transformer/检测/BEV模型四大部署实战教程,欢迎扫码学习!

abd78fada50a462d06589a0b2a0fcf64.png

PS. 点击上方链接领取开课优惠券,仅限三天!即将恢复原价!

1)计算机组成原理与硬件相关

有关Tensor Core和CUDA Core

● 一个比较早期的Tensor Core的官方Blog:https://developer.nvidia.com/blog/programming-tensor-cores-cuda-9/
○ 注意,这里介绍的Tensor Core还是一代,现在的Tensor Core已经是三代了,通过这个文章看一下Tensor Core做矩阵计算跟CUDA Core的区别
● 比较新的Tensor Core的文章:○https://www.nvidia.com/en-us/data-center/tensor-cores/
○ 从这里面的动画去理解Tensor Core和CUDA Core的区别
● 有余力的去调查一下dataflow architecture是什么东西

Roofline Model相关

● 有关Roofline model最好直接看论文:Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures
● 读论文的时候有关键词不懂就直接查一下,这篇论文内容很浓。读懂了就很厉害了
● 有余力,参考一个Ampere架构的GPU,计算它的Roofline Model中的各个指标
● 再有余力,手动计算1x1 conv, 3x3 conv, 5x5 conv的计算密度是多少,以及在Roofline model中的哪个位置

2)TensorRT模型部署优化相关

TensorRT相关

  • 介绍TensorRT最全面的还是看它的官网会比较好:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html

  • 能够把这里的知识点全部都搞懂的话就很厉害了,差不多TensorRT的理论基础就打好了

量化相关

● 先对整体有个粗略的概念。依然看官方的Blog会好一点:https://developer.nvidia.com/blog/achieving-fp32-accuracy-for-int8-inference-using-quantization-aware-training-with-tensorrt/
○ 理解FP32和INT8是什么,为什么会掉精度,如何才能不掉精度。calibration是什么,为什么需要calibration
○ 粗略的理解QAT是什么,PTQ是什么
● TensorRT中对量化的优化技巧,依然推荐官方文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#working-with-int8
○ 这里第一次看容易看不懂,所以课程里会详细分析
○ 有余力去理解一下QDQ相关的节点在TensorRT中是如何融合的
● 这里参考几篇阅读文章

  1. INTEGER QUANTIZATION FOR DEEP LEARNING INFERENCE: PRINCIPLES AND EMPIRICAL EVALUATION
    ■ 这个是NVIDIA出的。可以对量化有个大体的概念
    ■ 理解Max, Entropy, Percentile这三种Calibration的区别是什么

  2. Quantizing deep convolutional networks for efficient inference: A whitepapr
    ■ 这是Google在2018年发的有关量化的文章,可以看看Google是如何量化的
    ■ 作为参考阅读就okay了

  3. A White Paper on Neural Network Quantization
    ■ Qualcomm在2021年发表的量化的文章,作为参考学习一下

剪枝相关

● 对Sparse pruning有个大体的概念就okay了,推荐读官方Blog:https://developer.nvidia.com/blog/accelerating-inference-with-sparsity-using-ampere-and-tensorrt/
● 理解一下剪枝大体分类可以分为几种。每一种适合什么情况
● 余力的去理解一下结构化剪枝和非结构化剪枝的区别,并考虑哪种对硬件更友好
● 有余力的去理解一下vector-wise sparse prunning是什么,为什么是4:2
● 再有余力的去思考一下,为什么sparse prunning需要有特定硬件去支持

Receiptive field相关

● 这个也是直接先读论文:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks,这里面讲的Receptive Field很重要。但更重要的是Effective Receptive Field。理解这两者的区别
● 可以考虑一下,从模型部署的性能友好出发去考虑,什么样子的模型架构可以又最大化的利用计算资源,同时又能够最大化Effective Receptive Field。同时考虑一下CNN和Transformer在Effective Receptive Field上的区别,从根本上思考为什么Transformer相比于CNN的优势在哪里
● 有余力,自己做一个小程序,来计算ResNet或者VGG的Receiptive field和Effective receiptive field是如何变化的

3)编程相关

并行处理相关

● 这里没有推荐的学习资料,但是介绍一些C/C++的关键字大家学习一下
○ pthread, std::thread, openmp的写法
○ 其他的一些有关并行的基本概念(比如lock, barrier这些)理解一些
○ 还有一些C++multi-thread编程要用到的future, promise, conditional variable理解一下
○ 有余力理解一下多线程回调实现异步执行的方法

C++相关

● 由于课程中使用的部署代码以及TensorRT API都是用C++,所以需要有一定的C++基础
● 所以一些比较基本的C++的概念理解一下
○ 比如说, unique/shared pointer这些智能指针,模版函数与函数模版,C++中的一些关键字(static什么时候用,为什么用static等等),如何使用变参,STL中各类容器的用法,引用和指针的区别,函数重载,虚函数,线程池等等。有不会的知识点可以提前自己调查一下,但最好自己写几个小案例试试手。课程里的案例会直接用。
● Makefile的写法
○ Makefile的基本语法可以先学习一下,比如说如何构建依赖关系,Makefile中批量重命名的方法,Makefile中寻找文件的方法等等
○ gcc/g++/nvcc编译器的比较常用的参数理解一下。比如-O0, -O3是什么,-E, -S, -c 分别是什么,-M, -T是什么等等。
● 编程规范
○ 参考Google的C++编程规范

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码学习)

984ea7a8ccaef00e1637ecb6e1aa5287.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

03ec5e397077149eed02e8544256b37d.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

82151eab23b30b0f90ab5602aabd6be9.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值