Skip to content

Latest commit

 

History

History
108 lines (77 loc) · 4.72 KB

File metadata and controls

108 lines (77 loc) · 4.72 KB

TileFoundry

Hand the compiler to the agent.

Not an agent that becomes the compiler,
and not an agent plugged in as one of its passes.
The compiler stays a tool — the agent is simply the one holding it.

One prompt in  ·  612 tok/s out  ·  Compiler in the loop


PyPI Coverage TileFoundry optimizations shipped to TileOPs License: MIT

Documentation · Quick Start · Examples

Latest News

  • 09/2026 🔧: TileFoundry 0.0.2 is on PyPI — bug fixes and refactoring across the analysis, parser, and IR layers.
  • 08/2026 ⚡: Nemotron-3.5-Lightning-30B-A3B — a 52-layer Mamba2 / attention / MoE hybrid in a single mega decode kernel, one launch a step with no CUDA graph, reaching 97.5% of SGLang at short context and 83.2% at 262144.
  • 08/2026 📦: Four worked examples added — Qwen3-1.7B (tilelang), Qwen3.5-35B-A3B (tilelang), MiniCPM3-4B (CuTeDSL) and granite-4.0-h-small (CUDA C) — each one a real agent run kept whole, with the decode throughput it measured.
Earlier
  • 08/2026 🎉: TileFoundry 0.0.1 is on PyPI — the first public release.

Quick Start

1 · Install

pip install tilefoundry    # needs Python 3.12 or newer
tilefoundry                # check the install: the commands an agent will ask

This run also needs one NVIDIA GPU, pip install tilelang, the published Qwen/Qwen3-1.7B checkpoint on disk (3.8 GB), and a coding agent started in an empty directory.

2 · Hand it the prompt

There is no API to learn first. Give your coding agent this, with a checkpoint directory of your own:

Get real tokens out of Qwen3-1.7B on TileFoundry, and make it fast.
Weights and config: <checkpoint directory>
Backend: tilelang.

Everything about TileFoundry is to be asked of the `tilefoundry` command -- do not
ask a person, do not go looking elsewhere. The model itself is yours to research.

Done when this runs from outside, prints the continuation, and reports a
tokens-per-second number measured over the whole generation:

    python run.py \
        --prompt "Write a detailed explanation of how a GPU executes a matrix multiplication." \
        --max-new-tokens 2048

Measure over a long generation -- 2048 new tokens, more than 2000 characters of
text. A 32-token sample is too short for the number to mean anything.

That is the whole input — nothing under it is written by hand.

3 · Come back in two hours

Claude Opus 5 at xhigh reasoning effort worked 2.1 hours and 177 tool calls without a single interaction, and left a run.py behind — it prints the continuation, and the number it measured: 612 tok/s on one H200.

python run.py --ckpt <checkpoint directory> \
    --prompt "Write a detailed explanation of how a GPU executes a matrix multiplication." \
    --max-new-tokens 2048

The first run compiles the kernels — once, a few minutes.

Where to go next

That run is kept whole in examples/qwen3_1_7b-tilelang/, with three more beside it. The specifications are meant to be argued with: open an issue, or start from docs/develop.md.

License

This project is licensed under the MIT License.