Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

TIRx kernels

High-performance GPU kernels authored in tirx-lite and compiled through TIRx.

Kernels

Kernels are grouped by the upstream library and entry point they port. Unless annotated, a kernel runs on sm_100a, sm_103a and sm_107a, and its performance was measured and tuned on sm_100a; every listed architecture is gated by the registry correctness tests. Annotations mark the exceptions: ⟨sm_103a⟩ runs only on that architecture and was tuned there, and ⟨+sm_110a⟩ runs on that architecture in addition to the default three. Annotations follow KERNEL_META["runtime_cuda_archs"] and tests/lint/check_readme_kernels.py keeps them in sync.

Native TIRx

Curated native TIRx

Kernels implemented directly in TIRx and admitted through portfolio-wide correctness and performance validation. Their canonical modules retain the supported workload and stable provenance; run logs and intermediate candidates remain outside this package. See the measured speedups for the benchmark contract and results.

cuDNN Frontend ports

FlashAttention ports

FlashInfer ports

Grouped by the FlashInfer Python entry point each port backs.

FlashMLA ports

DeepGEMM ports

DeepEP ports

fast.cu ports

MSA ports

Performance

Per-workload numbers — our kernel time, every reference impl, and the ref/ours ratio (>1 means ours is faster) — are pinned in tirx_kernels/bench_suite/baseline.md, regenerated on every baseline promotion. See the bench-suite README for how the sweep runs and how to refresh the baseline.

Installation

pip install tirx-kernels==0.1.0rc0
# or, from a checkout:
pip install -e .

The kcoral client for remote benchmarking is installed automatically.

Pin 0.1.0rc0 explicitly: PyPI also contains older uploads numbered 0.1.1, which pip considers newer than this prerelease.

Packaging and releases

Versions come from Git tags through setuptools-scm, as in kcoral. A clean checkout of v0.1.0rc0 builds version 0.1.0rc0; commits after a tag get a development version automatically. Build both the source distribution and a pure-Python wheel with:

