triton-lang/triton
Development repository for the Triton language and compiler
Triton 이란?
Triton 은 딥러닝 연산을 위한 사용자 정의 GPU 커널을 작성할 수 있도록 해주는 오픈소스 프로그래밍 언어 및 컴파일러입니다. PyTorch 와 같은 고수준 프레임워크와 저수준 CUDA/ROCm 코드 사이에 위치하며, 원시 CUDA보다 높은 생산성을 제공하면서도, 성능이 중요한 프리미티브(예: 어텐션, 행렬 곱셈, 컨볼루션)를 수동으로 최적화할 수 있는 유연성을 유지합니다.
핵심 아이디어
| 아이디어 | 당신에게 의미하는 바 |
|---|---|
| GPU 커널용 DSL | Python과 유사한 구문(tl.* 연산)으로 커널을 작성. 컴파일러가 효율적인 GPU 머신 코드로 변환합니다. |
| MLIR 기반 백엔드 | 컴파일러는 LLVM의 MLIR 인프라를 사용하여, NVIDIA(NVPTX)와 AMD(AMDGPU) GPU 모두를 타겟으로 하며 확장이 용이합니다. |
| 자동 튜닝 | Triton은 현재 하드웨어에서 가장 빠른 커널 버전을 찾기 위해 타일 크기 및 기타 파라미터를 자동으로 탐색합니다. |
| 인터프리터 모드 | TRITON_INTERPRET=1을 설정하면 GPU 없이 CPU에서 커널을 실행할 수 있어 디버깅에 유용합니다. |
| 플러그인 파이프라인 | add_stages_inspection_hook API를 통해 사용자 정의 컴파일러 단계를 삽입할 수 있습니다. |
시작하기
# PyPI에서 최신 안정판 설치 (Python 3.10–3.14)
pip install triton
- Linux용 바이너리 웨일은 NVIDIA Compute Capability 8.0+ 및 AMD ROCm 6.2+를 지원합니다.*
소스에서 빌드하고 싶은 경우(예: 커스텀 LLVM 사용), README에 단계가 설명되어 있습니다:
- 리포지토리 복제 및 Python 빌드 의존성 설치.
make dev-install-llvm를 실행하여 Triton이 기대하는 LLVM 버전을 가져와 컴파일하거나, 수동 LLVM 빌드 지침을 따릅니다.- 편집 가능한 모드로 패키지 설치 (
pip install -e .).
일반적인 워크플로우 (Python 예제)
import triton
import triton.language as tl
@triton.jit
def matmul_kernel(A, B, C, M, N, K,
BLOCK_M: tl.constexpr, BLOCK_N: tl.constexpr, BLOCK_K: tl.constexpr):
pid = tl.program_id(0)
# 블록 인덱스 계산 …
# 타일 로드, 계산, 결과 저장 …
# 실행
matmul_kernel[(grid_x,)](A, B, C, M, N, K,
BLOCK_M=128, BLOCK_N=128, BLOCK_K=32)
@triton.jit데코레이터는 Triton이 함수를 GPU 커널로 컴파일하도록 지시합니다. 타일 크기(BLOCK_*)는 자동 튜너에 맡기거나 수동으로 설정할 수 있습니다.
Triton으로 만들 수 있는 것
- 사용자 정의 어텐션 커널 – 예: flash-attention 구현.
- 최적화된 행렬 곱셈 – 특정 형태에서는 cuBLAS를 대체할 수 있음.
- 실험적 연산자 – 메인스트림 라이브러리에 등장하기 전에 새로운 프리미티브를 시도할 수 있음.
- 연구 프로토타입 – CUDA를 직접 작성하지 않고도 커널 아이디어를 빠르게 반복 가능.
커뮤니티 및 리소스
- 문서: https://triton-lang.org – 설치 가이드, 프로그래밍 가이드, 디버깅 튜토리얼.
- 컨퍼런스: 연 1회 열리는 Triton 개발자 컨퍼런스(2026년 세부 정보는 리포지토리 참조)에서 발표, 라이트닝 토크, 포스터 발표가 있습니다.
- 퍼즐: 작은 도전 과제 모음(
srush/Triton-Puzzles)은 인터프리터로 실행 가능하며 학습에 적합합니다. - 기여 방법: PR을 환영합니다. 가이드라인은
CONTRIBUTING.md를 참조하세요. - 개발 컨테이너:
triton-dev-containers리포지토리에서 재현 가능한 개발 환경용 Docker/VSCode 개발 컨테이너를 제공합니다.
호환성 및 하드웨어 지원
- OS: 현재 릴리스에서는 Linux만 지원.
- GPU: Compute Capability 8.0 이상의 NVIDIA GPU, ROCm 6.2 이상의 AMD GPU. CPU 지원은 개발 중입니다.
TL;DR
Triton은 원시 CUDA/ROCm로 내려가지 않고도 딥러닝 워크로드용 고성능 GPU 커널을 작성할 수 있는 Python 친화적인 DSL 및 컴파일러입니다. pip install triton으로 설치하고, @triton.jit 데코레이터로 커널을 작성한 후, MLIR 기반 백엔드가 코드 생성, 자동 튜닝, 다중 벤더 지원을 처리합니다. 프로젝트는 적극적으로 유지보수되며, 완전한 문서 사이트, 연 1회 개발자 컨퍼런스, 그리고 친근한 오픈소스 커뮤니티를 보유하고 있습니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트