Библиотека шаблонов CUDA C++ и DSL для Python для написания высокопроизводительных GEMM-ядер и других ядер линейной алгебры на GPU NVIDIA.
xlite-dev/LeetCUDA
Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention.
- Звёзды
- 12,104
- Форки
- 1,277
- Открытые issues
- 3
- Последний коммит
- 12 часов назад
Что это?
LeetCUDA — учебный материал по написанию GPU-ядер на CUDA, оформленный как открытая книга с репозиторием кода. Он знакомит читателей с темой постепенно: от простых поэлементных операций и редукций до умножения матриц и attention. Для каждой темы используется один и тот же подход: реализация CUDA-ядра, Python bindings для PyTorch и тесты.
Материал охватывает программирование Tensor Core с использованием WMMA, MMA PTX и CuTe. Для HGEMM приводятся результаты бенчмарков на NVIDIA L20, RTX 4090 и RTX 3080 Laptop: 98%~100% от TFLOPS cuBLAS. Также представлены несколько вариантов FlashAttention-2, написанных с использованием только инструкций MMA PTX, и ядра с точностью BF16, FP8 и FP4. Кроме того, в проекте есть примеры на Triton и CUTLASS.
В проекте есть цель bench, собираемая с помощью build script, а также skill для coding agent, который можно установить для таких инструментов, как Claude Code и GitHub Copilot.
Ключевые возможности
- 01Более 200 CUDA-ядер: от поэлементных операций до attention уровня Hard++
- 02Реализации HGEMM на WMMA, MMA PTX и CuTe с бенчмарками для сравнения с cuBLAS
- 03Варианты FlashAttention-2 на Tensor Core, использующие только MMA PTX
- 04Ядра для типов данных BF16, FP8 и FP4
- 05Примеры на Triton и CUTLASS/CuTe наряду с низкоуровневым кодом на CUDA
- 06Для каждого ядра предусмотрены Python bindings для PyTorch и тесты
Сценарии использования
- Пошаговое изучение программирования CUDA-ядер: от базовых тем до продвинутых
- Изучение умножения матриц на Tensor Core и реализаций FlashAttention
- Сравнение производительности пользовательских GEMM- или attention-ядер с cuBLAS или SDPA
- Предоставление coding agent справочных примеров CUDA с помощью встроенного skill
Быстрый старт
- 1
Клонируйте репозиторий и инициализируйте подмодули
git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA - 2
Обновите подмодули и перейдите в каталог interview kernels
git submodule update --init --recursive --force && cd kernels/interview - 3
Установите последние версии cuBLAS и cuDNN для бенчмарков (замените старые версии, как указано в README)
apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache - 4
Соберите проект для GPU Blackwell и запустите бенчмарк
./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
Что важно знать
- Для бенчмарков требуется GPU NVIDIA с CUDA toolkit и актуальными версиями cuBLAS/cuDNN.
- В примере сборки для быстрого старта используется Blackwell (sm_120a); для других архитектур нужны другие флаги сборки.
Темы
Частые вопросы
- Что такое LeetCUDA?
- Открытая книга и коллекция кода с конспектами по современному CUDA и более чем 200 ядрами для HGEMM, GEMM с FP8/FP4 и Flash-Attention. LeetCUDA — учебный материал по написанию GPU-ядер на CUDA, оформленный как открытая книга с репозиторием кода. Он знакомит читателей с темой постепенно: от простых поэлементных операций и редукций до умножения матриц и attention. Для каждой темы используется один и тот же подход: реализация CUDA-ядра, Python bindings для PyTorch и тесты.
- LeetCUDA можно использовать бесплатно? Какая у него лицензия?
- LeetCUDA распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- LeetCUDA всё ещё поддерживается?
- Активно поддерживается. Последний коммит в LeetCUDA — 20 окт. 2026 г..
- Для чего можно использовать LeetCUDA?
- Пошаговое изучение программирования CUDA-ядер: от базовых тем до продвинутых Изучение умножения матриц на Tensor Core и реализаций FlashAttention Сравнение производительности пользовательских GEMM- или attention-ядер с cuBLAS или SDPA Предоставление coding agent справочных примеров CUDA с помощью встроенного skill
- Как установить LeetCUDA?
- Клонируйте репозиторий и инициализируйте подмодули: git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA Обновите подмодули и перейдите в каталог interview kernels: git submodule update --init --recursive --force && cd kernels/interview Установите последние версии cuBLAS и cuDNN для бенчмарков (замените старые версии, как указано в README): apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache Соберите проект для GPU Blackwell и запустите бенчмарк: ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
- Где скачать LeetCUDA?
- Исходный код и инструкции по установке — на GitHub: https://github.com/xlite-dev/LeetCUDA
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая и эффективная по памяти библиотека и сервер для запуска и обслуживания больших языковых моделей через API, совместимый с OpenAI.
SGLang — открытый фреймворк для инференса больших языковых и мультимодальных моделей, а также diffusion-моделей на GPU, TPU и CPU разных платформ.
Официальная реализация FlashAttention — точного и экономного по памяти attention-ядра для обучения и инференса Transformer-моделей на GPU.
Слой управления KV-кэшем, который хранит, передаёт и повторно использует кэши внимания LLM между serving-движками, сокращая время до первого токена.
Библиотека для обмена данными между GPU при dispatch и combine в MoE с expert parallelism: поддерживает FP8, NVLink и RDMA для обучения и инференса.