Kubernetes offre un support permettant gérer les processeurs graphiques (GPU) à travers différents nœuds d’un cluster, à l’aide de plug-ins de périphérique.
Dans ArcGIS Enterprise on Kubernetes, vous avez la possibilité d’implémenter un plug-in de périphérique pour activer les nœuds des processeurs graphiques (GPU) dans un 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 un cluster est facultative, car elle entraîne des coûts supplémentaires.
Pour activer un GPU, un plug-in de périphérique NVIDIA pour Kubernetes est nécessaire. Le plug-in de périphérique NVIDIA pour Kubernetes est un daemonset qui vous permet de connaître le nombre de GPU sur chaque nœud d’un 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
Pour activer un GPU pour votre organisation, procédez selon les étapes suivantes qui sont spécifiques à votre environnement et à vos préférences :
- Suivez les étapes indiquées pour configurer l’analyse raster, les services de notebook ou une autre fonctionnalité pour laquelle vous souhaitez utiliser les nœuds compatibles avec les GPU.
- 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 le déploiement a été effectué sur site, l’administrateur doit activer chaque GPU sur chaque nœud du cluster.
- Pour utiliser des nœuds compatibles avec les GPU pour les processus SIG de votre organisation, configurez l’accès aux ressources GPU.
- Si vous souhaitez exécuter les charges de travail GPU exclusivement sur des nœuds GPU, vous pouvez configurer l’affinité des nœuds et les tolérances.
Configurer l’accès aux ressources GPU
Si vous activez le GPU pour les services de notebook, reportez-vous à la page Consulter et mettre à jour les runtimes pour obtenir plus d’informations sur la définition des unités de GPU par nœud.
Si vous activez le GPU pour l’analyse raster, effectuez les étapes ci-dessous pour utiliser le répertoire API ArcGIS Enterprise Administrator afin de définir les demandes et limites du 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)
- Connectez-vous au répertoire API ArcGIS Enterprise Administrator en tant qu’administrateur.
- Cliquez sur System (Système) > Deployments (Déploiements).
- Localisez le déploiement system-rasteranalysistools-gpsyncserver et cliquez sur l’ID correspondant.
- Cliquez sur Edit Deployment (Mettre à jour le déploiement).
- 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" }, - Mettez à jour le paramètre customResources pour chaque conteneur répertorié afin d’inclure les demandes et limites pour le GPU.
- Cliquez sur Submit (Soumettre) pour enregistrer les modifications apportées au déploiement.
- 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 doivent être exécutées par l’administrateur pour configurer l’affinité des nœuds et les tolérances. Procédez selon les étapes suivantes 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é :
- 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 - Étiquetez les nœuds GPU. Vous pouvez également utiliser une étiquette existante déjà spécifiée sur le nœud.
Pour étiqueter un nœud avec la clé raster et la valeur GPU dans le cadre d’une analyse raster, utilisez la commande suivante :
kubectl label nodes <your-node-name> raster=GPUPour étiqueter un nœud avec la clé notebook et la valeur NotebooksGPUNode dans le cadre des services de notebook, utilisez la commande suivante :
kubectl label nodes <your-node-name> notebook=NotebooksGPUNode - Connectez-vous à ArcGIS Enterprise Manager en tant qu’administrateur.
- Ouvrez les paramètres de placement des pods.
Si vous activez le GPU pour les services de notebook, reportez-vous à la page Consulter et mettre à jour les runtimes pour obtenir des informations sur l’accès aux paramètres de placement des pods.
Pour accéder aux paramètres de placement des pods dans le cadre d’une analyse raster, procédez comme suit :
- Cliquez sur le bouton Services dans la barre latérale.
- Cliquez sur System services (Services système) et sélectionnez le service RasterProcessingGPU.
- Cliquez sur l’onglet Pod placement (Placement des pods).
- Pour appliquer une règle d’affinité des nœuds qui s’assure que les pods du service sont planifiés sur des nœuds GPU, indiquez les informations suivantes dans la section Node Affinity (Affinité des nœuds) et cliquez sur Add (Ajouter) :
- Type : Required (Obligatoire)
- Key (Clé) : spécifiez la clé utilisée pour étiqueter le nœud GPU, par exemple raster.
- Operator (Opérateur) : In (Dans)
- Value (Valeur) : spécifiez la valeur utilisée pour étiqueter le nœud GPU, par exemple GPU.
- Pour appliquer une tolérance qui permet aux pods de s’exécuter sur des nœuds que vous altérez, indiquez les informations suivantes dans la section Tolerations (Tolérances) et cliquez sur Add (Ajouter) :
- Effect (Effet) : No Execute (Ne pas exécuter)
- Key (Clé) : nvidia.com/gpu
- Operator (Opérateur) : Exists (Existe)
- Cliquez sur Save (Enregistrer).
- Vérifiez que les pods GPU sont exécutés sur les nœuds GPU.
Vous pouvez commencer à utiliser des ressources GPU pour vos charges utiles. Consultez également les recommandations relatives à l’optimisation des analyses raster.
Vous avez un commentaire à formuler concernant cette rubrique ?