NVIDIA/tilus

Tilus is a tile-level kernel programming language with explicit control over shared memory and registers.

해결하는 문제

Tilus는 GPU 카ーネル 프로그래밍의 복잡성을 해결하기 위해 개발자가 각 스레드를 수동으로 관리하지 않고도 고성능 카ーネル을 작성할 수 있는 도메인 전용 언어(DSL)를 제공합니다. 특히 저정밀도 계산을 타겟으로 하며, Triton과 같은 기존 대안보다 하드웨어 리소스에 대해 더 명시적인 제어를 제공합니다.

작동 방식

Tilus는 스레드 블록 수준의 세밀도로 작동하며, 텐서를 주요 데이터 유형으로 사용합니다. 프로그래머는 공유 메모리와 레지스터 텐서에 대한 명시적 제어를 가능하게 하며, 1~8비트까지 임의의 비트 폭을 지원하는 저정밀도 유형을 지원합니다. 언어는 Python 스타일 인터페이스, 자동 튜닝, 캐싱을 포함하여 개발 과정을 간소화합니다.

대상 사용자

고성능 GPU 카ーネル을 개발하는 연구자 및 개발자, 특히 저정밀도 계산에 집중하거나 고수준 추상화에서 제공하는 것보다 더 세밀한 메모리 관리 제어를 원하는 사용자에게 적합합니다.

주요 특징

  • 타일 수준 프로그래밍: 개별 스레드가 아닌 스레드 블록과 텐서에 초점을 맞춥니다.
  • 하드웨어 제어: 공유 메모리와 레지스터 텐서에 대한 명시적 제어를 제공합니다.
  • 저정밀도 지원: 1~8비트까지 임의의 비트 폭을 지원합니다.
  • 고성능: Blackwell 및 Hopper GPU에서 cuBLAS 수준의 성능을 달성할 수 있습니다.
  • Python 스타일 인터페이스: GPU 카ーネル 개발에 사용하기 쉬운 인터페이스를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트