python -m pip install build twine
python -m build
python -m twine check --strict dist/*

The build workflow checks the installed wheel on Python 3.10 and 3.12, including kernel discovery and packaged benchmark configurations, baselines, and CUDA reference sources. The wheel does not compile GPU code during installation.

To publish, tag the release commit (for example, v0.1.0rc0) and publish a GitHub Release for that tag, marking release candidates as prereleases. .github/workflows/publish_pypi.yml builds and validates that exact tag, then uploads the wheel and source distribution using PyPI Trusted Publishing. The PyPI publisher for tirx-kernels must use owner mlc-ai, repository TIRx-kernels, workflow publish_pypi.yml, and environment pypi. Configure it in the PyPI publishing settings. Alternatively, as in kcoral, set a PYPI_API_TOKEN Actions secret on the repository or its pypi environment; when present, the workflow uses that token and disables OIDC attestations. The token must have permission to publish tirx-kernels.

The workflow can also be run manually with an existing release tag. For example, after configuring publishing credentials:

gh workflow run publish_pypi.yml --repo mlc-ai/TIRx-kernels --ref main -f ref=v0.1.0rc0

External dependencies

Correctness uses the original upstream implementations. Install the exact, mutually compatible revisions from the repository lock:

python scripts/install_reference_dependencies.py

reference-dependencies.json is the single source of truth for reference revisions and the shared CUTLASS DSL version. The same command installs the pinned pytest/xdist runner. torch and tvm.tirx remain externally managed runtime/compiler dependencies.

Dependency Needed by Notes
tvm.tirx all kernels (compile + run) The TIRx compiler. Put it on PYTHONPATH, e.g. /path/to/tir/python.
torch all kernels CUDA build matching your GPU.
deep_gemm FP8 GEMM and deepgemm_* baselines Used for optimized reference kernels and the MegaMoE timer.
cuDNN Frontend (cudnn) cudnn_* correctness and baselines Source install pinned in the lock (v1.28.0); replaces any released nvidia-cudnn-frontend wheel, which lacks the CuTeDSL kernel sources.
flashinfer all flashinfer.* ports, nvfp4_gemm and rmsnorm baselines Correctness reference and optimized baseline.
flash-attn + CUTLASS DSL flash_attention_backward_sm100 baseline Current SM100 forward/backward reference.
SGLang CuTeDSL kernels (vendored, + CUTLASS DSL) deepgemm_sm100_fp8_paged_mqa_logits reference sglang_cutedsl benchmark reference; copied into tirx_kernels/deepgemm/_sglang_cutedsl/, no SGLang install needed.
flash_mla sparse_flashmla_* / flash_mla_sparse_fwd baselines Reference impls.
deep_ep deepep_* correctness and baselines Reference implementation.
flash-linear-attention the curated_kda_forward_* kernels and curated_kda_backward_packed correctness Independent FLA BF16/Triton chunk reference.
flash_kda flashkda_* and curated_kda_forward_* optional baselines Raw FlashKDA benchmark peer.
fmha_sm100 (MSA) msa_* correctness and baselines Reference implementation; set MSA_PATH to use a checkout elsewhere.
NVSHMEM allgather_gemm, gemm_reduce_scatter Required to compile/run the GemmComm kernels.

Correctness tests import and run these upstream implementations. The bench suite does not launch or time benchmark reference implementations by default (kernel data-preparation helpers may still import their upstream package). Pass --with-references to enable reference launches; a missing enabled reference fails its workload. See tirx_kernels/bench_suite/README.md for the prerequisites and workarounds.

Usage

Command line

# List discovered kernels (with their config labels)
python -m tirx_kernels.registry --format json

# Run correctness tests (optionally filter by kernel / config label)
pytest -n 16 tests/test_correctness.py

# Benchmark
python -m tirx_kernels.bench --kernel nvfp4_gemm
python -m tirx_kernels.bench --kernel nvfp4_gemm --with-references

# Pre-commit regression benchmark sweep on the kcoral benchmark server
# (see tirx_kernels/bench_suite/README.md)
python -m tirx_kernels.bench_suite --server http://127.0.0.1:8901

Programmatic API

Every kernel module exposes a small, uniform interface (see tirx_kernels/_protocol.py):

from tirx_kernels.registry import discover_kernels

kernels = discover_kernels()          # {name: module}
mod = kernels["fp16_bf16_gemm"]

mod.run_test(M=1024, N=1024, K=1024)  # compile + run + correctness check
mod.run_bench(M=1024, N=1024, K=1024) # profile (needs a GPU)

func = mod.get_kernel(M=1024, N=1024, K=1024)  # the TIRx PrimFunc

Each module also provides KERNEL_META: its name, category, exact runtime_cuda_archs, and optional correctness-only reference_requirements. The registry and test harness reject unsupported architectures before compile, and skip correctness before GPU work when a declared reference package, version, or Git source identity is unavailable. CONFIGS contains the test parameter sweep.

License

Except where otherwise noted, this project is licensed under the Apache License 2.0; see LICENSE. Required Apache attribution notices are collected in NOTICE.

Every Python source file carries SPDX tags. Kernel ports derived from third-party projects (cuDNN Frontend, DeepGEMM, DeepEP, fast.cu, FlashMLA, flash-attention, flash-attention-fp4, FlashInfer, MSA) additionally cite the upstream project and the exact commit ported, retain the upstream copyright notice, and declare the combined terms — for example Apache-2.0 AND MIT. Where an upstream license requires its conditions text to travel with the source, that text is kept in the file verbatim. The third-party section at the end of LICENSE lists which components fall under which license, and licenses/ holds the corresponding license texts.

Metadata

Release files for tirx-kernels 0.1.0rc0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tirx-kernels 0.1.0rc0
File Size Uploaded
tirx_kernels-0.1.0rc0.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tirx-kernels 0.1.0rc0
File Interpreter ABI Platform
tirx_kernels-0.1.0rc0-py3-none-any.whl Python 3 none any Details

Total release size: 4.9 MB

Release files / tirx_kernels-0.1.0rc0.tar.gz

Download URL tirx_kernels-0.1.0rc0.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
803d6613e9573af4d6a416a682133bcd5ff4e7b3e3435d1c5e5703d2c838c7ef
BLAKE2b-256 checksum
How to use checksums
0691118b7fcda5f21075c67c45767a892c14ad53fda8ad246b39e3cf3d88f276
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / tirx_kernels-0.1.0rc0-py3-none-any.whl

Download URL tirx_kernels-0.1.0rc0-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9f3beef22ee81fc990cb2ee7afccea9f8cbca6eeab7a7a075fe764ca09274d50
BLAKE2b-256 checksum
How to use checksums
f89dd5d5005bf4f66043fa8ebf940b7387a8e019761b0f37bc0484856007423a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page