⚠️ Prérequis
Avant de commencer, assurez-vous que :
- Vous disposez des droits administrateur (
sudo). - Vous disposez d'une carte graphique NVIDIA.
- Votre système est entre Ubuntu 22.04 LTS et Ubuntu 24.04 LTS, ce sont les seules distributions linux que j'ai testées pour écrire cette documentation.
🟩 L'environnement NVIDIA
🔧 Installation du pilote de la carte graphique
Par défaut, une installation fraîche d'Ubuntu utilise le pilote graphique Nouveau, celui-ci a l'avantage d'être libre et open-source, cependant il ne permets pas l'utilisation de CUDA, indispensable pour l’inférence de notre LLM local.
Avant d'installer quoi que ce soit avec apt, il est recommandé de mettre à jour votre système :
sudo apt update && sudo apt upgrade
Pour vérifier si le pilote NVIDIA est déjà installé, exécutez la commande suivante :
$ cat /proc/driver/nvidia/version
Si on obtient une sortie similaire à celle-ci :
NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.309.01 Wed Mar 25 15:26:15 UTC 2026
GCC version: gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~22.04.3)
Le pilote est déjà installé. Sinon, il faudra l'installer. Sous Ubuntu, c'est très simple. On affiche d'abord la liste des pilotes disponibles :
$ ubuntu-drivers devices
Exemple de sortie :
== /sys/devices/pci0000:64/0000:64:00.0/0000:65:00.0 ==
modalias : pci:v000010DEd00002231sv00001028sd0000147Ebc03sc00i00
vendor : NVIDIA Corporation
model : GA102GL [RTX A5000]
driver : nvidia-driver-580-server-open - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-535 - distro non-free
driver : nvidia-driver-595-server - distro non-free
driver : nvidia-driver-595-open - distro non-free recommended
driver : nvidia-driver-545 - distro non-free
driver : nvidia-driver-545-open - distro non-free
driver : nvidia-driver-595 - distro non-free
driver : nvidia-driver-580 - distro non-free
driver : nvidia-driver-580-server - distro non-free
driver : nvidia-driver-595-server-open - distro non-free
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-580-open - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
Le pilote marqué recommended est celui qu'il faut installer. Dans ce cas il s'agit de la version 595 :
$ sudo ubuntu-drivers install nvidia:595
Une alternative consiste à utiliser la méthode automatisée :
$ sudo ubuntu-drivers autoinstall
Il est également possible d'installer le pilote depuis le site de NVIDIA, mais je préfère utiliser la version fournie
par apt, car c'est plus simple pour les mises à jour.
Redémarrez ensuite votre système :
$ sudo reboot
Pour vérifier si l'installation du pilote s'est bien passée, vous pouvez lancer nvidia-smi.
🔥 Le kit de développement CUDA
📌 À quoi sert CUDA
CUDA (Compute Unified Device Architecture) est un kit de développement propriétaire créé par NVIDIA. Il permet aux développeurs d’écrire du code en C/C++ pour exploiter la puissance des processeurs graphiques (GPU) et déléguer des calculs intensifs depuis le processeur central (CPU).
Cette approche est particulièrement efficace pour les tâches hautement parallélisables, comme :
- L’entraînement et l’inférence de réseaux de neurones (où les neurones sont traités en parallèle, couche par couche).
- Le traitement d’images ou de vidéos (ex. : filtrage, reconnaissance d’objets).
- Les simulations scientifiques (ex. : dynamique des fluides, modélisation moléculaire).
Grâce à CUDA, les applications peuvent bénéficier d’une accélération matérielle significative, réduisant ainsi les temps de calcul de plusieurs ordres de grandeur.
🔧 Étapes d'installation
1. Déterminer la version a installer
On commence par afficher la version minimale de CUDA requise pour notre carte graphique avec la commande 1 :
nvidia-smi | grep -oP 'CUDA Version: \K[0-9.]+'
Sur ma machine, la sortie est :
13.2
Cela signifie que le pilote installé supporte CUDA jusqu’à la version 13.2. Pour exploiter pleinement l’accélération matérielle, il est donc recommandé d’installer le CUDA Toolkit en version 13.2.
On peut vérifier la version de CUDA Toolkit disponible dans les dépôts Ubuntu avec la commande :
apt :
apt show nvidia-cuda-toolkit
Exemple de sortie :
Version: 11.5.1-1ubuntu1
Priority: extra
Section: multiverse/devel
Origin: Ubuntu
...
Ici, la version disponible (11.5.1) est inférieure à celle requise (13.2). Les dépôts Ubuntu officiels ne proposent pas toujours la dernière version de CUDA. Pour installer la version 13.2, il faudra donc passer par le dépôt officiel NVIDIA.
2. Installer gcc
On peut vérifier si gcc est installé avec la commande :
$ which gcc
Si la commande précédente ne renvoie rien gcc n'est pas installé, on l'installe donc en passant par le méta-paquet
build-essential 2:
$ sudo apt install build-essential
3. Ajouter le dépôt officiel NVIDIA
Installer le paquet cuda-keyring :
téléchargement du paquet :
$ wget https://developer.download.nvidia.com/compute/cuda/repos/<distro>/<arch>/cuda-keyring_1.1-1_all.deb
Où on remplace <distro> et <arch> par les informations correspondant à votre systéme d'exploitation, que l'on peut obtenir avec la commande :
$ hostnamectl
Ce qui donne par exemple :
...
Operating System: Ubuntu 22.04.5 LTS
Kernel: Linux 6.8.0-124-generic
Architecture: x86-64
...
<distro> = ubuntu2204 et <arch> = x86_64
Puis on installe le paquet :
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
4. Mettre à jour les dépôts et installer CUDA Toolkit
On met à jour la liste des dépôts du système d'exploitation :
$ sudo apt update
On peut maintenant vérifier que les différentes versions de cuda-toolkit sont maintenant disponibles :
$ apt show cuda-toolkit -a
On finit l'installation avec la bonne version de CUDA (<version>=13-2 dans cet exemple) :
$ sudo apt install cuda-toolkit-<version>
5. Finalisation de l'installation
$ sudo apt-mark hold cuda-toolkit-<version>
usr/local/cuda/bin/nvcc --version
echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc
On redémarre le système :
$ sudo reboot
🌍 Hello world!
On vient juste d'installer un compilateur pour notre GPU, il serait donc dommage de ne pas faire le traditionnel « Hello world » :
#include <stdio.h>
#include <cuda_runtime.h>
// Le mot-clé "__global__" indique que cette fonction s'exécute sur le GPU
__global__ void cuda_hello()
{
// threadIdx.x est une variable intégrée à CUDA contenant l'ID du thread
printf("Hello World from GPU thread %d!\n", threadIdx.x);
}
int main()
{
printf("Hello World from CPU!\n");
/* * Lance le noyau GPU.
* <<<1, 5>>> signifie : 1 bloc de threads, contenant 5 threads parallèles.
*/
cuda_hello<<<1, 5>>>();
// Attend que le GPU ait fini d'imprimer avant que le CPU ne quitte le programme
cudaDeviceSynchronize();
return 0;
}
👁️ Supervision de l'activité du GPU
Le paquet du pilote de la carte graphique NVIDIA contient un outil très utile : nvidia-smi, c'est un
analogue de htop 3 qui permet de superviser le CPU et l'utilisation de
la RAM.
nvidia-smi
Voici un exemple de sortie dans le terminal :
Thu Jul 9 16:00:38 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05 Driver Version: 595.71.05 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA RTX A5000 Off | 00000000:65:00.0 On | Off |
| 30% 47C P8 30W / 230W | 1398MiB / 24564MiB | 17% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 3303 G /usr/lib/xorg/Xorg 370MiB |
| 0 N/A N/A 3460 G /usr/bin/gnome-shell 194MiB |
| 0 N/A N/A 4129 G .../8585/usr/lib/firefox/firefox 242MiB |
| 0 N/A N/A 5636 G ...t_NextclWXLJfK/AppRun.wrapped 3MiB |
| 0 N/A N/A 6417 G /usr/lib/thunderbird/thunderbird 189MiB |
| 0 N/A N/A 6696 C+G ...al/zed.app/libexec/zed-editor 127MiB |
| 0 N/A N/A 22557 G /usr/share/librewolf/librewolf 160MiB |
+-----------------------------------------------------------------------------------------+
e la carte graphique avec nvidia-smi + watch
nvidia-smi est un outil installé avec le pilote de la carte graphique, qui permet de surveiller
l'activité de la carte graphique.

