In diesem Dokument wird beschrieben, wie Sie einen Job erstellen und ausführen, der eine Grafikprozessoreinheit (GPU) verwendet. Weitere Informationen zu den Funktionen und Einschränkungen für GPUs finden Sie in der Compute Engine-Dokumentation unter GPUs.
Wenn Sie einen Batchjob erstellen, können Sie optional GPUs verwenden, um bestimmte Arbeitslasten zu beschleunigen. Häufige Anwendungsfälle für Jobs, die GPUs verwenden, sind intensive Datenverarbeitung und Arbeitslasten für künstliche Intelligenz (KI) wie maschinelles Lernen (ML).
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Abschnitt Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, damit Sie die nötigen Berechtigungen zum Erstellen eines Jobs haben:
-
Batch-Job-Editor (
roles/batch.jobsEditor) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch-Job-Editor (
Job erstellen, der GPUs verwendet
So erstellen Sie einen Job, der GPUs verwendet:
- Anforderungen für einen Job planen, der GPUs verwendet
- Erstellen Sie einen Job mit den Anforderungen und Methoden, die Sie ermittelt haben. Beispiele zum Erstellen eines Jobs mit den empfohlenen Optionen finden Sie in diesem Dokument unter Beispieljob mit GPUs erstellen.
Anforderungen für einen Job planen, der GPUs verwendet
Bevor Sie einen Job erstellen, der GPUs verwendet, planen Sie die Anforderungen des Jobs, wie in den folgenden Abschnitten beschrieben:
- GPU-Maschinentyp und Verbrauchsoption auswählen
- GPU-Treiber installieren
- Kompatible VM-Ressourcen definieren
Schritt 1: GPU-Maschinentyp und Verbrauchsoption auswählen
Die Anforderungen eines Jobs variieren je nach bevorzugtem GPU-Maschinentyp und der Verbrauchsoption. Die Optionen für die einzelnen Anforderungen können voneinander abhängig sein.
Führen Sie die folgenden Schritte aus, um den GPU-Maschinentyp und die Verbrauchsoption für Ihren Job auszuwählen:
Wählen Sie Ihre Priorität aus:
- Wenn Sie Leistung und Basispreise priorisieren möchten, lesen Sie den Abschnitt GPU-Maschinentyp auswählen in diesem Dokument.
- Wenn Sie die Ressourcenverfügbarkeit oder Rabatte priorisieren möchten, lesen Sie den Abschnitt Verbrauchsoption auswählen in diesem Dokument.
Treffen Sie die restliche Auswahl basierend darauf, was mit Ihrer ersten Auswahl kompatibel ist.
Informationen zu den Optionen, die mit Ihrer ersten Auswahl kompatibel sind, finden Sie in der Compute Engine-Dokumentation unter Verfügbarkeit von Verbrauchsoptionen nach Maschinentyp.
Weitere Informationen finden Sie im verbleibenden Abschnitt unter Verbrauchsoption auswählen bzw. GPU-Maschinentyp auswählen.
GPU-Maschinentyp auswählen
Führen Sie die folgenden Schritte aus, um den GPU-Maschinentyp für einen Job auszuwählen und die Jobanforderungen zu verstehen:
GPU-Maschinentyp auswählen:Informationen zu den verfügbaren GPU-Maschinentypen (den gültigen Kombinationen aus GPU-Typ, Anzahl der GPUs und Maschinentyp (vCPUs und Arbeitsspeicher)) und den empfohlenen Anwendungsfällen finden Sie in der Compute Engine-Dokumentation unter GPU-Maschinentypen und Für Beschleuniger optimierte Maschinentypfamilie.
Jobanforderungen für Ihren GPU-Maschinentyp:Die Felder, die für einen Job erforderlich sind, um einen GPU-Maschinentyp anzugeben, variieren je nach den Kategorien in der folgenden Tabelle:
GPU-Maschinentypen und ihre Jobanforderungen GPUs für beschleunigungsoptimierte VMs: VMs mit einem Maschinentyp aus der beschleunigungsoptimierten Maschinentypfamilie haben automatisch einen bestimmten Typ und eine bestimmte Anzahl dieser GPUs angehängt.
Wenn Sie GPUs für beschleunigungsoptimierte VMs verwenden möchten, empfehlen wir, den Maschinentyp anzugeben. Jeder beschleunigungsoptimierte Maschinentyp unterstützt nur einen bestimmten Typ und eine bestimmte Anzahl von GPUs. Es ist daher funktional gleichwertig, ob Sie diese Werte zusätzlich zum beschleunigungsoptimierten Maschinentyp angeben oder nicht.
Insbesondere unterstützt Batch auch die Angabe von Typ und Anzahl der GPUs für beschleunigungsoptimierte VMs, aber die resultierenden vCPU- und Arbeitsspeicheroptionen sind oft sehr begrenzt. Daher empfehlen wir, dass Sie prüfen, ob die verfügbaren vCPU- und Speicheroptionen mit den Aufgabenanforderungen des Jobs kompatibel sind.
GPUs für N1-VMs: Für diese GPUs müssen Sie den Typ und die Anzahl angeben, die an jede VM angehängt werden sollen. Sie müssen an VMs mit einem Maschinentyp aus der N1-Maschinenserie angehängt werden.
Wenn Sie GPUs für N1-VMs verwenden möchten, empfehlen wir, dass Sie mindestens den Typ und die Anzahl der GPUs angeben. Achten Sie darauf, dass die Kombination der Werte mit einer der gültigen GPU-Optionen für die N1-Maschinentypen übereinstimmt. Die vCPU- und Arbeitsspeicheroptionen für N1-VMs, die einen bestimmten Typ und eine bestimmte Anzahl von GPUs verwenden, sind sehr flexibel. Sofern Sie den Job nicht über die Google Cloud Konsole erstellen, kann Batch automatisch einen Maschinentyp auswählen, der die Anforderungen der Aufgaben des Jobs erfüllt.
Nutzungsoption auswählen
In diesem Abschnitt wird zusammengefasst, wie Sie die Verbrauchsoption für einen Job auswählen und welche Jobanforderungen für die einzelnen Optionen gelten.
Die verfügbaren Verbrauchsoptionen für Batch und ihre Anforderungen werden in der folgenden Tabelle erläutert. Sie sind nach Anwendungsfällen sortiert, von der höchsten bis zur niedrigsten Ressourcenverfügbarkeit.
Zusammenfassend empfehlen wir den meisten Nutzern, die Verbrauchsoption für einen Job so auszuwählen:
- Sofern keine der anderen Bedingungen zutrifft, verwenden Sie Flex-Start-VMs (Vorabversion) (bevorzugt, wenn sie Ihren Anforderungen entsprechen) oder On-Demand-VMs.
- Wenn für Ihren Job eine sehr hohe Zusicherung der Ressourcenverfügbarkeit erforderlich ist oder Sie ungenutzte Reservierungen haben, die Sie nicht löschen können, verwenden Sie Reservierungen im Kalendermodus (Vorabversion) (bevorzugt, wenn sie Ihren Anforderungen entsprechen) oder Reservierungen.
- (Optional) Wenn Ihre Arbeitslast sehr fehlertolerant ist, können Sie möglicherweise Kosten senken, indem Sie Spot-VMs verwenden.
| Nutzungsoptionen und ihre Jobanforderungen | |
|---|---|
Reservierungen
|
Batch verwendet Reservierungen für Jobs, die nicht verwendete reservierte VMs nutzen können. Weitere Informationen zu den Jobanforderungen für die Nutzung von Reservierungen finden Sie auf der Seite Ressourcenverfügbarkeit mit VM-Reservierungen sicherstellen. |
Reservierungen im Kalendermodus (Vorschau)
|
Batch verwendet Reservierungen im Kalendermodus für Jobs, die alle folgenden Bedingungen erfüllen:
|
Flex-Start-VMs (Vorschau)
|
Batch verwendet Flex-Start-VMs für Jobs, die alle der folgenden Bedingungen erfüllen:
|
On demand
|
Batch verwendet standardmäßig On-Demand für die meisten anderen Jobs. Wenn Sie sicherstellen möchten, dass für einen Job On-Demand verwendet wird, gehen Sie so vor:1
1Ausnahme: Bei Jobs, die die A3-Maschinenserie verwenden, ist das Standardverhalten eindeutig. Wir empfehlen, keine On-Demand-VMs zu verwenden und das Feld |
Spot-VMs
|
Batch verwendet Spot-VMs für Jobs, die alle folgenden Kriterien erfüllen:
|
Schritt 2: GPU-Treiber installieren
Wenn Sie GPUs für einen Job verwenden möchten, müssen Sie die GPU-Treiber installieren. Wählen Sie eine der folgenden Methoden aus, um GPU-Treiber zu installieren:
GPU-Treiber automatisch installieren (empfohlen, falls möglich): Wie in den Beispielen gezeigt, können Sie Batch die erforderlichen GPU-Treiber von einem Drittanbieterstandort abrufen und in Ihrem Namen installieren lassen. Dazu müssen Sie das Feld
installGpuDriversfür den Job auftruefestlegen. Diese Methode wird empfohlen, wenn für Ihren Job keine manuelle Installation von Treibern erforderlich ist.Wenn Sie angeben müssen, welche Version des GPU-Treibers von Batch installiert werden soll, legen Sie auch das Feld
driverVersionfest.GPU-Treiber manuell installieren:Diese Methode ist erforderlich, wenn eine der folgenden Bedingungen zutrifft:
- Für einen Job werden sowohl Script- als auch Container-Runnables verwendet und er hat keinen Internetzugang. Weitere Informationen zum Zugriff eines Jobs finden Sie unter Batch-Netzwerk – Übersicht.
- Ein Job verwendet ein benutzerdefiniertes VM-Image. Weitere Informationen zu VM-Betriebssystem-Images und dazu, welche VM-Betriebssystem-Images Sie verwenden können, finden Sie unter VM-Betriebssystemumgebung – Übersicht.
Für die manuelle Installation der erforderlichen GPU-Treiber wird die folgende Methode empfohlen:
Erstellen Sie ein benutzerdefiniertes VM-Image, das die GPU-Treiber enthält.
Führen Sie zum Installieren von GPU-Treibern ein Installationsskript basierend auf dem Betriebssystem aus, das Sie verwenden möchten:
Wenn Ihr Job Container-Runnables enthält und nicht Container-Optimized OS verwendet, müssen Sie auch das NVIDIA Container Toolkit installieren.
Wenn Sie einen Job erstellen und einreichen, der GPUs verwendet, geben Sie das benutzerdefinierte VM-Image an, das die GPU-Treiber enthält, und legen Sie das Feld
installGpuDriversfür den Job auffalse(Standard) fest.
Schritt 3: Kompatible VM-Ressourcen definieren
Informationen zu den Anforderungen und Optionen zum Definieren der VM-Ressourcen für einen Job finden Sie unter Job-Ressourcen.
Zusammenfassend müssen Sie beim Definieren der VM-Ressourcen für einen Job, der GPUs verwendet, Folgendes tun:
Achten Sie darauf, dass der GPU-Maschinentyp am Standort der VMs Ihres Jobs verfügbar ist.
Informationen dazu, wo GPU-Maschinentypen verfügbar sind, finden Sie in der Compute Engine-Dokumentation unter Verfügbarkeit von Beschleunigern.
Wenn Sie den Maschinentyp des Jobs angeben, muss dieser Maschinentyp genügend vCPUs und Arbeitsspeicher für die Aufgabenanforderungen des Jobs haben. Die Angabe des Maschinentyps für den Job ist erforderlich, wenn Sie einen Job über die Google Cloud Console erstellen. Sie wird auch empfohlen, wenn Sie einen Job erstellen, der GPUs für beschleunigeroptimierte VMs verwendet.
Achten Sie darauf, dass Sie die VM-Ressourcen für einen Job mit einer gültigen Methode definieren:
- VM-Ressourcen direkt mit dem Feld
instances[].policydefinieren (nach Möglichkeit empfohlen). Diese Methode wird in den Beispielen gezeigt. - VM-Ressourcen über eine Vorlage mit dem Feld
instances[].instanceTemplatedefinieren Diese Methode ist erforderlich, um GPU-Treiber manuell über ein benutzerdefiniertes Image zu installieren. Weitere Informationen finden Sie unter Job-Ressourcen mit einer VM-Instanzvorlage definieren.
- VM-Ressourcen direkt mit dem Feld
Beispieljob erstellen, der GPUs verwendet
In den folgenden Abschnitten wird beschrieben, wie Sie für jede Verbrauchsoption einen Beispieljob erstellen. In den Beispieljobs werden die empfohlenen Optionen verwendet: Alle installieren GPU-Treiber automatisch und alle definieren VM-Ressourcen direkt.
| Nutzungsoption | Beispiel für Jobanweisungen |
|---|---|
| Reservierungen oder Reservierungen im Kalendermodus (Vorschau) | |
| Flex-Start-VMs (Vorschau) | |
| On-Demand-VMs oder Spot-VMs |
Wählen Sie je nach GPU-Maschinentyp eine der folgenden Optionen aus: |
GPUs und Flex-Start-VMs verwenden
Sie können einen Job erstellen, der GPUs für A3-VMs über Dynamic Workload Scheduler verwendet, indem Sie die gcloud CLI oder die Batch API verwenden.
gcloud
Erstellen Sie eine JSON-Datei, in der GPU-Treiber installiert werden, ein GPU-Maschinentyp angegeben wird, der Flex-Start-VMs unterstützt, Reservierungen blockiert werden und die in einem Standort ausgeführt wird, der den GPU-Maschinentyp unterstützt.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der Flex-Start-VMs und GPUs für accelerator-optimierte VMs verwendet, erstellen Sie eine JSON-Datei mit dem folgenden Inhalt.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel":"FLEX_START", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Ersetzen Sie Folgendes:
INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ erforderlichen Treiber, die Sie im Feldpolicyangeben, von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.MACHINE_TYPE: ein GPU-Maschinentyp, der Flex-Start-VMs unterstützt. Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Verfügbarkeit von Verbrauchsoptionen nach Maschinentyp.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in der die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
Verwenden Sie den Befehl
gcloud alpha batch jobs submit, um den Job zu erstellen und auszuführen:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILEErsetzen Sie Folgendes:
JOB_NAME: Der Name des Jobs.LOCATION: Der Standort des Jobs.JSON_CONFIGURATION_FILE: der Pfad zu einer JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST-Anfrage an die v1alpha-Methode jobs.create, die GPU-Treiber installiert, einen GPU-Maschinentyp angibt, der Flex-Start-VMs unterstützt, Reservierungen blockiert und an einem Ort ausgeführt wird, der den GPU-Maschinentyp unterstützt.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der Flex-Start-VMs und GPUs für accelerator-optimierte VMs verwendet, stellen Sie die folgende Anfrage:
POST https://batch.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel":"FLEX_START",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID Ihres Projekts.LOCATION: Der Standort des Jobs.JOB_NAME: Der Name des Jobs.INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ, den Sie im Feldpolicyangeben, erforderlichen Treiber von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.MACHINE_TYPE: ein GPU-Maschinentyp, der Flex-Start-VMs unterstützt. Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Verfügbarkeit von Verbrauchsoptionen nach Maschinentyp.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in der die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
GPUs für beschleunigungsoptimierte VMs verwenden
Sie können einen Job erstellen, der GPUs für beschleunigeroptimierte VMs verwendet, indem Sie dieGoogle Cloud Console, die gcloud CLI, die Batch API, Java, Node.js oder Python verwenden.
Console
So erstellen Sie einen Job, der GPUs verwendet, mit der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Seite Job-Liste auf.
Klicken Sie auf Erstellen. Die Seite Batchjob erstellen wird geöffnet. Im linken Bereich ist die Seite Jobdetails ausgewählt.
Konfigurieren Sie die Seite Jobdetails:
Optional: Passen Sie im Feld Jobname den Jobnamen an.
Geben Sie beispielsweise
example-gpu-jobein.Konfigurieren Sie den Abschnitt Aufgabendetails:
Fügen Sie im Fenster Neues Runnable mindestens ein Script oder einen Container hinzu, damit dieser Job ausgeführt werden kann.
So erstellen Sie beispielsweise einen einfachen Skriptjob:
Klicken Sie das Kästchen Script an. Ein Feld wird angezeigt.
Geben Sie im Feld das folgende Skript ein:
echo Hello world from task ${BATCH_TASK_INDEX}.Klicken Sie auf Fertig.
Geben Sie im Feld Anzahl der Aufgaben die Anzahl der Aufgaben für diesen Job ein.
Geben Sie beispielsweise
3ein.Optional: Geben Sie im Feld Parallelität die Anzahl der Aufgaben ein, die gleichzeitig ausgeführt werden sollen.
Geben Sie beispielsweise
1(Standardeinstellung) ein.
Konfigurieren Sie die Seite Ressourcenspezifikationen:
Klicken Sie im linken Bereich auf Ressourcenspezifikationen. Die Seite Ressourcenspezifikationen wird geöffnet.
Wählen Sie im Abschnitt VM-Bereitstellungsmodell eine der folgenden Optionen für die Verbrauchsoption für die VMs dieses Jobs aus:
Wenn Ihr Job vorzeitigen Beendigungen standhalten kann und Sie Spot-VMs mit Rabatt nutzen möchten, wählen Sie Spot aus.
Wenn Sie On-Demand-VMs verwenden möchten, wählen Sie Standard (Standard) aus.
Wählen Sie den Standort für diesen Job aus.
Wählen Sie im Feld Region eine Region aus.
Führen Sie im Feld Zone einen der folgenden Schritte aus:
Wenn Sie die Ausführung dieses Jobs auf eine bestimmte Zone beschränken möchten, wählen Sie eine Zone aus.
Wählen Sie andernfalls Beliebig (Standard) aus.
Wählen Sie den GPU-Maschinentyp für die VMs dieses Jobs aus:
Klicken Sie in den Optionen für die Maschinenfamilie auf GPUs.
Wählen Sie im Feld GPU-Typ den GPU-Typ aus. Wählen Sie dann im Feld Anzahl der GPUs die Anzahl der GPUs für jede VM aus.
Wenn Sie einen der GPU-Typen für beschleunigungsoptimierte VMs ausgewählt haben, ist im Feld Maschinentyp nur eine Option für den Maschinentyp verfügbar, die auf dem Typ und der Anzahl der von Ihnen ausgewählten GPUs basiert.
Wenn Sie GPU-Treiber automatisch installieren möchten, wählen Sie GPU-Treiberinstallation (Standard) aus.
Konfigurieren Sie die Menge an VM-Ressourcen, die für jede Aufgabe erforderlich sind:
Geben Sie im Feld Kerne die Anzahl der vCPUs pro Aufgabe ein.
Geben Sie beispielsweise
1(Standardeinstellung) ein.Geben Sie im Feld Arbeitsspeicher die Menge an RAM in GB pro Aufgabe ein.
Geben Sie beispielsweise
0.5(Standardeinstellung) ein.
Klicken Sie auf Fertig.
Optional: Konfigurieren Sie die anderen Felder für diesen Job.
Optional: Wenn Sie die Jobkonfiguration überprüfen möchten, klicken Sie im linken Bereich auf Vorschau.
Klicken Sie auf Erstellen.
Auf der Seite Jobdetails wird der von Ihnen erstellte Job angezeigt.
gcloud
Erstellen Sie eine JSON-Datei, in der GPU-Treiber installiert werden, ein Maschinentyp aus der beschleunigungsoptimierten Maschinenfamilie angegeben wird und die an einem Ort ausgeführt wird, an dem der GPU-Maschinentyp verfügbar ist.
Wenn Sie beispielsweise einen einfachen Scriptjob erstellen möchten, der GPUs für accelerator-optimierte VMs verwendet, erstellen Sie eine JSON-Datei mit folgendem Inhalt:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel": "PROVISIONING_MODEL", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Ersetzen Sie Folgendes:
INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ, den Sie im Feldpolicyangeben, erforderlichen Treiber von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.PROVISIONING_MODEL: Das Bereitstellungsmodell für Ihre Verbrauchsoption: entwederSTANDARDfür On-Demand oderSPOTfür Spot-VMs.MACHINE_TYPE: ein Maschinentyp aus der beschleunigungsoptimierten Maschinenfamilie.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in denen die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
Verwenden Sie den Befehl
gcloud batch jobs submit, um den Job zu erstellen und auszuführen:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILEErsetzen Sie Folgendes:
JOB_NAME: Der Name des Jobs.LOCATION: Der Standort des Jobs.JSON_CONFIGURATION_FILE: der Pfad zu einer JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST-Anfrage an die Methode jobs.create, die GPU-Treiber installiert, einen Maschinentyp aus der beschleunigungsoptimierten Maschinenfamilie angibt und an einem Standort ausgeführt wird, der den GPU-Maschinentyp hat.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der GPUs für accelerator-optimierte VMs verwendet, stellen Sie die folgende Anfrage:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel": "PROVISIONING_MODEL",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID Ihres Projekts.LOCATION: Der Standort des Jobs.JOB_NAME: Der Name des Jobs.INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ erforderlichen Treiber, die Sie im Feldpolicyangeben, von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.PROVISIONING_MODEL: Das Bereitstellungsmodell für Ihre Verbrauchsoption: entwederSTANDARDfür On-Demand- oderSPOTfür Spot-VMs.MACHINE_TYPE: ein Maschinentyp aus der beschleunigungsoptimierten Maschinenfamilie.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in der die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
Java
Node.js
Python
GPUs für N1-VMs verwenden
Sie können einen Job erstellen, der GPUs für N1-VMs verwendet, indem Sie die Google Cloud Console, die gcloud CLI, die Batch API, Java, Node.js oder Python verwenden.
Console
So erstellen Sie einen Job, der GPUs verwendet, mit der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Seite Job-Liste auf.
Klicken Sie auf Erstellen. Die Seite Batchjob erstellen wird geöffnet. Im linken Bereich ist die Seite Jobdetails ausgewählt.
Konfigurieren Sie die Seite Jobdetails:
Optional: Passen Sie im Feld Jobname den Jobnamen an.
Geben Sie beispielsweise
example-gpu-jobein.Konfigurieren Sie den Abschnitt Aufgabendetails:
Fügen Sie im Fenster Neues Runnable mindestens ein Script oder einen Container hinzu, damit dieser Job ausgeführt werden kann.
So erstellen Sie beispielsweise einen einfachen Skriptjob:
Klicken Sie das Kästchen Script an. Ein Feld wird angezeigt.
Geben Sie im Feld das folgende Skript ein:
echo Hello world from task ${BATCH_TASK_INDEX}.Klicken Sie auf Fertig.
Geben Sie im Feld Anzahl der Aufgaben die Anzahl der Aufgaben für diesen Job ein.
Geben Sie beispielsweise
3ein.Optional: Geben Sie im Feld Parallelität die Anzahl der Aufgaben ein, die gleichzeitig ausgeführt werden sollen.
Geben Sie beispielsweise
1(Standardeinstellung) ein.
Konfigurieren Sie die Seite Ressourcenspezifikationen:
Klicken Sie im linken Bereich auf Ressourcenspezifikationen. Die Seite Ressourcenspezifikationen wird geöffnet.
Wählen Sie im Abschnitt VM-Bereitstellungsmodell eine der folgenden Optionen für die Verbrauchsoption für die VMs dieses Jobs aus:
Wenn Ihr Job vorzeitigen Beendigungen standhalten kann und Sie Spot-VMs mit Rabatt nutzen möchten, wählen Sie Spot aus.
Wenn Sie On-Demand-VMs verwenden möchten, wählen Sie Standard (Standard) aus.
Wählen Sie den Standort für diesen Job aus.
Wählen Sie im Feld Region eine Region aus.
Führen Sie im Feld Zone einen der folgenden Schritte aus:
Wenn Sie die Ausführung dieses Jobs auf eine bestimmte Zone beschränken möchten, wählen Sie eine Zone aus.
Wählen Sie andernfalls Beliebig (Standard) aus.
Wählen Sie den GPU-Maschinentyp für die VMs dieses Jobs aus:
Klicken Sie in den Optionen für die Maschinenfamilie auf GPUs.
Wählen Sie im Feld GPU-Typ den GPU-Typ aus.
Wenn Sie einen der GPU-Typen für N1-VMs ausgewählt haben, wird das Feld Serie auf N1 festgelegt.
Wählen Sie im Feld Anzahl der GPUs die Anzahl der GPUs für jede VM aus.
Wählen Sie im Feld Maschinentyp den Maschinentyp aus.
Wenn Sie GPU-Treiber automatisch installieren möchten, wählen Sie GPU-Treiberinstallation (Standard) aus.
Konfigurieren Sie die Menge an VM-Ressourcen, die für jede Aufgabe erforderlich sind:
Geben Sie im Feld Kerne die Anzahl der vCPUs pro Aufgabe ein.
Geben Sie beispielsweise
1(Standardeinstellung) ein.Geben Sie im Feld Arbeitsspeicher die Menge an RAM in GB pro Aufgabe ein.
Geben Sie beispielsweise
0.5(Standardeinstellung) ein.
Klicken Sie auf Fertig.
Optional: Konfigurieren Sie die anderen Felder für diesen Job.
Optional: Wenn Sie die Jobkonfiguration überprüfen möchten, klicken Sie im linken Bereich auf Vorschau.
Klicken Sie auf Erstellen.
Auf der Seite Jobdetails wird der von Ihnen erstellte Job angezeigt.
gcloud
Erstellen Sie eine JSON-Datei, in der GPU-Treiber installiert werden, die Unterfelder
typeundcountdes Feldsaccelerators[]definiert werden und die an einem Ort ausgeführt wird, an dem der GPU-Maschinentyp vorhanden ist.Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der GPUs für N1-VMs verwendet und Batch den genauen N1-Maschinentyp auswählen lässt, erstellen Sie eine JSON-Datei mit dem folgenden Inhalt:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel": "PROVISIONING_MODEL", "reservation": "NO_RESERVATION", "accelerators": [ { "type": "GPU_TYPE", "count": GPU_COUNT } ] } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Ersetzen Sie Folgendes:
INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ, den Sie im Feldpolicyangeben, erforderlichen Treiber von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.PROVISIONING_MODEL: Das Bereitstellungsmodell für Ihre Verbrauchsoption: entwederSTANDARDfür On-Demand- oderSPOTfür Spot-VMs.GPU_TYPE: Der GPU-Typ. Mit dem Befehlgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listVerwenden Sie dieses Feld nur für GPUs für N1-VMs.GPU_COUNT: die Anzahl der GPUs des angegebenen Typs. Weitere Informationen zu den gültigen Optionen finden Sie unter GPU-Maschinentypen für die N1-Maschinenserie. Verwenden Sie dieses Feld nur für GPUs für N1-VMs.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in denen die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
Verwenden Sie den Befehl
gcloud batch jobs submit, um den Job zu erstellen und auszuführen:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILEErsetzen Sie Folgendes:
JOB_NAME: Der Name des Jobs.LOCATION: Der Standort des Jobs.JSON_CONFIGURATION_FILE: der Pfad zu einer JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST-Anfrage an die jobs.create-Methode, die GPU-Treiber installiert, die type- und count-Unterfelder des Felds accelerators[] definiert und einen Standort verwendet, der den GPU-Maschinentyp hat.
Wenn Sie beispielsweise einen einfachen Scriptjob erstellen möchten, der GPUs für N1-VMs verwendet und Batch den genauen N1-Maschinentyp auswählen lässt, stellen Sie die folgende Anfrage:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel": "PROVISIONING_MODEL",
"reservation": "NO_RESERVATION",
"accelerators": [
{
"type": "GPU_TYPE",
"count": GPU_COUNT
}
]
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID Ihres Projekts.LOCATION: Der Standort des Jobs.JOB_NAME: Der Name des Jobs.INSTALL_GPU_DRIVERS: Wenn auftruefestgelegt, ruft Batch die für den GPU-Typ erforderlichen Treiber, die Sie im Feldpolicyangeben, von einem Drittanbieterstandort ab und installiert sie in Ihrem Namen. Wenn Sie dieses Feld auffalse(Standard) festlegen, müssen Sie GPU-Treiber manuell installieren, um GPUs für diesen Job zu verwenden.PROVISIONING_MODEL: Das Bereitstellungsmodell für Ihre Verbrauchsoption: entwederSTANDARDfür On-Demand- oderSPOTfür Spot-VMs.GPU_TYPE: Der GPU-Typ. Mit dem Befehlgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listgcloud compute accelerator-types listVerwenden Sie dieses Feld nur für GPUs für N1-VMs.GPU_COUNT: die Anzahl der GPUs des angegebenen Typs. Weitere Informationen zu den gültigen Optionen finden Sie unter GPU-Maschinentypen für die N1-Maschinenserie. Verwenden Sie dieses Feld nur für GPUs für N1-VMs.ALLOWED_LOCATIONS: Optional können Sie mit demallowedLocations[]-Feld eine Region oder bestimmte Zonen in einer Region angeben, in der die VMs für Ihren Job ausgeführt werden dürfen. Mitregions/us-central1werden beispielsweise alle Zonen in der Regionus-central1zugelassen. Achten Sie darauf, dass Sie Standorte angeben, an denen der GPU-Maschinentyp verfügbar ist, den Sie für diesen Job benötigen. Wenn Sie dieses Feld weglassen, muss der GPU-Maschinentyp am Standort des Jobs verfügbar sein.
Java
Node.js
Python
Nächste Schritte
- Wenn Probleme beim Erstellen oder Ausführen eines Jobs auftreten, lesen Sie den Abschnitt Fehlerbehebung.
- Jobs und Aufgaben ansehen
- Weitere Optionen zum Erstellen von Jobs