Führen Sie Hunderte von kostenlosen KI- und HPC-Anwendungen im NVIDIA NGC-Katalog aus, beschleunigt auf Rescale

NVIDIA NGC Startseite

Übersicht

Der NVIDIA GPU Cloud (NCC)-Katalog ist eine kuratierte Sammlung kostenloser und Open-Source-GPU-optimierter Software für KI, HPC und Visualisierung. Der NGC-Katalog besteht aus containerisierten Anwendungen, vortrainierten Modellen, Helm-Charts für Kubernetes Bereitstellungen und branchenspezifische KI-Toolkits mit Software Development Kits (SDKs). Die Bereitstellung von NGC on Resale erleichtert Ingenieuren und Wissenschaftlern den Einstieg in eine Vielzahl neuer Anwendungsfälle für Forschung und Entwicklung auf einer einzigen Plattform. Rescale automatisiert die erforderliche Hardware-Infrastruktur, Software und Workflow-Schritte, um die neuesten Rechentools zugänglicher und schneller zu machen.

In diesem Tutorial zeigen wir Ihnen, wie Sie NGC Catalog einfach auf Rescale ausführen. NGC kann entweder per Batch-Job über die Rescale-Befehlszeile oder interaktiv über Rescale-Workstations ausgeführt werden.

Stapelverarbeitung

Video-Tutorial zu Stapelverarbeitung

Beispieljob und Ergebnisse

Sie können auf den Beispieljob zugreifen und ihn direkt starten, indem Sie auf das Symbol Job-Setup importieren oder zeigen Sie die Ergebnisse an, indem Sie auf die Schaltfläche Auftragsergebnisse abrufen Knopf unter. 

Im obigen Beispieljob führen wir ein Python-Skript aus, das ein TensorFlow-Maschinenlernprogramm erstellt. Modell mit MNIST-Datensatz. (Referenzlink).

Um den Batch-Job zu übermitteln, wählen Sie zunächst Plug-and-Play-Betrieb Auftragstyp.

Eingänge

Laden Sie laufende Skripte als Eingabedateien hoch. Im Beispieljob befinden sich die Python-Skripte in der komprimierten Archivdatei test.zip.

Eingänge

Software

Wählen Sie als Nächstes die NVIDIA NGC-Katalog Fliese.

Software 1 1
Software 2 1

Im Befehl In der Box stellen wir den vorab ausgefüllten Befehl zum Anmelden bei Ihrem NGC-Konto und zum Abrufen und Ausführen von Docker-Containern bereit.

Benutzer können Container aus NGC-Katalog. Hier verwenden wir den TensorFlow Container als Beispiel.

Screen Shot 2022 08 11 bei 10.21.01 AM

Zum Ziehen der Tensorflow-Container, gehen Sie zum NGC-Katalog und klicken Sie auf das Pull Tag um den Docker-Pull-Befehl zu kopieren.

TensorFlow-Container

Fügen Sie im Befehlsfeld den Pull-Tag-Befehl ein und geben Sie die folgenden Befehle ein, um den Container auszuführen, wie in der Beispieljob.

docker pull nvcr.io/nvidia/tensorflow:22.06-tf1-py3
docker run --gpus all -v ${PWD}/test:/test nvcr.io/nvidia/tensorflow:22.06-tf1-py3 
bash -c 'cd /test;  python test.py'

Benutzer können sich über die Rescale-Plattform bei ihrem NGC-Katalogkonto anmelden. Überprüfen Sie die Vorhandene Lizenz verwenden Klicken Sie in den Lizenzoptionen auf „Neu skalieren“. Geben Sie hier Ihren API-Schlüssel und Ihren Org-Code ein, wie in der folgenden Abbildung gezeigt.

bestehende Lizenz verwenden

Um Ihren API-Schlüssel und Org-Code zu erhalten, müssen sich Benutzer bei Ihrem NGC-Katalogkonto anmelden und Ihren eigenen API-Schlüssel und Org-Code generieren.

API-Schlüssel abrufen

