triton系列:client 安装

https://github.com/triton-inference-server/client

1. NGC 镜像自带

docker pull nvcr.io/nvidia/tritonserver:<xx.yy>-py3-sdk

docker run --gpus all --rm -it --net host nvcr.io/nvidia/tritonserver:<xx.yy>-py3-sdk

# inside container
perf_analyzer -m <model>

重要提示: 当使用 Docker 容器运行 server 或 client 并使用 CUDA 共享内存功能 时 ,需要在启动容器时添加 --pid host 参数。因为 CUDA IPC API 要求导出指针的源和目标的 PID 不同。否则,Docker 会启用 PID 命名空间,这可能会导致源 PID 和目标 PID 相等。当两个容器都以非交互模式启动时,将始终观察到该错误。

2. pip 安装

GRPC 和 HTTP client库可以使用 python pip安装。

# 安装 HTTP/REST 和 GRPC 库
pip install tritonclient[all]

# 安装 HTTP/REST 库
pip install tritonclient[http]

安装包的组件:

该软件包的 Linux 版本还包括 perf_analyzer 二进制文件。perf_analyzer 二进制文件是在 Ubuntu 20.04 上构建的,可能无法在其他 Linux 发行版上运行。要运行 perf_analyzer,必须安装以下依赖项:

apt update
apt install libb64-dev

Windows 上的安装不包括 perf_analyzer、shared_memory/cuda_shared_memory 组件。

3. 下载压缩包

client 库和 perf_analyzer 可执行文件可以从与您感兴趣的版本相对应的 Triton GitHub release page 下载。例如 v2.3.0_ubuntu2004.clients.tar.gz。

perf_analyzer 二进制文件是在 Ubuntu 20.04 上构建的,可能无法在其他 Linux 发行版上运行。要使用 C++ 库或 perf_analyzer 可执行文件,您必须安装一些依赖项。

apt-get update

apt-get install curl libcurl4-openssl-dev libb64-dev

4. 源码安装

非 Windows 系统

使用cmake配置构建。您应该根据您正在使用和想要构建的 Triton 客户端组件来调整标志。例如,如果您想使用 Triton C API 构建 Perf 分析器,您可以使用 -DTRITON_ENABLE_PERF_ANALYZER=ON-DTRITON_ENABLE_PERF_ANALYZER_C_API=ON. 您还可以使用TRITON_ENABLE_PERF_ANALYZER_TFSTRITON_ENABLE_PERF_ANALYZER_TS标志在性能分析器中分别启用/禁用对 TensorFlow Serving 和 TorchServe 后端的支持。

以下命令演示了如何构建具有所有功能的客户端:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=`pwd`/install -DTRITON_ENABLE_CC_HTTP=ON -DTRITON_ENABLE_CC_GRPC=ON -DTRITON_ENABLE_PERF_ANALYZER=ON -DTRITON_ENABLE_PERF_ANALYZER_C_API=ON -DTRITON_ENABLE_PERF_ANALYZER_TFS=ON -DTRITON_ENABLE_PERF_ANALYZER_TS=ON -DTRITON_ENABLE_PYTHON_HTTP=ON -DTRITON_ENABLE_PYTHON_GRPC=ON -DTRITON_ENABLE_JAVA_HTTP=ON -DTRITON_ENABLE_GPU=ON -DTRITON_ENABLE_EXAMPLES=ON -DTRITON_ENABLE_TESTS=ON ..

如果您在发布分支(或基于发布分支的开发分支)上进行构建,则还必须使用其他 cmake 参数来指向客户端构建所依赖的存储库的发布分支。例如,如果您正在构建 r21.10 客户端分支,那么您需要使用以下附加 cmake 标志:

-DTRITON_COMMON_REPO_TAG=r21.10
-DTRITON_THIRD_PARTY_REPO_TAG=r21.10
-DTRITON_CORE_REPO_TAG=r21.10

然后使用make构建客户端和示例。

make cc-clients python-clients java-clients

构建完成后,可以在安装目录中找到库和示例。

windows 系统

要构建客户端,您必须安装适当的 C++ 编译器和构建所需的其他依赖项。最简单的方法是创建Windows min Docker映像 ,并在从该映像启动的容器中执行构建。

docker run  -it --rm win10-py3-min powershell

无需使用 Docker 或 win10-py3-min 容器进行构建,但如果不这样做,则必须在主机系统上安装适当的依赖项。

接下来使用 cmake 配置构建。如果您不是在 win10-py3-min 容器中构建,那么您可能需要在以下命令中调整 CMAKE_TOOLCHAIN_FILE 位置。

mkdir build
cd build
cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE='/vcpkg/scripts/buildsystems/vcpkg.cmake' -DCMAKE_INSTALL_PREFIX=install -DTRITON_ENABLE_CC_GRPC=ON -DTRITON_ENABLE_PYTHON_GRPC=ON -DTRITON_ENABLE_GPU=OFF -DTRITON_ENABLE_EXAMPLES=ON -DTRITON_ENABLE_TESTS=ON ..

如果您在发布分支(或基于发布分支的开发分支)上进行构建,则还必须使用其他 cmake 参数来指向客户端构建所依赖的存储库的发布分支。例如,如果您正在构建 r21.10 客户端分支,那么您需要使用以下附加 cmake 标志:

-DTRITON_COMMON_REPO_TAG=r21.10
-DTRITON_THIRD_PARTY_REPO_TAG=r21.10
-DTRITON_CORE_REPO_TAG=r21.10

然后使用msbuild.exe进行构建。

$ msbuild.exe cc-clients.vcxproj -p:Configuration=Release -clp:ErrorsOnly
$ msbuild.exe python-clients.vcxproj -p:Configuration=Release -clp:ErrorsOnly

构建完成后,可以在安装目录中找到库和示例。

Table of Contents