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), distincte de la mémoire de l'instance.
Notez que vous devez utiliser la page d'inscription à Cloud Run g.co/cloudrun/gpu pour inscrire vos projets Cloud Run afin d'utiliser la fonctionnalité GPU. Pour que nous puissions ajouter votre projet à la liste d'autorisation, vous devez disposer d'au moins un service Cloud Run non GPU en cours d'exécution dans votre projet dans la région us-central1
.
Sur Cloud Run, les GPU sont entièrement gérés, sans pilotes ni bibliothèques supplémentaires. La fonctionnalité GPU offre une disponibilité à la demande sans réservation nécessaire, 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 sidecar, 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
Impact sur les tarifs
Pour en savoir plus sur les tarifs des GPU, consultez la page Tarifs de Cloud Run. Notez les points importants suivants:
- Il n'y a pas de frais par requête. Étant donné que vous devez utiliser
CPU always allocated
pour utiliser la fonctionnalité GPU, les instances minimales sont facturées au tarif plein, même lorsqu'elles sont inactives. - Vous devez utiliser au minimum quatre processeurs et 16 Gio de mémoire.
- Les GPU sont facturés pour la durée totale du cycle de vie de l'instance.
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.129.03 (CUDA 12.2)
Avant de commencer
La liste suivante décrit les exigences et les limites applicables lors de l'utilisation de GPU dans Cloud Run:
- Vous devez accéder à la page d'inscription à Cloud Run g.co/cloudrun/gpu pour inscrire vos projets Cloud Run afin d'utiliser la fonctionnalité GPU.
- Si vous avez l'intention de charger des modèles volumineux dans le GPU Cloud Run, assurez-vous de consulter également la section Bonnes pratiques: Inférence de l'IA sur Cloud Run avec des GPU.
- Assurez-vous que votre service Cloud Run dispose des configurations suivantes :
- Le processeur doit être configuré sur Processeur toujours alloué. Notez que les services de processeur toujours alloués peuvent toujours réduire la capacité à zéro.
- Configurez un minimum de 4 processeurs pour votre service, et 8 processeurs sont recommandés.
- Configurez un minimum de 16 Gio de mémoire, avec 32 Gio recommandé.
- Déterminez et définissez une simultanéité maximale optimale 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 les API Google Cloud, telles que les 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 sections Autorisations de déploiement et Gérer les accès.
Configurer un service Cloud Run avec 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 console Google Cloud, accédez à Cloud Run :
Cliquez sur Déployer le 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.
Cliquez sur Créer ou Déployer.
gcloud
Pour définir ou mettre à jour le paramètre de GPU d'un service, utilisez la commande gcloud bêta de mise à jour des services d'exécution :
gcloud beta run deploy SERVICE \ --image IMAGE_URL \ --project PROJECT_ID \ --region REGION \ --port PORT \ --cpu CPU \ --memory MEMORY \ --no-cpu-throttling \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --max-instances MAX_INSTANCE
Remplacez :
- SERVICE par le nom de votre service Cloud Run ;
- PROJECT_ID par l'ID du projet sur lequel vous effectuez le déploiement.
- REGION par la région dans laquelle vous effectuez le déploiement. Vous devez spécifier une région compatible avec les GPU.
- PORT par le port auquel envoyer les requêtes. Notez que le port par défaut est
8080
. - 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
processeurs. - MEMORY par la quantité de mémoire. Vous devez spécifier au moins
16Gi
(16 Gio). - GPU_NUMBER avec la valeur
1
(un). - GPU_TYPE par le type de GPU. Vous devez utiliser
nvidia-l4
(nvidiaL
4 L minuscule, et non la valeur numérique quatorze). - MAX_INSTANCE par le nombre maximal d'instances. Ce nombre ne peut pas dépasser le quota de GPU alloué pour votre projet.
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
Mettez à jour 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' spec: containers: - image: IMAGE_URL ports: - containerPort: CONTAINER_PORT name: http1 resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' # 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
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). - MAX_INSTANCE par le nombre maximal d'instances. Ce nombre ne peut pas dépasser le quota de GPU alloué pour votre projet.
Créez ou mettez à jour le service à l'aide de la commande suivante :
gcloud run services replace service.yaml
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 console Google Cloud, 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 console Google Cloud, accédez à Cloud Run :
Cliquez sur Déployer le 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 des 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. Si vous souhaitez installer un sous-ensemble de pilotes, vous pouvez utiliser la variable d'environnement NVIDIA NVIDIA_DRIVER_CAPABILITIES
.
Si votre service ne parvient pas à trouver les bibliothèques fournies, mettez à jour le chemin de recherche de l'éditeur de liens dynamique en ajoutant la ligne ENV LD_LIBRARY_PATH /usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
à votre fichier Dockerfile.
Notez que vous pouvez également définir LD_LIBRARY_PATH
comme variable d'environnement pour le service Cloud Run, si vous disposez d'une image existante et que vous ne souhaitez pas la recompiler avec un fichier Docker mis à jour.
À 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 paramètre ne peut pas être supérieur au quota de GPU 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 de la même région.