Wir stellen einen vorgefertigten Befehl zur Anmeldung beim NGC-Konto bereit. Benutzer müssen lediglich den abzurufenden Container und den auszuführenden Befehl im Befehlsfeld angeben. 

Hardware

Wir bieten eine Vielzahl von Architekturen für Ihre Aufgabe, wie verschiedene CPU und GPU Core Typen. Hier wählen wir 4 GPUs für TensorFlow-Training.

Hardware 3

Status

Klicken Sie auf die Absenden , um den Auftrag zu übermitteln. Sobald der Auftrag ausgeführt wird, können Sie die Ausgabe in process_output.log überprüfen.

Status 7

Ergebnisse

Sie können ein Terminal auch öffnen, indem Sie auf das In einem neuen Fenster öffnen Schaltfläche, um Ihr Skript zu debuggen oder auszuführen nvidia-smi um die GPU-Auslastung und die Ergebnisse während der Ausführung des Auftrags zu überprüfen.

Ergebnisse 1 1
Ergebnisse 2 1

Nach Abschluss des Auftrags werden alle Ergebnisdateien im Ergebnisse Registerkarte. Wir können die Datei auch öffnen und die Ergebnisse überprüfen.

Auftrag abgeschlossen

In der Datei process_output.log können wir sehen, dass das NGC-Katalogkonto erfolgreich angemeldet ist.

Prozessausgabe

Hier sind die endgültige Ausgabe und die Ergebnisse für den Beispieljob.

endgültige Ausgabe

Andere Anwendungsfälle

NVIDIA-Modul

Die Eingabedatei ist ein Beispiel-ZIP-Download von Offizielle Modulus-Website. Für diesen Anwendungsfall kann der Beispieljob geladen werden über diesen Link und Ergebnisse hier. 

NVIDIA Modul 1

Cmd (neueste Version von NVIDIA Modulus von NGC abrufen. Den Lid Driven Cavity (LDC)-Flow-Case im Modulus-Container mit „docker run“ ausführen). Für diesen Container ist der NGC_API-Schlüssel nicht erforderlich.

docker pull nvcr.io/nvidia/modulus/modulus:22.03.1
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864            
--runtime nvidia -v ${PWD}/examples:/examples nvcr.io/nvidia/modulus/modulus:22.03.1 
bash -c 'cd ldc;python ldc_2d.py'

Überwachen Sie das process_output.log und überprüfen Sie die Ausgaben.

Prozess überwachen
Prozess 2 überwachen

Arbeitsplätze

Beispiel-Workstation

Auf der Rescale-Plattform können Benutzer auch interaktiv arbeiten mit ArbeitsplätzeUm einen Auftrag zu übermitteln, klicken Sie auf das New Arbeitsplatz Schaltfläche. Hier ist ein Beispieljob als Referenz.

Arbeitsplatz

Konfiguration

Laden Sie für die Eingabe die Skripte hoch, die Sie ausführen möchten. Wählen Sie anschließend Interaktiver Workflow des NGC-Katalogs Kachel als Software. Im Gegensatz Batchaufträge, wir müssen kein Befehlsskript angeben, um eine Workstation auszuführen; stattdessen interagieren Sie mit ihr über eine GUI. 

Konfigurationseingabe

Prüfen Sie die Vorhandene Lizenz verwenden Klicken Sie in den Lizenzoptionen auf das Feld, um sich bei Ihrem NGC-Konto anzumelden. Geben Sie hier Ihren NGC-API-Schlüssel und Ihren Org-Code ein. Die Schritte zur Generierung des NGC-API-Schlüssels und der Hardwareeinstellungen sind dieselben wie bei Batch-Jobs und werden hier nicht wiederholt. 

Vorhandene Lizenz verwenden1

Sobald die Workstation bereit ist, klicken Sie auf das Verbinden Klicken Sie oben auf die Schaltfläche „Verbinden mit lokalem Client“ (Laden Sie den NiceDCV-Client herunter und installieren Sie ihn), um sich bei der Workstation anzumelden.

Klicken Sie auf „Verbinden“.

