NVIDIA GPU에서 고성능 GEMM 및 관련 선형대수 커널을 작성하기 위한 CUDA C++ 템플릿 라이브러리이자 Python DSL입니다.
xlite-dev/LeetCUDA
HGEMM, FP8/FP4 GEMM, Flash-Attention을 다루는 200개 이상의 커널이 포함된 최신 CUDA 학습 노트 오픈소스 책 및 코드 모음입니다.
- 스타
- 12,104
- 포크
- 1,277
- 열린 이슈
- 3
- 마지막 커밋
- 13시간 전
어떤 프로젝트인가요?
LeetCUDA는 CUDA로 GPU 커널을 작성하는 방법을 배울 수 있는 자료로, 오픈소스 책과 함께 제공되는 코드 저장소로 구성되어 있습니다. 간단한 요소별 연산 및 reduction 커널부터 행렬 곱셈과 attention까지 다루며, 각 주제는 CUDA 커널 구현, PyTorch Python 바인딩, 테스트로 이어지는 동일한 흐름을 따릅니다.
WMMA, MMA PTX, CuTe를 활용한 Tensor Core 프로그래밍을 다루며, NVIDIA L20, RTX 4090, RTX 3080 Laptop에서 cuBLAS TFLOPS의 98%~100%에 해당하는 HGEMM 벤치마크 결과를 보고합니다. 순수 MMA PTX 명령어로 작성된 여러 FlashAttention-2 변형과 BF16, FP8, FP4 정밀도 커널도 포함되어 있습니다. Triton 및 CUTLASS 예제도 제공합니다.
프로젝트에는 빌드 스크립트로 만드는 bench 타깃과 Claude Code, GitHub Copilot 같은 도구에 설치할 수 있는 코딩 에이전트용 스킬이 포함되어 있습니다.
핵심 기능
- 01요소별 연산부터 Hard++ 수준의 attention까지 200개가 넘는 CUDA 커널
- 02WMMA, MMA PTX, CuTe를 사용한 HGEMM 구현과 cuBLAS 비교 벤치마크
- 03순수 MMA PTX를 사용하는 Tensor Core 기반 FlashAttention-2 변형
- 04BF16, FP8, FP4 데이터 타입을 지원하는 커널
- 05일반 CUDA 코드와 함께 제공되는 Triton 및 CUTLASS/CuTe 예제
- 06각 커널에 PyTorch Python 바인딩과 테스트 제공
활용 사례
- 기초부터 고급 주제까지 단계별로 CUDA 커널 프로그래밍 학습
- Tensor Core 행렬 곱셈 및 FlashAttention 구현 학습
- 커스텀 GEMM 또는 attention 커널을 cuBLAS나 SDPA와 비교해 벤치마크
- 번들로 제공되는 스킬을 통해 코딩 에이전트에 CUDA 참고 예제 제공
빠른 시작
- 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
Blackwell GPU용으로 빌드하고 벤치마크를 실행합니다
./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
사용 전 알아둘 점
- 벤치마크를 실행하려면 CUDA toolkit과 최신 cuBLAS/cuDNN이 설치된 NVIDIA GPU가 필요합니다.
- 빠른 시작의 빌드 예시는 Blackwell(sm_120a)을 대상으로 합니다. 다른 아키텍처에는 다른 빌드 플래그가 필요합니다.
토픽
자주 묻는 질문
- LeetCUDA은(는) 무엇인가요?
- HGEMM, FP8/FP4 GEMM, Flash-Attention을 다루는 200개 이상의 커널이 포함된 최신 CUDA 학습 노트 오픈소스 책 및 코드 모음입니다. LeetCUDA는 CUDA로 GPU 커널을 작성하는 방법을 배울 수 있는 자료로, 오픈소스 책과 함께 제공되는 코드 저장소로 구성되어 있습니다. 간단한 요소별 연산 및 reduction 커널부터 행렬 곱셈과 attention까지 다루며, 각 주제는 CUDA 커널 구현, PyTorch Python 바인딩, 테스트로 이어지는 동일한 흐름을 따릅니다.
- LeetCUDA은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- LeetCUDA은(는) GPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- LeetCUDA은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. LeetCUDA의 마지막 커밋은 2026년 10월 20일입니다.
- LeetCUDA은(는) 어디에 사용할 수 있나요?
- 기초부터 고급 주제까지 단계별로 CUDA 커널 프로그래밍 학습 Tensor Core 행렬 곱셈 및 FlashAttention 구현 학습 커스텀 GEMM 또는 attention 커널을 cuBLAS나 SDPA와 비교해 벤치마크 번들로 제공되는 스킬을 통해 코딩 에이전트에 CUDA 참고 예제 제공
- 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 Blackwell GPU용으로 빌드하고 벤치마크를 실행합니다: ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
- LeetCUDA은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/xlite-dev/LeetCUDA
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
OpenAI 호환 API로 대규모 언어 모델을 빠르고 메모리 효율적으로 실행하고 서빙하는 라이브러리 및 서버입니다.
SGLang은 다양한 GPU, TPU, CPU 플랫폼에서 대규모 언어·비전 언어·디퓨전 모델을 서빙하는 오픈소스 추론 프레임워크입니다.
Transformer 모델의 GPU 학습과 추론을 위한 메모리 효율적인 exact attention 커널 FlashAttention의 공식 구현입니다.
서빙 엔진 간에 LLM 어텐션 캐시를 저장하고 공유·재사용해 첫 토큰 생성 시간(TTFT)을 줄이는 KV 캐시 관리 계층입니다.
학습과 추론을 위해 FP8 디스패치 및 NVLink/RDMA를 지원하는 expert-parallel MoE 디스패치·결합용 GPU 통신 라이브러리입니다.