InfiniTensor/ninetoothed
A domain-specific language (DSL) based on Triton but providing higher-level abstractions.
해결하는 문제
NineToothed는 고성능 GPU 커널 작성 과정을 간소화합니다. 낮은 수준의 GPU 코드를 작성할 때 일반적으로 발생하는 복잡성을 제거하고, 접근성이 높은 도메인 전용 언어(DSL)를 제공합니다.
작동 방식
텐서 중심 메타프로그래밍(TOM) 이라는 패러다임과 "배치하고 적용하기" 접근 방식을 사용합니다. 개발자는 세 가지 서로 다른 구성 요소를 정의합니다: arrangement(데이터의 타일링 및 확장 방식), application(실제 계산 로직), 그리고 tensors 자체입니다. 이들은 ninetoothed.make를 사용하여 통합되어 Triton 기반의 커널이 생성됩니다.
대상 사용자
커스텀 고성능 GPU 커널을 작성해야 하지만, 직접 Triton이나 CUDA 코드를 사용하는 것보다 더 높은 수준의 추상화를 원하는 개발자 및 연구자입니다.
주요 특징
- Triton 기반 DSL: GPU 성능을 Triton으로 활용합니다.
- 배치하고 적용하기 패러다임: 데이터 레이아웃과 계산 로직을 분리하여 명확성을 높입니다.
- 텐서 중심 메타프로그래밍: 고수준 텐서 연산을 GPU 하드웨어에 매핑하는 것을 간소화합니다.
관련
- 프로젝트
triton-lang/tritonTriton은 딥러닝 프리미티브용 사용자 정의 GPU 커널을 작성하기 위한 오픈소스 언어 및 컴파일러입니다. Python에 가까운 DSL(`@triton.jit`)을 제공하며, MLIR 기반 백엔드를 통해 효율적인 NVIDIA 및 AMD GPU 코드로 컴파일되며, 자동 튜닝, CPU 디버깅용 인터프리터, 확장 가능한 컴파일러 단계를 갖추고 있습니다.
- 프로젝트
pytorch/helionHelion은 일반 PyTorch 코드처럼 GPU 커널을 작성할 수 있는 Python 내장 DSL입니다. 내부 루프를 Triton으로 컴파일하고, 타일링, 그리드 크기, 메모리 접근 전략을 자동으로 선택하며, 광범위한 오토튜너를 실행하여 가장 빠른 구성을 찾습니다. 생산 환경을 위해 최적 구성을 고정할 수 있으며, 실험적 백엔드(TileIR, CuTe)는 하드웨어 지원을 넓힙니다.
- 프로젝트
NVIDIA/tilusTilus는 공유 메모리와 레지스터에 대한 명시적 제어를 가능하게 하는 타일 수준 GPU 카ーネル 프로그래밍 언어로, 고성능 저정밀도 계산을 지원합니다.
- 프로젝트
tile-ai/tilelangTVM 기반의 간결한 도메인 특화 언어와 컴파일러로, GEMM 및 FlashAttention과 같은 고성능 GPU/CPU/NPU 커널을 개발합니다.
- 프로젝트
ByteDance-Seed/Triton-distributedTriton-distributed는 ByteDance-Seed가 오픈 소스로 공개한 컴파일러로, Triton 언어를 확장하여 GPU 연산과 통신을 오버랩하기 위한 프리미티브를 제공합니다. NVIDIA 및 AMD GPU에서 고성능 분산 커널(GEMM, MoE, flash-decode, AllToAll)을 구현하여 수동으로 튜닝된 라이브러리에 필적하는 속도 향상을 제공합니다. 소스 또는 사전 빌드된 pip wheel을 통해 설치하고, @triton_dist.jit을 사용하여 커널을 작성하며, 제공된 저수준 통신 API를 사용할 수 있습니다. 이 프로젝트는 활발히 업데이트되고 있으며(최신 뉴스 2026년 9월), MIT 라이선스로 배포됩니다.