Triton 推理服务器 Jetson 和 JetPack 支持#
JetPack 5.0 的 Triton 版本在发行说明中附加的 tar 文件中提供。
JetPack 上的 Triton 推理服务器支持包括
JetPack 5.0 上的限制
Onnx Runtime 后端不支持 OpenVino 和 TensorRT 执行提供程序。CUDA 执行提供程序处于 Beta 阶段。
Python 后端不支持 GPU 张量和 Async BLS。
不支持 CUDA IPC(共享内存)。但是,支持系统共享内存。
不支持 GPU 指标、GCS 存储、S3 存储和 Azure 存储。
在 JetPack 上,尽管支持 HTTP/REST 和 GRPC 推理协议,但对于边缘用例,建议直接C API 集成。
您可以从 Triton 推理服务器发布页面的“Jetson JetPack 支持”部分下载 Jetson 的 .tgz
文件。
.tgz
文件包含 Triton 服务器可执行文件和共享库,以及 C++ 和 Python 客户端库和示例。
安装和使用#
Triton 的构建依赖项#
在构建 Triton 服务器之前,必须安装以下依赖项
apt-get update && \
apt-get install -y --no-install-recommends \
software-properties-common \
autoconf \
automake \
build-essential \
git \
libb64-dev \
libre2-dev \
libssl-dev \
libtool \
libboost-dev \
rapidjson-dev \
pkg-config \
libopenblas-dev \
libarchive-dev \
zlib1g-dev \
python3 \
python3-dev \
python3-pip
必须安装额外的 Onnx Runtime 依赖项才能构建 Onnx Runtime 后端
pip3 install --upgrade flake8 flatbuffers patchelf==0.17.2
必须安装额外的 PyTorch 依赖项才能构建(和运行)PyTorch 后端
apt-get -y install autoconf \
bc \
g++-8 \
gcc-8 \
clang-8 \
lld-8
pip3 install --upgrade expecttest xmlrunner hypothesis aiohttp pyyaml scipy ninja typing_extensions protobuf
除了这些 PyTorch 依赖项之外,还必须安装与发行版对应的 PyTorch wheel 文件(用于构建和运行时)
pip3 install --upgrade https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
在构建 Triton 客户端库/示例之前,必须安装以下依赖项
apt-get install -y --no-install-recommends \
curl \
jq
pip3 install --upgrade wheel setuptools cython && \
pip3 install --upgrade grpcio-tools "numpy<2" attrdict pillow
注意:OpenCV 4.2.0 作为 JetPack 的一部分安装。它是客户端构建的依赖项之一。
注意:在 Jetson 上构建 Triton 时,您将需要最新版本的 cmake。我们建议使用 cmake 3.25.2。以下是将您的 cmake 版本升级到 3.25.2 的脚本。
apt remove cmake
# Using CMAKE installation instruction from:: https://apt.kitware.com/
apt update && apt install -y gpg wget && \
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \
gpg --dearmor - | \
tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \
. /etc/os-release && \
echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \
tee /etc/apt/sources.list.d/kitware.list >/dev/null && \
apt-get update && \
apt-get install -y --no-install-recommends cmake cmake-data
Triton 的运行时依赖项#
在运行 Triton 服务器之前,必须安装以下运行时依赖项
apt-get update && \
apt-get install -y --no-install-recommends \
libb64-0d \
libre2-9 \
libssl1.1 \
rapidjson-dev \
libopenblas-dev \
libarchive-dev \
zlib1g \
python3 \
python3-dev \
python3-pip
在运行 Triton 客户端之前,必须安装以下运行时依赖项
apt-get update && \
apt-get install -y --no-install-recommends \
curl \
jq
pip3 install --upgrade wheel setuptools && \
pip3 install --upgrade grpcio-tools "numpy<2" attrdict pillow
PyTorch 运行时依赖项与上面列出的构建依赖项相同。
用法#
注意:PyTorch 后端依赖于 libomp.so,它不会自动加载。如果在 Triton 中使用 PyTorch 后端,您需要设置 LD_LIBRARY_PATH 以允许 libomp.so 在启动 Triton 之前根据需要加载。
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/llvm-8/lib"
注意:在 Jetson 上,必须使用 --backend-directory
标志显式指定后端目录。从 23.04 开始,Triton 不再支持 TensorFlow 1.x。如果您想在 23.04 之前的 Triton 版本中使用 TensorFlow 1.x,则需要版本字符串才能使用 TensorFlow 1.x。
tritonserver --model-repository=/path/to/model_repo --backend-directory=/path/to/tritonserver/backends \
--backend-config=tensorflow,version=2
注意:Jetson 上支持 perf_analyzer,而 model_analyzer 目前不适用于 Jetson。要为 C API 执行 perf_analyzer
,请使用 CLI 标志 --service-kind=triton_c_api
perf_analyzer -m graphdef_int32_int32_int32 --service-kind=triton_c_api \
--triton-server-directory=/opt/tritonserver \
--model-repository=/workspace/qa/L0_perf_analyzer_capi/models
请参阅这些示例,它们演示了如何在 Jetson 上使用 Triton 推理服务器。