Si la configuration système est appropriée, vous pouvez décharger certaines
tâches de traitement des applications sur une unité de traitement graphique
générale. En activant une propriété système, les charges de travail appropriées sont
déplacées de l'unité centrale vers l'unité de traitement graphique pour traitement. Vous pouvez également définir sur la ligne de commande une
option qui indique au compilateur JIT (Just-In-Time) de décharger certaines
tâches de traitement sur l'unité de traitement graphique.
A propos de cette tâche
Certaines tâches de traitement des applications peuvent bénéficier du traitement
des données sur une unité de traitement graphique au lieu de l'unité centrale, à
condition que la charge de travail soit de taille suffisante pour justifier le
déplacement des données. Si vous pouvez déterminer exactement quand une unité de
traitement graphique peut être utilisée, vous pouvez développer des applications qui
utilisent les API disponibles pour décharger des
tâches spécifiques. Vous pouvez également laisser la machine virtuelle prendre cette décision
automatiquement en définissant une propriété système sur la ligne de commande. Le compilateur JIT peut également décharger certaines tâches de
traitement en fonction de l'heuristique des performances.
Procédure
- Linux® uniquement: définissez
LD_LIBRARY_PATH
pour qu'il pointe vers la bibliothèque CUDA. Par exemple, export LD_LIBRARY_PATH=<CUDA_LIBRARY_PATH>:$LD_LIBRARY_PATH
, où la variable <CUDA_LIBRARY_PATH>
est le chemin d'accès complet à la bibliothèque CUDA. Pour CUDA 7.5, la variable <CUDA_LIBRARY_PATH>
est /usr/local/cuda-7.5/lib64
, qui suppose que CUDA est installé dans le répertoire par défaut.
Remarque : si vous utilisez la prise en charge des GPU basée sur le compilateur JIT (Just-In-Time), vous devez également inclure un chemin d'accès à la bibliothèque de machines virtuelles de réseau ( NVIDIA, NVVM). Par exemple, la variable
<CUDA_LIBRARY_PATH>
est
/usr/local/cuda-7.5/lib64:<NVVM_LIBRARY_PATH>
.
- Sur les systèmes x86-64 Linux, la variable
<NVVM_LIBRARY_PATH>
contient
/usr/local/cuda-7.5/nvvm/lib64
.
- Sur les systèmes IBM® Power 8, la variable
<NVVM_LIBRARY_PATH>
est /usr/local/cuda-7.5/nvvm/lib
.
Ces chemins supposent que la bibliothèque NVVM est installée dans le répertoire par défaut.
- Windows uniquement: définissez
PATH
pour inclure la bibliothèque CUDA. Ouvrez l'icône Système dans le Panneau de configuration. Cliquez sur Paramètres système avancés, puis sur Variables d'environnement. Sélectionnez la variable PATH et cliquez sur Editer. Ajoutez la chaîne suivante à la zone Valeur de variable : <CUDA_LIBRARY_PATH>
, où la variable <CUDA_LIBRARY_PATH>
est le chemin d'accès complet à la bibliothèque CUDA. Assurez-vous que plusieurs valeurs PATH
sont séparées par un ;
.La variable <CUDA_LIBRARY_PATH>
est C:\Program Files\NVIDIA
GPU Computing Toolkit\CUDA\v7.5\bin
, qui suppose que CUDA est installé dans le répertoire par défaut.
Vous pouvez également définir cette variable d'environnement directement sur la ligne de commande à l'aide de la commande suivante : set PATH=<CUDA_LIBRARY_PATH>;%PATH%
Remarque : si vous utilisez la prise en charge des GPU basée sur le compilateur Just-In-Time (JIT), vous devez également inclure les chemins d'accès à la bibliothèque de la machine virtuelle de l' NVIDIA (NVVM) et à la bibliothèque de gestion de NVDIA (NVML). Par exemple, la variable <CUDA_LIBRARY_PATH>
est C:\Program Files\NVIDIA GPU
Computing Toolkit\CUDA\v7.5\bin;<NVVM_LIBRARY_PATH>;<NVML_LIBRARY_PATH>
. Si la bibliothèque NVVM est installée dans le répertoire par défaut, la variable <NVVM_LIBRARY_PATH>
contient C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\nvvm\bin
. La bibliothèque NVML se trouve dans le répertoire des pilotes NVIDIA. Ce répertoire se trouve par défaut à l'emplacement C:\Program Files\NVIDIA Corporation\NVSMI
.
- Si vous souhaitez que la machine virtuelle détermine à quel moment les charges de
travail appropriées doivent être déplacées vers l'unité de traitement graphique, procédez
comme suit :
- Définissez la propriété système -Dcom.ibm.gpu.enable sur la ligne de commande lorsque vous exécutez votre application.
- Facultatif: si plusieurs processeurs graphiques sont installés sur votre système et que vous souhaitez que votre application cible un processeur graphique spécifique, vous pouvez définir la variable d'environnement CUDA CUDA_VISIBLE_DEVICES.
Par exemple, si vous définissez CUDA_VISIBLE_DEVICES=1, seul l'identificateur d'unité NVIDIA 1 est visible pour l'application.
- Pour permettre au compilateur JIT de décharger le traitement sur un processeur graphique, définissez l'option suivante lorsque vous démarrez votre application: -Xjit:enableGPU.
Résultats
Si la propriété système -Dcom.ibm.gpu.enable est définie correctement, les tâches de traitement qui sont spécifiées avec la propriété système sont automatiquement déchargées vers le GPU lorsqu'elles rencontrent une taille de charge de travail minimale.
Si vous avez défini l'option -Xjit:enableGPU, JIT utilise des heuristiques de performances pour déterminer les charges de travail à envoyer au GPU pour traitement.
Si vous rencontrez des problèmes, voir Identification des problèmes GPU (Linux, Windows uniquement).