Repolode
xlite-dev

xlite-dev/LeetCUDA

Livro open source e coleção de código com anotações sobre CUDA moderno e mais de 200 kernels, cobrindo HGEMM, GEMM em FP8/FP4 e Flash-Attention.

Estrelas
12,104
Forks
1,277
Issues abertas
3
Último commit
ontem

O que é?

LeetCUDA é um recurso de aprendizado para escrever kernels de GPU em CUDA, organizado como um livro open source acompanhado de um repositório de código. O material guia os leitores de kernels simples de operações elemento a elemento e redução até multiplicação de matrizes e attention. Cada tópico segue o mesmo fluxo: implementação de um kernel CUDA, bindings Python para PyTorch e testes.

O conteúdo aborda programação com Tensor Cores usando WMMA, MMA PTX e CuTe, com benchmarks de HGEMM que chegam a 98%~100% dos TFLOPS do cuBLAS em NVIDIA L20, RTX 4090 e RTX 3080 Laptop. Também inclui várias implementações de FlashAttention-2 com instruções MMA PTX puras, além de kernels com precisão BF16, FP8 e FP4. Há também exemplos com Triton e CUTLASS.

O projeto oferece um target bench criado com um script de build e uma skill para agentes de programação, que pode ser instalada em ferramentas como Claude Code e GitHub Copilot.

Recursos principais

  • 01Mais de 200 kernels CUDA, de operações elemento a elemento até attention de nível Hard++
  • 02Implementações de HGEMM usando WMMA, MMA PTX e CuTe, com benchmarks comparativos com cuBLAS
  • 03Variantes de FlashAttention-2 com Tensor Cores e MMA PTX puro
  • 04Kernels que abrangem os tipos de dados BF16, FP8 e FP4
  • 05Exemplos com Triton e CUTLASS/CuTe, além de código CUDA puro
  • 06Cada kernel vem acompanhado de bindings Python para PyTorch e testes

Casos de uso

  • Aprender programação de kernels CUDA passo a passo, do básico a tópicos avançados
  • Estudar implementações de multiplicação de matrizes com Tensor Cores e FlashAttention
  • Comparar o desempenho de kernels personalizados de GEMM ou attention com cuBLAS ou SDPA
  • Fornecer exemplos de referência em CUDA a um agente de programação por meio da skill incluída

Início rápido

  1. 1

    Clone o repositório e inicialize os submódulos

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

    Atualize os submódulos e entre no diretório interview kernels

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

    Instale as versões mais recentes do cuBLAS e do cuDNN para os benchmarks (substitua as versões antigas conforme indicado no README)

    apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache
  4. 4

    Compile para GPUs Blackwell e execute o benchmark

    ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench

Antes de usar

  • Os benchmarks exigem uma GPU NVIDIA com CUDA toolkit e versões recentes do cuBLAS/cuDNN.
  • O exemplo de compilação do início rápido tem como alvo Blackwell (sm_120a); outras arquiteturas precisam de flags de compilação diferentes.

Tópicos

Perguntas frequentes

O que é LeetCUDA?
Livro open source e coleção de código com anotações sobre CUDA moderno e mais de 200 kernels, cobrindo HGEMM, GEMM em FP8/FP4 e Flash-Attention. LeetCUDA é um recurso de aprendizado para escrever kernels de GPU em CUDA, organizado como um livro open source acompanhado de um repositório de código. O material guia os leitores de kernels simples de operações elemento a elemento e redução até multiplicação de matrizes e attention. Cada tópico segue o mesmo fluxo: implementação de um kernel CUDA, bindings Python para PyTorch e testes.
LeetCUDA é gratuito? Qual é a licença?
LeetCUDA é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
LeetCUDA ainda é mantido?
Manutenção ativa. O último commit de LeetCUDA foi em 20 de out. de 2026.
Para que posso usar LeetCUDA?
Aprender programação de kernels CUDA passo a passo, do básico a tópicos avançados Estudar implementações de multiplicação de matrizes com Tensor Cores e FlashAttention Comparar o desempenho de kernels personalizados de GEMM ou attention com cuBLAS ou SDPA Fornecer exemplos de referência em CUDA a um agente de programação por meio da skill incluída
Como instalar LeetCUDA?
Clone o repositório e inicialize os submódulos: git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA Atualize os submódulos e entre no diretório interview kernels: git submodule update --init --recursive --force && cd kernels/interview Instale as versões mais recentes do cuBLAS e do cuDNN para os benchmarks (substitua as versões antigas conforme indicado no README): apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache Compile para GPUs Blackwell e execute o benchmark: ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
Onde consigo LeetCUDA?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/xlite-dev/LeetCUDA

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados