Repolode
xlite-dev

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. 1

    Клонируйте репозиторий и инициализируйте подмодули

    git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA
  2. 2

    Обновите подмодули и перейдите в каталог interview kernels

    git submodule update --init --recursive --force && cd kernels/interview
  3. 3

    Установите последние версии cuBLAS и cuDNN для бенчмарков (замените старые версии, как указано в README)

    apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache
  4. 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 обновляется ежедневно.

Похожие проекты