Installieren von Voraussetzungen und NVIDIA Triton Inference Server

Abgeschlossen

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

  1. Ö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.

  2. 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:

    Screenshot: Erfolgreiche Anmeldung bei der VM

  3. 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.

  4. 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.

  5. 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
    
  6. 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.

    Screenshot: Befehl „docker pull“ während der Ausführung

  7. 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>/
    

    Screenshot: Erfolgreiche Ausführung des scp-Befehls

  8. 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