3. 环境搭建与安装:硬件要求、软件依赖与部署验证

说实话,环境搭建这一步,往往是整个项目里最磨人的环节。我见过不少团队,模型选好了,代码写好了,结果卡在环境上折腾了两三天。所以这一章,咱们把硬性条件和软性依赖一次讲透。

3.1 硬件要求:GPU、显存与驱动

先聊硬件。TensorRT-LLM 对 GPU 的要求,说白了就是「越新越好,显存越大越好」。我个人习惯把 GPU 分成三个梯队:

梯队 推荐型号 显存要求 适用场景
入门级 RTX 4090 / RTX 6000 Ada 24GB - 48GB 7B 以下模型推理、小批量测试
进阶级 A100 80GB / A800 80GB 13B - 70B 模型推理、FP8 量化
旗舰级 H100 / H200 / B200 80GB - 141GB 70B+ 模型、大规模部署、训练推理一体

核心原则:显存大小决定了你能跑多大的模型。以 Llama 2 70B 为例,FP16 精度下模型权重就需要 140GB 显存。就算用 INT4 量化,也得 35GB 左右。所以别想着用 24GB 的卡跑大模型——我试过,跑不起来。

驱动方面,我建议直接用 NVIDIA 官方的 R550 或更新版本的驱动。为什么?因为新驱动对 CUDA 12.x 的支持更稳定。我曾经在 R525 驱动上踩过坑,编译 TensorRT-LLM 时各种报错,换了 R550 就一切正常了。

避坑指南:不要用系统自带的 Nouveau 开源驱动。一定要装 NVIDIA 官方闭源驱动。检查方法很简单:运行 nvidia-smi,如果能看到 GPU 信息,说明驱动装好了。

3.2 软件依赖:CUDA、cuDNN、TensorRT

软件依赖这块,版本匹配是重中之重。我见过最典型的错误,就是 CUDA 11.8 配 TensorRT 9.0——编译直接报错。记住一个原则:TensorRT-LLM 的版本决定了你该用什么 CUDA 和 cuDNN

以当前最新的 TensorRT-LLM v0.10.0 为例,推荐的依赖版本如下:

组件 推荐版本 备注
CUDA 12.1 / 12.4 建议用 12.1,兼容性最好
cuDNN 8.9.7 / 9.1.0 跟 CUDA 版本走
TensorRT 9.2.0 / 10.0.0 必须跟 TensorRT-LLM 版本匹配
Python 3.10 / 3.11 3.12 目前支持不太好

我的习惯:先装 CUDA,再装 cuDNN,最后装 TensorRT。顺序别搞反了。装完记得把 /usr/local/cuda/bin 加到 PATH 里,把 libcudnn.so 的路径加到 LD_LIBRARY_PATH 里。

3.3 源码编译与 Docker 镜像安装

安装方式有两种:源码编译和 Docker 镜像。我个人更推荐 Docker 方式,省心。但如果你需要定制化编译选项,那就得走源码编译了。

3.3.1 源码编译

源码编译其实不复杂,但耗时长。我编译一次大概要 30-40 分钟。步骤如下:

# 1. 克隆仓库
git clone https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM

# 2. 初始化子模块
git submodule update --init --recursive

# 3. 编译(以 CUDA 12.1 为例)
make -j$(nproc) CUDA_VERSION=12.1

# 4. 安装 Python 包
pip install build/tensorrt_llm-*.whl

注意:编译时如果报 nvcc fatal: Unknown option -std=c++17,说明你的 CUDA 版本太旧了。升级到 CUDA 12.x 就能解决。我当初在这个问题上卡了半小时。

3.3.2 Docker 镜像安装

Docker 方式就简单多了。NVIDIA 官方提供了预编译的 Docker 镜像,拉下来就能用:

# 拉取官方镜像
docker pull nvidia/cuda:12.1.0-devel-ubuntu22.04

# 或者直接用 TensorRT-LLM 的官方镜像
docker pull nvidia/tensorrt-llm:latest

# 启动容器
docker run --gpus all -it --rm \
  -v /path/to/models:/models \
  nvidia/tensorrt-llm:latest /bin/bash

为什么我推荐 Docker?因为环境隔离做得好。你想想看,一个项目用 CUDA 11.8,另一个用 CUDA 12.1,如果都装在同一台机器上,很容易冲突。Docker 容器各玩各的,互不干扰。

小技巧:如果你在公司内网,拉取 Docker 镜像慢,可以配置国内镜像源。在 /etc/docker/daemon.json 里加上 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],重启 Docker 服务即可。

3.4 验证安装

装完了怎么知道对不对?跑几个简单的验证命令就行。我一般按这个顺序检查:

  1. 检查 GPU 驱动:nvidia-smi,能看到 GPU 型号和驱动版本
  2. 检查 CUDA:nvcc --version,确认 CUDA 版本
  3. 检查 cuDNN:运行 python -c "import cudnn; print(cudnn.__version__)"
  4. 检查 TensorRT:python -c "import tensorrt; print(tensorrt.__version__)"
  5. 检查 TensorRT-LLM:python -c "import tensorrt_llm; print(tensorrt_llm.__version__)"

如果以上命令都正常输出,恭喜你,环境搭好了。如果哪一步报错,别慌。我遇到过最多的问题是 libcudnn.so 找不到,解决方法就是把 cuDNN 的 lib 路径加到 LD_LIBRARY_PATH 里。

终极验证:跑一个简单的推理测试。用 TensorRT-LLM 自带的示例脚本,加载一个小模型(比如 GPT-2),生成一段文本。能跑通,说明整个链路没问题。

TensorRT-LLM 环境搭建流程 硬件层:GPU(A100/H100) + 显存(80GB+) + 驱动(R550+) 系统依赖:CUDA 12.1 + cuDNN 8.9.7 + TensorRT 9.2.0 安装方式:源码编译(定制化) / Docker 镜像(推荐) 验证:nvidia-smi → nvcc → import tensorrt_llm → 跑推理测试

这张图把整个环境搭建的流程串起来了。从硬件到系统依赖,再到安装方式,最后验证。每一步都环环相扣。你想想看,如果硬件驱动没装好,后面装 CUDA 也是白搭。所以我的建议是:按顺序来,每一步验证通过再往下走

总结一下:环境搭建没有捷径,但可以少走弯路。硬件选对,版本匹配,按部就班,基本不会出大问题。如果真遇到问题,去 NVIDIA 官方论坛搜一下,大概率有人遇到过。

专注资料整理