Ce document explique comment créer et exécuter un job qui utilise un processeur graphique (GPU). Pour en savoir plus sur les fonctionnalités et les restrictions des GPU, consultez À propos des GPU dans la documentation Compute Engine.
Lorsque vous créez un job par lot, vous pouvez éventuellement utiliser des GPU pour accélérer des charges de travail spécifiques. Les cas d'utilisation courants des jobs 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). Vous pouvez également accélérer les charges de travail d'IA et de ML en utilisant des TPU.
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 jobs par lot (
roles/batch.jobsEditor) sur le projet - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service du job, 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 Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
- Éditeur de jobs par lot (
Créer un job qui utilise des GPU
Pour créer un job qui utilise des GPU, procédez comme suit :
- Planifier la configuration d'un job qui utilise des GPU
- Créez un job avec les exigences et les méthodes que vous avez identifiées. Pour obtenir des exemples de création de job à l'aide des options recommandées, consultez la section Créer un job qui utilise des GPU de ce document.
Planifier la configuration d'un job qui utilise des GPU
Avant de créer un job qui utilise des GPU, planifiez les exigences de configuration du job, comme expliqué dans les sections suivantes :
- Sélectionner le type de machine GPU et l'option de consommation
- Installez les pilotes de GPU.
- Définir des ressources de VM compatibles
Étape 1 : Sélectionnez le type de machine GPU et l'option de consommation
Les exigences d'un job varient en fonction du type de machine GPU et de l'option de consommation que vous préférez, et les options de chacun peuvent être interdépendantes.
Pour sélectionner le type de machine GPU et l'option de consommation pour votre job, procédez comme suit :
Identifiez et sélectionnez votre priorité :
- Si vous souhaitez donner la priorité aux performances et à la tarification de base, consultez la section Sélectionner le type de machine GPU de ce document.
- Si vous souhaitez donner la priorité à la disponibilité des ressources ou aux remises, consultez la section Sélectionner l'option de consommation de ce document.
Effectuez la sélection restante en fonction de ce qui est compatible avec votre première sélection.
Pour identifier les options compatibles avec votre première sélection, consultez Disponibilité des options de consommation par type de machine dans la documentation Compute Engine.
Consultez la section restante pour Sélectionner l'option de consommation ou Sélectionner le type de machine GPU, respectivement.
Sélectionner le type de machine GPU
Pour sélectionner le type de machine GPU pour un job et comprendre ses exigences, procédez comme suit :
Sélectionnez un type de machine GPU : pour examiner 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 recommandés, consultez Types de machines GPU et Famille de machines optimisées pour les accélérateurs dans la documentation Compute Engine.
Comprendre les exigences de job pour votre type de machine GPU : Les champs requis pour qu'un job spécifie un type de machine GPU varient en fonction des catégories du tableau suivant :
Types de machines avec GPU et exigences de job associées 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 automatiquement associées à 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. Par conséquent, le résultat est é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 permet également de spécifier uniquement le type et le nombre de GPU pour les VM optimisées pour l'accélérateur, mais les options de processeur virtuel et de mémoire qui en résultent sont souvent très limitées. Par conséquent, 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 du job.
GPU pour les VM N1 : ces GPU nécessitent que vous spécifiiez 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 processeur virtuel et de mémoire pour les VM N1 qui utilisent un type et un nombre spécifiques de GPU sont assez flexibles. Sauf si vous créez le job à l'aide de la console Google Cloud , vous pouvez laisser Batch sélectionner automatiquement un type de machine qui répond aux exigences des tâches du job.
Sélectionner l'option de consommation
Cette section explique comment sélectionner l'option de consommation pour un job et les exigences de job pour chaque option.
Les options de consommation disponibles pour Batch et leurs exigences de job sont expliquées dans le tableau suivant. Ce tableau liste les options de consommation en fonction de leurs cas d'utilisation, de la plus facile à la moins facile à obtenir. Assurez-vous que l'option de consommation que vous sélectionnez répond également à vos exigences en termes de tarification, de temps d'exécution et de compatibilité avec les types de machines. Pour en savoir plus sur le choix d'une option de consommation, consultez également Améliorer l'obtention des ressources, la documentation Compute Engine sur les modèles de provisionnement et la documentation AI Hypercomputer sur les options de consommation.
| Options de consommation et exigences liées aux jobs | |
|---|---|
Réservations
|
Batch utilise des réservations pour les jobs qui peuvent consommer des VM réservées inutilisées. Pour en savoir plus sur les exigences des jobs pour l'utilisation des réservations, consultez la page Assurer la disponibilité des ressources à l'aide de réservations de VM. |
Réservations en mode Agenda
|
Batch utilise des réservations en mode Agenda pour les jobs qui effectuent toutes les opérations suivantes :
|
VM à démarrage flexible
|
Batch utilise des VM à démarrage flexible pour les jobs qui effectuent toutes les opérations suivantes :
|
À la demande
|
Batch utilise par défaut des ressources à la demande pour la plupart des jobs. Si vous souhaitez vous assurer qu'un job utilise la tarification à la demande, procédez comme suit :1
1 Exception : pour les jobs qui utilisent la série de machines A3, le comportement par défaut est unique. Nous vous recommandons de ne pas utiliser de VM à la demande et de ne pas laisser le champ |
Les VM Spot
|
Batch utilise des VM Spot pour les jobs qui répondent à toutes les conditions suivantes :
|
É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 permettre à Batch de récupérer les pilotes de GPU requis à partir d'un emplacement tiers et de les installer en votre nom, définissez le champ
installGpuDriversde la tâche surtrue. Cette méthode est recommandée si votre job ne nécessite pas l'installation manuelle de pilotes.Si vous devez spécifier la version du pilote de GPU que Batch installe, définissez également le champ
driverVersion.Installer manuellement les pilotes de GPU : cette méthode est requise si l'une des conditions suivantes est remplie :
- Un job utilise à la fois des exécutables de script et de conteneur, et n'a pas d'accès à Internet. Pour en savoir plus sur l'accès d'un job, consultez Présentation de la mise en réseau Batch.
- Un job utilise une image de VM personnalisée. Pour en savoir plus sur les images d'OS de VM et sur les images d'OS de VM que vous pouvez utiliser, consultez Présentation de l'environnement d'OS de VM.
Pour installer manuellement les pilotes de GPU requis, nous vous recommandons d'utiliser la méthode suivante :
Créez une image de VM personnalisée incluant 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 job comporte des exécutables de conteneur et n'utilise pas Container-Optimized OS, vous devez également installer NVIDIA Container Toolkit.
Lorsque vous créez et envoyez un job qui utilise des GPU, spécifiez l'image de VM personnalisée qui inclut les pilotes de GPU, puis définissez le champ
installGpuDriversdu job surfalse(par défaut).
Étape 3 : Définir des ressources de VM compatibles
Pour en savoir plus sur les exigences et les options permettant de définir les ressources de VM pour un job, consultez Ressources de job.
En résumé, vous devez effectuer toutes les opérations suivantes lorsque vous définissez les ressources de VM pour un job qui utilise des GPU :
Assurez-vous que le type de machine GPU est disponible à l'emplacement des VM de votre job.
Pour savoir où les types de machines GPU sont disponibles, consultez Emplacements des GPU dans la documentation Compute Engine.
Si vous spécifiez le type de machine du job, assurez-vous qu'il dispose de suffisamment de processeurs virtuels et de mémoire pour répondre aux exigences de la tâche du job. Vous devez spécifier le type de machine du job chaque fois que vous créez un job à l'aide de la console Google Cloud . Nous vous recommandons de le faire chaque fois que vous créez un job qui utilise des GPU pour des VM optimisées pour les accélérateurs.
Assurez-vous de définir les ressources de VM pour un job à l'aide d'une méthode valide :
- Définissez les ressources de VM directement à 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 des pilotes de GPU via une image personnalisée. Pour en savoir plus, consultez Définir des ressources de job à l'aide d'un modèle d'instance de VM.
- Définissez les ressources de VM directement à l'aide du champ
Créer un job qui utilise des GPU
Les sections suivantes expliquent comment créer un exemple de job pour chaque option de consommation. Plus précisément, les exemples de jobs utilisent les options recommandées : tous installent automatiquement les pilotes de GPU et tous définissent directement les ressources de VM.
| Option d'utilisation | Exemples d'instructions de job |
|---|---|
| Réservations ou réservations en mode Agenda |
Garantir la disponibilité des ressources à l'aide de réservations de VM |
| VM à démarrage flexible | |
| VM à la demande ou VM Spot |
Sélectionnez l'une des options suivantes en fonction de votre type de machine GPU : |
Utiliser des GPU et des VM à démarrage flexible
Vous pouvez créer un job qui utilise des GPU pour les VM A3 via Dynamic Workload Scheduler à 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 GPU compatible avec les VM Flex-start, bloque les réservations et s'exécute dans un emplacement compatible avec le type de machine GPU.
Par exemple, pour créer un job de script de base qui utilise des VM à démarrage flexible et 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": { "provisioningModel":"FLEX_START", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE: type de machine GPU compatible avec les VM à démarrage flexible. Pour en savoir plus, consultez Disponibilité des options de consommation par type de machine dans la documentation Compute Engine.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
Pour créer et exécuter le job, utilisez la commande
gcloud batch jobs submit:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILERemplacez les éléments suivants :
JOB_NAME: nom du job.LOCATION: emplacement du job.JSON_CONFIGURATION_FILE: chemin d'accès à un fichier JSON contenant les détails de configuration du job.
API
Envoyez une requête POST à la méthode jobs.create qui installe les pilotes de GPU, spécifie un type de machine GPU compatible avec les VM Flex-start, bloque les réservations et s'exécute dans un emplacement compatible avec le type de machine GPU.
Par exemple, pour créer un job de script de base qui utilise des VM à démarrage flexible et des GPU pour les VM optimisées pour les accélérateurs, 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": {
"provisioningModel":"FLEX_START",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projet de votre projet.LOCATION: emplacement du job.JOB_NAME: nom du job.INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.MACHINE_TYPE: type de machine GPU compatible avec les VM à démarrage flexible. Pour en savoir plus, consultez Disponibilité des options de consommation par type de machine dans la documentation Compute Engine.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
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 laGoogle Cloud console, de la gcloud CLI, de l'API Batch, de Java, de Node.js ou de Python.
Console
Pour créer un job 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 un job par lot s'ouvre. Dans le volet de gauche, la page Informations sur le job est sélectionnée.
Configurez la page Détails du job :
Facultatif : Dans le champ Nom du job, personnalisez le nom du job.
Par exemple, saisissez
example-gpu-job.Configurez la section Détails de la tâche :
Dans la fenêtre Nouvel élément exécutable, ajoutez au moins un script ou un conteneur pour que ce job s'exécute.
Par exemple, pour créer un job 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 ce job.
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 des ressources :
Dans le volet de gauche, cliquez sur Spécifications des ressources. La page Spécifications des ressources s'ouvre.
Dans la section Modèle de provisionnement de VM, sélectionnez l'une des options suivantes pour l'option de consommation des VM de ce job :
Si votre job peut tolérer la préemption et que vous souhaitez utiliser des VM Spot à prix réduit, sélectionnez Spot.
Sinon, pour utiliser des VM à la demande, sélectionnez Standard (par défaut).
Sélectionnez l'emplacement de ce job.
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 ce job à une zone spécifique, sélectionnez une zone.
Sinon, sélectionnez any (par défaut).
Sélectionnez le type de machine GPU pour les VM de ce job :
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 requises pour chaque tâche :
Dans le champ Cœurs, saisissez le nombre de vCPUs 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 ce job.
Facultatif : pour examiner la configuration du job, cliquez sur Aperçu dans le volet de gauche.
Cliquez sur Créer.
La page Informations sur 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 disposant du type de machine GPU.
Par exemple, pour créer un job de script de base qui utilise des GPU pour des 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": { "provisioningModel": "PROVISIONING_MODEL", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.PROVISIONING_MODEL: modèle de provisionnement pour votre option de consommation :STANDARDpour les VM à la demande ouSPOTpour les VM Spot.MACHINE_TYPE: type de machine de la famille de machines optimisées pour les accélérateurs.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
Pour créer et exécuter le job, utilisez la commande
gcloud batch jobs submit:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILERemplacez les éléments suivants :
JOB_NAME: nom du job.LOCATION: emplacement du job.JSON_CONFIGURATION_FILE: chemin d'accès à un fichier JSON contenant les détails de configuration du job.
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 disposant du type de machine GPU.
Par exemple, pour créer un job de script de base qui utilise des GPU pour des VM optimisées pour les accélérateurs, 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": {
"provisioningModel": "PROVISIONING_MODEL",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projet de votre projet.LOCATION: emplacement du job.JOB_NAME: nom du job.INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.PROVISIONING_MODEL: modèle de provisionnement pour votre option de consommation :STANDARDpour les VM à la demande ouSPOTpour les VM Spot.MACHINE_TYPE: type de machine de la famille de machines optimisées pour les accélérateurs.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
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 la gcloud CLI, de l'API Batch, de Java, de Node.js ou de Python.
Console
Pour créer un job 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 un job par lot s'ouvre. Dans le volet de gauche, la page Informations sur le job est sélectionnée.
Configurez la page Détails du job :
Facultatif : Dans le champ Nom du job, personnalisez le nom du job.
Par exemple, saisissez
example-gpu-job.Configurez la section Détails de la tâche :
Dans la fenêtre Nouvel élément exécutable, ajoutez au moins un script ou un conteneur pour que ce job s'exécute.
Par exemple, pour créer un job 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 ce job.
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 des ressources :
Dans le volet de gauche, cliquez sur Spécifications des ressources. La page Spécifications des ressources s'ouvre.
Dans la section Modèle de provisionnement de VM, sélectionnez l'une des options suivantes pour l'option de consommation des VM de ce job :
Si votre job peut tolérer la préemption et que vous souhaitez utiliser des VM Spot à prix réduit, sélectionnez Spot.
Sinon, pour utiliser des VM à la demande, sélectionnez Standard (par défaut).
Sélectionnez l'emplacement de ce job.
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 ce job à une zone spécifique, sélectionnez une zone.
Sinon, sélectionnez any (par défaut).
Sélectionnez le type de machine GPU pour les VM de ce job :
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 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 requises pour chaque tâche :
Dans le champ Cœurs, saisissez le nombre de vCPUs 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 ce job.
Facultatif : pour examiner la configuration du job, cliquez sur Aperçu dans le volet de gauche.
Cliquez sur Créer.
La page Informations sur 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
typeetcountdu champaccelerators[]et s'exécute dans un emplacement disposant du type de machine GPU.Par exemple, pour créer un job 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 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": { "provisioningModel": "PROVISIONING_MODEL", "reservation": "NO_RESERVATION", "accelerators": [ { "type": "GPU_TYPE", "count": GPU_COUNT } ] } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }Remplacez les éléments suivants :
INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.PROVISIONING_MODEL: modèle de provisionnement pour votre option de consommation :STANDARDpour les VM à la demande ouSPOTpour les VM Spot.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 Types de machines GPU pour la série de machines N1. N'utilisez ce champ que pour les GPU des VM N1.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
Pour créer et exécuter le job, utilisez la commande
gcloud batch jobs submit:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILERemplacez les éléments suivants :
JOB_NAME: nom du job.LOCATION: emplacement du job.JSON_CONFIGURATION_FILE: chemin d'accès à un fichier JSON contenant les détails de configuration du job.
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 disposant du type de machine GPU.
Par exemple, pour créer un job de script de base qui utilise des GPU pour les VM N1 et permet à Batch de sélectionner le type de machine N1 exact, 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": {
"provisioningModel": "PROVISIONING_MODEL",
"reservation": "NO_RESERVATION",
"accelerators": [
{
"type": "GPU_TYPE",
"count": GPU_COUNT
}
]
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projet de votre projet.LOCATION: emplacement du job.JOB_NAME: nom du job.INSTALL_GPU_DRIVERS: indique si les pilotes de GPU doivent être installés automatiquement ou non. Lorsque ce champ est défini surtrue, 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 Batch les installe en votre nom. Si vous définissez ce champ surfalse(par défaut), vous devez installer manuellement les pilotes de GPU pour utiliser des GPU pour ce job.PROVISIONING_MODEL: modèle de provisionnement pour votre option de consommation :STANDARDpour les VM à la demande ouSPOTpour les VM Spot.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 Types de machines GPU pour la série de machines N1. N'utilisez ce champ que pour les GPU des VM N1.ALLOWED_LOCATIONS: emplacements autorisés pour le job. Assurez-vous que l'emplacement des ressources Compute Engine du job propose le type de machine GPU que vous souhaitez pour ce job en utilisant l'une des options suivantes :- Par défaut, si vous omettez le champ
allowedLocations[], un job s'exécute sur les ressources Compute Engine créées dans la région de l'emplacement du job (LOCATION). - Si vous incluez le champ
allowedLocations[], le job ne peut s'exécuter que sur les ressources Compute Engine créées dans les emplacements spécifiés.
- Par défaut, si vous omettez le champ
Java
Node.js
Python
Étapes suivantes
- Si vous rencontrez des problèmes pour créer ou exécuter un job, consultez Dépannage.
- Afficher les jobs et les tâches
- Découvrez d'autres options de création de jobs.