Traitement GPU avec Spatial Analyst

Disponible avec une licence Spatial Analyst.

Disponible avec une licence 3D Analyst.

ArcGIS Pro offre de meilleures performances grâce à l’utilisation des traitements GPU (Graphics Processing Unit) pour certains outils. Cette technologie tire parti de la puissance informatique des cartes graphiques qui équipent les ordinateurs modernes pour augmenter les performances de certaines opérations.

Les outils suivants prennent en charge le traitement GPU :

Traitement GPU

Un GPU est un composant matériel de votre ordinateur dont l’objectif est d’accélérer le rendu des graphiques à l’écran. Récemment, la puissance de traitement des GPU a été exploitée pour réaliser des tâches informatiques d’ordre général.

Dans le cas d’outils accélérés par le GPU, la tâche de traitement raster est dirigée vers le GPU plutôt que vers le processeur (ou CPU, Central Processing Unit). Certains types d’opérations bénéficient de cette approche. Dans ces cas, le logiciel divise la tâche de traitement en petites parties, qui sont envoyées au GPU pour les calculs. Le GPU effectue les calculs en parallèle pour toutes ces petites parties à une vitesse plus élevée. Les données résultantes sont renvoyées et le logiciel assemble de nouveau les composants individuels en un produit complet final.

Cartes et pilotes de GPU pris en charge

Diverses solutions sont disponibles pour le traitement GPU. Actuellement, seuls les GPU NVIDIA dotés de fonctionnalités de calcul CUDA de version 5.2 ou ultérieure sont pris en charge par l’outil. Votre système doit être muni d’une carte adéquate pour pouvoir accéder à cette fonctionnalité.

Pour vérifier le type de carte graphique présent sur un ordinateur Windows, ouvrez le Gestionnaire de périphériques de votre système et développez Cartes graphiques. Les marques et les types de cartes graphiques y sont répertoriés. Si aucune carte graphique de marque NVIDIA n’y est répertoriée, vous n’aurez pas accès à cette fonctionnalité et l’outil utilisera uniquement le processeur.

Si une carte graphique NVIDIA y est répertoriée, vérifiez le type de GPU installé dans votre système grâce au Panneau de configuration NVIDIA :

  1. Cliquez avec le bouton droit sur une zone vide de votre Bureau.
  2. Dans le menu contextuel, cliquez sur Panneau de configuration NVIDIA.
  3. Dans la fenêtre de panneau de configuration, ouvrez le menu d’Aide et cliquez sur Informations système. Toutes les cartes graphiques NVIDIA, les versions des pilotes et d’autres propriétés s’affichent.

Une fois que vous avez déterminé le type de carte GPU NVIDIA, recherchez sa fonctionnalité de calcul CUDA sur la page d’Aide NVIDIA concernant les GPU CUDA. Dans la section adéquate, localisez votre carte GPU et prenez note de la valeur de fonctionnalités de calcul indiquée. Pour être prise en charge par l’outil, sa version doit être 5.2 ou ultérieure.

Une carte de GPU est installée sur une machine avec un pilote par défaut. Avant d’exécuter un outil d’analyse avec un GPU, vous devez mettre à jour vos pilotes de carte GPU à la version la plus récente que vous trouverez sur la page de mise à jour de pilotes NVIDIA.

Configuration du GPU

L’outil utilise un GPU pour les calculs. Cependant, si votre ordinateur possède un seul GPU, celui-ci sera utilisé pour l’affichage et les calculs. Dans ce cas, un message d’avertissement s’affiche au moment de l’exécution de l’outil, indiquant que l’affichage peut sembler ne pas répondre. Pour l’analyse spatiale, il est recommandé d’utiliser deux GPU : un pour l’affichage et l’autre pour les calculs.

Si votre système compte plusieurs GPU, deux variables d’environnement système déterminent le GPU utilisé : CUDA_DEVICE_ORDER et CUDA_VISIBLE_DEVICES.

Par défaut, la variable d’environnement système CUDA_DEVICE_ORDER est définie sur FASTEST_FIRST. Cela signifie que plusieurs GPU sur un ordinateur sont numérotés du plus rapide au plus lent, à partir de 0. Le nombre de GPU, en fonction de leur mode d’installation sur l’ordinateur, redéfinit le paramètre d’environnement CUDA_DEVICE_ORDER sur PCI_BUS_ID.

Le GPU d’un TCC (Tesla Computer Cluster) est considéré comme plus rapide que celui du WDDM (Windows Display Driver Model) par défaut. De ce fait, il est répertorié en premier (index 0) et est utilisé pour exécuter l’outil par défaut. Si aucun GPU n’est disponible en mode de pilote TCC, et que le paramètre d’environnement CUDA_DEVICE_ORDER est laissé sur sa valeur par défaut, le GPU le plus rapide (avec l’index 0) est utilisé, sauf spécification contraire.

