Compiler TensorRT-LLM (Nœud de calcul local)
Compiler TensorRT-LLM depuis les sources sur un nœud de calcul à l'intérieur d'un conteneur Docker.
Quand utiliser cette compétence
| Scénario | Utiliser cette compétence ? |
|---|---|
Sur un nœud de calcul avec GPUs visibles (nvidia-smi fonctionne) |
Oui |
| Sur un nœud de connexion SLURM (pas de GPUs) | Non — utilisez exec-slurm-compile à la place |
Prérequis
- Vous êtes à l'intérieur d'un conteneur Docker/enroot sur un nœud de calcul
nvidia-smifonctionne (GPUs visibles)/usr/local/tensorrtexiste (installation de TensorRT dans le conteneur)
Instructions
Étape 1 : Vérifier l'environnement
Exécutez nvidia-smi pour confirmer que vous êtes sur un nœud de calcul avec accès aux GPUs.
Étape 2 : Localiser la base de code
Accédez au dépôt TensorRT-LLM avec cd. Si le chemin n'est pas fourni par l'utilisateur, demandez-le.
Étape 3 : (Optionnel) Changer de branche
Si l'utilisateur spécifie une branche (par exemple, « compiler ToT »), changez et tirez les mises à jour :
git checkout main && git pull
Étape 4 : Construire
Exécutez la commande de construction (incrémentale par défaut — omettez -c/--clean sauf si explicitement demandé ou si la construction incrémentale échoue) :
./scripts/build_wheel.py --trt_root /usr/local/tensorrt --benchmarks -ccache -a "<arch>" -f --nvtx
Remplacez <arch> par l'architecture GPU cible (voir la section Architecture Reference ci-dessous). Si non spécifiée par l'utilisateur, détectez automatiquement depuis nvidia-smi.
Étape 5 : Installer
pip install -e .[devel]
Étape 6 : Vérifier
python3 -c "import tensorrt_llm; print(tensorrt_llm.__version__)"
Drapeaux de compilation
| Drapeau | Description |
|---|---|
--trt_root /usr/local/tensorrt |
Chemin d'installation de TensorRT (standard dans les conteneurs NVIDIA) |
--benchmarks |
Compiler les benchmarks C++ |
-a "<arch>" |
Architecture(s) GPU cible(s) |
--nvtx |
Activer les marqueurs NVTX pour le profilage |
-ccache |
Utiliser ccache pour une recompilation plus rapide |
-f / --fast_build |
Ignorer certains kernels pour une compilation de dev plus rapide. Toujours utiliser pour les builds de dev. |
-c / --clean |
Nettoyer le répertoire de compilation avant la construction. Uniquement si nécessaire (voir ci-dessous). |
--skip_building_wheel |
Construire sur place sans créer de fichier wheel |
--no-venv |
Ignorer la création d'environnement virtuel |
Référence architecture
| Valeur | Famille GPU |
|---|---|
"100-real" |
Blackwell (B200, GB200) |
"90-real" |
Hopper (H100, H200) |
"89-real" |
Ada Lovelace (L40S) |
"80-real" |
Ampere (A100) |
"90;100-real" |
Plusieurs architectures |
Constructions incrémentales vs. nettoyage complet
Privilégiez les constructions incrémentales — CMake recompile uniquement les fichiers modifiés, ce qui économise du temps significatif.
Utilisez une construction nettoyage (-c) uniquement quand :
- L'utilisateur demande explicitement une construction nettoyage/fraîche
- Une construction incrémentale échoue avec des erreurs d'édition de liens, des fichiers objet périmés, ou des problèmes de cache CMake
- Des changements majeurs de branche (par exemple, rebasing sur plusieurs commits) qui peuvent invalider le cache de compilation
- Les fichiers du système de compilation ont changé (
CMakeLists.txt,*.cmake)