In der Workstation können wir ein Terminalfenster öffnen, indem wir auf Aktivitäten in der oberen linken Ecke, suchen Sie das Terminal und starten Sie es.

am Arbeitsplatz

Im geöffneten Terminal können wir interaktiv arbeiten. Führen Sie in einem Terminalfenster die folgenden zwei Zeilen cmd aus, um sich beim NGC-Konto anzumelden.

$ echo -e "\n \n $(echo $NGC_ORG_ID) \n \n \n" | ngc config set
$ docker login -u '$oauthtoken' --password-stdin nvcr.io <<< $(echo $NGC_CLI_API_KEY)
Terminal geöffnet

Dann sind wir bereit, Container aus NGC-Katalog.

Tensorflow-Container

In diesem Beispiel ziehen wir den Tensorflow-Container:

$ docker pull nvcr.io/nvidia/tensorflow:22.06-tf1-py3

Starten Sie den Tensorflow-Container wie folgt:

$ docker run --gpus all -it --rm -v ${PWD}/test:/test nvcr.io/nvidia/tensorflow:22.06-tf1-py3 bash
TensorFlow-Container 1

Führen Sie den folgenden einfachen Fall im Container aus (Referenzlink):

$ python3
$ import tensorflow as tf
$ tf.enable_eager_execution()
$ mnist = tf.keras.datasets.mnist
$ (x_train, y_train), (x_test, y_test) = mnist.load_data()
$ x_train, x_test = x_train / 255.0, x_test / 255.0
$ model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10)
])
$ predictions = model(x_train[:1]).numpy()
$ predictions

Wenn alles gut funktioniert, können wir die Ausgabe der vorhergesagten Ergebnisse auf dem Terminal überprüfen.

alles funktioniert gut

Modulus-Container

Laden Sie die neueste Version von NVIDIA Modulus herunter von NGC.

$ docker pull nvcr.io/nvidia/modulus/modulus:22.03.1

Starten Sie den Modulus-Container über das Verzeichnis:

$ docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864
--runtime nvidia -it -v ${PWD}/examples:/examples
nvcr.io/nvidia/modulus/modulus:22.03.1 bash 

Das neueste Modul wurde erfolgreich geladen.

Moduluscontainer erfolgreich geladen

Führen Sie den deckelbetriebenen Hohlraumbehälter im Behälter aus, indem Sie:

$ cd ldc
$ python ldc_2d.py
obige Simulation

Wie oben Simulation läuft, können wir den Paraview-GUI-Container zu Visualisierungszwecken abrufen.

ParaView-GUI-Container

Öffnen Sie ein neues Terminalfenster und ziehen Sie den Paraview-Docker-Container aus NGC.

$ docker pull nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0
$ docker run --gpus all -p 8080:8080 -v ${PWD}:/ldc     
nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0         ./bin/pvpython 
share/paraview-5.9/web/visualizer/server/pvw-visualizer.py         --content 
share/paraview-5.9/web/visualizer/www/         --port 8080         --data /ldc
Paraview

Öffnen Sie ParaView im DCV-Webbrowser (z. B. Firefox Web) durch https://localhost:8080/

Anschließend können Sie die GUI öffnen und die Ergebnisdateien visualisieren.

GUI-Visualisierung
GUI-Visualisierung 2

Fazit

Wir hoffen, dieses Tutorial hat Ihnen den Einstieg in die Ausführung von NGC Catalog auf Rescale erleichtert. Wie Sie sehen, können Sie alle in NGC Catalog verfügbaren Container mit mehreren GPUs über einen Rescale-Batchjob abrufen und ausführen. Alternativ können Sie Container interaktiv auf einer Rescale-Workstation ausführen und starten, um Code zu entwickeln, das Training zu überwachen und die Ergebnisse mit mehreren GPUs nachzubearbeiten. Unsere Plattform bietet Ihnen verschiedene GPU-Architekturen zur Auswahl und alle Ressourcen, die Sie für Ihren KI-Workflow benötigen. Weitere Informationen finden Sie auf der NVIDIA-Dokumentationsseite für NGC hier.