01
课程导论与硬件基础
为什么需要GPU推理加速?GPU架构简介(CUDA核心、Tensor Core、显存层次),量化模型推理的挑战与机遇。
导论硬件
02
开发环境搭建
CUDA Toolkit、cuDNN、TensorRT的安装与配置,Docker镜像的使用,验证安装是否成功。
环境CUDA
03
PyTorch模型基础
从零构建一个简单的CNN分类模型(ResNet-18),理解模型定义、前向传播与参数存储。
PyTorchCNN
04
模型量化原理(上)
什么是量化?对称量化 vs 非对称量化,量化参数(scale, zero_point)的计算。
量化原理
05
模型量化原理(下)
量化感知训练(QAT) vs 训练后量化(PTQ),精度损失分析与校准数据集的作用。
QATPTQ
06
PyTorch原生量化工具
torch.quantization模块详解,动态量化、静态量化、量化感知训练的API使用。
torchAPI
07
ONNX模型导出
PyTorch模型转ONNX格式,动态轴与静态轴的设置,ONNX算子兼容性检查。
ONNX导出
08
ONNX Runtime推理
ONNX Runtime的Python API,CPU与GPU后端切换,性能基准测试。
ONNXRuntime
09
TensorRT核心概念
TensorRT的优化流程(层融合、精度校准、内核自动调优),Builder、Engine、Context的关系。
TensorRT核心
10
TensorRT安装与验证
不同系统下的安装指南,trtexec工具的使用,验证TensorRT是否正常工作。
安装trtexec
11
PyTorch转TensorRT(ONNX路径)
使用ONNX作为中间表示,通过trtexec或Python API构建TensorRT引擎。
ONNXTensorRT
12
PyTorch转TensorRT(Torch-TensorRT)
Torch-TensorRT编译器的使用,一行代码加速推理。
Torch-TensorRT编译
13
TensorRT的INT8量化
INT8校准器的选择(直方图、熵校准、最小化均方误差),校准数据集准备。
INT8校准
14
动态形状处理
动态batch与动态输入尺寸的设置,优化策略与性能权衡。
动态形状优化
15
多流推理与并发
CUDA Stream的概念,多线程/多进程并发推理,吞吐量优化。
CUDA Stream并发
16
混合精度推理
FP16与INT8混合使用,精度与速度的平衡,TensorRT中的精度控制。
混合精度FP16
17
模型剪枝与稀疏性
结构化剪枝与非结构化剪枝,NVIDIA的稀疏化技术(2:4稀疏模式),TensorRT对稀疏模型的支持。
剪枝稀疏
18
知识蒸馏辅助量化
教师-学生框架,蒸馏损失函数设计,蒸馏后的模型量化效果提升。
蒸馏量化
19
自定义算子与插件
TensorRT Plugin的开发流程,用C++编写自定义层,注册与调用。
PluginC++
20
推理服务化部署
使用Triton Inference Server部署TensorRT模型,客户端-服务端通信。
Triton部署
21
性能Profiling与调优
NVIDIA Nsight Systems的使用,分析GPU利用率、内核启动开销、显存带宽瓶颈。
Nsight调优
22
显存优化策略
显存池、显存复用、显存碎片整理,减少推理时的显存峰值。
显存优化
23
边缘端GPU部署
Jetson系列设备(Nano、TX2、Xavier)的适配,功耗与性能的平衡。
Jetson边缘
24
多GPU推理
数据并行与模型并行,使用NCCL进行多卡通信,负载均衡策略。
多GPUNCCL
25
量化模型的安全性与鲁棒性
对抗攻击对量化模型的影响,防御策略(输入净化、对抗训练)。
安全鲁棒性
26
端到端实战项目(一)
图像分类模型(ResNet-50)的量化与TensorRT部署,从PyTorch到生产环境。
ResNet-50实战
27
端到端实战项目(二)
目标检测模型(YOLOv8)的量化与推理加速,NMS的GPU实现。
YOLOv8NMS
28
端到端实战项目(三)
自然语言处理模型(BERT)的量化与推理,动态形状与长序列处理。
BERTNLP
29
前沿技术展望
FP8量化、Transformer Engine、大语言模型(LLM)的推理优化(vLLM、TensorRT-LLM)。
FP8LLM
30
课程总结与最佳实践
常见踩坑记录,性能调优checklist,持续学习资源推荐。
总结实践