English | 简体中文 | 繁體中文 | 日本語 | Français
TileGym est une bibliothèque de noyaux CUDA Tile qui fournit une riche collection de tutoriels et d'exemples de noyaux pour la programmation GPU basée sur les tuiles.
Aperçu | Fonctionnalités | Installation | Démarrage rapide | Contribution | Licence
Ce dépôt vise à fournir des tutoriels et des exemples de noyaux utiles pour la programmation GPU basée sur les tuiles. TileGym est un terrain d'expérimentation pour CUDA Tile, où vous pouvez apprendre à construire des noyaux GPU efficaces et explorer leur intégration dans des modèles de langage à grande échelle tels que Llama 3.1 et DeepSeek V2. Que vous appreniez la programmation GPU basée sur les tuiles ou que vous cherchiez à optimiser vos implémentations de LLM, TileGym offre des exemples pratiques et des conseils complets.

- Riche collection d'exemples de noyaux CUDA Tile
- Implémentations pratiques de noyaux pour les opérateurs courants d'apprentissage profond
- Benchmarks de performance pour évaluer l'efficacité des noyaux
- Exemples d'intégration de bout en bout avec des LLM populaires (Llama 3.1, DeepSeek V2)
Support GPU : TileGym nécessite CUDA 13.1+ et un GPU Blackwell (ex. B200, RTX 5080, RTX 5090). Les GPU NVIDIA Ampere (ex. A100) sont également supportés avec CUDA 13.2+. Tous les noyaux cuTile publiés sont validés sur les deux architectures. Téléchargez CUDA depuis Téléchargements NVIDIA CUDA.
- PyTorch (version 2.9.1 ou compatible)
- CUDA 13.1+ (Requis - TileGym est construit et testé exclusivement sur CUDA 13.1+)
- Triton (inclus avec l'installation de PyTorch)
Si vous avez déjà torch et triton, passez cette étape.
pip install --pre torch --index-url https://download.pytorch.org/whl/cu130Nous avons vérifié que torch==2.9.1 fonctionne. Vous pouvez également obtenir les paquets triton lors de l'installation de torch.
TileGym utilise cuda-tile (≥ 1.3.0) pour la programmation de noyaux GPU, qui dépend du compilateur tileiras à l'exécution.
pip install tilegym[tileiras]Ceci installe TileGym et toutes les dépendances d'exécution, y compris cuda-tile[tileiras] qui intègre le compilateur tileiras directement dans votre environnement Python.
Si tileiras est déjà disponible sur votre système (par ex. depuis CUDA Toolkit 13.1+), vous pouvez omettre l'extra :
pip install tilegymgit clone https://github.com/NVIDIA/TileGym.git
cd TileGym
pip install .[tileiras] # ou : pip install . (si vous avez tileiras sur votre système)Pour le mode éditable (développement), utilisez pip install -e . ou pip install -e .[tileiras].
Toutes les dépendances d'exécution sont déclarées dans requirements.txt et sont installées automatiquement par pip install tilegym et pip install ..
Nous fournissons également un Dockerfile, vous pouvez consulter modeling/transformers/README.md.
Il existe trois façons principales d'utiliser TileGym :
Toutes les implémentations de noyaux se trouvent dans le répertoire src/tilegym/ops/. Vous pouvez tester des opérations individuelles avec des scripts minimaux. L'utilisation au niveau des fonctions et les scripts minimaux pour les opérations individuelles sont documentés dans tests/ops/README.md
Évaluez les performances des noyaux avec des micro-benchmarks :
cd tests/benchmark
bash run_all.shLe guide complet des benchmarks est disponible dans tests/benchmark/README.md
Utilisez les noyaux TileGym dans des scénarios d'inférence de bout en bout. Nous fournissons des scripts exécutables et des instructions pour les modèles de langage Transformer (par ex. Llama 3.1-8B) accélérés à l'aide des noyaux TileGym.
Tout d'abord, installez la dépendance supplémentaire :
pip install accelerate==1.13.0 --no-depsConfiguration conteneurisée (Docker) :
docker build -t tilegym-transformers -f modeling/transformers/Dockerfile .
docker run --gpus all -it tilegym-transformers bashPlus de détails dans modeling/transformers/README.md
TileGym inclut également des implémentations expérimentales de noyaux cuTile.jl en Julia. Ceux-ci sont autonomes dans le répertoire julia/ et ne nécessitent pas le paquet Python TileGym.
Prérequis : Julia 1.12+, CUDA 13.1, GPU Blackwell
# Installer Julia (si non installé)
curl -fsSL https://install.julialang.org | sh
# Installer les dépendances
julia --project=julia/ -e 'using Pkg; Pkg.instantiate()'
# Exécuter les tests
julia --project=julia/ julia/test/runtests.jlConsultez julia/Project.toml pour la liste complète des dépendances.
Nous accueillons les contributions de toutes sortes. Veuillez lire notre CONTRIBUTING.md pour les directives, y compris le processus d'accord de licence de contributeur (CLA).
- Licence du projet : MIT
- Attributions et textes de licence des tiers :