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에 단계가 설명되어 있습니다:

  1. 리포지토리 복제 및 Python 빌드 의존성 설치.
  2. make dev-install-llvm를 실행하여 Triton이 기대하는 LLVM 버전을 가져와 컴파일하거나, 수동 LLVM 빌드 지침을 따릅니다.
  3. 편집 가능한 모드로 패키지 설치 (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
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트