Questo documento spiega come creare ed eseguire un job che utilizza un'unità di elaborazione grafica (GPU).
Quando crei un job batch, puoi facoltativamente aggiungere una o più GPU alle VM che lo eseguono. I casi d'uso comuni per i job che utilizzano GPU includono carichi di lavoro intensivi di elaborazione dati e machine learning (ML).
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la Guida introduttiva all'utilizzo di Batch e abilita questa funzionalità completando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) sul progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito
Per saperne di più sulla concessione dei ruoli, vedi Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
-
Editor job batch (
Crea un job che utilizza GPU
Per creare un job che utilizza GPU:
- Consulta la sezione Requisiti per l'utilizzo di un job con GPU per determinare i metodi che puoi utilizzare per creare il job.
- Crea un job con i metodi che hai selezionato. Per esempi su come creare un job utilizzando i metodi consigliati, consulta la sezione Creare un job di esempio che utilizza GPU.
Requisiti per l'utilizzo di GPU in un job
Per utilizzare le GPU, un job deve:
- Installa i driver GPU richiesti automaticamente o manualmente a seconda dei requisiti del job.
- Se il job specifica qualsiasi altra risorsa per le sue VM (direttamente o utilizzando un modello di istanza VM), il job deve definire risorse VM compatibili.
Dopo aver determinato come soddisfare questi requisiti per il tuo job, devi anche definire la località e le GPU del job. Ciascuna delle VM di un job può utilizzare una o più GPU del tipo specificato. Le località consentite per le VM del job (o, se non definita, la località del job) devono avere il tipo di GPU specificato. Per ulteriori informazioni sulla definizione del tipo di GPU, del numero di GPU e di una posizione valida per un job, vedi gli esempi.
Installa i driver per GPU
Per installare i driver GPU richiesti, seleziona uno dei seguenti metodi:
Installa i driver automaticamente (opzione consigliata, se possibile): come mostrato negli esempi, per consentire a Batch di recuperare i driver GPU richiesti da un percorso di terze parti e di installarli per tuo conto, imposta il campo
installGpuDrivers
per il job sutrue
. Questo metodo è consigliato se il job non richiede l'installazione manuale dei driver.Installa i driver manualmente:questo metodo è necessario se si verifica una delle seguenti condizioni:
- Un job utilizza elementi eseguibili sia di script che di container e non ha accesso a internet. Per ulteriori informazioni sull'accesso di un job, consulta Panoramica del networking batch.
- Un job utilizza un'immagine VM personalizzata. Per scoprire di più sulle immagini di sistema operativo VM e sulle immagini di sistema operativo VM che puoi utilizzare, consulta Panoramica dell'ambiente del sistema operativo VM.
Per installare manualmente i driver GPU richiesti, ti consigliamo il seguente metodo:
Crea un'immagine VM personalizzata che includa i driver GPU.
Per installare i driver GPU, esegui uno script di installazione basato sul sistema operativo che vuoi utilizzare:
Se il job contiene elementi eseguibili di container e non utilizza Container-Optimized OS, devi installare anche NVIDIA Container Toolkit
Crea e invia un job con l'immagine VM personalizzata utilizzando un modello di istanza Compute Engine. Imposta il
installGpuDrivers
campo per il job sufalse
(predefinito).
Definisci risorse VM compatibili
Se il job definisce risorse VM (uno dei sottocampi di instances[]
) diverse dalle GPU, devi definire queste risorse VM in modo compatibile.
Per definire le risorse per le VM di un job, incluse le GPU, puoi utilizzare solo i seguenti metodi:
- Definisci le risorse direttamente (consigliato): Come mostrato negli
esempi, per
definire le risorse direttamente per le VM di un job, utilizza il
policy
field-6">.ph-1 - Definisci le risorse in un modello: definisci le risorse per le VM di un job specificando un modello di istanza Compute Engine.
Inoltre, tutte le risorse che definisci devono essere compatibili con il tipo e il numero di GPU per il job. Per ulteriori informazioni sulle risorse VM che puoi utilizzare con le GPU, consulta l'articolo sulle piattaforme GPU nella documentazione di Compute Engine.
Crea un job di esempio che utilizza GPU
Puoi creare un job che utilizza GPU utilizzando l'interfaccia a riga di comando gcloud o l'API Batch.
gcloud
Crea un file JSON che specifichi i dettagli di configurazione del job, i sottocampi
type
ecount
del campoaccelerators[]
e una località che contiene questi tipi di GPU.Ad esempio, per creare un job di script di base che utilizza GPU, installa automaticamente i driver GPU richiesti e specifica le località consentite per le VM del job, crea un file JSON con i seguenti contenuti:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "accelerators": [ { "type": "GPU_TYPE", "count": GPU_COUNT } ] } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } } }
Sostituisci quanto segue:
INSTALL_GPU_DRIVERS
: facoltativo. Se impostato sutrue
, Batch recupera i driver richiesti per il tipo di GPU specificato nel campopolicy
da un percorso di terze parti e li installa per tuo conto. Se imposti questo campo sufalse
(impostazione predefinita), devi installare manualmente i driver GPU per utilizzare le GPU per questo job.GPU_TYPE
: il tipo di GPU. Puoi visualizzare un elenco dei tipi di GPU disponibili utilizzando il comandogcloud compute accelerator-types list
.GPU_COUNT
: il numero di GPU del tipo specificato.ALLOWED_LOCATIONS
: facoltativo. Le località in cui è consentita l'esecuzione delle istanze VM per il tuo job, ad esempioregions/us-central1, zones/us-central1-a
consente la zonaus-central1-a
. Se specifichi una località consentita, devi selezionare la regione e, facoltativamente, una o più zone. Le località che scegli devono avere i tipi di GPU desiderati per questo job. Altrimenti, se ometti questo campo, la posizione del job deve avere i tipi di GPU. Per ulteriori informazioni, consulta il campoallowedLocations[]
.
Per creare ed eseguire il job, utilizza il comando
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome del job.LOCATION
: la località del lavoro.JSON_CONFIGURATION_FILE
: il percorso di un file JSON con i dettagli di configurazione del job.
API
Invia una richiesta POST
al
metodo jobs.create
che specifica i dettagli di configurazione del job, i
sottocampi type
e count
del campo accelerators[]
e una località che contiene questi
tipi di GPU.
Ad esempio, per creare un job di script di base che utilizza GPU, installa automaticamente i driver GPU richiesti e specifica le località consentite per le VM del job, crea un file JSON con i seguenti contenuti:
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": {
"accelerators": [
{
"type": "GPU_TYPE",
"count": GPU_COUNT
}
]
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
}
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto del progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.INSTALL_GPU_DRIVERS
: facoltativo. Se impostato sutrue
, Batch recupera i driver richiesti per il tipo di GPU specificato nel campopolicy
da un percorso di terze parti e li installa per tuo conto. Se imposti questo campo sufalse
(impostazione predefinita), devi installare manualmente i driver GPU per utilizzare le GPU per questo job.GPU_TYPE
: il tipo di GPU. Puoi visualizzare un elenco dei tipi di GPU disponibili utilizzando il comandogcloud compute accelerator-types list
.GPU_COUNT
: il numero di GPU del tipo specificato.ALLOWED_LOCATIONS
: facoltativo. Le località in cui è consentita l'esecuzione delle istanze VM per il tuo job, ad esempioregions/us-central1, zones/us-central1-a
consente la zonaus-central1-a
. Se specifichi una località consentita, devi selezionare la regione e, facoltativamente, una o più zone. Le località che scegli devono avere i tipi di GPU desiderati per questo job. Altrimenti, se ometti questo campo, la posizione del job deve avere i tipi di GPU. Per ulteriori informazioni, consulta il campoallowedLocations[]
.
Passaggi successivi
- In caso di problemi durante la creazione o l'esecuzione di un job, consulta Risoluzione dei problemi.
- Visualizza job e attività
- Scopri di più sulle opzioni per la creazione di job.