L’installation de CUDA et cuDNN sur Ubuntu 22.04 est une étape essentielle pour utiliser efficacement les capacités du GPU dans l’entraînement des modèles de deep learning.

Suivez ce guide étape par étape pour configurer votre système.

1. Préparation du système

Avant toute chose, assurez-vous que votre système est à jour.

Ouvrez un terminal et exécutez les commandes suivantes :

sudo apt update
sudo apt upgrade

2. Vérification et installation du pilote NVIDIA

Vérifiez si les pilotes NVIDIA sont déjà installés :

nvidia-smi

Si ce n’est pas le cas ou en cas de problème, désinstallez les pilotes existants :

sudo apt autoremove nvidia* --purge

Ensuite, déterminez les pilotes disponibles pour votre matériel :

ubuntu-drivers devices

Allez dans “Pilote additionnels” et choisissez un pilote Nvidia propriétaire et testé, par exemple :

Utilisation de NVIDIA driver metapackage depuis nvidia-driver-535 (propriétaire, testé)

Appliquez les modifications et redémarrez votre système.

Après redémarrage, testez avec nvidia-smi. En cas d’erreur, il peut être nécessaire de revenir temporairement au pilote Nouveau pour installer correctement le pilote Nvidia.

3. Installation de CUDA

Installez le toolkit CUDA :

sudo apt install nvidia-cuda-toolkit

Vérifiez la version installée :

nvcc --version

4. Installation de cuDNN

Consultez la documentation de TensorFlow pour déterminer la version compatible de cuDNN selon votre version de CUDA.

Téléchargez le paquet .deb approprié.

Installez cuDNN avec les commandes suivantes :

sudo apt install ./<filename.deb>
sudo cp /var/cudnn-<something>.gpg /usr/share/keyrings/

Pour la version 8 de cuDNN, procédez comme suit :

sudo apt update
sudo apt install libcudnn8 libcudnn8-dev libcudnn8-samples

5. Configuration de l’environnement Python

Installez Python et l’environnement virtuel :

sudo apt install python3-venv

6. Installation de TensorFlow

Installez TensorFlow pour utiliser votre GPU.

Allez sur https://developer.nvidia.com/tensorrt/download/10x et telecharger la bonne version en fonction de votre OS et de la version de votre CUDA

wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/10.2.0/local_repo/nv-tensorrt-local-repo-ubuntu2204-10.2.0-cuda-11.8_1.0-1_amd64.deb

Installez en local

sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-10.2.0-cuda-11.8_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-10.2.0-cuda-11.8/nv-tensorrt-local-012FC2A5-keyring.gpg /usr/share/keyrings/

Mettez a jour vos paquets

sudo apt-get update

Installez les dépendances, vous allez avoir des erreurs mais cela fonctionne

sudo apt-get install tensorrt
sudo apt-get install python3-libnvinfer-dev
sudo apt-get install uff-converter-tf
sudo apt-get install onnx-graphsurgeon

Mettez à jour les variables d’environnement en modifiant ~/.bashrc ou ~/.zshrc

nano ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu
source ~/.bashrc

7. Tester l’installation GPU avec TensorFlow

Ouvrez un terminal Python ou votre environnement de développement préféré et exécutez le script suivant pour tester et afficher les dispositifs matériels disponibles, notamment le GPU :

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Ce code affichera une liste de tous les dispositifs disponibles. Pour un système configuré correctement avec un GPU Nvidia, vous devriez voir une sortie similaire à ceci :

[name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
 }
 incarnation: 674693318436146428
 xla_global_id: -1
, name: "/device:GPU:0"
 device_type: "GPU"
 memory_limit: 4189650944
 locality {
   bus_id: 1
   links {
   }
 }
 incarnation: 11973440331491022285
 physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 2060, pci bus id: 0000:2b:00.0, compute capability: 7.5"
 xla_global_id: 416903419
]

Pour des vérifications supplémentaires sur TensorFlow, ajoutez et exécutez ces lignes :

import tensorflow as tf

print("Is CUDA enabled GPU Available?", tf.config.list_physical_devices('GPU'))
print("GPU Number:", len(tf.config.list_physical_devices('GPU')))
print("GPU Type:", tf.test.gpu_device_name())
print("Is GPU Initialized yet?", tf.config.experimental.list_physical_devices('GPU'))

La sortie attendue si votre GPU est correctement configuré et accessible par TensorFlow devrait être :

Is CUDA enabled GPU Available? [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
GPU Number: 1
GPU Type: /device:GPU:0
Is GPU Initialized yet? [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Pour tester tensorRT

import tensorrt as trt
print(trt.__version__)

Ces vérifications vous permettront de confirmer que votre environnement est bien configuré pour l’entraînement de modèles de deep learning en utilisant la puissance de calcul du GPU.