tile-ai/tilelang
Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels
해결하는 문제
TileLang은 GPU, CPU, NPU용 고성능 커널을 쉽게 만들 수 있도록 설계된 도메인 특화 언어(DSL)입니다. 행렬 곱셈(GEMM) 및 FlashAttention과 같은 연산을 위한 복잡한 저수준 코드를 작성할 필요 없이, 생산성을 높이면서도 최첨단 하드웨어 최적화를 수행할 수 있습니다.
작동 방식
Apache TVM 위에 구축된 TileLang은 Python 스타일의 구문을 사용하여 커널 연산을 정의합니다. NVIDIA CUDA, AMD ROCm/HIP, Huawei Ascend, Apple Metal 등 다양한 백엔드를 타겟으로 하는 컴파일러 인프라를 사용합니다. 언어는 공유 메모리 및 조각 메모리 할당, 파이프라인 처리, 텐서 코어 행렬 곱셈(T.gemm)과 같은 하드웨어 고유 연산을 위한 고수준 원시 기능을 제공합니다.
대상 사용자
다양한 하드웨어 아키텍처에서 딥러닝 워크로드용 고도로 최적화된 수학 연산을 구현해야 하는 커널 개발자 및 AI 엔지니어를 위한 것입니다.
주요 특징
- 다중 백엔드 지원: NVIDIA(SM70-SM120), AMD(CDNA/RDNA), Huawei Ascend 950, Apple Metal(M5 협업 텐서 포함)에 대한 네이티브 코드 생성을 지원합니다.
- 파이썬 스타일 구문:
@tilelang.jit데코레이터를 사용하여 간결한 커널 정의가 가능합니다. - 고급 하드웨어 기능: Blackwell GPU에서 TMA(Tensor Memory Accelerator), WGMMA, 블록 스케일링 GEMM을 지원합니다.
- C 스타일 통합: IDE 지원을 강화하기 위해 Language Server Protocol(LSP)를 포함하며, 인레이 힌트와 진단 기능을 제공합니다.
- 풍부한 도구 세트: 패스 시각화기, IR 덤프 설정, 성능 최적화를 위한 오토튜너를 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트