Cette page décrit la configuration des GPU pour votre service Cloud Run. Les GPU sont adaptés aux charges de travail d'inférence d'IA, telles que les grands modèles de langage (LLM) ou d'autres cas d'utilisation non liés à l'IA gourmands en ressources de calcul, tels que le transcodage vidéo et le rendu 3D. 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.
Pour utiliser la fonctionnalité GPU, vous devez demander un quota. Pour en savoir plus, consultez Demander une augmentation de quota.
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 font le processeur et la mémoire à la demande dans Cloud Run. Les instances d'un service Cloud Run configuré pour utiliser un GPU peuvent être réduites à zéro pour réduire les coûts lorsqu'elles ne sont pas utilisées.
Les instances Cloud Run avec un GPU L4 associé et des pilotes préinstallés démarrent en environ cinq secondes, à partir de quoi les processus exécutés dans votre conteneur peuvent 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
us-central1
(Iowa)Faibles émissions de CO2
asia-southeast1
(Singapour)europe-west1
(Belgique)Faibles émissions de CO2
europe-west4
(Pays-Bas)Faibles émissions de CO2
asia-south1
(Mumbai)- Remarque: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.
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 la page Tarifs de Cloud Run. Prenez note des exigences et considérations suivantes:
- Aucuns frais par requête ne sont appliqués. Vous devez utiliser la facturation basée sur les instances pour utiliser la fonctionnalité GPU. Les instances minimales sont facturées au tarif plein, même lorsqu'elles sont inactives.
- Vous devez utiliser au moins quatre processeurs et 16 Gio de mémoire.
- Le GPU est facturé pendant toute la durée du cycle de vie de l'instance.
- Le coût de la redundance zonale des GPU est différent de celui de la redondance non zonale. Pour en savoir plus sur les tarifs des GPU, consultez la page Tarifs de Cloud Run.
Contrat de niveau de service
Le contrat de niveau de service pour Cloud Run avec GPU dépend du fait que le service utilise l'option de redondance zonale ou non zonale. Pour en savoir plus, consultez la page du contrat de niveau de service.
Options de redondance zonale de GPU
Par défaut, Cloud Run déploie votre service dans plusieurs zones d'une région. Cette architecture offre une résilience inhérente: si une zone subit une panne, Cloud Run redirige automatiquement le trafic de la zone affectée vers les zones opérationnelles de la même région.
Lorsque vous travaillez avec des ressources GPU, gardez à l'esprit qu'elles sont soumises à des contraintes de capacité spécifiques. Lors d'une panne zonale, le mécanisme de basculement standard pour les charges de travail GPU repose sur la disponibilité d'une capacité GPU inutilisée suffisante dans les zones restantes opérationnelles. En raison de la nature limitée des GPU, cette capacité peut ne pas toujours être disponible.
Pour augmenter la disponibilité de vos services accélérés par GPU en cas d'indisponibilité zonale, vous pouvez configurer la redondance zonale spécifiquement pour les GPU:
Redondance zonale activée (par défaut): Cloud Run réserve la capacité de GPU pour votre service dans plusieurs zones. Cela augmente considérablement la probabilité que votre service puisse gérer correctement le trafic redirigé depuis une zone affectée, ce qui offre une fiabilité plus élevée en cas de défaillance zonale avec un coût supplémentaire par seconde de GPU.
Redondance zonale désactivée: Cloud Run tente de basculer les charges de travail GPU dans la mesure du possible. Le trafic n'est acheminé vers d'autres zones que si une capacité GPU suffisante est disponible à ce moment-là. Cette option ne garantit pas la capacité réservée pour les scénarios de basculement, mais réduit le coût par seconde de GPU.
Demander une augmentation du quota
Pour accéder aux GPU Cloud Run, vous devez demander une augmentation de quota pour votre service Cloud Run. Utilisez les liens fournis dans les boutons suivants pour demander le quota dont vous avez besoin.
Quota requis | Lien vers le quota |
---|---|
GPU avec la redondance zonale désactivée (prix réduit) | Demander un quota de GPU sans redondance zonale |
GPU avec la redondance zonale activée (prix plus élevé) | Demander un quota de GPU avec redondance zonale |
Pour en savoir plus sur la demande d'augmentations de quota, consultez la section Augmenter le quota.
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.
- Demandez le quota requis.
- Consultez les bonnes pratiques : inférence de l'IA sur Cloud Run avec des GPU pour obtenir des recommandations sur la création de votre image de conteneur et le chargement de modèles volumineux.
- Assurez-vous que votre service Cloud Run présente les configurations suivantes :
- Configurez les paramètres de facturation sur la facturation basée sur les instances. Notez que les services configurés pour la facturation basée sur les instances peuvent toujours être mis à l'échelle à zéro.
- Configurez un minimum de 4 processeurs pour votre service, et 8 processeurs sont recommandés.
- Configurez au minimum 16 Gio de mémoire, et 32 Gio sont recommandés.
- Déterminez et définissez un niveau de concurrence maximal optimal pour votre utilisation du GPU.
- Le nombre maximal d'instances doit être inférieur au quota autorisé par projet et par région pour les GPU. Consultez la section À propos des GPU et du nombre maximal d'instances.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants:
-
Développeur Cloud Run (
roles/run.developer
) sur le service Cloud Run -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur 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 service 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 service Cloud Run avec un GPU
Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.
Vous pouvez configurer le GPU à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.
Console
Dans la Google Cloud console, accédez à Cloud Run:
Cliquez sur Déployer un conteneur et sélectionnez Service pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.
Cliquez sur l'onglet Conteneur.
- Configurez le processeur, la mémoire, la simultanéité, l'environnement d'exécution et la sonde de démarrage en suivant les recommandations de la section Avant de commencer.
- Cochez la case "GPU", puis sélectionnez le type de GPU dans le menu Type de GPU et le nombre de GPU dans le menu Nombre de GPU.
- Par défaut, la redondance zonale est activée pour les nouveaux services. Pour modifier le paramètre actuel, cochez la case du GPU pour afficher les options de redundance de GPU.
- Sélectionnez Aucune redondance zonale pour désactiver la redondance zonale.
- Sélectionnez Redondance zonale pour activer la redondance zonale.
Cliquez sur Créer ou Déployer.
gcloud
Pour créer un service avec la fonctionnalité GPU activée, utilisez la commande gcloud beta run deploy :
gcloud beta run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
Remplacez :
- SERVICE par le nom de votre service Cloud Run ;
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Pour mettre à jour la configuration GPU d'un service, utilisez la commande gcloud beta run services update :
gcloud beta run services update SERVICE \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --no-cpu-throttling \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --max-instances MAX_INSTANCE --GPU_ZONAL_REDUNDANCY
Remplacez :
- SERVICE par le nom de votre service Cloud Run ;
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - CPU par le nombre de processeurs. Vous devez spécifier au moins
4
CPU. - MEMORY par la quantité de mémoire. Vous devez spécifier au moins
16Gi
(16 Gio). - 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). - MAX_INSTANCE par le nombre maximal d'instances. Ce nombre ne doit pas dépasser le quota de GPU alloué à votre projet.
- GPU_ZONAL_REDUNDANCY avec
no-gpu-zonal-redundancy
pour désactiver la redondance zonale ougpu-zonal-redundancy
pour activer la redondance zonale.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Modifiez l'attribut
nvidia.com/gpu:
etnodeSelector:
:
run.googleapis.com/accelerator:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX_INSTANCE' run.googleapis.com/cpu-throttling: 'false' run.googleapis.com/gpu-zonal-redundancy-disabled: GPU_ZONAL_REDUNDANCY spec: containers: - image: IMAGE_URL ports: - containerPort: CONTAINER_PORT name: http1 resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: '1' # Optional: use a longer startup probe to allow long starting containers startupProbe: failureThreshold: 1800 periodSeconds: 1 tcpSocket: port: CONTAINER_PORT timeoutSeconds: 1 nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
Remplacez :
- SERVICE par le nom de votre service Cloud Run ;
- IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CONTAINER_PORT par le port de conteneur défini pour votre service.
- CPU par le nombre de processeurs. Vous devez spécifier au moins
4
CPU. - MEMORY par la quantité de mémoire. Vous devez spécifier au moins
16Gi
(16 Gio). - GPU_TYPE par la valeur
nvidia-l4
(nvidia-L
4 L minuscule, et non la valeur numérique 14). - MAX_INSTANCE par le nombre maximal d'instances. Ce nombre ne doit pas dépasser le quota de GPU alloué à votre projet.
- GPU_ZONAL_REDUNDANCY avec
false
pour activer la redondance zonale du GPU outrue
pour la désactiver.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajoutez les éléments suivants à une ressource google_cloud_run_v2_service
dans votre configuration Terraform.
resource "google_cloud_run_v2_service" "default" {
provider = google-beta
name = "SERVICE"
location = "us-central1"
template {
gpu_zonal_redundancy_disabled = GPU_ZONAL_REDUNDANCY
containers {
image = "IMAGE_URL"
resources {
limits = {
"cpu" = "CPU"
"memory" = "MEMORY"
"nvidia.com/gpu" = "1"
}
}
}
node_selector {
accelerator = "GPU_TYPE"
}
}
}
Remplacez :
- SERVICE par le nom de votre service Cloud Run ;
- GPU_ZONAL_REDUNDANCY avec
false
pour activer la redondance zonale du GPU outrue
pour la désactiver. - IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CPU par le nombre de processeurs. Vous devez spécifier au moins
4
CPU. - MEMORY par la quantité de mémoire. Vous devez spécifier au moins
16Gi
(16 Gio). - GPU_TYPE par la valeur
nvidia-l4
(nvidia-L
4 L minuscule, et non la valeur numérique 14).
Afficher les paramètres du GPU
Pour afficher les paramètres actuels de GPU de votre service Cloud Run, procédez comme suit :
Console
Dans la Google Cloud console, accédez à Cloud Run:
Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.
Cliquez sur l'onglet Révisions.
Dans le panneau de détails sur la droite, le paramètre de processeur est répertorié sous l'onglet Conteneur.
gcloud
Exécutez la commande suivante :
gcloud run services describe SERVICE
Recherchez le paramètre de GPU dans la configuration renvoyée.
Supprimer un GPU
Vous pouvez supprimer un GPU à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.
Console
Dans la Google Cloud console, accédez à Cloud Run:
Cliquez sur Déployer un conteneur et sélectionnez Service pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.
Cliquez sur l'onglet Conteneur.
- Décochez la case "GPU".
Cliquez sur Créer ou Déployer.
gcloud
Pour supprimer un GPU, définissez le nombre de GPU sur 0
à l'aide de la commande gcloud beta run services update:
gcloud beta run services update SERVICE --gpu 0
Remplacez SERVICE par le nom de votre service Cloud Run.
YAML
Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
gcloud run services describe SERVICE --format export > service.yaml
Supprimez les lignes
nvidia.com/gpu:
etnodeSelector: run.googleapis.com/accelerator: nvidia-l4
.Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.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
(${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
) du conteneur avec le GPU. Cela permet à l'éditeur de liens dynamiques de trouver les bibliothèques de pilotes NVIDIA. Le lisseur recherche et résout les chemins dans l'ordre que vous indiquez dans la variable d'environnement LD_LIBRARY_PATH
. Toutes les valeurs que vous spécifiez dans cette variable ont la priorité sur le chemin d'accès par défaut des 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 nombre maximal d'instances
Le nombre d'instances avec GPU est limité de deux manières:
- Le paramètre Nombre maximal d'instances limite le nombre d'instances par service. Ce nombre ne peut pas être supérieur au quota par projet et par région pour les GPU.
- Quota de GPU autorisé par projet et par région. Cela limite le nombre d'instances dans les services d'une même région.