고성능 AI 커널 개발을 위한 도메인 언어 TileLang
tile-ai/tilelang
Tile Language는 GEMM, FlashAttention 등 고성능 컴퓨팅 커널 개발에 특화된 도메인 언어(DSL)입니다. 파이썬과 유사한 간결한 문법으로 복잡하고 까다로운 저수준 최적화를 쉽게 구현할 수 있습니다.
복잡하고 어려운 고성능 AI 커널 개발을 할 때도, 쉬운 문법으로 최고의 컴퓨팅 성능을 확보할 수 있게 도와줘요.
- CUDA, Metal, ROCm은 물론 Huawei Ascend 950 NPU까지 지원하는 멀티 백엔드를 갖추고 있어, 다양한 하드웨어 환경에서 아키텍처에 맞는 고도로 최적화된 커널 생성이 가능합니다.
- 개발자는 복잡한 하드웨어 아키텍처의 세부 사항을 신경 쓸 필요 없이 높은 생산성으로 코드를 작성하면서도, 현존하는 최고의 컴퓨팅 성능을 확보할 수 있다는 것이 핵심 가치입니다.
- TVM 기반의 깊은 컴파일러 인프라를 활용하므로 초기 학습 곡선이 존재하며, 다양한 하드웨어 아키텍처별 호환성과 버전 관리에 주의가 필요합니다.
Tile Language(tile-lang)는 GEMM, FlashAttention 등 고성능 컴퓨팅 커널 개발에 특화된 간결한 도메인 특화 언어(DSL)입니다. 이 언어는 Pythonic 문법을 채택하고 TVM 기반의 컴파일러 인프라를 활용하여, 사용자가 저수준 최적화가 필요한 복잡한 코드를 높은 생산성으로 작성할 수 있도록 지원합니다.
TileLang은 다양한 하드웨어 아키텍처에 걸쳐 작동하는 멀티 백엔드를 갖추고 있습니다. 공식적으로 Huawei Ascend 950 를 포함하여 , Metal, ROCm 등 여러 플랫폼을 지원하며, Blackwell(SM120)이나 Apple M5와 같은 최신 환경에 맞는 고도로 최적화된 커널 생성이 가능합니다.
개발자 경험 향상을 위해 Language Server Protocol(LSP) 구현이 공개되었으며, 버퍼 형태나 데이터 타입 등 상세한 진단 기능과 인라인 힌트를 제공합니다. 또한, 컴파일러가 Python 소스 위치를 추적하여 오류 발생 시 원본 코드의 위치까지 표시하는 'Source-aware compiler diagnostics' 기능을 지원하며 개발 편의성을 높였습니다.
용어 풀이
- NPU
- 신경망 계산에 특화된 처리 장치. 휴대폰과 노트북에 많이 들어가요.
- CUDA
- 엔비디아 GPU에서 계산 프로그램을 돌리게 해 주는 개발 플랫폼.
- GPU
- 많은 계산을 한꺼번에 처리하는 칩. AI 학습과 실행에 가장 많이 써요.
TileLang은 어떤 목적으로 사용되는 언어인가요?
고성능 컴퓨팅 커널(예: GEMM, FlashAttention) 개발에 특화된 도메인 특화 언어예요. Python과 유사한 문법을 채택하여, 복잡하고 저수준 최적화가 필요한 코드를 높은 생산성으로 작성할 수 있도록 지원해요.
TileLang은 어떤 하드웨어 환경에서 작동하나요?
CUDA, Metal, ROCm 같은 여러 플랫폼을 공식적으로 지원하며, Huawei Ascend 950 NPU를 포함해 다양한 아키텍처에 맞는 고도로 최적화된 커널 생성이 가능해요.
개발자가 코드를 작성할 때 어떤 도움을 받을 수 있나요?
Language Server Protocol(LSP) 구현으로 상세한 진단 기능과 인라인 힌트를 제공하며, 컴파일러가 오류 발생 시 원본 코드의 위치까지 추적해주는 기능을 지원해서 개발 편의성이 높아졌어요.