TensorRT & CUDA 调试技巧
📘
30章 实战精讲
⚙️
1
01
TensorRT基础认知
什么是TensorRT,为什么需要它,以及它在AI推理中的核心地位。
2
02
CUDA编程回顾
CUDA线程模型、内存层次结构、核函数编写基础。
3
03
环境搭建与工具链
CUDA Toolkit、cuDNN、TensorRT的安装与版本匹配。
4
04
ONNX模型导出
从PyTorch/TensorFlow导出ONNX,常见踩坑点。
5
05
TensorRT模型构建
使用ONNX Parser构建网络,配置Builder、Network、Config。
6
06
Engine序列化与反序列化
将优化后的Engine保存为.plan文件,并加载推理。
7
07
动态形状支持
配置动态Batch Size与动态输入尺寸,处理变长输入。
8
08
FP16与INT8量化
原理介绍,校准器使用,精度损失分析与调优。
9
09
TensorRT插件开发
自定义Layer,实现TensorRT不支持的算子。
10
10
CUDA Stream与异步推理
多流并发,提升GPU利用率。
11
11
CUDA内存管理
cudaMalloc、cudaMemcpy、统一内存、内存池。
12
12
CUDA错误检查
cudaGetLastError、同步与异步错误捕获。
13
13
Nsight Systems性能分析
时间线视图,定位CPU/GPU瓶颈。
14
14
Nsight Compute内核分析
Occupancy、带宽、指令级优化。
15
15
TensorRT Profiling
使用IProfiler逐层分析耗时。
16
16
CUDA Graph捕获与重放
将推理过程捕获为Graph,减少Kernel Launch开销。
17
17
多线程推理服务
线程安全、线程池设计、请求队列。
18
18
内存带宽优化
数据对齐、合并访问、共享内存使用。
19
19
算子融合与图优化
TensorRT自动融合策略,手动干预技巧。
20
20
调试常见崩溃
段错误、非法内存访问、CUDA error unknown。
21
21
精度调试
逐层对比TensorRT与原始框架输出,定位精度异常层。
22
22
日志与断言
TensorRT日志级别控制,自定义Assertion。
23
23
GDB与CUDA-GDB
调试Device端代码,设置断点查看变量。
24
24
cuda-memcheck与compute-sanitizer
检测内存越界与未初始化。
25
25
性能基准测试
编写Benchmark脚本,测量延迟与吞吐量。
26
26
多GPU负载均衡
使用CUDA Visible Devices,手动分配任务。
27
27
TensorRT与DeepStream集成
在视频分析流水线中使用TensorRT。
28
28
容器化部署
使用NVIDIA Docker,确保环境一致性。
29
29
常见错误码解析
TensorRT Error Code与CUDA Error Code对照表。
30
30
综合案例实战
从模型导出到高性能服务部署的全流程演练。