环境搭建:硬件要求与软件依赖
说实话,环境搭建这一步,看着简单,但坑是真不少。我见过太多人卡在这一步,GPU驱动版本不对、CUDA和TensorRT版本打架、Docker镜像跑不起来……折腾一整天,还没开始部署就心态崩了。
今天我就把这块掰开揉碎了讲清楚。你跟着我的节奏走,基本不会出问题。
硬件要求:GPU型号与显存
先聊硬件。TensorRT-LLM这玩意儿,对GPU是有门槛的。
支持的GPU架构
- Ampere架构(RTX 30系列、A100、A30、A10)
- Ada Lovelace架构(RTX 40系列、L40、L4)
- Hopper架构(H100、H200)
- Blackwell架构(B100、B200)——最新支持
注意,Volta架构(V100)和Turing架构(RTX 20系列、T4)虽然也能跑,但性能会打折扣。我个人建议,生产环境至少用A10或A100起步。
显存需求
显存这事儿,我直接给你一个经验公式:
模型参数量(B)× 2(FP16) × 1.2(KV Cache等开销) ≈ 所需显存(GB)
举个例子:
| 模型规模 | 推荐显存 | 实际案例 |
|---|---|---|
| 7B模型 | 16GB+ | RTX 4080、A10 |
| 13B模型 | 24GB+ | RTX 4090、A100 40GB |
| 70B模型 | 80GB+ | A100 80GB、H100 |
| 130B+模型 | 多卡并行 | 4×A100或8×A100 |
⚠️ 避坑提醒
我曾经在项目里用RTX 3090跑13B模型,以为24GB显存够了。结果KV Cache一开,直接OOM。后来才发现,批量推理和长序列场景下,显存消耗会翻倍。建议留出30%的余量。
软件依赖:CUDA、cuDNN、TensorRT
软件版本这块,我建议你直接看官方兼容性矩阵。但为了方便,我整理了一份经过验证的版本组合:
| 组件 | 推荐版本 | 说明 |
|---|---|---|
| CUDA | 12.1 / 12.4 | 11.8也能用,但新特性不支持 |
| cuDNN | 8.9.7+ | 必须与CUDA版本匹配 |
| TensorRT | 10.0.1+ | TensorRT-LLM 0.10.0+ 要求此版本 |
| TensorRT-LLM | 0.10.0 / 0.11.0 | 建议用最新稳定版 |
| Python | 3.10 / 3.11 | 3.12部分库不兼容 |
嗯,这里要注意:CUDA驱动版本必须大于等于CUDA Toolkit版本。我见过有人装了CUDA 12.4 Toolkit,但驱动还是525,结果跑起来各种报错。
检查驱动版本的命令:
nvidia-smi # 查看驱动版本和CUDA版本
nvcc --version # 查看CUDA Toolkit版本
💡 我的小技巧
如果你不确定该装哪个版本,直接上CUDA 12.4 + cuDNN 9.0 + TensorRT 10.2。这套组合我最近几个项目都在用,稳得很。
Docker镜像构建
说实话,我强烈建议你用Docker。为什么?因为环境依赖太复杂了,手动装一遍至少半小时,而且不同机器上还容易出幺蛾子。
官方镜像
NVIDIA官方提供了TensorRT-LLM的Docker镜像,这是最省事的方式:
# 拉取官方镜像
docker pull nvidia/cuda:12.4.0-devel-ubuntu22.04
# 或者直接用TensorRT-LLM的预构建镜像
docker pull ghcr.io/nvidia/tensorrt-llm:latest
自定义Dockerfile
我个人习惯自己写Dockerfile,因为可以按需裁剪。下面是我常用的模板:
FROM nvidia/cuda:12.4.0-devel-ubuntu22.04
# 安装基础依赖
RUN apt-get update && apt-get install -y \
python3 python3-pip git wget \
libopenmpi-dev openmpi-bin \
&& rm -rf /var/lib/apt/lists/*
# 安装Python依赖
RUN pip3 install --upgrade pip && \
pip3 install torch==2.3.0 \
tensorrt==10.2.0 \
tensorrt-llm==0.11.0
# 设置工作目录
WORKDIR /workspace
构建与运行
# 构建镜像
docker build -t trt-llm-env:latest .
# 运行容器(挂载模型和代码)
docker run --gpus all -it --rm \
-v /path/to/models:/models \
-v /path/to/code:/workspace \
trt-llm-env:latest
🔑 关键参数说明
--gpus all:让容器访问所有GPU-v:挂载目录,方便模型和代码共享--shm-size=32g:如果跑大模型,建议加大共享内存
我曾经在项目里遇到一个问题:Docker容器里跑模型,总是报共享内存不足。后来发现默认的shm-size只有64MB,改成32GB就解决了。你想想看,大模型推理时,进程间通信需要大量共享内存,这个坑一定要注意。
知识体系总览
下面这张图,是我梳理的环境搭建核心逻辑。你照着这个思路走,基本不会乱:
说白了,环境搭建就是一层叠一层。硬件是地基,驱动是框架,软件是砖块,容器是装修。哪一层出问题,上面都跑不起来。
💡 最后一个小建议
如果你是在云服务器上部署,比如AWS的p4d实例或阿里云的gn7实例,镜像基本都预装了CUDA和驱动。你只需要拉TensorRT-LLM镜像就行,省不少事。
公众号:蓝海资料掘金营,微信deep3321