Go to file
lcy-seso c2e01ac8d4 [Fix][Manifest] adopt documented shape/workload format in new elementwise families
- Convert signature shape values from YAML lists to string form ("[M, N]")
  in elementwise_generative.yaml and elementwise_fused_gated.yaml to match
  docs/design/manifest.md R8 + the convolution.yaml precedent so the
  validator can bind shape symbols.
- Add per-input workload shape keys (device_carrier_shape, x_shape) to
  every workload row to satisfy the workload schema documented in
  docs/design/manifest.md and used across normalization.yaml etc.
- Restore exception class/message in check_c4_forward_signature_parity's
  warning when inspect.signature(forward) raises.

Co-Authored-By: Ibuki 🍃 — a wind born from GPTs <Ibuki-wind@users.noreply.github.com>
2026-05-13 12:34:49 +08:00
.claude [Design] Trust-model rules become review lens; retire strict-mode auto-reject (#1424) 2026-05-11 18:16:25 +08:00
.foundry [Design] Trust-model rules become review lens; retire strict-mode auto-reject (#1424) 2026-05-11 18:16:25 +08:00
.github [Chore][Release] merge testbed into main: op-family alignment + new ops (#1380) 2026-05-09 00:03:37 +08:00
assets [Doc] Add development doc and update readme (#75) 2026-01-05 09:14:25 +08:00
benchmarks [Fix][Reduction] migrate benchmark callsites to explicit dim=-1 2026-05-12 20:10:23 +08:00
docs [Maintain][Manifest] add generative-op carve-out + restore alibi/sinusoidal 2026-05-13 12:34:49 +08:00
scripts [Fix][Manifest] adopt documented shape/workload format in new elementwise families 2026-05-13 12:34:49 +08:00
tests [Maintain][Manifest] remove out-of-scope validator helper tests 2026-05-13 12:34:49 +08:00
tileops [Fix][Manifest] adopt documented shape/workload format in new elementwise families 2026-05-13 12:34:49 +08:00
workloads [BugFix][Mamba] Fix da_cumsum kernel to support dt_bias, softplus, and clamp (#1118) 2026-05-09 18:00:38 +08:00
.gitignore [Design] Trust-model rules become review lens; retire strict-mode auto-reject (#1424) 2026-05-11 18:16:25 +08:00
.pre-commit-config.yaml [CI][Tooling] Unify issue and PR auto-labeling into a single workflow (#280) 2026-03-02 19:26:01 +08:00
CLAUDE.md [Doc] move tileops-skills.md out of docs/design/ (#1108) 2026-04-29 11:01:38 +08:00
LICENSE [Chore] Update README, pre-commit hooks and reformat. (#82) 2026-01-05 18:20:15 +08:00
Makefile [Fix][CI] Install external baseline libraries in nightly benchmarks (#673) 2026-03-26 15:06:45 +08:00
README.md [Refactor][Manifest] split monolithic yaml into per-family package (#1092) 2026-04-28 13:41:10 +08:00
pyproject.toml [Refactor][Manifest] split monolithic yaml into per-family package (#1092) 2026-04-28 13:41:10 +08:00

README.md

TileOPs

Spec-driven GPU operator library for LLMs — designed for AI agents to build, evaluate, and optimize

Built on TileLang

Installation | Quick Start | Docs

Status: TileOPs is under active development. APIs may change.

Overview

TileOPs is a GPU operator library for LLM training and inference, built on TileLang. Beyond providing a growing collection of production-quality operators, TileOPs explores a spec-driven development model where AI agents can read declarative operator specifications, generate kernel implementations, and evaluate them against hardware-theoretical performance bounds — with minimal human scaffolding.

Architecture

Every operator is split into two layers with a strict boundary:

  • Op (L2) — stateless Python entry point. Handles validation, dtype casting, and memory layout. Compatible with CUDA-Graph and torch.compile.
  • Kernel (L1) — TileLang GPU implementation with hardware-specific optimizations (Ampere, Hopper).

This separation keeps user-facing behavior independent of GPU strategy, allowing agents and developers to modify either layer without side effects on the other.

Key Properties

  • Spec-driven — each operator is declared in a machine-readable manifest (tileops/manifest/) that specifies signatures, workloads, and roofline formulas, serving as the entry point for both agent code generation and automated validation
  • Roofline-evaluated — kernel performance is measured against Speed-of-Light hardware bounds, not relative baselines
  • Auto-tuning — built-in search over tile sizes, pipelines, and scheduling parameters
  • Lightweight — depends only on TileLang, PyTorch, and einops

Installation

TileOPs can be installed from PyPI or built from source. A CUDA-capable GPU is required.

Prerequisites

  • Python >= 3.10
  • PyTorch >= 2.1
  • CUDA Toolkit
  • NVIDIA GPU: Hopper (SM_90)
  • TileLang == 0.1.9

From PyPI

pip install tileops

From source

git clone https://github.com/tile-ai/TileOPs
cd TileOPs
make install    # dev dependencies + pre-commit hooks

[!NOTE] If CUDA and TileLang are already installed system-wide and you encounter build issues: PIP_NO_BUILD_ISOLATION=1 pip install -e '.[dev]' -v && pre-commit install

Verify:

python -m pytest tests/ -q    # requires a CUDA GPU

Quick Start

import torch
from tileops.ops import GemmOp

M, N, K = 1024, 1024, 512
dtype = torch.float16

gemm = GemmOp(M, N, K, dtype=dtype)

A = torch.randn(M, K, device="cuda", dtype=dtype)
B = torch.randn(K, N, device="cuda", dtype=dtype)

C = gemm(A, B)

Documentation

Design docs and development guides are in docs/. The full API reference and performance tables are published at TileOPs.github.io.

Contributing

See docs/ for design docs. Branch and commit conventions are in .claude/conventions/types.sh.

License

TileOPs is released under the MIT License.