Outil CLI
triton-lang/triton avatar
triton-lang/triton

Triton : un langage et un compilateur pour les primitives de deep learning

triton-lang/triton offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.

20 159 étoiles3 191 forksMLIRMIT

En bref

De quoi s’agit-il ?
Un aperçu du dépôt de développement, couvrant l'installation, les builds LLVM personnalisés, les options de débogage et la compatibilité.
À qui s’adresse-t-il ?
Triton est un projet open source de langage et de compilateur visant à écrire des primitives de deep learning performantes. Le dépôt fournit des instructions d'installation, des options de build avec LLVM personnalisé, des outils de débogage et une déclaration de compatibilité claire, le tout sous licence MIT.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement MLIR, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le langage et compilateur Triton

Le dépôt est le lieu de développement de Triton, un langage et un compilateur pour écrire des primitives de deep learning personnalisées hautement efficaces. Le README indique que Triton vise à fournir un environnement open source pour écrire du code rapide avec une productivité supérieure à CUDA, tout en offrant plus de flexibilité que les DSL existants. Les fondations sont décrites dans une publication MAPL2019, que le README demande aux utilisateurs de citer. La documentation officielle se trouve sur triton-lang.org, et un ensemble de puzzles Triton tiers peuvent être exécutés avec l'interpréteur sans GPU.

Installation via pip et depuis les sources

Pour une installation rapide, le README donne `pip install triton`, avec des wheels binaires pour CPython 3.10-3.14. Pour construire depuis les sources, les commandes clonent le dépôt, installent les dépendances de build depuis `python/requirements.txt`, puis exécutent `pip install -e .`. Une variante virtualenv crée un venv, l'active, puis exécute les mêmes commandes pip. Le README ne spécifie pas de gestionnaire de paquets particulier et ne mentionne aucun autre canal de distribution.

Construction avec un LLVM personnalisé

Triton repose sur LLVM pour la génération de code. Par défaut, le build télécharge un LLVM préconstruit, mais le README documente un chemin de construction personnalisé. Comme l'API de LLVM n'est pas stable, Triton doit être construit contre une révision spécifique, enregistrée dans le champ `llvm_hash` de `cmake/llvm-info.json`. La cible pratique `make dev-install-llvm` gère la construction et l'installation. Une procédure manuelle est également fournie, commençant par vérifier cette révision LLVM, configurer avec CMake pour des cibles telles que NVPTX et AMDGPU, construire avec ninja, puis définir `LLVM_INCLUDE_DIRS`, `LLVM_LIBRARY_DIR` et `LLVM_SYSPATH` avant d'exécuter `pip install -e .`.

Conseils de construction et suite de tests

Le README liste plusieurs variables d'environnement qui affectent la construction. `TRITON_BUILD_WITH_CLANG_LLD=true` utilise clang et lld, lld accélérant les builds. `TRITON_BUILD_WITH_CCACHE=true` active ccache. `TRITON_HOME` déplace le cache `.triton` et le répertoire de téléchargement. `MAX_JOBS` limite le parallélisme de construction pour contrôler l'utilisation de la mémoire. Passer `--no-build-isolation` à pip peut accélérer les builds sans opération. La construction produit un `compile_commands.json` pour l'intégration VSCode et clangd. Pour les tests, le README indique qu'il n'y a pas de méthode clé en main pour exécuter tous les tests, mais fournit une recette : `make dev-install` pour la configuration, puis `make test` avec GPU ou `make test-nogpu` sans.

Options de configuration et débogage

La liste complète des options de configuration se trouve dans `python/triton/knobs.py`. Plusieurs variables d'environnement contrôlent les dumps IR et le débogage. `MLIR_ENABLE_DUMP=1` dump l'IR avant chaque passe MLIR, et `MLIR_DUMP_PATH` définit l'emplacement de sortie. `LLVM_IR_ENABLE_DUMP=1` fait de même pour l'IR LLVM. `TRITON_REPRODUCER_PATH` écrit un reproducteur MLIR avant chaque étape de compilation. `TRITON_INTERPRET=1` bascule vers l'interpréteur, permettant de définir des points d'arrêt Python dans les kernels. D'autres variables couvrent la sortie de débogage LLVM, le sanitizer d'adresse sur le backend AMD, les rapports d'auto-tuning et les informations de timing. Le README décrit également un workflow de remplacement de kernel et un `add_stages_inspection_hook` pour inspecter le pipeline du compilateur.

Version 2.0 et compatibilité

Le journal des modifications annonce Triton 2.0, qui, selon le README, inclut de nombreuses corrections de bugs, des améliorations de performances, un backend réécrit pour utiliser MLIR et le support de kernels avec des multiplications matricielles consécutives, comme flash attention. La section compatibilité liste Linux comme seule plateforme prise en charge, les GPU NVIDIA avec une capacité de calcul 8.0 ou supérieure, les GPU AMD avec ROCm 6.2 ou supérieur, et les CPU comme en développement. Le README ne liste aucun autre système d'exploitation ou matériel.

Conteneurs de développement et contribution

Le projet met à disposition des conteneurs de développement via le dépôt `redhat-et/triton-dev-containers`. Le README liste les principaux avantages comme la cohérence, l'isolation et la portabilité, et fournit un lien vers un guide utilisateur. Pour les contributions, il invite la communauté à corriger des bugs ou à ajouter des fonctionnalités et pointe vers un guide de contribution dans `CONTRIBUTING.md`.

Licence · triton lang triton

Le dépôt est sous licence MIT. L'extrait de licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition que l'avis de droit d'auteur et de permission soit inclus dans toutes les copies ou portions substantielles. Le logiciel est fourni 'tel quel' sans garantie, et les auteurs ou détenteurs du droit d'auteur ne sont pas responsables de toute réclamation ou dommage. Le texte de licence ne mentionne pas la posture de sécurité, le support ou toute garantie au-delà de la clause de non-responsabilité énoncée.

Conclusion éditoriale

Triton est un projet open source de langage et de compilateur visant à écrire des primitives de deep learning performantes. Le dépôt fournit des instructions d'installation, des options de build avec LLVM personnalisé, des outils de débogage et une déclaration de compatibilité claire, le tout sous licence MIT.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté