目录

Triton调研

概述

Triton 推理服务器是一种开源推理服务软件,可简化 AI 推理。Triton 使团队能够部署来自多个深度学习和机器学习框架的任何 AI 模型,包括 TensorRT、TensorFlow、PyTorch、ONNX、OpenVINO、Python、RAPIDS FIL 等。Triton 支持在 NVIDIA GPU、x86 和 ARM CPU 或 AWS Inferentia 上跨云、数据中心、边缘和嵌入式设备进行推理。Triton 为许多查询类型提供优化的性能,包括实时、批处理、集成和音频/视频流。

操作

按照官网的 QuickStart,是很容易测试的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Step 1: Create the example model repository 
git clone -b r23.03 https://github.com/triton-inference-server/server.git
cd server/docs/examples
./fetch_models.sh

# Step 2: Launch triton from the NGC Triton container
docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:23.03-py3 tritonserver --model-repository=/models

# Step 3: Sending an Inference Request 
# In a separate console, launch the image_client example from the NGC Triton SDK container
docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk /workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg

# Inference should return the following
Image '/workspace/images/mug.jpg':
    15.346230 (504) = COFFEE MUG
    13.224326 (968) = CUP
    10.422965 (505) = COFFEEPOT
/triton%E8%B0%83%E7%A0%94/img.png

需要考虑物理机上的 GPU 的驱动版本,详情可以查看参考资料中的软件矩阵,如果使用的镜像中报错了,可以考虑降低几个版本再重新测试。

Triton Model Analyzer

Single-Model Quick Start 查看这个。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 正常运行
docker run --rm --runtime=nvidia -it --gpus all \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(pwd)/examples/quick-start:$(pwd)/examples/quick-start \
      -v /root/tritonmodel:/root/tritonmodel \
      --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk

docker run -it --gpus all \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(pwd)/examples/quick-start:$(pwd)/examples/quick-start \
      -v <path-to-output-model-repo>:<path-to-output-model-repo> \
      --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk

# 官方运行
docker run -it --gpus all \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(pwd)/examples/quick-start:$(pwd)/examples/quick-start \
      -v /home/output:/home/output \
      --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk

# issue
docker run -it --rm --gpus all -v /var/run/docker.sock:/var/run/docker.sock \
-v D:/triton-inference-server/model_repository:/models \
-v /model_out:/model_out
-v D:/triton-inference-server/model_analyzer/profile_results:/profile_results --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk

rm -rf /tmp/rs
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
mkdir testtriton && cd testtriton
git init && git remote add -f origin https://github.com/triton-inference-server/model_analyzer.git

git config core.sparseCheckout true && \
echo 'examples' >> .git/info/sparse-checkout && \
git pull origin main

mkdir /tmp/testtriton
docker run --rm --runtime=nvidia -it --gpus all \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(pwd)/examples/quick-start:$(pwd)/examples/quick-start \
      -v /tmp/testtriton:/tmp/testtriton \
      --net=host nvcr.io/nvidia/tritonserver:23.03-py3-sdk

mkdir profile_results
model-analyzer profile \
    --model-repository /root/testtriton/examples/quick-start \
    --profile-models add_sub --triton-launch-mode=docker \
    --output-model-repository-path /tmp/output-model-repository-path \
    --export-path profile_results

参考资料

  1. Frameworks Support Matrix - 这是一个非常有用的镜像软件矩阵
  2. NVIDIA Deep Learning Examples for Tensor Cores - Star很多的官方开源的Notebook学习工具
  3. NVIDIA Triton
警告
本文最后更新于 2023年7月12日,文中内容可能已过时,请谨慎参考。