《CUDA与TensorRT环境搭建速览》

课程导入:学习目标、课程结构与环境搭建整体流程概览

欢迎来到《CUDA与TensorRT环境搭建速览》。在正式动手安装驱动、下载SDK之前,我们先用一节的时间,把整门课程的学习目标、课程结构以及环境搭建的整体流程看清楚。这就像写代码前先画架构图——只有知道每个组件装在哪里、数据如何流动,后续遇到报错时才能快速定位问题,而不是盲目重装系统。

1. 学习目标:你将获得什么能力

完成本课程后,你应当具备以下四项核心能力,它们分别对应实际工作中的四个关键环节:

能力维度 具体表现 对应章节
驱动与CUDA工具包安装 能在Ubuntu 22.04上独立完成NVIDIA驱动、CUDA 12.x、cuDNN的安装与验证 第2~5章
TensorRT部署链路 掌握从ONNX模型到TensorRT引擎的转换流程,能处理动态shape与精度校准 第6~12章
容器化与多环境隔离 熟练使用Docker镜像管理CUDA/TensorRT版本,避免“装坏系统” 第13~18章
性能验证与排障 能使用nvidia-smi、nsys、trtexec等工具定位性能瓶颈与配置错误 第19~25章

请注意,本课程的目标是“能用、够用、可复现”,而不是追求源码级编译或魔改底层。所有操作都以稳定、官方推荐路径为准。

2. 课程结构:三大模块递进

30章内容被划分为三个递进模块,每个模块解决一类问题:

  • 模块A(第1~10章):基础环境构建——从驱动安装到CUDA编程模型验证,重点解决“程序能跑”的问题。你会在这里完成第一个deviceQuery和vectorAdd示例。
  • 模块B(第11~20章):TensorRT部署实战——从ONNX导出到TensorRT引擎序列化,覆盖FP16/INT8精度、动态batch、多流推理。这一模块结束时,你能把一个YOLOv8模型部署为可调用的推理服务。
  • 模块C(第21~30章):容器化与性能调优——Docker镜像封装、CI/CD集成、Nsight分析、常见错误速查表。这一模块面向生产环境,解决“稳定运行”和“更快”的问题。

三个模块之间是强依赖关系:模块A的CUDA安装路径错误,会导致模块B的TensorRT构建失败;模块B的引擎精度设置不当,模块C的性能数据就失去意义。因此,建议按顺序学习,不要跳章。

3. 环境搭建整体流程概览

整个环境搭建可以抽象为一条单向数据流:硬件 → 驱动 → CUDA运行时 → 深度学习框架 → 模型转换 → TensorRT引擎。每一步都依赖前一步的正确性,且每一步都有对应的验证命令。下面这张图展示了完整的流程与关键验证点:

CUDA与TensorRT环境搭建整体流程 ① 硬件检查 GPU型号 / 显存 驱动兼容性 ② NVIDIA驱动 nvidia-smi 验证 驱动版本 ≥ CUDA要求 ③ CUDA工具包 nvcc -V 验证 deviceQuery 示例 ④ cuDNN 库文件路径配置 版本匹配检查 ⑤ 深度学习框架 PyTorch / ONNX torch.cuda.is_available() ⑥ 模型转换 ONNX导出 / 简化 动态轴设置 ⑦ TensorRT trtexec 构建引擎 FP16/INT8 精度 ⑧ 推理部署 TensorRT API调用 性能测试 / 优化 关键验证命令速查 nvidia-smi → 驱动与GPU状态 nvcc -V → CUDA编译器版本 python -c "import torch; print(torch.cuda.is_available())" trtexec --help → TensorRT工具可用性 ⚠ 常见误区: 驱动版本过旧导致CUDA运行时“找不到设备”;cuDNN路径未加入LD_LIBRARY_PATH导致推理时崩溃。

图中红色虚线框内是每一步的“验收标准”。请记住一个原则:前一步没有通过验证,绝不进入下一步。例如,如果nvidia-smi无法显示GPU信息,那么后续安装CUDA工具包大概率会失败,即使装上了,deviceQuery也会报错。

4. 典型场景与误区复盘

场景一:新购GPU工作站。你拿到一台预装Ubuntu 22.04的机器,显卡是RTX 4090。此时最稳妥的路径是:先通过apt或官网安装驱动,然后使用runfile方式安装CUDA 12.2(注意选择与驱动匹配的版本),最后用deviceQuery验证。很多初学者会直接使用pip install torch,然后发现PyTorch自带的CUDA运行时与系统驱动不匹配,导致torch.cuda.is_available()返回False。

场景二:容器化部署。在Docker容器中,你不需要安装驱动,但必须通过--gpus all参数将宿主机的GPU暴露给容器。此时容器内的CUDA版本必须与宿主机驱动兼容。一个常见的错误是:宿主机驱动是535,但容器内使用了CUDA 11.8(要求驱动≥520),虽然能启动,但运行TensorRT时会出现CUDA_ERROR_INSUFFICIENT_DRIVER。

本节最重要的三个认知:
  1. 驱动是地基——CUDA、cuDNN、TensorRT都依赖驱动提供的内核模块,驱动版本决定了你“能装什么”。
  2. 验证命令是导航——每一步都有对应的验证命令,不要凭“感觉”认为装好了。
  3. 版本匹配是生命线——CUDA、cuDNN、TensorRT、PyTorch四者之间存在严格的版本兼容矩阵,后续章节会反复强调。

在接下来的第2章中,我们将从硬件检查开始,逐步搭建你的第一个CUDA开发环境。请确保你的机器满足最低要求:NVIDIA GPU(建议显存≥8GB)、Ubuntu 20.04/22.04、至少50GB空闲磁盘空间。准备好后,我们进入驱动安装环节。