NVIDIA/tilus

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

解决的问题

Tilus 通过提供一种领域特定语言(DSL),解决了 GPU 内核编程的复杂性,使开发者无需手动管理每个线程即可编写高性能内核。它特别针对低精度计算,并提供了比现有替代方案(如 Triton)更明确的硬件资源控制能力。

工作原理

Tilus 以线程块为粒度运行,使用张量作为主要数据类型。它允许程序员对共享内存和寄存器张量进行显式控制,并支持从 1 到 8 位的任意位宽低精度类型。该语言包含 Python 风格接口、自动调优和缓存功能,以简化开发流程。

适用人群

专为研究者和开发者设计,用于构建高性能 GPU 内核,特别是专注于低精度计算,或希望获得比高级抽象提供的更精细内存管理控制的用户。

主要亮点

  • 基于区块的编程:聚焦于线程块和张量,而非单个线程。
  • 硬件控制:提供对共享内存和寄存器张量的显式控制。
  • 低精度支持:支持 1 到 8 位之间的任意位宽。
  • 高性能:在 Blackwell 和 Hopper GPU 上可达到 cuBLAS 级别的性能。
  • Python 风格接口:提供易于使用的 GPU 内核开发接口。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目