MCPcopy Index your code
hub / github.com/NVIDIA/tilus

github.com/NVIDIA/tilus @v0.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.0 ↗ · + Follow
5,947 symbols 24,650 edges 535 files 731 documented · 12%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tilus: A Tile-Level GPU Kernel Programming Language

Documentation | Paper

Tilus is a powerful research domain-specific language (DSL) for GPU programming that offers:

  • Thread-block-level granularity with tensors as the primary data type.
  • Explicit control over shared memory and register tensors (unlike Triton).
  • Low-precision types with arbitrary bit-widths (1 to 8 bits).

It also includes automatic tuning, caching, and a Pythonic interface for ease of use.

Tilus is pronounced as tie-lus, /ˈtaɪləs/.

Status

Tilus supports Ampere architecture, and we are actively working on support for Hopper/Blackwell GPUs (see the roadmap).

Getting Started

Installation

Install Tilus using pip:

pip install tilus

[!NOTE] Tilus depends on cuda-python. If your GPU driver is older than 580.65.06, you will need to install an older version of cuda-python to ensure compatibility. pip install tilus "cuda-python<13"

Usage

To get started, refer to the tutorials to learn how to program kernels with Tilus.

You can also check more examples of using Tilus.

You can learn more on different topics in the programming guide.

Research

This project is based on the following research paper:

@inproceedings{ding2025tilus,
 author = {Ding, Yaoyao and Hou, Bohan and Zhang, Xiao and Lin, Allan and Chen, Tianqi and Yu, Cody Hao and Wang, Yida and Pekhimenko, Gennady},
 title = {Tilus: A Tile-Level GPGPU Programming Language for Low-Precision Computation},
 url = {https://doi.org/10.1145/3760250.3762219},
 booktitle = {Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1},
 series = {ASPLOS '26}
}

Acknowledgement

We would like to acknowledge the following projects for their influence on Tilus's design and development: - Hidet: We take Hidet IR as our low-level target and reuse its runtime system. - TVM: Hidet's initial IR was adopted from TVM, and we also learned a lot from TVM on how to build a compiler. - Triton: The core idea of defining kernels at a thread-block level and working with tiles was inspired by Triton. - Hexcute: We adopted the idea of using automatic layout inference to simplify programming from Hexcute.

Core symbols most depended-on inside this repo

format
called by 659
python/tilus/utils/doc.py
append
called by 394
python/tilus/utils/doc.py
asm
called by 314
python/tilus/hidet/ir/stmt.py
range
called by 239
python/tilus/lang/constructs/loops.py
cast
called by 201
python/tilus/hidet/ir/expr.py
visit
called by 190
python/tilus/ir/functors/functor.py
visit
called by 188
python/tilus/hidet/ir/functors/base_functor.py
register_primitive_function
called by 185
python/tilus/hidet/ir/primitives/func.py

Shape

Method 3,741
Function 1,363
Class 835
Route 8

Languages

Python97%
C++2%
TypeScript1%

Modules by API surface

python/tilus/hidet/ir/tools/ir_dumper.py179 symbols
python/tilus/ir/builders/stmt_builder.py169 symbols
python/tilus/hidet/ir/expr.py165 symbols
python/tilus/hidet/ir/primitives/math.py120 symbols
python/tilus/hidet/lang/transpiler.py111 symbols
python/tilus/ir/instructions/generic.py104 symbols
python/tilus/ir/functors/functor.py102 symbols
python/tilus/hidet/ir/functors/expr_functor.py102 symbols
python/tilus/hidet/backend/codegen.py97 symbols
python/tilus/hidet/ir/tools/printer.py93 symbols
python/tilus/hidet/ir/type.py71 symbols
python/tilus/ir/tensor.py69 symbols

For agents

$ claude mcp add tilus \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact