环境搭建:硬件要求与软件依赖

说实话,环境搭建这一步,看着简单,但坑是真不少。我见过太多人卡在这一步,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

软件版本这块,我建议你直接看官方兼容性矩阵。但为了方便,我整理了一份经过验证的版本组合:

组件推荐版本说明
CUDA12.1 / 12.411.8也能用,但新特性不支持
cuDNN8.9.7+必须与CUDA版本匹配
TensorRT10.0.1+TensorRT-LLM 0.10.0+ 要求此版本
TensorRT-LLM0.10.0 / 0.11.0建议用最新稳定版
Python3.10 / 3.113.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就解决了。你想想看,大模型推理时,进程间通信需要大量共享内存,这个坑一定要注意。

知识体系总览

下面这张图,是我梳理的环境搭建核心逻辑。你照着这个思路走,基本不会乱:

TensorRT-LLM 环境搭建核心流程 硬件层 GPU型号 + 显存 驱动层 NVIDIA Driver + CUDA 软件层 cuDNN + TensorRT 容器层(推荐) Docker镜像构建(官方镜像 / 自定义Dockerfile) 应用层 TensorRT-LLM 模型部署与推理 ⚠️ 版本兼容性检查:CUDA驱动 ≥ CUDA Toolkit,cuDNN与CUDA版本匹配

说白了,环境搭建就是一层叠一层。硬件是地基,驱动是框架,软件是砖块,容器是装修。哪一层出问题,上面都跑不起来。

💡 最后一个小建议

如果你是在云服务器上部署,比如AWS的p4d实例或阿里云的gn7实例,镜像基本都预装了CUDA和驱动。你只需要拉TensorRT-LLM镜像就行,省不少事。


公众号:蓝海资料掘金营,微信deep3321