Cette page décrit la configuration des GPU pour vos jobs Cloud Run. Les GPU fonctionnent bien pour les charges de travail d'IA telles que l'entraînement de grands modèles de langage (LLM) à l'aide de vos frameworks préférés, l'exécution d'inférences par lot ou hors connexion sur les LLM, et la gestion d'autres tâches gourmandes en ressources de calcul comme le traitement vidéo et le rendu graphique en tant que tâches en arrière-plan. Google fournit des GPU NVIDIA L4 avec 24 Go de mémoire GPU (VRAM), qui est séparée de la mémoire de l'instance.
La fonctionnalité GPU sur Cloud Run est entièrement gérée, sans nécessiter de pilotes ni de bibliothèques supplémentaires. La fonctionnalité GPU offre une disponibilité à la demande sans réservation, comme le fonctionnement des CPU à la demande et de la mémoire à la demande dans Cloud Run.
Les instances Cloud Run avec un GPU L4 associé et des pilotes préinstallés démarrent en cinq secondes environ. Les processus s'exécutant dans votre conteneur peuvent alors commencer à utiliser le GPU.
Vous pouvez configurer un GPU par instance Cloud Run. Si vous utilisez des conteneurs side-car, notez que le GPU ne peut être associé qu'à un seul conteneur.
Régions où le service est disponible
asia-southeast1
(Singapour)asia-south1
(Mumbai) . Cette région n'est disponible que sur invitation. Si vous êtes intéressé par cette région, contactez l'équipe chargée de votre compte Google.europe-west1
(Belgique)Faibles émissions de CO2
europe-west4
(Pays-Bas)Faibles émissions de CO2
us-central1
(Iowa)Faibles émissions de CO2
us-east4
(Virginie du Nord)
Types de GPU compatibles
Vous pouvez utiliser un GPU L4 par instance Cloud Run. Un GPU L4 dispose des pilotes préinstallés suivants :
- Version actuelle du pilote NVIDIA : 535.216.03 (CUDA 12.2)
Impact sur les tarifs
Pour en savoir plus sur les tarifs des GPU, consultez Tarifs de Cloud Run. Notez les exigences et considérations suivantes :
- Les GPU pour les jobs suivent les tarifs sans redondance zonale (en preview).
- Vous devez utiliser au moins quatre processeurs et 16 Gio de mémoire.
- Le GPU est facturé pendant toute la durée de vie de l'instance.
Redondance non zonale des GPU
Les jobs Cloud Run offrent une compatibilité avec la redondance non zonale (en preview) pour les instances compatibles avec les GPU. Lorsque la redondance non zonale est activée, Cloud Run tente le basculement pour les jobs compatibles avec les GPU dans la mesure du possible. Cloud Run n'achemine les exécutions de jobs vers d'autres zones que si la capacité de GPU est suffisante à ce moment-là. Cette option ne garantit pas la capacité réservée pour les scénarios de basculement, mais entraîne un coût par seconde et par GPU plus faible.
Demander une augmentation du quota
Si votre projet ne dispose pas de quota de GPU, déployez un service Cloud Run pour recevoir automatiquement un quota de trois nvidia-l4
GPU (redondance zonale désactivée) pour cette région. Notez que cette attribution automatique de quota est soumise à disponibilité en fonction de votre capacité de processeur et de mémoire. Lorsque vous supprimez votre service inutilisé, le quota alloué reste inchangé.
Si vous avez besoin de GPU Cloud Run supplémentaires pour les jobs, demandez une augmentation de quota.
Le nombre maximal d'instances de tâches de GPU pouvant s'exécuter en parallèle est limité par les quotas suivants :
Quota d'instances GPU Jobs sans redondance zonale. Par défaut, ce quota est défini sur
5
.
La valeur de parallélisme doit être inférieure au quota de GPU sans redondance zonale ou au quota d'instances de GPU des jobs sans redondance zonale, selon le quota le plus restrictif.
Avant de commencer
La liste suivante décrit les exigences et les limites liées à l'utilisation des GPU dans Cloud Run :
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
- Consultez Bonnes pratiques : jobs Cloud Run avec des GPU pour optimiser les performances lorsque vous utilisez des jobs Cloud Run avec des GPU.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer des jobs Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants sur les jobs :
-
Développeur Cloud Run (
roles/run.developer
) : le job Cloud Run - Utilisateur du compte de service (
roles/iam.serviceAccountUser
) : l'identité du service
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre job Cloud Run communique avec des APIGoogle Cloud , telles que des bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Configurer un job Cloud Run avec un GPU
Vous pouvez utiliser la console Google Cloud , Google Cloud CLI ou YAML pour configurer le GPU.
gcloud
Pour créer un job avec la fonctionnalité GPU activée, utilisez la commande gcloud beta run jobs create :
gcloud beta run jobs create JOB_NAME --image=IMAGE --gpu=1
Remplacez :
- JOB_NAME par le nom de votre tâche Cloud Run
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
.
Pour mettre à jour la configuration GPU d'un job, utilisez la commande gcloud beta run jobs update :
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --parallelism PARALLELISM
Remplacez :
- JOB_NAME par le nom de votre tâche Cloud Run
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
. - CPU avec un minimum de
4
processeurs pour votre job. La valeur recommandée est8
. - MEMORY avec un minimum de
16Gi
(16 Gio). La valeur recommandée est32Gi
. - GPU_NUMBER par la valeur
1
(un). Si cette valeur n'est pas spécifiée, mais qu'un paramètre GPU_TYPE est présent, la valeur par défaut est1
. - GPU_TYPE par le type de GPU. Si cette valeur n'est pas spécifiée, mais qu'un paramètre GPU_NUMBER est présent, la valeur par défaut est
nvidia-l4
(nvidiaL
4 L minuscule, et non la valeur numérique quatorze). - PARALLELISM avec une valeur entière inférieure à la valeur la plus basse des limites de quota applicables que vous avez attribuées à votre projet.
YAML
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Mettez à jour l'attribut
nvidia.com/gpu
,annotations: run.googleapis.com/launch-stage
pour la phase de lancement etnodeSelector:
:
run.googleapis.com/acceleratorapiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: template: spec: containers: - image: IMAGE_URL limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
Remplacez :
- JOB_NAME par le nom de votre tâche Cloud Run
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
- CPU par le nombre de processeurs. Vous devez spécifier au moins
4
processeurs. - MEMORY par la quantité de mémoire. Vous devez spécifier au moins
16Gi
(16 Gio). - GPU_NUMBER par la valeur
1
(un), car nous n'acceptons qu'un seul GPU par instance Cloud Run. - GPU_TYPE par la valeur
nvidia-l4
(nvidia-L
4 L minuscule, et non la valeur numérique 14).
Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Afficher les paramètres du GPU
Pour afficher les paramètres actuels de GPU de votre job Cloud Run :
gcloud
Exécutez la commande suivante :
gcloud run jobs describe JOB_NAME
Recherchez le paramètre de GPU dans la configuration renvoyée.
Supprimer un GPU
Vous pouvez supprimer un GPU à l'aide de Google Cloud CLI ou de YAML.
gcloud
Pour supprimer le GPU, définissez le nombre de GPU sur 0
à l'aide de la commande gcloud beta run jobs update :
gcloud beta run jobs update JOB_NAME --gpu 0
Remplacez JOB_NAME par le nom de votre job Cloud Run.
YAML
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Supprimez les lignes
nvidia.com/gpu:
etnodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Bibliothèques
Par défaut, toutes les bibliothèques de pilotes NVIDIA L4 sont installées sous /usr/local/nvidia/lib64
. Cloud Run ajoute automatiquement ce chemin d'accès à la variable d'environnement LD_LIBRARY_PATH
(c'est-à-dire ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
) du conteneur avec le GPU. Cela permet à l'éditeur de lien dynamique de trouver les bibliothèques de pilotes NVIDIA. L'éditeur de liens recherche et résout les chemins d'accès dans l'ordre dans lequel vous les listez dans la variable d'environnement LD_LIBRARY_PATH
. Toutes les valeurs que vous spécifiez dans cette variable sont prioritaires par rapport au chemin d'accès par défaut aux bibliothèques de pilotes Cloud Run /usr/local/nvidia/lib64
.
Si vous souhaitez utiliser une version de CUDA supérieure à 12.2, la méthode la plus simple consiste à dépendre d'une image de base NVIDIA plus récente avec les packages de compatibilité ascendante déjà installés. Vous pouvez également installer manuellement les packages de compatibilité ascendante NVIDIA et les ajouter à LD_LIBRARY_PATH
. Consultez la matrice de compatibilité de NVIDIA pour déterminer quelles versions de CUDA sont compatibles de manière ascendante avec la version du pilote NVIDIA fournie (535.216.03).
À propos des GPU et du parallélisme
Si vous exécutez des tâches parallèles dans une exécution de job, déterminez et définissez la valeur parallelism sur une valeur inférieure à la valeur la plus basse des limites de quota applicables que vous avez allouées à votre projet.
Par défaut, le quota d'instances de tâches GPU est défini sur 5
pour les tâches qui s'exécutent en parallèle. Pour demander une augmentation de quota, consultez Augmenter le quota. Les tâches de GPU démarrent le plus rapidement possible et atteignent un maximum qui varie en fonction du quota de GPU que vous avez alloué au projet et à la région sélectionnés. Les déploiements Cloud Run échouent si vous définissez le parallélisme sur une valeur supérieure à la limite du quota de GPU.
Pour calculer le quota de GPU utilisé par votre job par exécution, multipliez le nombre de GPU par tâche de job par la valeur de parallélisme. Par exemple, si votre quota de GPU est de 10 et que vous déployez votre job Cloud Run avec --gpu=1
, --parallelism=10
, votre job consomme la totalité du quota de 10 GPU. Si vous effectuez le déploiement avec --gpu=1
, --parallelism=20
, les déploiements échouent.
Pour en savoir plus, consultez Bonnes pratiques : jobs Cloud Run avec GPU.