Nœuds compatibles avec les processeurs graphiques (GPU)

Kubernetes offre un support permettant gérer les processeurs graphiques (GPU) à travers différents nœuds de votre cluster, à l’aide des plugins de périphériques.

Dans ArcGIS Enterprise on Kubernetes, vous avez la possibilité d’implémenter un plugin de périphérique pour activer les nœuds des processeurs graphiques (GPU) dans votre cluster, afin d’optimiser les processus SIG, tels que ceux relatifs à l’analyse raster et au Deep Learning. Par défaut, les fonctionnalités, telles que l’analyse raster sont configurées de façon à être exécutées en mode CPU, mais il est également possible de les exécuter en mode GPU lorsque ces ressources sont disponibles.

La prise en compte de la disponibilité et de l’utilisation des GPU dans votre cluster est facultative, car elle entraîne des coûts supplémentaires.

Pour activer un GPU, un plugin de périphérique NVIDIA pour Kubernetes est requis. Le plugin de périphérique NVIDIA pour Kubernetes est un daemonset qui vous permet de connaître le nombre de GPU sur chaque nœud de votre cluster, d’exécuter les conteneurs compatibles avec les GPU et de suivre l’intégrité des GPU.

Remarque :

Dans cette version, ArcGIS Enterprise on Kubernetes n’est pris en charge qu’avec les GPU NVIDIA.

Activer un GPU

Les étapes suivantes du processus permettant d’activer un GPU pour votre organisation sont spécifiques à votre environnement et à vos préférences.

  1. Suivez les étapes indiquées pour configurer l'analyse raster ou une autre fonctionnalité pour laquelle vous souhaitez utiliser les nœuds compatibles avec les GPU.
  2. Vérifiez que le plugin de périphérique de votre instance est installé.

    Les nœuds GPU sont préconfigurés pour de nombreux environnements cloud. Si le plugin de périphérique n’est pas installé, reportez-vous à la documentation plugin de périphérique NVIDIA pour Kubernetes pour plus d’informations et connaître les étapes d’installation. Si votre déploiement a été effectué sur site, votre administrateur doit activer chaque GPU sur chaque nœud de votre cluster.

  3. Pour tirer parti des nœuds compatibles avec les GPU pour les processus SIG de votre organisation, définissez les demandes et les limites pour le GPU.
  4. Optionnellement, si vous souhaitez exécuter les charges de travail GPU exclusivement sur les nœuds GPU, configurez l’affinité des nœuds et les tolérances.

Définir les demandes et les limites pour le GPU

Utilisez le répertoire API ArcGIS Enterprise Administrator pour définir les demandes et limites pour le GPU pour chacun des déploiements suivants :

  • system-rasteranalysistools-gpsyncserver (utilisé pour l’entraînement des modèles)
  • system-rasterprocessinggpu-dpserver (utilisé pour le traitement)

  1. Connectez-vous au répertoire API ArcGIS Enterprise Administrator en tant qu’administrateur.
  2. Cliquez sur System (Système) > Deployments (Déploiements).
  3. Localisez le déploiement system-rasteranalysistools-gpsyncserver et cliquez sur l’ID qui lui correspond.
  4. Cliquez sur Edit Deployment (Mettre à jour le déploiement).
  5. Dans le JSON du déploiement, localisez la section resources pour le déploiement et le paramètre customResources.
              
    "containers": [
          {
            "name": "main-container",
            "resources": {
              "memoryMin": "4Gi",
              "memoryMax": "8Gi",
              "cpuMin": "0.125",
              "customResources": {
                "limits":{"nvidia.com/gpu": "1"},
                "requests":{"nvidia.com/gpu": "1"}
              },
              "cpuMax": "2"
            },
    
  6. Mettez à jour le paramètre customResources pour chaque conteneur répertorié afin d’inclure les demandes et limites pour le GPU.
  7. Cliquez sur Submit (Soumettre) pour enregistrer les modifications apportées au déploiement.
  8. Répétez ces étapes pour le déploiement system-rasterprocessinggpu-dpserver.

Apprenez comment mettre à jour les déploiements système dans la documentation de l’API du répertoire de l’administrateur.

Configurer l’affinité des nœuds et les tolérances

Il est possible d’exécuter des charges de travail CPU et GPU sur les nœuds GPU. Si vos charges de travail CPU sont autorisées à être exécutées sur un nœud GPU, aucune autre étape n’est requise. Toutefois, si vous souhaitez vous assurer que les charges de travail GPU sont exécutées exclusivement sur les nœuds GPU, des étapes supplémentaires devront être exécutées par votre administrateur pour configurer l’affinité des nœuds et les tolérances. Pour ce faire, les étapes suivantes sont nécessaires pour altérer les nœuds et appliquer des tolérances aux services concernés afin qu’ils puissent être programmés sur un nœud altéré.

  1. Pour vous assurer que les charges de travail GPU sont programmées exclusivement sur les nœuds GPU, altérez les nœuds GPU.

    kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoExecute
    

  2. Étiquetez les nœuds GPU. Vous pouvez également utiliser une étiquette existante déjà spécifiée sur le nœud.

    kubectl label nodes <your-node-name> raster=GPU
    

  3. Mettez à jour la politique de placement du service RasterProcessingGPU (DPServer) sous System (Système) de façon à ce qu’il utilise l’affinité des nœuds et les tolérances.

          
    
    "podPlacementPolicy": {
              "tolerations": [{
                 "effect": "NoExecute",
                 "key": "nvidia.com/gpu",
                 "operator": "Exists"
              }],
              "nodeAffinity": {
                 "requiredDuringSchedulingIgnoredDuringExecution": {
                      "nodeSelectorTerms": [{
                           "matchExpressions": [{
                              "key": "raster",
                              "operator": "In",
                              "values": ["GPU"]
                            }]
                       }]
                  }
              }
          }
    

  4. Vérifiez que les pods GPU sont exécutés sur les nœuds GPU.

Vous pouvez commencer à utiliser les outils d’analyse raster et à héberger l’imagerie dans votre organisation. Consultez également les recommandations relatives à l’Optimisation des analyses raster.