镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
LLM
TensorRT-LLM
TensorRT-LLM 为用户提供了易于使用的 Python API,用于定义大型语言模型 (LLM) 并构建包含最先进优化的 TensorRT 引擎,以便在 NVIDIA GPU 上高效执行推理。TensorRT-LLM 还包含用于创建执行这些 TensorRT 引擎的 Python 和 C++ 运行时的组件。
0/小时
v1.0

在优云智算 | Compshare上编译TensorRT-LLM(v0.16.0)

准备工作

  • 观察一下现有TensorRT-LLM容器中的系统配置。
  • 截止2025年1月13日,最新版TensorRT-LLM版本是v0.16.0
  • 通过观察该文件
ARG BASE_IMAGE=nvcr.io/nvidia/pytorch
ARG BASE_TAG=24.11-py3
  • 可以看出目前基础容器是nvcr.io/nvidia/pytorch:24.11-py3
  • 再去官网看看这个容器里面的详细信息,官网
  • 下面是24.11-py3对应的系统组件版本 | 组件 | 版本 | | ----------- | ----------- | | Container OS | Ubuntu 24.04 | | CUDA | NVIDIA CUDA 12.6.3 | | cuDNN | 9.5.1.17 | | Python | 3.10 |
  • TensorRT在编译的时候会另外安装,根据下面这个文件,可以看出TensorRT版本需要的是10.7.0.23

在优云智算 | Compshare选择合适的显卡和镜像

  • 需要选择支持cuda12.6的显卡(这个一般由英伟达驱动决定,太老的驱动不支持太高的cuda),或者直接用CPU也可以编译,省钱。
  • 需要选择系统为ubuntu 24.04的镜像
  • 最好python也是3.10
  • 由于平台镜像目前没有显示系统具体信息,我随便选了一个Cuda12.4的镜像,登录后发现系统就是Ubuntu 24.04,且Python是3.10
$ cat /etc/os-release
PRETTY_NAME=Ubuntu 24.04.1 LTS
NAME=Ubuntu
VERSION_ID=24.04
VERSION=24.04.1 LTS (Noble Numbat)
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL=https://www.ubuntu.com/
SUPPORT_URL=https://help.ubuntu.com/
BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/
PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

$ python3 --version
Python 3.10.15

$ nvcc -V
nvcv : NVIDIA(R) cuda compiler driver
copyright (c)2005-2024 NVIDIA corporation
Built on Tue Feb 27 16:19:38_PST_2024
cuda compilation tools, release 12.4,V12.4.99
Build cuda 12.4.r12.4/compiler.33961263_0
安装cuda环境
  1. 下载cuda 12.6.3
wget https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run
  1. 给予可执行权限
chmod +x cuda_12.6.3_560.35.05_linux.run
  1. 正式执行
./cuda_12.6.3_560.35.05_linux.run
  1. 输入accept,然后回车
  2. 按空格勾选或者取消勾选和上下方向键上下移动,只勾选CUDA Toolkit 12.2,其他均取消勾选,然后选中Install即可。
┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Installer                                                              │
│ - [ ] Driver                                                                │
[ ] 560.35.05                                                          │
│ + [X] CUDA Toolkit 12.6[X] CUDA Demo Suite 12.6[X] CUDA Documentation 12.6│ - [ ] Kernel Objects                                                        │
[ ] nvidia-fs                                                          │
│   Options                                                                   │
│   Install                                                                   │
  1. 输入Yes确定。
  2. 再次确认cuda版本,看输出已经是cuda 12.6了
$nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0
  1. 删除安装包(可选)
rm cuda_12.6.3_560.35.05_linux.run
  1. 删除已存在的cuda 12.4(可选)
rm -rf /usr/local/cuda-12.4

安装cudnn+TensorRT

  1. 下载cudnn+nccl+cublas+tensorrt安装脚本
wget https://raw.githubusercontent.com/NVIDIA/TensorRT-LLM/refs/tags/v0.16.0/docker/common/install_tensorrt.sh
  1. (可选)修改这个文件,下载TensorRT的时候增加进度条显示。
    • 修改前
    wget --no-verbose ${RELEASE_URL_TRT} -O /tmp/TensorRT.tar
    
    • 修改后
    wget ${RELEASE_URL_TRT} -O /tmp/TensorRT.tar
    
  2. 给予权限
chmod +x ./install_tensorrt.sh
  1. 执行脚本(中间可能会提示./install_tensorrt.sh: line 109: : No such file or directory,没啥影响,后面补齐就行)
./install_tensorrt.sh
  1. 配置ldconfig,然后lib可以被系统找到
echo /usr/local/tensorrt/lib > /etc/ld.so.conf.d/tensorrt.conf
  1. 确定tensorrt版本是10.7.0
ldconfig -v | grep nvinfer
libnvinfer_vc_plugin.so.9 -> libnvinfer_vc_plugin.so.9.2.0
libnvinfer_dispatch.so.9 -> libnvinfer_dispatch.so.9.2.0
libnvinfer.so.9 -> libnvinfer.so.9.2.0
libnvinfer_plugin.so.9 -> libnvinfer_plugin.so.9.2.0
libnvinfer_lean.so.9 -> libnvinfer_lean.so.9.2.0
  1. 设置环境