vérif la version apt show nvidia-cuda-toolkit
🧠 Moteurs d'inférence locale
🦙 llama.cpp
sudo apt update sudo apt install build-essential cmake git libcurl4-openssl-dev libssl-dev git clone https://github.com/ggml-org/llama.cpp cd llama.cpp cmake -B build -DGGML_CUDA=ON cmake --build build --config Release -j$(nproc)
echo 'export PATH="$HOME/APPLICATIONS/llama.cpp/build/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
llama-cli --version
✨ Ollama
🔄 Autres moteurs
lmstudio etc.
🤖 Agents
🦉 Claude code
📜 Codex
🚀 Zed Agent
🌟 Zed : l'environnement de développement intégré
🔧 Installation
curl -f https://zed.dev/install.sh | sh
⚙️ Configuration de Zed Agent
🛠️ Utilitaires
🔍 📦 llmfit
llmfit curl -fsSL https://llmfit.axjns.dev/install.sh | sh
📋 Notes
nvidia-smi | grep -oP 'CUDA Version: \K[0-9.]+'
Cette commande illustre parfaitement la puissance de grep. La sortie de nvidia-smi est chaînée avec l'opérateur pipe
| dans grep, utilisé avec deux options :
-o(--only-matching) : au lieu d'afficher toute la ligne contenant le motif 'CUDA Version: ', on affiche que le texte contenant ce motif.-P: active le moteur d'expression régulière PCRE (Perl Compatible Regular Expressions).
- \K : c'est un opérateur PCRE qui signifie "tout ce qui précède ne doit pas apparaître dans le résultat". Le texte 'CUDA Version: ' est donc consommé pour ancrer la regex, mais exclu de l'affichage.
- [0-9.] : signifie "cherche un seul caractère qui doit être soit un chiffre soit un point"
- + : signifie "répète ce caractère autant de fois que possible, au moins une fois"
build-essential contient d'autres outils en plus de gcc (GNU C Compiler) :
g++: le compilateur GNU C++libc6-dev: les bibliothèques de développement C standard et leurs fichiers d'en-têtemake: un logiciel de compilation qui permet de construire un exécutable ou une bibliothèque à partir de fichiers sourcesdpkg-dev: un paquet qui fournit les outils indispensables pour créer des paquetsdeb
htop est un logiciel en ligne de commande plus avancé que la commande top. Il permet de surveiller en temps réel l'utilisation des ressources (CPU, mémoire, etc.), de trier, filtrer ou tuer des processus. Idéal pour le diagnostic système et la gestion des performances.
Pour l'installer :
$ sudo apt install htop
