深度神经网络加速:cuDNN 与 TensorRT
内容精简:主讲TensorRT推理部署原理与实践
知识前沿:涵盖当下主流的深度学习模型加速工具
氛围活跃:与数百位同学交流学习
- 本课程包括:
- 3个月群内答疑,讲师助教及时解答
- 课程有效期为1年,建议合理规划学习
- 课程配有作业练习,助教一对一批改
- 班主任带班,严格督学,告别拖延
- 根据学习情况颁发结业证书、优秀学员证书
杨伟光
原腾讯高级研究员,大连理工大学硕士,毕业后一直在腾讯从事语音领域深度学习加速上线工作。近10年CUDA开发经验,近5年TensorRT 开发经验,Github TensorRT_Tutorial作者。
康博
高级研究员,主要方向为自然语言处理、智能语音及其在端侧的部署。博士毕业于清华大学,在各类国际AI会议和刊物中发表论文10篇以上,多次获得NIST主办的国际比赛top2成绩。近年来主要研究方向为AI在场景中的落地应用。
深度学习算法商业化落地时都需要进行加速,尤其是在安防、无人驾驶环境感知等对算法速度要求较高的场景中。因此CUDA编程已成为当下AI工程师们的重要技能。尽管NVIDIA推出了CUDA,cuDNN以及TensorRT的官方文档,但对于入门者并不友好,学习效率比较低。因此,我们制作了这门课程,希望大家通过这门课程的学习,能够具备CUDA编程操作能力,使用cuDNN、TensorRT这两个当下热门的深度神经网络加速工具。
课程目标
目标 O1
GPU并行编程相关理论与CUDA C编程
- 理解GPU并行编程的理论和概念
- 学习如何通过CUDA C编写可在GPU上运行的并行程序
目标 O2
GPU并行编程的相关技术及实践
- 学习并行计算的线性代数库cuBLAS和神经网络库cuDNN
- 掌握现有的并行计算库使用流程,搭建自己的网络架构
目标 O3
深度学习推理库TensorRT的实践与应用
- 掌握TensorRT推理框架的应用场景和实践技术栈
- 完成网络架构的开发与设计工作
- 编写第三方插件,满足场景中的个性化需求
课程脉络
-
01
1
首先了解GPU的基本架构和特点,为什么要使用GPU进行并行化的加速;学习基础的CUDA C语法,使用CUDA语言编写一个简单的例子,通过例子的实际运行,直观感受GPU加速的魅力
-
02
2
接着学习NVIDIA官方提供的矩阵运算库cuBLAS,深度神经网络基元库cuDNN和深度学习推理框架TensorRT,通过调用官方的高度优化的库,快速的搭建自己的网络架构和部署在线推理引擎
-
03
3
最后通过贯穿课程后半部分的一个实践大作业BERT与ViT模型,练习如何通过主流深度学习框架导出模型,如何将模型转换为TRT格式,如何通过plugin的形式编写自己的算子,完成BERT或者ViT模型完整的构建;学习通过量化模型,压缩数值类型精度的方式加速模型的在线推理
课程大纲
-
第1章:CUDA C编程及GPU基本知识
本节课将带领大家认识GPU的基本架构和CUDA C编程的基本语法,以及如何编写一些简单的GPU并行代码。
-
第2章:CUDA C编程:矩阵乘法
运用CUDA C编程完成矩阵乘法的GPU实现,通过该例子体会GPU编程的思想,并直观感受GPU加速后的运行效率。
-
第3章:CUDA Stream 和 Event
学习如何通过CUDA Stream将主机上的多个核函数(kernel)进行某种顺序的排序;学习CUDA Event如何控制同步,包括CPU/GPU的同步,GPU上不同engine的同步和GPU之间的同步。
-
第4章:cuDNN与cuBLAS
学习NVIDIA官方提供的GPU加速深度神经网络基元库(cuDNN),感受官方实现的高度优化的标准网络组件(如前向和反向卷积、池化层、归一化层和激活层);学习了解NVIDIA官方提供的矩阵运算库cuBLAS。
-
第5章:TensorRT介绍
学习NVIDIA官方提供的深度学习推理SDK-TensorRT。学习TRT提供的API,掌握如何通过……
学习收获
- 1掌握CUDA并行计算系统的分析、开发、调试与优化方法
- 2熟悉CUDA的基本概念以及主流的并行运算
- 3了解cuDNN与TensorRT两个深度学习模型加速的主流工具
- 4具备动手实践深度学习模型的加速的能力
- 课程适合谁学习
- 人工智能领域的算法或者开发工程师,尤其是工作涉及深度学习的模型
- 希望学习并行计算系统的科研工作者以及工程师
- 课程所需的基础知识
- 计算机体系结构基础
- 深度学习基础
- 线性代数
- C语言编程基础
全方位的学习服务
个性化增值服务,学习有保障更高效
-
作业批改
作业批改 助教1V1批改作业,定期针对作业中的“通病”进行点评
-
结业证书
结业证书 本课程将根据作业完成情况评选结业学员及优秀学员,颁发证书
-
实时答疑
实时答疑 讲师微信群答疑,及时解决大家遇到的问题
-
班班督学
班班督学 班主任全程带班,不定时“关照”未交作业的同学,克服拖延
- 1:【开课仪式】
- 2-1:【视频】CUDA & TensorRT 保姆级安装教程
- 2-2:【课件】CUDA & TensorRT 保姆级安装教程
- 2-3:Ubuntu下环境配置手册
- 2-4:【视频】如何获得免费的GPU服务器资源
-
第1章: CUDA C编程及GPU基本知识 4节课程1篇阅读材料·1次作业·1小时4分钟
本章节将带领大家认识GPU的基本架构和CUDA C编程的基本语法,以及如何编写一些简单的GPU并行代码。
-
第1节: GPU基本架构及特点
- 3-1:【课件】CUDA C编程及GPU基本知识
- 3-2:【视频】CPU与GPU的基础知识
-
第2节: CUDA C编程基本知识
- 4:【视频】CUDA编程的重要概念
-
第3节: 并行计算向量相加
- 5:【视频】并行计算向量相加
-
第4节: 实践
- 6-1:【代码】Demo I
- 6-2:【视频】实践向量相加
- 6-3:【作业】第一章
- 6-4:【作业讲解】作业1思路讲解
-
第2章: CUDA C编程:矩阵乘法 5节课程1篇阅读材料·1次作业·1小时10分钟
运用CUDA C编程完成矩阵乘法的GPU实现,通过该例子体会GPU编程的思想,并直观感受GPU加速后的运行效率。
-
第1节: 为什么矩阵乘法适合GPU实现
- 7-1:【课件】CUDA C编程:矩阵乘法
- 7-2:【视频】为什么矩阵乘法适合GPU实现
-
第2节: 矩阵乘法的GPU基础实现
- 8:【视频】矩阵算法GPU实现
-
第3节: 矩阵乘法GPU进阶实现
- 9:【视频】矩阵乘法的GPU进阶实现
-
第4节: 代码实践
- 10-1:【代码】MatrixMultiple
- 10-2:【视频】CUDA矩阵乘法实践
-
第5节: 作业题目
- 11-1:【视频】作业题目
- 11-2:【作业】第二章
- 11-3:【作业讲解】作业2思路讲解
-
第3章: CUDA Stream 和 Event 6节课程·52分钟
学习如何通过CUDA Stream将主机上的多个核函数(kernel)进行某种顺序的排序;学习CUDA Event如何控制同步,包括CPU/GPU的同步,GPU上不同engine的同步和GPU之间的同步。
-
第1节: CUDA Stream介绍
- 12-1:【课件】CUDA C编程:cuda stream and envet
- 12-2:【视频】CUDA Stream介绍
-
第2节: CUDA Stream为什么有效
- 13:【视频】CUDA Stream为什么有效
-
第3节: CUDA Stream 默认流的表现
- 14:【视频】CUDA Stream默认流的表现
-
第4节: CUDA Event
- 15:【视频】CUDA Event
-
第5节: CUDA 同步操作
- 16:【视频】CUDA 同步操作
-
第6节: NVVP工具演示
- 17:【视频】NVVP
-
第4章: cuDNN与cuBLAS 4节课程·1小时26分钟
学习NVIDIA官方提供的GPU加速深度神经网络基元库(cuDNN),感受官方实现的高度优化的标准网络组件(如前向和反向卷积、池化层、归一化层和激活层);学习了解NVIDIA官方提供的矩阵运算库cuBLAS。
-
第1节: 课程回顾
- 18-1:【课件】CUDA C编程:卷积实现与cudnn、cublas
- 18-2:【视频】课程回顾
-
第2节: cuBLAS
- 19:【视频】cuBLAS
-
第3节: cuDNN
- 20-1:【代码】conv_cudnn
- 20-2:【视频】cuDNN
-
第4节: 实践
- 21:【视频】实践卷积神经网络
-
第5章: TensorRT介绍 7节课程1篇阅读材料·1次作业·1小时10分钟
学习NVIDIA官方提供的深度学习推理SDK——TensorRT,学习TRT提供的API,掌握如何通过TRT的解析器来解析主流深度学习框架训练的模型,并通过一个例子直观感受一个pt模型或onnx模型如何部署在优化运行时引擎。
-
第1节: TensorRT是什么
- 22-1:【课件】TensorRT介绍
- 22-2:【视频】TensorRT是什么
-
第2节: TensorRT整体工作流程与优化策略
- 23:【视频】TensorRT优化策略
-
第3节: TensorRT的组成与基本使用流程
- 24:【视频】TensorRT使用的基本流程
-
第4节: TensorRT demo:SampleMNIST
- 25:【视频】demo
-
第5节: TensorRT进阶
- 26:【视频】TensorRT进阶
-
第6节: Demo演示
- 27:【视频】Demo演示
-
第7节: 作业实践(建议学完第7章再完成)
- 28:【资料】BERT学习资料
- 29-1:【作业】第五章
- 29-2:第五章作业思路
- 29-3:【视频】如何获得免费的GPU资源
- 第6章: BERT和ViT优化推理实践 1节课程
-
第1节: BERT和ViT优化推理实践
- 30:【实践1】project BERT-TensorRT推理优化
- 31:【实践2】project ViT-TensorRT推理优化
-
第7章: TensorRT 转换 ONNX模型 6节课程·1小时30分钟
模型推理时,主流深度学习框架训练的模型通常转成ONNX格式,再根据需要转成TRT。这一章节将首先介绍ONNX格式,然后重点讲解ONNX格式转换成TRT时的主要痛点(API难用、支持算子不全、调试难度大等),以及针对这些痛点的解决方案。
-
第1节: ONNX 介绍
- 32-1:【课件】L6 TensorRT 转换 ONNX模型 v2.0.pdf
- 32-2:【视频】ONNX介绍
-
第2节: 背景知识
- 33-1:【视频】背景知识 lower概念
- 33-2: 【视频】背景知识 Myelin
-
第3节: TRT转换模型的主要痛点
- 34:【视频】TRT转换模型的主要痛点
-
第4节: onnx-parser & onnx-graphsurgen
- 35:【视频】onnx-parser & onnx-graphsurgen
-
第5节: 实践
- 36-1:【视频】实践上:Transformer模型优化 解决不支持的算子
- 36-2:【视频】 实践下:Transformer模型优化 合并LayerNorm算子
-
第6节: polygraphy
- 37:【视频】 polygraphy
-
第8章: TensorRT plugin用法 6节课程1篇阅读材料·1次作业·1小时4分钟
当TensorRT官方不支持某些算子时,学习如何根据TRT给出的接口编写自定义的plugin插件,并作为一个计算节点插入到TensorRT构造的计算图中。
-
第1节: Plugin介绍
- 38-1:【课件】TensorRT plugin用法
- 38-2:【视频】plugin介绍
-
第2节: Static Shape Plugin
- 39:【视频】Static Shape Plugin API & Demo
-
第3节: Dynamic Shape Plugin
- 40:【视频】Dynamic Shape Plugin API & Demo
-
第4节: PluginCreator注册
- 41:【视频】PluginCreator注册
-
第5节: 延伸:TensorRT如何debug
- 42:【视频】Debug Plugin经验
-
第6节: 实践作业
- 43-1:【作业】第六章
- 43-2:【代码】作业代码
- 43-3:第六章作业思路
-
第9章: TensorRT量化加速 3节课程1篇阅读材料·1次作业·2小时11分钟
学习如何将模型的浮点计算转成低比特位计算的技术,通过降低模型计算时的浮点精度,在保证模型推理精度下降一点点的情况下,大幅度提高模型的推理速度。
-
第1节: TRT FP16优化
- 44-1:【课件】TensorRT INT8量化加速
- 44-2:【视频】TRT FP16优化
-
第2节: TRT INT8量化算法
- 45-1:【视频】TRT INT8量化算法(上)
- 45-2:【视频】TensorRT INT8量化算法(下)
-
第3节: TRT大规模上线经验
- 46-1:【视频】TRT大规模上线
- 46-2:【作业】第七章
- 46-3:第七章作业思路提示
- 47-1:六七章思路提示-详细文档
- 47-2:【视频】六七章BERT方向作业代码讲解
- 47-3:【视频】6,7章作业(ViT方向)代码梳理
-
第10章: 模型推理经验 4节课程·1小时4分钟
内容以经验分享为主,讲师将5年多深度神经网络加速的工程经验凝练为该章节的内容,主要包括模型转换不同方式的优缺点、TRT测试与调优的技巧,以及模型加速的上限分析。
-
第1节: 转换方式比较
- 48-1:【课件】模型推理经验
- 48-2:【视频】转换方式比较
-
第2节: TRT如何测试并调优
- 49:TRT如何测试并调优
-
第3节: CUDA与TRT的调试建议
- 50-1:【视频】CUDA与TRT的调试建议
- 50-2:【视频】CUDA与TRT的调试建议 并行思维锻炼
-
第4节: 模型可以加速到什么程度
- 51:【视频】模型可以加速到什么程度
- 第11章: 补充知识 1节课程·34分钟
-
第1节: 实践
- 52-1:【视频】实践上:Transformer模型优化 解决不支持的算子
- 52-2:【视频】 实践下:Transformer模型优化 合并LayerNorm算子
- 第12章: 新增实践作业 1篇阅读材料·1次作业
- 53-1:【作业说明】TRT Project:Real-ESRGAN推理优化
- 53-2:【作业】TRT Project:Real-ESRGAN推理优化
- 第13章: 直播答疑 1小时29分钟
- 54:【视频】12月10日直播答疑
课程讨论区
已累计讨论26495个问题
课程配备专属讨论区,不仅有讲师、助教全程答疑,更能与同学们交流讨论,在思维碰撞中加深理解
在课程中随想随问,同学们的问题也可能启发到你
在课程讨论区,和684位同学一起探讨更多问题···
作业批改
已累计批改4951份作业
助教一对一批改作业,定期针对作业中的问题进行评讲
结业证书
课程根据作业完成情况评选结业学员及优秀学员,颁发证书
优秀学员更能获得额外购课优惠
班班督学
班班、助教、讲师全程带班,日常答疑解惑
FAQ
1、课程可以试听吗?
可以,您可以联系客服领取试听内容,根据试听的效果决定是否报名。
2、报名课程后,如果不满意,可以退款吗?
我们承诺: 报名后7天内且学习进度停留在第一章节的内容可以无条件全额退款,若您的学习进度超过第一章或报名时间超过7天将不再支持退款哦。课好不好,学了就知道了!
3、报名课程的费用可以开发票吗?
深蓝学院所有课程都可以开具发票。您可以登录深蓝学院官网(https://www.shenlanxueyuan.com),进入个人“账户中心”,在线申请。
4、报名后怎么开始学习呢?
PC端:登录深蓝学院官网(https://www.shenlanxueyuan.com),进入“个人中心”或“我的课程” 的课程即可开始学习。课程中包含讲师讲解的视频、课件、代码、作业及其它学习资料。建议在PC端学习体验更好。
如果想缓存视频,可下载深蓝学院APP。
5、可以跟讲师直接交流吗?
报名课程后添加课程对应的班主任微信,由其邀请加入微信答疑群。在答疑群内,您可以直接跟讲师和其他同学讨论交流。
报名后在对应的课程详情页,可查看对应的班主任微信。
6、学习形式和学习周期是怎样的?
为保证学习质量方便同学们反复观看,本课程采用录播形式。建议同学们登录深蓝学院PC端官网体验更佳。
7、课程有有效期吗?
为了督促同学们学习,保证学习效率,学院的课程有效期均为一年,当课程有效期截止后将不再支持观看视频、下载课件等课程服务及操作。若同学们依旧想观看视频和下载课件,建议可选择续费本课程。需要提醒大家的是,课程答疑、作业批改&讲评等课程相关服务期从报名加入课程后开始计算至少保证三个月。
8、作业会提供参考答案吗?
不提供参考答案。当每章作业截止提交后,会解锁作业思路讲解。我们希望引导大家培养独立思考的习惯和敢于动手实践的勇气,以便尽快适应实际工作中解决问题的模式。做作业过程中,如果有任何困惑和问题,可以在课程讨论区和交流群内提问解决。
课程预览
深度神经网络加速:cuDNN 与 TensorRT