在 Docker 中使用 TensorRT
内容提要
TensorRT是一种高性能的深度学习推理SDK,可以在NVIDIA GPU上加速深度学习推理。本文介绍了如何为TensorRT构建Docker镜像,包括下载TensorRT SDK、创建Dockerfile、构建Docker镜像和运行Docker容器等步骤。通过构建TensorRT引擎来验证安装是否正确。
延伸解读
为何选择自建 TensorRT 镜像
文章指出,NVIDIA NGC 每月发布 TensorRT 的 Docker 镜像,但有时我们需要针对特定 TensorRT 版本构建自己的镜像。自建镜像可以精确控制 TensorRT 版本,避免因版本不匹配导致的兼容性问题,尤其适合需要固定版本进行长期维护或测试的场景。
构建镜像的关键步骤
构建过程包括:从 TensorRT 网站下载 TAR 安装包(需 NVIDIA 开发者账户登录),基于 CUDA 基础镜像编写 Dockerfile,安装依赖并配置环境变量,最后使用 docker build 命令构建镜像。Dockerfile 中通过 ARG 指定 TensorRT 和 CUDA 版本,便于灵活调整。
运行容器与验证安装
运行容器时需使用 --gpus all 启用 GPU 支持,并挂载当前目录以便访问模型文件。验证安装通过 trtexec 从 ONNX 模型构建 TensorRT 引擎,若输出性能指标(如吞吐量、延迟)并显示 PASSED,则表明安装成功。这为后续推理部署提供了基础。
Q&A
TensorRT 是什么?它有什么作用?
TensorRT 是一种高性能的深度学习推理 SDK,能够加速 NVIDIA GPU 上的深度学习推理。
如何下载 TensorRT SDK?
访问 TensorRT 网站,使用 NVIDIA 开发者账户登录,然后下载 Linux 的 TAR 安装包到 downloads 目录。
创建 TensorRT Dockerfile 时需要注意什么?
Dockerfile 的创建应遵循 TensorRT 安装指南,包含必要的依赖项和环境变量设置,例如设置 TENSORRT_VERSION、CUDA_USER_VERSION 等构建参数,并安装所需的系统包和 Python 包。
构建 TensorRT Docker 镜像的命令是什么?
使用命令:docker build -f tensorrt.Dockerfile --no-cache --build-arg TENSORRT_VERSION=$TENSORRT_VERSION --build-arg CUDA_USER_VERSION=$CUDA_USER_VERSION --tag=tensorrt:$TENSORRT_VERSION .,其中需要指定 TensorRT 版本和 CUDA 版本。
如何运行 TensorRT Docker 容器?
使用命令:docker run -it --rm --gpus all -v $(pwd):/mnt tensorrt:$TENSORRT_VERSION,该命令指定了 GPU 支持并挂载当前工作目录到容器的 /mnt。
如何验证 TensorRT 安装是否正确?
可以使用 trtexec 从 ONNX 模型构建 TensorRT 引擎来验证。例如,下载 mnist-12.onnx 模型后运行 trtexec --onnx=/tmp/mnist-12.onnx,如果安装正确,会输出性能指标并显示 PASSED TensorRT.trtexec。