Die im Rahmen von VMware Private AI Foundation with NVIDIA bereitgestellten Deep Learning-VM-Images sind mit gängigen ML-Bibliotheken, Frameworks und Toolkits vorkonfiguriert und werden von NVIDIA und VMware für die GPU-Beschleunigung in einer VMware Cloud Foundation-Umgebung optimiert und validiert.
Datenwissenschaftler können die über diese Images bereitgestellten Deep Learning-VMs für KI-Prototyperstellung, Feinabstimmung, Validierung und Rückschlüsse verwenden.
Der Software-Stack für die Ausführung von KI-Anwendungen auf NVIDIA GPUs wird im Voraus validiert. Folglich beginnen Sie direkt mit der KI-Entwicklung, ohne Zeit für die Installation und Validierung der Kompatibilität von Betriebssystemen, Softwarebibliotheken, ML-Frameworks, Toolkits und GPU-Treibern aufwenden zu müssen.
Was enthält ein Deep Learning-VM-Image?
Das anfängliche Image der Deep Learning-VM enthält die folgende Software. Informationen zu den Komponentenversionen in jeder Deep Learning-VM-Image-Version finden Sie unter Versionshinweise zu VMware Deep Learning VM.
Softwarekomponentenkategorie | Softwarekomponente |
---|---|
Eingebettet |
|
Kann automatisch vorinstalliert werden |
|
Inhaltsbibliothek für Deep Learning-VM-Images
Deep Learning-VM-Images werden als vSphere VM-Vorlagen bereitgestellt, die von VMware in einer Inhaltsbibliothek gehostet und veröffentlicht werden. Sie können diese Images verwenden, um Deep Learning-VMs mithilfe des vSphere Client oder VMware Aria Automation bereitzustellen.
Die Inhaltsbibliothek mit Deep Learning-VM-Images für VMware Private AI Foundation with NVIDIA ist über die https://packages.vmware.com/dl-vm/lib.json-URL verfügbar. In einer verbundenen Umgebung erstellen Sie eine abonnierte Inhaltsbibliothek, die mit dieser URL verbunden ist. In einer getrennten Umgebung erstellen Sie eine lokale Inhaltsbibliothek, in der Sie die über die zentrale URL heruntergeladene Bilder hochladen.
OVF-Eigenschaften von Deep Learning-VMs
Wenn Sie eine Deep Learning-VM bereitstellen, müssen Sie benutzerdefinierte VM-Eigenschaften ausfüllen, um die Konfiguration des Linux-Betriebssystems, die Bereitstellung des vGPU-Gasttreibers und die Bereitstellung und Konfiguration von NGC-Containern für die DL-Arbeitslasten zu automatisieren.
Kategorie | Parameter | Beschreibung |
---|---|---|
Eigenschaften des Basisbetriebssystems | instance-id | Erforderlich. Eine eindeutige Instanz-ID für die VM-Instanz. Eine Instanz-ID identifiziert eine Instanz eindeutig. Wenn sich eine Instanz-ID ändert, behandelt cloud-init die Instanz als neue Instanz und führt den cloud-init-Prozess erneut für aus. |
hostname | Erforderlich. Der Hostname der Appliance. | |
public-keys | Wenn angegeben, füllt die Instanz die SSH-authorized_keys des Standardbenutzers mit diesem Wert auf. |
|
user-data | Ein Satz von Skripts oder anderen Metadaten, die zum Zeitpunkt der Bereitstellung in die VM eingefügt werden. Diese Eigenschaft ist das eigentliche cloud-init-Skript. Dieser Wert muss base64-verschlüsselt werden.
|
|
password | Erforderlich. Das Kennwort für das vmware-Standardbenutzerkonto. | |
vGPU-Treiberinstallation |
vgpu-license | Erforderlich. Das Konfigurationstoken des NVIDIA vGPU-Clients. Das Token wird in der Datei /etc/nvidia/ClientConfigToken/client_configuration_token.tok gespeichert. |
nvidia-portal-api-key | In einer verbundenen Umgebung erforderlich. Der API-Schlüssel, den Sie vom NVIDIA-Lizenzierungsportal heruntergeladen haben. Der Schlüssel ist für die Installation des vGPU-Gasttreibers erforderlich. |
|
vgpu-fallback-version | Die Version des vGPU-Gasttreibers, auf den zurückgegriffen werden soll, wenn die Version des vGPU-Gasttreibers nicht mithilfe des eingegebenen Lizenz-API-Schlüssels ermittelt werden kann. | |
vgpu-url | In einer nicht verbundenen Umgebung erforderlich. Die URL zum Herunterladen des vGPU-Gasttreibers. |
|
Automatisierung von DL-Arbeitslasten | registry-uri | Erforderlich in einer nicht verbundenen Umgebung oder wenn Sie eine private Containerregistrierung verwenden möchten, um das Herunterladen von Images aus dem Internet zu vermeiden. Der URI einer privaten Containerregistrierung mit den Deep Learning-Arbeitslast-Container-Images. Erforderlich, wenn Sie auf eine private Registrierung in |
registry-user | Erforderlich, wenn Sie eine private Containerregistrierung verwenden, für die eine Standardauthentifizierung erforderlich ist. | |
registry-passwd | Erforderlich, wenn Sie eine private Containerregistrierung verwenden, für die eine Standardauthentifizierung erforderlich ist. | |
registry-2-uri | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden, die auf Docker und der erforderlichen Standardauthentifizierung basiert. | |
registry-2-user | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden. | |
registry-2-passwd | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden. | |
image-oneliner |
Ein einzeilige Bash-Befehl, der bei der VM-Bereitstellung ausgeführt wird. Dieser Wert muss base64-verschlüsselt werden. Sie können diese Eigenschaft verwenden, um den DL-Arbeitslastcontainer anzugeben, den Sie bereitstellen möchten, z. B. PyTorch oder TensorFlow. Weitere Informationen finden Sie unter Deep Learning-Arbeitslasten in VMware Private AI Foundation with NVIDIA.
Hinweis: Wenn sowohl
user-data als auch
image-oneliner angegeben werden, wird der Wert
user-data verwendet.
|
|
docker-compose-uri |
URI der Docker-Erstellungsdatei. Erforderlich, wenn Sie eine Docker-Erstellungsdatei benötigen, um den DL-Arbeitslastcontainer zu starten. Dieser Wert muss base64-verschlüsselt werden. | |
config-json |
Konfigurationsdatei für mehrere Anmeldevorgänge in der Containerregistrierung bei Verwendung einer Docker-Erstellungsdatei. Dieser Wert muss base64-verschlüsselt werden. |
Zuweisen einer statischen IP-Adresse zu einer Deep Learning-VM in VMware Private AI Foundation with NVIDIA
Standardmäßig werden die Deep Learning-VM-Images auf Zuweisung von Adressen mittels DHCP konfiguriert. Wenn Sie eine Deep Learning-VM mit einer statischen IP-Adresse direkt auf einem vSphere-Cluster bereitstellen möchten, müssen Sie dem Abschnitt „cloud-init“ zusätzlichen Code hinzufügen.
Prozedur
Beispiel: Zuweisen einer statischen IP-Adresse zu einer CUDA-Beispielarbeitslast
Für ein Beispiel für eine Deep Learning-VM mit einer CUDA-Beispiel-DL-Arbeitslast:
Deep Learning-VM-Element | Beispielwert |
---|---|
DL-Arbeitslast-Image | nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 |
IP-Adresse | 10.199.118.245 |
Subnetzpräfix | /25 |
Gateway | 10.199.118.253 |
DNS-Server |
|
Stellen Sie den folgenden cloud-init-Code bereit:
I2Nsb3VkLWNvbmZpZwp3cml0ZV9maWxlczoKLSBwYXRoOiAvb3B0L2Rsdm0vZGxfYXBwLnNoCiAgcGVybWlzc2lvbnM6ICcwNzU1JwogIGNvbnRlbnQ6IHwKICAgICMhL2Jpbi9iYXNoCiAgICBkb2NrZXIgcnVuIC1kIG52Y3IuaW8vbnZpZGlhL2s4cy9jdWRhLXNhbXBsZTp2ZWN0b3JhZGQtY3VkYTExLjcuMS11Ymk4CgptYW5hZ2VfZXRjX2hvc3RzOiB0cnVlCiAKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL25ldHBsYW4vNTAtY2xvdWQtaW5pdC55YW1sCiAgICBwZXJtaXNzaW9uczogJzA2MDAnCiAgICBjb250ZW50OiB8CiAgICAgIG5ldHdvcms6CiAgICAgICAgdmVyc2lvbjogMgogICAgICAgIHJlbmRlcmVyOiBuZXR3b3JrZAogICAgICAgIGV0aGVybmV0czoKICAgICAgICAgIGVuczMzOgogICAgICAgICAgICBkaGNwNDogZmFsc2UgIyBkaXNhYmxlIERIQ1A0CiAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE5OS4xMTguMjQ1LzI1XSAgIyBTZXQgdGhlIHN0YXRpYyBJUCBhZGRyZXNzIGFuZCBtYXNrCiAgICAgICAgICAgIHJvdXRlczoKICAgICAgICAgICAgICAgIC0gdG86IGRlZmF1bHQKICAgICAgICAgICAgICAgICAgdmlhOiAxMC4xOTkuMTE4LjI1MyAjIENvbmZpZ3VyZSBnYXRld2F5CiAgICAgICAgICAgIG5hbWVzZXJ2ZXJzOgogICAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE0Mi43LjEsIDEwLjEzMi43LjFdICMgUHJvdmlkZSB0aGUgRE5TIHNlcnZlciBhZGRyZXNzLiBTZXBhcmF0ZSBtdWxpdHBsZSBETlMgc2VydmVyIGFkZHJlc3NlcyB3aXRoIGNvbW1hcy4KIApydW5jbWQ6CiAgLSBuZXRwbGFuIGFwcGx5
was dem folgenden Skript im Klartextformat entspricht:
#cloud-config write_files: - path: /opt/dlvm/dl_app.sh permissions: '0755' content: | #!/bin/bash docker run -d nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 manage_etc_hosts: true write_files: - path: /etc/netplan/50-cloud-init.yaml permissions: '0600' content: | network: version: 2 renderer: networkd ethernets: ens33: dhcp4: false # disable DHCP4 addresses: [10.199.118.245/25] # Set the static IP address and mask routes: - to: default via: 10.199.118.253 # Configure gateway nameservers: addresses: [10.142.7.1, 10.132.7.1] # Provide the DNS server address. Separate mulitple DNS server addresses with commas. runcmd: - netplan apply