Ce document explique comment créer et exécuter une tâche qui utilise un processeur graphique (GPU). Pour en savoir plus sur les fonctionnalités et les restrictions des GPU, consultez la section À propos des GPU dans la documentation Compute Engine.
Lorsque vous créez une tâche par lot, vous pouvez éventuellement utiliser des GPU pour accélérer des charges de travail spécifiques. Les cas d'utilisation courants des tâches qui utilisent des GPU incluent le traitement intensif des données et les charges de travail d'intelligence artificielle (IA), telles que le machine learning (ML).
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour créer un job, demandez à votre administrateur de vous accorder les rôles IAM suivants:
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service de la tâche, qui est par défaut le compte de service Compute Engine par défaut
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de tâches par lot (
Créer une tâche qui utilise des GPU
Pour créer une tâche qui utilise des GPU, procédez comme suit:
- Planifiez les exigences d'une tâche qui utilise des GPU.
- Créez une tâche avec les exigences et les méthodes que vous avez identifiées. Pour savoir comment créer une tâche à l'aide des options recommandées, consultez la section Créer un exemple de tâche qui utilise des GPU de ce document.
Planifier les exigences d'une tâche qui utilise des GPU
Avant de créer une tâche qui utilise des GPU, planifiez les exigences de la tâche comme expliqué dans les sections suivantes:
- Sélectionner le type de machine GPU et la méthode de provisionnement
- Installer les pilotes de GPU
- Définir les ressources de VM compatibles
Étape 1: Sélectionnez le type de machine GPU et la méthode de provisionnement
Les exigences d'une tâche varient en fonction du type de machine GPU et de la méthode de provisionnement que vous préférez. Les options de chacune peuvent être interdépendantes. En fonction de vos exigences et de vos priorités, vous pouvez d'abord sélectionner le type de machine avec GPU ou la méthode de provisionnement. En général, le type de machine GPU affecte principalement les performances et le prix de base, tandis que la méthode de provisionnement affecte principalement la disponibilité des ressources, ainsi que les coûts ou remises supplémentaires.
Sélectionner le type de machine GPU
Les types de machines GPU disponibles (les combinaisons valides de type de GPU, de nombre de GPU et de type de machine (vCPU et mémoire)) et leurs cas d'utilisation sont listés sur la page Types de machines GPU de la documentation Compute Engine.
Les champs requis pour qu'une tâche spécifie un type de machine GPU varient en fonction des catégories du tableau suivant:
Types de machines avec GPU et exigences de tâche | |
---|---|
GPU pour les VM optimisées pour les accélérateurs: les VM dont le type de machine appartient à la famille de machines optimisées pour les accélérateurs sont associées automatiquement à un type et un nombre spécifiques de ces GPU. |
Pour utiliser des GPU pour les VM optimisées pour les accélérateurs, nous vous recommandons de spécifier le type de machine. Chaque type de machine optimisé pour les accélérateurs n'est compatible qu'avec un type et un nombre spécifiques de GPU. Il est donc fonctionnellement équivalent que vous spécifiiez ou non ces valeurs en plus du type de machine optimisé pour les accélérateurs. Plus précisément, Batch ne permet également de spécifier que le type et le nombre de GPU pour les VM optimisées pour l'accélérateur, mais les options de processeurs virtuels et de mémoire qui en résultent sont souvent très limitées. C'est pourquoi nous vous recommandons de vérifier que les options de vCPU et de mémoire disponibles sont compatibles avec les exigences de la tâche de l'ordre de travail. |
GPU pour les VM N1: vous devez spécifier le type et la quantité à associer à chaque VM. Ils doivent être associés à des VM avec un type de machine de la série de machines N1. |
Pour utiliser des GPU pour les VM N1, nous vous recommandons de spécifier au moins le type et le nombre de GPU. Assurez-vous que la combinaison de valeurs correspond à l'une des options de GPU valides pour les types de machines N1. Les options de processeurs virtuels et de mémoire pour les VM N1 qui utilisent un type et un nombre de GPU spécifiques sont très flexibles. Sauf si vous créez la tâche à l'aide de la console Google Cloud, vous pouvez laisser Batch sélectionner automatiquement un type de machine qui répond aux exigences de la tâche de la tâche. |
Sélectionner la méthode de provisionnement
Batch utilise différentes méthodes pour provisionner les ressources de VM pour les tâches qui utilisent des GPU en fonction du type de ressources demandées par votre tâche. Les méthodes de provisionnement disponibles et leurs exigences sont expliquées dans le tableau suivant, qui les liste en fonction de leurs cas d'utilisation: de la disponibilité des ressources la plus élevée à la plus faible.
En résumé, nous recommandons à la plupart des utilisateurs d'effectuer les opérations suivantes:
Si vous prévoyez d'utiliser des types de machines GPU A3 sans réservation, utilisez le planificateur de charges de travail dynamique pour le traitement par lot (version Preview).
Pour tous les autres types de machines GPU, utilisez la méthode de provisionnement par défaut. La méthode de provisionnement par défaut est généralement à la demande. Une exception est faite si votre projet dispose de réservations inutilisées que la tâche peut consommer automatiquement.
Méthodes de provisionnement et exigences liées aux postes | |
---|---|
Réservations
|
Le traitement par lot utilise des réservations pour les tâches pouvant utiliser des réservations inutilisées. Pour en savoir plus sur les réservations et leurs exigences, consultez la page Assurer la disponibilité des ressources à l'aide de réservations de VM. |
Planificateur de charge de travail dynamique pour les tâches par lot (aperçu)
|
Le traitement par lot utilise le planificateur de charges de travail dynamique pour les jobs qui remplissent toutes les conditions suivantes:
|
À la demande
|
Le traitement par lot utilise le traitement à la demande pour toutes les autres tâches. |
Spot VM
|
Le traitement par lot utilise des VM Spot pour les tâches qui définissent le champ |
Étape 2: Installez les pilotes de GPU
Pour utiliser des GPU pour un job, vous devez installer les pilotes de GPU. Pour installer des pilotes de GPU, sélectionnez l'une des méthodes suivantes:
Installer automatiquement les pilotes de GPU (recommandé si possible) : comme indiqué dans les exemples, pour autoriser Batch à récupérer les pilotes de GPU requis à partir d'un emplacement tiers et à les installer en votre nom, définissez le champ
installGpuDrivers
du job surtrue
. Cette méthode est recommandée si votre tâche ne nécessite pas d'installer manuellement les pilotes.Si vous devez spécifier la version du pilote de GPU que Batch installe, vous pouvez également définir le champ
driverVersion
.Installer manuellement les pilotes de GPU:cette méthode est requise si l'une des conditions suivantes est remplie:
- Une tâche utilise à la fois des exécutables de script et de conteneur, et n'a pas accès à Internet. Pour en savoir plus sur les droits d'accès d'une tâche, consultez la section Présentation de la mise en réseau par lot.
- Une tâche utilise une image de VM personnalisée. Pour en savoir plus sur les images d'OS de VM et les images d'OS de VM que vous pouvez utiliser, consultez la section Présentation de l'environnement d'OS de VM.
Pour installer manuellement les pilotes de GPU requis, nous vous recommandons de suivre la méthode suivante:
Créez une image de VM personnalisée qui inclut les pilotes de GPU.
Pour installer des pilotes de GPU, exécutez un script d'installation en fonction de l'OS que vous souhaitez utiliser:
Si votre tâche contient des exécutables de conteneur et n'utilise pas Container-Optimized OS, vous devez également installer le NVIDIA Container Toolkit.
Lorsque vous créez et envoyez une tâche qui utilise des GPU, spécifiez l'image de VM personnalisée qui inclut les pilotes de GPU, puis définissez le champ
installGpuDrivers
de la tâche surfalse
(valeur par défaut).
Étape 3: Définir les ressources de VM compatibles
Pour en savoir plus sur les exigences et les options de définition des ressources de VM pour une tâche, consultez la section Ressources de tâche.
En résumé, vous devez effectuer toutes les opérations suivantes lorsque vous définissez les ressources de VM pour une tâche qui utilise des GPU:
Assurez-vous que le type de machine GPU est disponible à l'emplacement des VM de votre tâche.
Pour savoir où les types de machines avec GPU sont disponibles, consultez la page Disponibilité des GPU par région et zone de la documentation Compute Engine.
Si vous spécifiez le type de machine de la tâche, assurez-vous qu'il dispose de suffisamment de vCPU et de mémoire pour répondre aux exigences de la tâche. Vous devez spécifier le type de machine de la tâche chaque fois que vous en créez une à l'aide de la console Google Cloud. Il est également recommandé de le faire lorsque vous créez une tâche qui utilise des GPU pour des VM optimisées pour les accélérateurs.
Assurez-vous de définir les ressources de VM pour une tâche à l'aide d'une méthode valide:
- Définissez directement les ressources de la VM à l'aide du champ
instances[].policy
(recommandé si possible). Cette méthode est illustrée dans les exemples. - Définissez les ressources de VM via un modèle à l'aide du champ
instances[].instanceTemplate
. Cette méthode est requise pour installer manuellement les pilotes de GPU via une image personnalisée. Pour en savoir plus, consultez la section Définir des ressources de tâche à l'aide d'un modèle d'instance de VM.
- Définissez directement les ressources de la VM à l'aide du champ
Créer un exemple de tâche qui utilise des GPU
Les sections suivantes expliquent comment créer un exemple de tâche pour chaque type de machine GPU à l'aide des options recommandées. Plus précisément, les exemples de jobs installent tous automatiquement les pilotes de GPU, définissent tous directement les ressources de VM et spécifient la méthode de provisionnement ou utilisent la méthode de provisionnement par défaut.
- Utiliser des GPU pour les VM A3 via le planificateur de charges de travail dynamique (bêta)
- Utiliser des GPU pour les VM optimisées pour les accélérateurs
- Utiliser des GPU pour les VM N1
Utiliser des GPU pour les VM A3 via le planificateur de charges de travail dynamique pour le traitement par lot (bêta)
Vous pouvez créer une tâche qui utilise des GPU pour les VM A3 via le planificateur de charges de travail dynamique à l'aide de la gcloud CLI ou de l'API Batch.
gcloud
Créez un fichier JSON qui installe les pilotes de GPU, spécifie un type de machine de la série de machines A3, bloque les réservations et s'exécute dans un emplacement qui possède le type de machine GPU.
Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM A3 via le planificateur de charge de travail dynamique, créez un fichier JSON avec le contenu suivant:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE
: type de machine de la série de machines A3.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Pour créer et exécuter la tâche, utilisez la commande
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche.LOCATION
: emplacement de la tâche.JSON_CONFIGURATION_FILE
: chemin d'accès à un fichier JSON contenant les détails de configuration de la tâche.
API
Envoyez une requête POST
à la méthode jobs.create
qui installe les pilotes de GPU, spécifie un type de machine de la série de machines A3, bloque les réservations et s'exécute dans un emplacement disposant du type de machine GPU.
Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM A3 via le programmeur de charge de travail dynamique, envoyez la requête suivante:
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": {
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de la tâche.JOB_NAME
: nom de la tâche.INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE
: type de machine de la série de machines A3.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Utiliser des GPU pour les VM optimisées pour les accélérateurs
Vous pouvez créer un job qui utilise des GPU pour les VM optimisées pour les accélérateurs à l'aide de la console Google Cloud, de gcloud CLI, de l'API Batch, de Java, de Node.js ou de Python.
Console
Pour créer une tâche qui utilise des GPU à l'aide de la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Liste des jobs.
Cliquez sur
Créer. La page Créer une tâche par lot s'ouvre. Dans le volet de gauche, la page Informations sur la tâche est sélectionnée.Configurez la page Informations sur la tâche:
(Facultatif) Dans le champ Nom de la tâche, personnalisez le nom de la tâche.
Par exemple, saisissez
example-gpu-job
.Configurez la section Détails de la tâche:
Dans la fenêtre Nouvel exécutable, ajoutez au moins un script ou un conteneur pour que cette tâche s'exécute.
Par exemple, pour créer une tâche de script de base, procédez comme suit:
Cochez la case Script. Un champ s'affiche.
Dans le champ, saisissez le script suivant:
echo Hello world from task ${BATCH_TASK_INDEX}.
Cliquez sur OK.
Dans le champ Nombre de tâches, saisissez le nombre de tâches pour cette tâche.
Par exemple, saisissez
3
.Facultatif: dans le champ Parallélisme, saisissez le nombre de tâches à exécuter simultanément.
Par exemple, saisissez
1
(valeur par défaut).
Configurez la page Spécifications de la ressource:
Dans le volet de gauche, cliquez sur Spécifications des ressources. La page Spécifications des ressources s'ouvre.
Facultatif: dans la section Modèle de provisionnement de VM, sélectionnez l'une des options suivantes pour le modèle de provisionnement des VM de cette tâche:
Si votre tâche peut résister à la préemption et que vous souhaitez obtenir des VM à prix réduit, sélectionnez Spot.
Sinon, sélectionnez Standard (par défaut).
Sélectionnez l'emplacement de cette tâche.
Dans le champ Région, sélectionnez une région.
Dans le champ Zone, effectuez l'une des opérations suivantes:
Si vous souhaitez limiter l'exécution de cette tâche à une zone spécifique, sélectionnez-la.
Sinon, sélectionnez Tous (par défaut).
Sélectionnez le type de machine GPU pour les VM de cette tâche:
Dans les options de famille de machines, cliquez sur GPU.
Dans le champ Type de GPU, sélectionnez le type de GPU. Ensuite, dans le champ Nombre de GPU, sélectionnez le nombre de GPU pour chaque VM.
Si vous avez sélectionné l'un des types de GPU pour les VM optimisées pour l'accélérateur, le champ Type de machine n'autorise qu'une seule option pour le type de machine en fonction du type et du nombre de GPU que vous avez sélectionnés.
Pour installer automatiquement les pilotes de GPU, sélectionnez Installation du pilote de GPU (par défaut).
Configurez la quantité de ressources de VM requise pour chaque tâche:
Dans le champ Cœurs, saisissez le nombre de processeurs virtuels par tâche.
Par exemple, saisissez
1
(valeur par défaut).Dans le champ Mémoire, saisissez la quantité de RAM en Go par tâche.
Par exemple, saisissez
0.5
(valeur par défaut).
Cliquez sur OK.
Facultatif: Configurez les autres champs de cette tâche.
Facultatif: Pour examiner la configuration de la tâche, dans le volet de gauche, cliquez sur Aperçu.
Cliquez sur Créer.
La page Détails de la tâche affiche la tâche que vous avez créée.
gcloud
Créez un fichier JSON qui installe les pilotes de GPU, spécifie un type de machine de la famille de machines optimisées pour les accélérateurs et s'exécute dans un emplacement qui dispose du type de machine GPU.
Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM optimisées pour les accélérateurs, créez un fichier JSON avec le contenu suivant:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "machineType": "MACHINE_TYPE" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE
: type de machine de la famille de machines optimisées pour les accélérateurs.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Pour créer et exécuter la tâche, utilisez la commande
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche.LOCATION
: emplacement de la tâche.JSON_CONFIGURATION_FILE
: chemin d'accès à un fichier JSON contenant les détails de configuration de la tâche.
API
Envoyez une requête POST
à la méthode jobs.create
qui installe les pilotes de GPU, spécifie un type de machine de la famille de machines optimisées pour les accélérateurs et s'exécute dans un emplacement qui possède le type de machine GPU.
Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM optimisées pour l'accélérateur, envoyez la requête suivante:
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": {
"machineType": "MACHINE_TYPE"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de la tâche.JOB_NAME
: nom de la tâche.INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE
: type de machine de la famille de machines optimisées pour les accélérateurs.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Java
Node.js
Python
Utiliser des GPU pour les VM N1
Vous pouvez créer un job qui utilise des GPU pour les VM N1 à l'aide de la console Google Cloud, de gcloud CLI, de l'API Batch, de Java, de Node.js ou de Python.
Console
Pour créer une tâche qui utilise des GPU à l'aide de la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Liste des jobs.
Cliquez sur
Créer. La page Créer une tâche par lot s'ouvre. Dans le volet de gauche, la page Informations sur la tâche est sélectionnée.Configurez la page Informations sur la tâche:
(Facultatif) Dans le champ Nom de la tâche, personnalisez le nom de la tâche.
Par exemple, saisissez
example-gpu-job
.Configurez la section Détails de la tâche:
Dans la fenêtre Nouvel exécutable, ajoutez au moins un script ou un conteneur pour que cette tâche s'exécute.
Par exemple, pour créer une tâche de script de base, procédez comme suit:
Cochez la case Script. Un champ s'affiche.
Dans le champ, saisissez le script suivant:
echo Hello world from task ${BATCH_TASK_INDEX}.
Cliquez sur OK.
Dans le champ Nombre de tâches, saisissez le nombre de tâches pour cette tâche.
Par exemple, saisissez
3
.Facultatif: dans le champ Parallélisme, saisissez le nombre de tâches à exécuter simultanément.
Par exemple, saisissez
1
(valeur par défaut).
Configurez la page Spécifications de la ressource:
Dans le volet de gauche, cliquez sur Spécifications des ressources. La page Spécifications des ressources s'ouvre.
Facultatif: dans la section Modèle de provisionnement de VM, sélectionnez l'une des options suivantes pour le modèle de provisionnement des VM de cette tâche:
Si votre tâche peut résister à la préemption et que vous souhaitez obtenir des VM à prix réduit, sélectionnez Spot.
Sinon, sélectionnez Standard (par défaut).
Sélectionnez l'emplacement de cette tâche.
Dans le champ Région, sélectionnez une région.
Dans le champ Zone, effectuez l'une des opérations suivantes:
Si vous souhaitez limiter l'exécution de cette tâche à une zone spécifique, sélectionnez-la.
Sinon, sélectionnez Tous (par défaut).
Sélectionnez le type de machine GPU pour les VM de cette tâche:
Dans les options de famille de machines, cliquez sur GPU.
Dans le champ Type de GPU, sélectionnez le type de GPU.
Si vous avez sélectionné l'un des types de GPU pour les VM N1, le champ Series (Série) est défini sur N1.
Dans le champ Nombre de GPU, sélectionnez le nombre de GPU pour chaque VM.
Dans le champ Type de machine, sélectionnez le type de machine.
Pour installer automatiquement les pilotes de GPU, sélectionnez Installation du pilote de GPU (par défaut).
Configurez la quantité de ressources de VM requise pour chaque tâche:
Dans le champ Cœurs, saisissez le nombre de processeurs virtuels par tâche.
Par exemple, saisissez
1
(valeur par défaut).Dans le champ Mémoire, saisissez la quantité de RAM en Go par tâche.
Par exemple, saisissez
0.5
(valeur par défaut).
Cliquez sur OK.
Facultatif: Configurez les autres champs de cette tâche.
Facultatif: Pour examiner la configuration de la tâche, dans le volet de gauche, cliquez sur Aperçu.
Cliquez sur Créer.
La page Détails de la tâche affiche la tâche que vous avez créée.
gcloud
Créez un fichier JSON qui installe les pilotes de GPU, définit les sous-champs
type
etcount
du champaccelerators[]
et s'exécute dans un emplacement qui possède le type de machine GPU.Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM N1 et permet à Batch de sélectionner le type de machine N1 exact, créez un fichier JSON contenant les éléments suivants:
{ "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" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.GPU_TYPE
: type de GPU. Vous pouvez afficher la liste des types de GPU disponibles à l'aide de la commandegcloud compute accelerator-types list
. N'utilisez ce champ que pour les GPU des VM N1.GPU_COUNT
: nombre de GPU du type spécifié. Pour en savoir plus sur les options valides, consultez la section Types de machines GPU pour la série de machines N1. N'utilisez ce champ que pour les GPU des VM N1.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Pour créer et exécuter la tâche, utilisez la commande
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche.LOCATION
: emplacement de la tâche.JSON_CONFIGURATION_FILE
: chemin d'accès à un fichier JSON contenant les détails de configuration de la tâche.
API
Envoyez une requête POST
à la méthode jobs.create
qui installe les pilotes de GPU, définit les sous-champs type
et count
du champ accelerators[]
et utilise un emplacement avec le type de machine GPU.
Par exemple, pour créer une tâche de script de base qui utilise des GPU pour les VM N1 et permet à Batch de sélectionner le type de machine N1 exact, effectuez la requête suivante:
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"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de la tâche.JOB_NAME
: nom de la tâche.INSTALL_GPU_DRIVERS
: lorsque la valeur esttrue
, Batch récupère les pilotes requis pour le type de GPU que vous spécifiez dans le champpolicy
à partir d'un emplacement tiers et les installe en votre nom. Si vous définissez ce champ surfalse
(valeur par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.GPU_TYPE
: type de GPU. Vous pouvez afficher la liste des types de GPU disponibles à l'aide de la commandegcloud compute accelerator-types list
. N'utilisez ce champ que pour les GPU des VM N1.GPU_COUNT
: nombre de GPU du type spécifié. Pour en savoir plus sur les options valides, consultez la section Types de machines GPU pour la série de machines N1. N'utilisez ce champ que pour les GPU des VM N1.ALLOWED_LOCATIONS
: vous pouvez éventuellement utiliser le champallowedLocations[]
pour spécifier une région ou une ou plusieurs zones spécifiques dans une région où les VM de votre tâche sont autorisées à s'exécuter. Par exemple,regions/us-central1
autorise toutes les zones de la régionus-central1
. Assurez-vous de spécifier les zones qui proposent le type de machine GPU que vous souhaitez pour cette tâche. Sinon, si vous omettez ce champ, assurez-vous que l'emplacement de la tâche propose le type de machine GPU.
Java
Node.js
Python
Étape suivante
- Si vous rencontrez des difficultés pour créer ou exécuter une tâche, consultez la section Dépannage.
- Afficher les jobs et les tâches
- Découvrez d'autres options de création de tâches.