Installieren von Voraussetzungen und NVIDIA Triton Inference Server
In diesem Abschnitt greifen wir remote auf unsere VM zu, um die aktuell installierten Pakete zu aktualisieren. Außerdem installieren wir eine Python-Entwicklungsumgebung und konfigurieren diese mit erforderlicher Software, um die Ausführung der ONNX-Runtime (Open Neural Network Exchange) zu ermöglichen. Um die Anforderungen von NVIDIA Triton Inference Server zu erfüllen, pullen wir einen Container mit einer vollständigen Installation der Tools, damit wir eine Rückschlussworkload auf unserer VM ausführen können.
Installieren von Voraussetzungen und NVIDIA Triton Inference Server
Öffnen Sie einen Terminal-Emulator Ihrer Wahl. Zur Veranschaulichung verwenden wir Windows-Terminal, weil damit mehrere Fenster gleichzeitig mit der VM verbunden sein können. Wir verwenden ein Fenster, um Triton Server zu starten, ein Fenster, um ein Python-Skript auszuführen, und ein Fenster, um Bilder in ein Verzeichnis zu kopieren, um sie über die CLI zu verarbeiten. Mit Windows-Terminal haben Sie auch die Wahl zwischen CLI, PowerShell, Eingabeaufforderung, Ubuntu-18.04 (wenn WSL-2 installiert ist) oder Azure Cloud Shell.
Kopieren Sie den Benutzernamen, den Sie zum Einrichten der VM in der vorherigen Phase verwendet haben, und führen Sie den folgenden Befehl aus:
ssh <username>@<your VM IP address>
Dadurch werden Sie aufgefordert, das zuvor in Ihrem Text-Editor gespeicherte Kennwort einzugeben. Kopieren Sie diesen Wert, und klicken Sie mit der rechten Maustaste in der Befehlszeile, um ihn einzufügen. Wenn Sie sich zum ersten Mal anmelden, wird die folgende Meldung angezeigt:
Nun laden wir einige Pakete, die unser Python-Skript für eine ordnungsgemäße Ausführung benötigt. Geben Sie Folgendes in der Befehlszeile ein:
sudo apt update sudo apt install -y python3-pip python3-dev nano wget
Vor der Installation der erforderlichen Python-Pakete müssen Sie PATH den Pfad
/home/\<your username\>/.local/bin
hinzufügen. Führen Sie dazu die folgenden Schritte in der CLI aus:sudo nano ~/.bashrc
Navigieren Sie im Editor mit der Pfeiltaste an das Ende dieser Datei im Editor, und fügen Sie die folgende Zeile hinzu:
export PATH=/home/<your username>/.local/bin:$PATH
Drücken Sie STRG+O, und drücken Sie die EINGABETASTE, um die Datei zu speichern. Drücken Sie dann STRG+X, um die Datei zu schließen. Führen Sie in der Befehlszeile Folgendes aus:
source ~/.bashrc
Mit diesem Befehl wird die Konfiguration für den Server neu geladen, damit
.local/bin
in PATH eingeschlossen wird.Nachdem wir die Ubuntu-Paketanforderungen geladen und PATH das Verzeichnis hinzugefügt haben, installieren wir die erforderlichen Python-Pakete. Kopieren Sie jede Zeile einzeln, um sie im Terminalfenster auszuführen.
python3 -m pip install --upgrade pip wheel setuptools python3 -m pip install numpy>=1.19.0 opencv-contrib-python-headless tritonclient geventhttpclient python3 -m pip install torch torchvision pandas tqdm PyYAML scipy seaborn requests pybind11 pytest protobuf objdict onnxruntime
Wenn Sie eine Nvidia GPU-fähige VM verwenden, können Sie „onnxruntime-gpu“ anstelle von „onnxruntime“ verwenden, um die CUDA/cuDNN-Beschleunigung zu nutzen.
Um den Triton Server-Container von Nvidia auszuführen, benötigen wir ein Containermodul. Microsoft verfügt über eine Distribution dieser Containerruntime, die mithilfe der folgenden Befehle installiert werden kann:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Jetzt können wir Moby installieren:
sudo apt update sudo apt install -y moby-engine sudo apt update
Nun sind wir bereit, den Container für den Triton Server aus dem NVIDIA NGC-Repository zu pullen. Sie können den Container auch während des Befehls „docker run“ pullen, wenn wir zu diesem Schritt gelangen. Aus Gründen der Einfachheit führen wir den Pullvorgang jedoch jetzt aus. Führen Sie im Terminal-Emulator Folgendes aus:
sudo docker pull nvcr.io/nvidia/tritonserver:20.11-py3
Das Herunterladen und Extrahieren der Containerebenen nimmt einige Zeit in Anspruch.
Jetzt sind wir bereit, das Verzeichnis
demo
auf die VM zu kopieren. Laden Sie die Datei demo.zip aus dem Repository herunter. Entzippen Sie die Datei lokal auf Ihrem PC. Öffnen Sie ein Eingabeaufforderungsfenster im Hilfsprogramm, oder öffnen Sie ein anderes Fenster in Windows-Terminal. Abhängig davon, wo Sie die Dateien entpackt haben, führen Sie den folgenden Befehl in der CLI aus:scp -r <path to unzipped>/demo <your username>@<x.x.x.x vm IP address>:/home/<your username>/
Sobald wir diese Dateien auf die VM kopiert haben, wechseln wir wieder zurück in das Terminal-Fenster, das mit der VM verbunden ist, und legen die Berechtigungen für dieses Verzeichnis fest. Geben Sie in der CLI Folgendes ein:
sudo chmod -R 777 demo