HGEMM, FP8/FP4 GEMM, Flash-Attention을 다루는 200개 이상의 커널이 포함된 최신 CUDA 학습 노트 오픈소스 책 및 코드 모음입니다.
NVIDIA/cutlass
NVIDIA GPU에서 고성능 GEMM 및 관련 선형대수 커널을 작성하기 위한 CUDA C++ 템플릿 라이브러리이자 Python DSL입니다.
- 스타
- 10,623
- 포크
- 2,133
- 열린 이슈
- 785
- 마지막 커밋
- 9시간 전
어떤 프로젝트인가요?
CUTLASS는 CUDA에서 고성능 행렬 곱셈(GEMM)과 관련 연산을 구현하기 위한 추상화 모음입니다. 작업을 스레드, 워프, 스레드블록 수준의 계층적이고 재사용 가능한 구성 요소로 나누며, 타일 크기, 데이터 타입, 알고리즘 정책을 조정할 수 있어 커스텀 커널의 빌딩 블록으로 활용할 수 있습니다.
C++ 라이브러리는 FP64, FP32, TF32, FP16, BF16, FP8, 블록 스케일링 FP4 및 FP6 형식, 저비트 정수 등 폭넓은 숫자 타입을 지원하며, NVIDIA Volta부터 Blackwell 및 Rubin 아키텍처까지 지원합니다. 핵심 레이아웃 및 텐서 라이브러리인 CuTe는 GEMM 계층 전반에서 사용됩니다.
CUTLASS 4에는 CUTLASS 및 CuTe 개념을 바탕으로 CUDA 커널을 작성하는 Python 네이티브 인터페이스인 CuTe DSL이 추가되었으며, 현재 공개 베타 버전입니다. 또한 GEMM 및 convolution 커널을 실행하고 비교할 수 있는 예제, 단위 테스트, 명령줄 프로파일러도 포함되어 있습니다.
핵심 기능
- 01GEMM 및 convolution 커널을 위한 계층적이고 재사용 가능한 C++ 템플릿
- 02스레드와 데이터를 표현하는 CuTe 레이아웃 및 텐서 추상화
- 03FP64부터 FP8까지, 블록 스케일링 FP4/FP6 및 저비트 정수 타입 지원
- 04Python으로 CUDA 커널을 작성하기 위한 CuTe DSL
- 05cuBLAS와 비교해 GEMM 및 convolution 커널을 벤치마킹하는 명령줄 프로파일러
활용 사례
- NVIDIA GPU에서 딥러닝 워크로드용 고성능 GEMM 또는 fused 커널 구현
- tensor core GEMM 커널의 구조와 튜닝 방법 학습
- 프로덕션에 배포하기 전에 CuTe DSL로 Python에서 커널 설계 프로토타이핑
- 주어진 문제 크기에 적합한 GEMM 또는 convolution 커널 구성을 프로파일링하고 선택
빠른 시작
- 1
CUTLASS C++ 빠른 시작 가이드 읽기
- 2
Python 인터페이스용 CuTe DSL 빠른 시작 가이드 읽기
사용 전 알아둘 점
- CuTe DSL은 공개 베타 단계이며 아직 정식 출시되지 않았습니다.
- Rubin(sm107) GPU에서 일부 패킹 명령어에 알려진 코드 생성 버그가 있습니다.
- NVIDIA GPU와 CUDA 툴체인이 필요합니다.
- 메타데이터에서 라이선스를 명확히 확인할 수 없으므로 사용 전에 라이선스 조건을 확인하세요.
토픽
자주 묻는 질문
- cutlass은(는) 무엇인가요?
- NVIDIA GPU에서 고성능 GEMM 및 관련 선형대수 커널을 작성하기 위한 CUDA C++ 템플릿 라이브러리이자 Python DSL입니다. CUTLASS는 CUDA에서 고성능 행렬 곱셈(GEMM)과 관련 연산을 구현하기 위한 추상화 모음입니다. 작업을 스레드, 워프, 스레드블록 수준의 계층적이고 재사용 가능한 구성 요소로 나누며, 타일 크기, 데이터 타입, 알고리즘 정책을 조정할 수 있어 커스텀 커널의 빌딩 블록으로 활용할 수 있습니다.
- cutlass은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- cutlass은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- cutlass은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. cutlass의 마지막 커밋은 2026년 10월 20일입니다.
- cutlass은(는) 어디에 사용할 수 있나요?
- NVIDIA GPU에서 딥러닝 워크로드용 고성능 GEMM 또는 fused 커널 구현 tensor core GEMM 커널의 구조와 튜닝 방법 학습 프로덕션에 배포하기 전에 CuTe DSL로 Python에서 커널 설계 프로토타이핑 주어진 문제 크기에 적합한 GEMM 또는 convolution 커널 구성을 프로파일링하고 선택
- cutlass는 어떻게 설치하나요?
- CUTLASS C++ 빠른 시작 가이드 읽기 Python 인터페이스용 CuTe DSL 빠른 시작 가이드 읽기
- cutlass은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/NVIDIA/cutlass
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Python 및 C++ API를 제공하는, 머신러닝 모델을 구축하고 배포하기 위한 엔드투엔드 오픈소스 플랫폼입니다.
Transformer 모델의 GPU 학습과 추론을 위한 메모리 효율적인 exact attention 커널 FlashAttention의 공식 구현입니다.
OpenAI 호환 API로 대규모 언어 모델을 빠르고 메모리 효율적으로 실행하고 서빙하는 라이브러리 및 서버입니다.
대규모 모델의 분산 학습과 추론을 더 쉽고 효율적으로 지원하는 딥러닝 최적화 라이브러리입니다.
SGLang은 다양한 GPU, TPU, CPU 플랫폼에서 대규모 언어·비전 언어·디퓨전 모델을 서빙하는 오픈소스 추론 프레임워크입니다.