Pour spécifier ou désactiver un GPU, vous pouvez définir les variables d’environnement système CUDA_DEVICE_ORDER et CUDA_VISIBLE_DEVICES en procédant comme suit :

  • Pour utiliser un GPU différent, spécifiez ce GPU dans la variable d’environnement du système CUDA_VISIBLE_DEVICES. Pour ce faire, vous devez d’abord créer cette variable d’environnement si elle n’existe pas déjà dans votre système. Définissez ensuite sa valeur à la valeur d’index (0 pour la première, 1 pour la deuxième, etc.) qui représente le périphérique de GPU à utiliser, puis redémarrez votre application. La valeur de l’index dépend de l’ordre déterminé par la variable d’environnement système CUDA_DEVICE_ORDER. Pour modifier la valeur du paramètre CUDA_DEVICE_ORDER, procédez de la même manière que pour la variable d’environnement système CUDA_VISIBLE_DEVICES.
  • Si vous ne souhaitez pas que l’analyse utilise l’un des périphériques de GPU installé sur votre système, définissez la variable d’environnement système CUDA_VISIBLE_DEVICES sur -1 et redémarrez votre application. L’outil ne s’exécutera qu’en utilisant le processeur.
  • Pour activer l’outil afin qu’il utilise de nouveau le périphérique de GPU, supprimez la variable d’environnement système CUDA_VISIBLE_DEVICES ou définissez-la sur la valeur d’index du périphérique de GPU que vous voulez utiliser, puis redémarrez votre application.

Pour plus d’informations sur les variables d’environnement système CUDA_VISIBLE_DEVICES et CUDA_DEVICE_ORDER, consultez le Guide de programmation du kit d’outils CUDA.

Les sous-sections suivantes expliquent la procédure de configuration recommandée pour parvenir à un traitement optimal lors de l’utilisation des fonctionnalités du GPU.

Définir le mode de pilote TCC

Pour les GPU NVIDIA, définissez le GPU utilisé pour les calculs sur le pilote TCC, plutôt que sur le pilote WDDM par défaut. Le mode TCC permet un fonctionnement plus efficace du GPU.

Pour activer le mode de pilote TCC, utilisez le programme de contrôle de l’interface de gestion du système NVIDIA , généralement disponible sur C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Par exemple, la commande 'nvidia-smi -dm 1 -i 2' bascule la carte dont l’ID de périphérique est 2 en mode d’affichage 1 (TCC).

Remarque :

Si vous exécutez ArcGIS Server, le GPU utilisé pour les calculs doit être en mode de pilote TCC.

Désactiver le mode ECC

Désactivez le mode Error Correcting Code (ECC) correspondant au GPU utilisé pour les calculs, car il réduit la mémoire disponible pour le GPU.

Pour désactiver le mode ECC, utilisez le programme de contrôle de l’interface de gestion du système NVIDIA (nvidia-smi), généralement disponible sur C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe. Par exemple, la commande 'nvidia-smi -e 0 -i 1' désactive le mode ECC pour le GPU dont l’ID de périphérique est 1.

Augmenter le paramètre TDR

Si le GPU utilisé pour les calculs se trouve en mode de pilote WDDM, le pilote du périphérique d’affichage de Windows redémarre le GPU si des calculs prennent plus que quelques secondes. C’est ce que l’on appelle la condition Windows Timeout Detection and Recovery (TDR). Si cela se produit, l’exécution de l’outil échoue et une erreur de GPU est renvoyée.

Pour éviter ce scénario, vous pouvez apporter une modification à la clé de Registre TdrDelay. Si vous définissez cette clé sur la valeur adéquate (par exemple, 60 secondes), cela laisse le temps de terminer une opération longue avant le déclenchement de la condition TDR. Sur la plupart des systèmes Windows, le chemin d’accès à la clé TdrDelay dans le Registre est HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Si la cléTdrDelay n’existe pas, vous devez la créer dans ce chemin. Lorsque vous créez ou modifiez cette valeur de registre, sauvegardez le registre au préalable. Vous devez redémarrer la machine pour que cette modification prenne effet. Pour plus d’informations, reportez-vous à la rubrique Timeout Detection and Recovery (TDR) de la documentation du développeur Microsoft.

Attention :

Esri ne pourra être tenu pour responsable de tout problème lié au système résultant d’une modification incorrecte du registre. Assurez-vous de disposer d’une sauvegarde valide du registre que vous pourrez utiliser en cas de problème, ou demandez à des analystes système qualifiés de procéder à la modification.

Rubriques connexes