Guide Complet : Configurer TensorFlow avec GPU (CUDA, cuDNN) sur Windows via WSL2

Guide Complet : Configurer TensorFlow avec GPU (CUDA, cuDNN) sur Windows via WSL2
Configurer un environnement de développement pour le Deep Learning peut souvent ressembler à un parcours du combattant. Entre les conflits de versions, les dépendances système et les pilotes graphiques, il est facile de se perdre. Pourtant, exploiter la puissance de son GPU NVIDIA n'est pas une option, mais une nécessité pour entraîner des modèles complexes efficacement.
Heureusement, il existe une méthode robuste, propre et incroyablement performante pour y parvenir sur Windows : le Sous-système Windows pour Linux (WSL2).
Dans ce guide complet, je vais vous accompagner pas à pas. Nous allons partir de zéro et construire un environnement de développement de pointe avec Ubuntu, CUDA, cuDNN et TensorFlow. Chaque commande est expliquée et prête à être copiée-collée. À la fin de ce tutoriel, vous disposerez d'une configuration stable et puissante, prête pour tous vos projets de Machine Learning.
Le Principe : Pourquoi WSL2 est la Meilleure Approche ?
Avant de plonger dans la technique, comprenons pourquoi WSL2 a changé la donne pour les data scientists travaillant sur Windows.
WSL2 n'est pas une simple machine virtuelle. C'est une couche de compatibilité qui permet d'exécuter un véritable noyau Linux directement sur Windows. Pour nous, les avantages sont immenses :
- Performances quasi-natives : WSL2 offre un accès direct au matériel, y compris au GPU, sans les surcoûts de performance d'une VM traditionnelle.
- Écosystème Linux : Vous bénéficiez de toute la puissance des outils et des scripts Linux, qui sont le standard de facto dans le monde du Machine Learning.
- Isolation et Propreté : Votre environnement de développement est contenu dans une distribution Linux, séparé de votre système Windows principal. Fini les modifications hasardeuses du PATH système de Windows !
- Simplicité : Plus besoin de dual-boot. Vous pouvez lancer votre terminal Ubuntu comme n'importe quelle autre application Windows.
En somme, nous allons créer le meilleur des deux mondes : la stabilité et la puissance de Linux pour le développement, intégrées de manière transparente dans l'ergonomie de Windows.
Étape 1 : Prérequis et Vérifications Initiales
Assurons-nous que votre machine est prête pour l'aventure.
1.1. Compatibilité Matérielle : Votre GPU NVIDIA
La première étape, et la plus cruciale, est de vérifier que vous possédez une carte graphique NVIDIA compatible.
- Allez dans le Gestionnaire de périphériques de Windows.
- Déroulez la section Cartes graphiques.
- Vérifiez la présence d'un GPU NVIDIA. Pour des performances confortables en Deep Learning, une carte de la série GeForce RTX 2000 ou supérieure est fortement recommandée.
1.2. Pilotes NVIDIA pour Windows
C'est un point essentiel : vous n'installerez qu'un seul et unique pilote graphique, celui de Windows. WSL2 se chargera de le rendre accessible à Ubuntu.
- Rendez-vous sur le site de téléchargement de pilotes NVIDIA : https://www.nvidia.fr/Download/index.aspx?lang=fr
- Sélectionnez le modèle de votre carte et téléchargez le pilote "Game Ready" ou "Studio" le plus récent.
- Installez-le comme n'importe quel autre programme Windows.
Une fois l'installation terminée, ouvrez une Invite de commandes (CMD) et vérifiez que le pilote est bien reconnu par Windows :
nvidia-smi.exe
Vous devriez voir un tableau récapitulant les informations de votre GPU. Si c'est le cas, vous êtes prêt pour la suite.
Étape 2 : Installation et Configuration de WSL2
Nous allons maintenant installer le sous-système Linux et notre distribution Ubuntu.
2.1. Installation de WSL et Ubuntu
Microsoft a rendu ce processus extrêmement simple. Ouvrez PowerShell ou CMD en tant qu'administrateur et tapez la commande suivante :
wsl --install -d Ubuntu
Cette commande magique s'occupe de tout :
- Activation des fonctionnalités "Plateforme de machine virtuelle" et "Sous-système Windows pour Linux".
- Téléchargement et installation du dernier noyau Linux.
- Installation de la distribution Ubuntu (la plus récente LTS).
Une fois l'opération terminée, redémarrez votre ordinateur.
2.2. Premier Lancement et Mise à Jour d'Ubuntu
Après le redémarrage, lancez Ubuntu depuis le menu Démarrer. Une fenêtre de terminal s'ouvrira.
- Il vous sera demandé de créer un nom d'utilisateur UNIX et un mot de passe. Choisissez-les avec soin, vous en aurez besoin pour les commandes
sudo
. - Une fois dans votre terminal Ubuntu, la première chose à faire est de mettre à jour le système et d'installer les outils de base pour Python.
# Mettre à jour la liste des paquets et les paquets eux-mêmes
sudo apt update && sudo apt upgrade -y
# Installer pip, le gestionnaire de paquets Python
sudo apt install python3-pip -y
Votre environnement Linux de base est maintenant prêt !
Étape 3 : Installation du CUDA Toolkit 11.8 dans WSL2
C'est ici que la magie opère. Nous allons installer le CUDA Toolkit, qui permet aux applications (comme TensorFlow) de communiquer avec notre GPU. Nous utiliserons la version 11.8, qui offre une excellente compatibilité avec les versions récentes de TensorFlow.
Ouvrez votre terminal Ubuntu (WSL).
3.1. Ajout du Référentiel CUDA Spécifique à WSL
NVIDIA maintient un référentiel de paquets spécialement conçu pour WSL. C'est la méthode la plus propre et la plus fiable.
# Télécharger le fichier de configuration qui priorise le dépôt WSL
wget [https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin](https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin)
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
# Télécharger le paquet .deb qui configure le dépôt
wget [https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb](https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb)
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
# Ajouter la clé de signature du dépôt
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
# Mettre à jour la liste des paquets pour inclure le nouveau dépôt
sudo apt-get update
3.2. Installation du Toolkit
Maintenant que le dépôt est configuré, l'installation du toolkit se fait avec une simple commande :
sudo apt-get -y install cuda
Cette commande installe tous les outils de développement, les compilateurs et les bibliothèques nécessaires, sans installer de pilote Linux, ce qui est exactement ce que nous voulons.
3.3. Configuration des Variables d'Environnement
Pour que notre système trouve facilement les exécutables CUDA (comme le compilateur nvcc
), nous devons ajouter leur emplacement à notre PATH
.
# Ajoute les chemins CUDA à votre fichier de configuration de shell (.bashrc)
echo 'export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
# Recharge la configuration pour la session actuelle
source ~/.bashrc
Pour vérifier que tout est en ordre, fermez et rouvrez votre terminal Ubuntu, puis tapez :
nvcc --version
Vous devriez voir s'afficher la version du compilateur CUDA, confirmant que l'installation a réussi.
Étape 4 : Installation de la Bibliothèque cuDNN 8.6
cuDNN (CUDA Deep Neural Network library) est une bibliothèque d'accélération GPU pour les primitives de réseaux de neurones. TensorFlow en dépend pour ses performances.
4.1. Téléchargement de cuDNN
- Rendez-vous sur le site NVIDIA Developer : https://developer.nvidia.com/cudnn
- Cliquez sur "Download cuDNN". Vous devrez créer un compte NVIDIA ou vous connecter.
- Acceptez les conditions et sélectionnez la version correspondante : Download cuDNN v8.6.0 (October 3rd, 2022), for CUDA 11.x.
- Téléchargez le fichier "Local Installer for Ubuntu22.04 x86_64 (Deb)".
4.2. Installation du Paquet .deb dans WSL
Le fichier .deb
se trouve dans votre dossier "Téléchargements" de Windows. Depuis votre terminal Ubuntu, vous pouvez y accéder via /mnt/c/Users/VOTRE_NOM/Downloads
.
Naviguez vers ce dossier et installez le paquet. N'oubliez pas de remplacer VOTRE_NOM
par votre nom d'utilisateur Windows.
# Naviguer vers le dossier de téléchargements de Windows
cd /mnt/c/Users/VOTRE_NOM/Downloads
# Installer une dépendance requise par cuDNN
sudo apt-get install -y zlib1g
# Installer le paquet cuDNN (remplacez le nom du fichier si nécessaire)
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb
# Copier la clé de signature du nouveau dépôt
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
# Mettre à jour la liste des paquets
sudo apt-get update
# Installer les bibliothèques de runtime, de développement et les exemples
sudo apt-get install -y libcudnn8=8.6.0.163-1+cuda11.8
sudo apt-get install -y libcudnn8-dev=8.6.0.163-1+cuda11.8
sudo apt-get install -y libcudnn8-samples=8.6.0.163-1+cuda11.8
Notre pile NVIDIA est maintenant complète !
Étape 5 : Installation de TensorRT 8.6 (Optionnel mais Recommandé)
TensorRT est un SDK d'optimisation d'inférence. Il permet d'accélérer considérablement les prédictions de vos modèles entraînés. C'est une excellente addition à notre stack.
- Allez sur la page de téléchargement de TensorRT : [https://developer.nvidia.com/tensorrt]
- Connectez-vous et sélectionnez la version 8.6 GA.
- Téléchargez le "TensorRT 8.6 GA for Ubuntu 22.04 and CUDA 11.x DEB local repo Package".
Retournez dans votre terminal WSL, toujours dans le dossier de téléchargements, et exécutez :
# Installer le paquet TensorRT (remplacez le nom du fichier si nécessaire)
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-11.8_1.0-1_amd64.deb
# Copier la clé
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-11.8/nv-tensorrt-local-*-keyring.gpg /usr/share/keyrings/
# Mettre à jour les paquets
sudo apt-get update
# Installer les bibliothèques TensorRT et les couches de développement Python
sudo apt-get install -y tensorrt
sudo apt-get install -y python3-libnvinfer-dev
Étape 6 : Installation et Vérification Finale de TensorFlow
Le moment de vérité est arrivé ! Nous allons installer TensorFlow et vérifier qu'il détecte bien notre GPU.
6.1. Installation de TensorFlow avec support CUDA
La commande pip
de TensorFlow a une option spéciale [and-cuda]
qui installe toutes les dépendances nécessaires pour s'interfacer avec notre pile CUDA/cuDNN.
# Installer TensorFlow 2.13 et quelques bibliothèques utiles
pip install tensorflow[and-cuda]==2.13
pip install matplotlib scipy
6.2. Le Test Final
Lancez Python et exécutez ce petit script. C'est le test ultime pour confirmer que des heures de compilation et de configuration ont porté leurs fruits.
python3 -c "import tensorflow as tf; print('GPU disponible :', tf.config.list_physical_devices('GPU'))"
Si tout s'est bien passé, la sortie devrait être :
GPU disponible : [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
Si vous voyez cette ligne, félicitations ! Votre environnement est parfaitement configuré. Une liste vide []
indiquerait un problème dans la configuration. Ne vous inquiétez pas des éventuels messages d'avertissement (warnings) qui peuvent apparaître, ils sont souvent informatifs et n'empêchent pas le bon fonctionnement.
Conclusion
Nous y sommes parvenus ! Vous disposez maintenant d'un environnement de développement pour le Machine Learning qui est à la fois moderne, puissant, stable et isolé. En suivant la voie de WSL2, vous avez mis en place une configuration standard de l'industrie, ce qui vous facilitera la vie pour le déploiement et la collaboration.
Vous êtes désormais libre d'installer Jupyter, VS Code (avec son excellente intégration WSL), PyTorch, ou tout autre outil de votre choix, en sachant que la fondation GPU est solide comme un roc.
Alors, la question est : quelle est la première chose que vous allez construire avec votre nouvel environnement surpuissant ?