天天看點

NVIDIA Triton 系列文章(5):安裝伺服器軟體

作者:麗台科技

在前一篇文章已經帶着讀者建立一個 Triton 的推理模型倉,現在隻要安裝好伺服器端與使用者端軟體,就能進行基本的測試與體驗。

為了簡化過程,我們使用 NVIDIA Jetson AGX Orin 裝置進行示範,所有步驟都能适用于各種基于 NVIDIA Jetson 智能晶片的邊緣裝置上,也适用于大部分裝載 Ubuntu 18 以上作業系統的 x86 裝置上,即便裝置上沒有安裝 NVIDIA 的 GPU 計算卡也能使用,隻不過我們的提供的内容都是基于 GPU 計算環境,對于純 CPU 的使用則需要使用者自行研讀說明檔案。

現在就開始安裝 Triton 伺服器軟體,NVIDIA 為 Triton 伺服器提供以下三種軟體安裝的方式:

1. 源代碼編譯

這種方式需要從下載下傳源代碼,然後安裝依賴庫,再用 cmake 與 make 工具進行編譯。通常會遇到的麻煩是步驟繁瑣,并且出錯率較高,是以并不推薦使用這個方法。

有興趣者,請自行參考前面下載下傳的開源倉裡的 docs/customization_guide/build.md檔案,有關于 Ubuntu 20.04、Jetpack 與 Windows 等各種平台的編譯細節。

2. 可執行檔案

Triton 開發團隊為使用者提供編譯好的可執行檔案,包括 Ubuntu 20.04、Jetpack 與 Windows 平台,可以在 上擷取,每個版本都會提供對應 NGC 容器的版本,如下圖:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

然後到下面的“Assets”選擇合适的版本:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

以裝載 Jetpack 5 的 Orin 為例,就下載下傳

tritonserver2.26.0-jetpack5.0.2.tgz(1.13GB) 壓縮檔案到本機上,然後解壓縮到指定目錄下就可以,例如 ${HOME}/triton 目錄,會生成 <backends>、<bin>、<clients>、<include>、<lib>、<qa>等 6 個目錄,可執行檔案在<bin>目錄下。

在執行 Triton 伺服器軟體前,還得先安裝所需要的依賴庫,請執行以下指令:

sudo apt-get update
sudo 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 patchelf pkg-config libopenblas-dev libarchive-dev zlib1g-dev           

現在就可以執行以下指令啟動 Triton 伺服器:

cd  ${HOME}/triton
bin/tritonserver  --model-repository=server/docs/examples/model_repository --backend-directory=backends  --backend-config=tensorflow,version=2           

如果最後出現以下畫面并且進入等待狀态:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

現在 Triton 伺服器已經正常運作,進入等待使用者端提出請求(request)的狀态。

3. Docker容器

在NGC的

可以找到 Triton 伺服器的 Docker 鏡像檔案,每個版本主要提供以下幾種版本:

  • year-xy-py3:包含 Triton 推理伺服器,支援 Tensorflow、PyTorch、TensorRT、ONNX 和 OpenVINO 模型;
  • year-xy-py3-sdk:包含 Python 和 C++ 用戶端庫、用戶端示例和模型分析器;
  • year-xy-tf2-python-py3:僅支援 TensorFlow 2.x 和 python 後端的 Triton 推理伺服器;
  • year-xy-pyt-python-py3:僅支援 PyTorch 和 python 後端的 Triton 伺服器;
  • year-xy-py3-min:用作建立自定義 Triton 伺服器容器的基礎,如 Customize Triton Container(自定義Triton容器)說明檔案所描述的内容;

其中“year”是年份的數字,例如 2022 年送出的就是“22”開頭;後面的“xy”是流水号,每次往上加“1”,例如 2022 年 10 月 4 日送出的版本為“22-09”。

NVIDIA 提供的 Triton 容器鏡像是同時支援 x86 / AMD64 與 ARM64 架構的系統,以 22.09-py3 鏡像為例,可以看到如下圖所标示的“2 Architectures”:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

點選最右方的“向下”圖示,會展開如下圖的内容,事實上是有兩個不同版本的鏡像,不過使用相同鏡像名:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

是以在 x86 電腦與 Jetson 裝置都使用相同的鏡像下載下傳指令,如下:

$  docker pull nvcr.io/nvidia/tritonserver:22.09-py3           

就能根據所使用裝置的 CPU 架構去下載下傳對應的鏡像,現在執行以下指令來啟動 Triton 伺服器:

# 根據實際的模型倉根目錄位置設定TRITON_MODEL_REPO路徑
export TRITON_MODEL_REPO=${HOME}/triton/server/docs/examples/model_repository
# 執行Triton伺服器
docker  run  --rm  --net=host  -v  ${TRITON_MODEL_REPO}:/models nvcr.io/nvidia/tritonserver:22.09-py3  tritonserver  --model-repository=/models           

如果執行正常,也會出現以下的等待畫面,表示運作是正确的:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

以上三種方式都能在計算裝置上啟動 Triton 伺服器軟體,目前看起來使用 Docker 鏡像是最為簡單的。當伺服器軟體啟動之後,就處于“等待請求”狀态,可以使用“Ctrl-C”組合鍵終止伺服器的運作。

有一種确認 Triton 伺服器正常運作的最簡單方法,就是用 curl 指令檢查 HTTP 端口的狀态,請執行以下指令:

curl -v localhost:8000/v2/health/ready           

如果有顯示“HTTP/1.1 200 OK”的資訊(如下圖),就能确定 Triton 伺服器處于正常運作的狀态:

NVIDIA Triton 系列文章(5):安裝伺服器軟體

接下去就要安裝用戶端軟體,用來對伺服器提出推理請求,這樣才算完成一個最基礎的推理周期。

*本文轉自 NVIDIA英偉達

繼續閱讀