echo export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tensorrt/lib:/usr/local/cuda/lib64/ >> /etc/profile

echo export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tensorrt/lib:/usr/local/cuda/lib64/ >> ~/.bashrc

source /etc/profile
source ~/.bashrc
# 测试lib库能否找到
echo ${LD_LIBRARY_PATH}
# 输出结果
# /usr/local/tensorrt/lib:/usr/local/cuda/lib64/
  1. 验证cudnn版本
$ldconfig -v | grep cudnn

libcudnn_heuristic.so.9 -> libcudnn_heuristic.so.9.5.1
libcudnn_graph.so.9 -> libcudnn_graph.so.9.5.1
libcudnn_engines_precompiled.so.9 -> libcudnn_engines_precompiled.so.9.5.1
libcudnn.so.9 -> libcudnn.so.9.5.1
libcudnn_ops.so.9 -> libcudnn_ops.so.9.5.1
libcudnn_cnn.so.9 -> libcudnn_cnn.so.9.5.1
libcudnn_adv.so.9 -> libcudnn_adv.so.9.5.1

安装并测试mpi4py

  • 安装
conda install mpi4py openmpi
  • 测试
$python3
Python 3.10.15 (main, Oct  3 2024, 07:27:34) [GCC 11.2.0] on linux                                                                              
Type help, copyright, credits or license for more information

>>> from mpi4py import MPI
>>> MPI.COMM_WORLD.Get_rank()
0
>>> MPI.COMM_WORLD.Get_size()
1
>>> exit()

编译TensorRT-LLM

  1. 安装基础依赖
apt update
apt install -y --no-install-recommends ccache wget gdb git-lfs libffi-dev libopenmpi-dev screen
  1. 清理apt安装残留
apt-get clean
rm -rf /var/lib/apt/lists/*
  1. 下载TensorRT-LLM源码(下载不了则本机下载好再上传咯),目前v0.16.0为最新稳定分支
git clone https://github.com/NVIDIA/TensorRT-LLM.git -b v0.16.0

# 如果下载不下来,可以用第三方加速源下载
git clone https://ghproxy.net/https://github.com/NVIDIA/TensorRT-LLM.git -b  -b v0.16.0
  1. 进入项目路径
cd TensorRT-LLM
  1. 拉取子项目
git submodule update --init --recursive
  1. 手动拉取lfs大文件
git lfs install && git lfs pull
  1. 进入docker/common目录
cd docker/common/
  1. 安装polygraphy 和 cmake
chmod +x install_polygraphy.sh
chmod +x install_cmake.sh

./install_polygraphy.sh
./install_cmake.sh
echo export PATH=$PATH:/usr/local/cmake/bin >> /etc/profile
echo export PATH=$PATH:/usr/local/cmake/bin >> ~/.bashrc

source /etc/profile
source ~/.bashrc

cmake --version
  1. 返回项目根目录。
cd -
  1. 一键编译whl文件,大概需要3个小时左右
screen -S build

export BUILD_WHEEL_ARGS=--clean --trt_root /usr/local/tensorrt --python_bindings --benchmarks

python3 scripts/build_wheel.py ${BUILD_WHEEL_ARGS}
  1. 安装whl文件
cd build
pip install tensorrt_llm-0.16.0-cp310-cp310-linux_x86_64.whl
  1. 安装后清理一下cache。
# 顺便清理cache
rm ~/.cache/ -rf
  1. 测试安装后tensorrt-llm版本
pip list | grep tensorrt

# 输出
tensorrt                       10.7.0
tensorrt_llm                   0.16.0
  1. 测试tensorrt-llm
python3 -c import tensorrt_llm; print(tensorrt_llm.__path__)

# 输出
[TensorRT-LLM] TensorRT-LLM version: 0.16.0
[/root/miniconda3/lib/python3.10/site-packages/tensorrt_llm]

测试TensorRT-LLM是否可用

  1. 测试tensorrt-llm中的attention,观察tensort-llm可否正常使用(这个操作可能需要显卡)
cd /root/TensorRT-LLM/tests/attention
pip install parameterized
python3 test_bert_attention.py
  • 返回下面这个说明成功了,大概需要1分钟就能测试完成,请耐心等待。
................................................
----------------------------------------------------------------------
Ran 49 tests in 53.018s

OK

  1. 最后,将其保存为镜像,镜像名称随意。(目前容器必须开机才能保存为镜像,而且保存为镜像的时间非常长,且保存镜像时无法做任何操作,建议保存后手动关闭实例)
镜像信息
@Tlntin
已使用
13
镜像大小50GB
最近编辑2025-01-20
支持卡型
RTX40系48G RTX40系2080
+3
框架版本
TensorRT-10.7.0.23
CUDA版本
12.6
应用
JupyterLab: 8888
版本
v1.0
2025-07-02
TensorRT:10.7.0.23 | CUDA:12.6 | 大小:50.00GB
优云智算 | TensorRT-LLM一键部署