Biblioteca de templates CUDA C++ e DSL em Python para criar kernels GEMM e de álgebra linear relacionados, de alto desempenho, em GPUs NVIDIA.
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
Clone o repositório e inicialize os submódulos
git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA - 2
Atualize os submódulos e entre no diretório interview kernels
git submodule update --init --recursive --force && cd kernels/interview - 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
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
Caderno pessoal de estudos e engenharia com kernels CUDA escritos à mão, exemplos de CUTLASS/CuTe e Triton e notas sobre otimização de LLMs.
Biblioteca e servidor rápidos e eficientes em memória para executar e servir modelos de linguagem grandes com uma API compatível com a OpenAI.
SGLang é um framework open source de inferência para servir modelos de linguagem, visão-linguagem e difusão em diversas plataformas com GPU, TPU e CPU.
Implementação oficial do FlashAttention, um kernel de atenção exata e eficiente em memória para treinar e executar inferência de modelos Transformer em GPUs.
Uma camada de gerenciamento de cache KV que armazena, compartilha e reutiliza caches de atenção de LLMs entre mecanismos de serving para reduzir o time-to-first-token.