Compatibilité avec les GPU pour les pools de nœuds de calcul

Cette page décrit la configuration des GPU pour vos pools de nœuds de calcul Cloud Run. 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 du processeur à 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) Icône Feuille Faibles émissions de CO2
  • europe-west4 (Pays-Bas) Icône Feuille Faibles émissions de CO2
  • us-central1 (Iowa) Icône Feuille 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 la page Tarifs de Cloud Run. Notez les exigences et considérations suivantes :

  • Le coût de la redondance 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.
  • Les pools de nœuds de calcul GPU ne peuvent pas faire l'objet d'un autoscaling. Le GPU vous est facturé même s'il n'exécute aucun processus, tant que l'instance GPU du pool de nœuds de calcul est en cours d'exécution.
  • Le processeur et la mémoire des pools de nœuds de calcul sont facturés différemment des services et des jobs. Toutefois, le code SKU GPU est facturé au même prix que les services et les jobs.
  • 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.

Options de redondance zonale des GPU

Par défaut, Cloud Run déploie votre pool de nœuds de calcul dans plusieurs zones d'une même région. Cette architecture offre une résilience intrinsèque : si une zone subit une panne, Cloud Run redirige automatiquement le trafic de la zone concerné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. En cas de 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 opérationnelles restantes. En raison de la nature limitée des GPU, cette capacité peut ne pas toujours être disponible.

Pour augmenter la disponibilité de vos pools de nœuds de calcul accélérés par GPU en cas de pannes zonales, 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 pool de nœuds de calcul dans plusieurs zones. Cela augmente considérablement la probabilité que votre pool de nœuds de calcul puisse gérer le trafic redirigé depuis une zone affectée, ce qui offre une fiabilité accrue en cas de défaillance zonale, avec un coût supplémentaire par seconde et par GPU.

  • Redondance zonale désactivée : Cloud Run tente de basculer pour les charges de travail GPU de la manière la plus optimale possible. Le trafic n'est acheminé vers d'autres zones que si une capacité de GPU suffisante est disponible à 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 inférieur.

Contrat de niveau de service

Le SLA pour Cloud Run GPU dépend de l'option de redondance zonale ou non zonale utilisée par le pool de nœuds de calcul. Pour en savoir plus, consultez la page sur les SLA.

Demander une augmentation du quota

Les projets qui utilisent des GPU nvidia-l4 Cloud Run dans une région pour la première fois se voient automatiquement attribuer un quota de trois GPU (redondance zonale désactivée) lors de la création du premier déploiement. Si vous avez besoin de GPU Cloud Run supplémentaires, vous devez demander une augmentation de quota pour votre pool de nœuds de calcul Cloud Run. Utilisez les liens fournis dans les boutons suivants pour demander le quota dont vous avez besoin.

Quota nécessaire Lien vers le quota
GPU avec redondance zonale désactivée (prix inférieur) Demander un quota de GPU sans redondance zonale
GPU avec redondance zonale activée (prix plus élevé) Demander un quota de GPU avec redondance zonale

Pour savoir comment demander une augmentation de quota, consultez 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 :

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Run API.

    Enable the API

  7. Demandez le quota requis.
  8. Consultez les bonnes pratiques concernant les GPU : pools de nœuds de calcul 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.
  9. Assurez-vous que votre pool de nœuds de calcul Cloud Run présente les configurations suivantes :
    • Configurez les paramètres de facturation pour la facturation basée sur les instances. Notez que les pools de nœuds de calcul 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 pool de nœuds de calcul, et 8 processeurs sont recommandés.
    • Configurez un minimum de 16 Gio de mémoire (32 Gio recommandés).
    • Déterminez et définissez une simultanéité maximale optimale pour votre utilisation du GPU.

    Rôles requis

    Pour obtenir les autorisations nécessaires pour configurer et déployer des pools de nœuds de calcul Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants sur les pools de nœuds de calcul :

    • Développeur Cloud Run (roles/run.developer) : pool de nœuds de calcul 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 pool de nœuds de calcul 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 pool de nœuds de calcul 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 utiliser la console Google Cloud , Google Cloud CLI ou YAML pour configurer le GPU.

    Console

    1. Dans la console Google Cloud , accédez à Cloud Run :

      Accédez à Cloud Run

    2. Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

    3. Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale des paramètres du pool de nœuds de calcul, puis cliquez sur Conteneur(s), Volumes, Mise en réseau, Sécurité pour développer la page de configuration du pool de nœuds de calcul.

    4. Cliquez sur l'onglet Conteneur.

      image

      • 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 modifier le paramètre actuel, cochez la case GPU pour afficher les options de redondance de GPU.
        • Sélectionnez Aucune redondance zonale pour désactiver la redondance zonale.
        • Sélectionnez Redondance de zones pour l'activer.
    5. Cliquez sur Créer ou Déployer.

    gcloud

    Pour créer un service avec la fonctionnalité GPU activée, utilisez la commande gcloud run deploy :

      gcloud beta run worker-pools deploy WORKER_POOL \
        --image IMAGE_URL \
        --gpu 1

    Remplacez les éléments suivants :

    • WORKER_POOL : nom de votre pool de nœuds de calcul Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

    Pour mettre à jour la configuration GPU d'un service, utilisez la commande gcloud run services update :

      gcloud beta run worker-pools update WORKER_POOL \
        --image IMAGE_URL \
        --cpu CPU \
        --memory MEMORY \
        --gpu GPU_NUMBER \
        --gpu-type GPU_TYPE \
        --GPU_ZONAL_REDUNDANCY
        

    Remplacez les éléments suivants :

    • WORKER_POOL : nom de votre pool de nœuds de calcul Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
    • CPU : nombre de processeurs. Vous devez spécifier au moins 4 processeurs.
    • MEMORY : quantité de mémoire. Vous devez spécifier au moins 16Gi (16 Gio).
    • GPU_NUMBER : 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 est 1.
    • GPU_TYPE : 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 (nvidia L 4 L minuscule, et non la valeur numérique quatorze).
    • GPU_ZONAL_REDUNDANCY : no-gpu-zonal-redundancy pour désactiver la redondance zonale ou gpu-zonal-redundancy pour l'activer.

    YAML

    1. 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
    2. Modifiez l'attribut nvidia.com/gpu: et nodeSelector:
      run.googleapis.com/accelerator:
       :

      apiVersion: run.googleapis.com/v1
      kind: WorkerPool
      metadata:
        name: WORKER_POOL
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/launch-stage: BETA
              run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY'
          spec:
            containers:
            - image: IMAGE_URL
              resources:
                limits:
                  cpu: 'CPU'
                  memory: 'MEMORY'
                  nvidia.com/gpu: '1'
            nodeSelector:
              run.googleapis.com/accelerator: GPU_TYPE

      Remplacez les éléments suivants :

      • WORKER_POOL : nom de votre pool de nœuds de calcul Cloud Run.
      • IMAGE_URL : référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
      • CPU : nombre de processeurs. Vous devez spécifier au moins 4 processeurs.
      • MEMORY : quantité de mémoire. Vous devez spécifier au moins 16Gi (16 Gio).
      • GPU_TYPE : la valeur nvidia-l4 (nvidia-L4 L minuscule, et non la valeur numérique quatorze).
      • GPU_ZONAL_REDUNDANCY : false pour activer la redondance zonale des GPU ou true pour la désactiver.
    3. 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.

    resource "google_cloud_run_v2_worker_pool" "default" {
      provider = google-beta
      name     = "WORKER_POOL"
      location = "REGION"
    
      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 les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • GPU_ZONAL_REDUNDANCY : false pour activer la redondance zonale des GPU ou true pour la désactiver.
    • IMAGE_URL : référence à l'image de conteneur contenant le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
    • CPU : nombre de processeurs. Vous devez spécifier au moins 4 processeurs.
    • MEMORY : quantité de mémoire. Vous devez spécifier au moins 16Gi (16 Gio).
    • GPU_TYPE : valeur nvidia-l4 (nvidia-L4 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 pool de nœuds de calcul Cloud Run, procédez comme suit :

    Console

    1. Dans la console Google Cloud , accédez à la page "Pools de nœuds de calcul Cloud Run" :

      Accéder aux pools de nœuds de calcul Cloud Run

    2. Cliquez sur le pool de nœuds de calcul qui vous intéresse pour ouvrir la page Détails du pool de nœuds de calcul.

    3. Cliquez sur Modifier et déployer la nouvelle révision.

    4. Recherchez le paramètre de GPU dans les détails de la configuration.

    gcloud

    1. Exécutez la commande suivante :

      gcloud beta run worker-pools describe WORKER_POOL
    2. 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

    1. Dans la console Google Cloud , accédez à Cloud Run :

      Accédez à Cloud Run

    2. Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un nouveau pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

    3. Si vous configurez un nouveau pool de nœuds de calcul, remplissez la page initiale des paramètres du pool de nœuds de calcul, puis cliquez sur Conteneur(s), Volumes, Mise en réseau, Sécurité pour développer la page de configuration du pool de nœuds de calcul.

    4. Cliquez sur l'onglet Conteneur.

    image

    • Décochez la case "GPU".
    1. Cliquez sur Créer ou Déployer.

    gcloud

    Pour supprimer un GPU, définissez le nombre de GPU sur 0 :

      gcloud beta run worker-pools update WORKER_POOL --gpu 0
      

    Remplacez WORKER_POOL par le nom de votre pool de nœuds de calcul Cloud Run.

    YAML

    1. 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
    2. Supprimez les lignes nvidia.com/gpu: et nodeSelector: run.googleapis.com/accelerator: nvidia-l4.

    3. 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 (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).