v0.1.13 #2848
LeiWang1999
announced in
Announcements
v0.1.13
#2848
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
TileLang v0.1.13
This release contains 138 commits (79 bug fixes plus features, refactors, and examples) accumulated since v0.1.12 (2026-07-08 → 2026-08-02).
The headline work is a multi-backend language-dialect refactor that replaces the runtime-activated language facade with static per-backend re-exports, alongside two major new hardware paths: SM120 NVF4 block-scale MMA for Blackwell and Metal 4 (M5) cooperative-tensor GEMM. On top of that, a large batch of correctness fixes landed across reductions/scans, atomics, TMA/copy lowering, loop-step preservation, and FP encoding edge cases.
Highlights
T.mma_gemm_blockscalednow routes the packed-scale SM120 path internally through package-pingpong lowering, with an optimized non-persistent example (8192³ measured at ~1527 TFLOPS on SM120). The publicmicro_pipelinestrategy knob was removed from the API.T.gemm([Metal] M5 Cooperative Tensor T.gemm #2252) — TileLang-owned cooperative-tensor intrinsics, Metal 4 MPPmatmul2dshader emission, and a shape-aware instruction selector that keeps the simdgroup fallback for fragment accumulators and unsupported tiles.from tilelang.cuda.language import *re-export; CUDA/Metal/ROCm dialects now build ontilelang.language.commonwith per-backend TIR overlays (details below).New Features
T.gemmnow works on older architectures instead of erroring out.__hfma([BugFix] Add pre-SM80 fallback for bf16 __hfma #2769).sm_100a([BugFix] Gate stochastic FP4/FP8 casts on sm_100a #2691).fp32x2ops usable as reducers ([CUDA] Support fp32x2 ops as reducers #2637).pass_profilepass-config option (with a configurable threshold) ([Feature] Add compiler pass timing profiling #2622).lower-tracesupport for debugging (new doc:docs/tools/lower_trace.md) ([Feature] Add lower-trace support for debugging & rebased #2725).T.assumeconditions are now enforced at runtime ([TIR][Runtime] Enforce host-evaluable assumptions at runtime #2655).CanProve([Enhancement] Fix nondeterministic CanProve #2772).Backend, API & Refactors
Language dialect refactor (#2734)
The runtime-activated language facade has been replaced by a static re-export architecture:
.pyistubs + generator,py.typed, theglobals()-based__all__scraping, and_activate_cuda_facade().cuda/metal/rocm) now build ontilelang.language.commonwith per-backend TIR overlays.mma/wgmma/mfmamacro generators are pinned to the dtypes leaf and no longer touch the half-initialized facade during bootstrap.tilelang/cuda/intrinsics/sparse_layout.py(a dtypes-only leaf).Follow-up fixes: ROCm intrinsic resolution (#2779),
rng_init(#2776), and shared-intrinsic resolution across backends.Removals (breaking)
tilelang.commonpackage removed ([Refactor] Remove unused tilelang.common package #2810).tilelangpackage ([Refactor] Move example-only helpers out of tilelang package #2761).FFI / JIT / Build
apache-tvm-ffi0.1.12, while keeping 0.1.11 compatibility ([FFI] Support apache-tvm-ffi 0.1.12 #2795); lower bound raised to>=0.1.11([Build] Raise apache-tvm-ffi lower bound to 0.1.11 #2736).ptxasregister-usage level is cast tointbefore building the nvcc command (fix: cast ptxas register usage level to int before building the nvcc command #2641).Int64Promoterextracted into a common header ([Refactor] Extract shared Int64Promoter into common header #2558).actions/setup-python6 → 7 ([CI]: Bump actions/setup-python from 6 to 7 #2773);transformersbumped inexamples/bitnet-1.58b(Bump transformers from 5.3.0 to 5.5.0 in /examples/bitnet-1.58b #2658).Bug Fixes
Loop & control-flow preservation
Fornodes ([BugFix] Preserve explicit loop steps when transforms rebuild For nodes #2752).LoopUnswitching([BugFix] Preserve guard identity in LoopUnswitching #2585).Reductions & scans
warp_reduceno longer truncates int64/uint64 to 32 bits on sm_80+ ([BugFix] Fix warp_reduce truncating int64/uint64 to 32 bits on sm_80+ #2782).reduce_sumover-counts on straddle layouts fixed ([BugFix] Fix grouped reduce_sum over-counts on straddle layout #2424).nan_propagatehonored in reduce max/min/absmaxclear=Falsewrite-back ([BugFix] Honor nan_propagate in reduce max/min/absmax clear=False write-back #2788).Atomics & memory ordering
T.atomic_max/T.atomic_minno longer silently corrupt fp32 values ([BugFix] Fix fp16/bf16T.atomic_max/atomic_minsilently corrupting fp32 values #2780).return_prevsupported for scalaratomic_min/atomic_max([BugFix] Return previous value for scalar atomic_min/atomic_max #2672),atomic_addx2withBufferRegiondestinations ([BugFix] Support BufferRegion destinations in atomic_addx2 return_prev #2753), and HIP vector atomic add ([BugFix] Support return_prev for HIP vector atomic add #2712).T.atomic_addx4return type guarded for sliced destinations ([BugFix] Guard T.atomic_addx4 return type for sliced destinations #2590).Numerics, vectors & dtypes
T.infinitysupported for float8_e5m2 ([BugFix] Support T.infinity for float8_e5m2 #2671).T.pow/T.powerfixed for constant integer exponenty <= 0([BugFix] Fix T.pow/T.power for constant integer exponent y <= 0 #2677).T.__expcomputese**x, not2**x(docstring + CuTeDSL codegen) ([Fix]T.__expmust compute e**x, not 2**x (docstring + CuTeDSL codegen) #2696).x2operand dtypes rejected ([BugFix] Reject mixed packed x2 operand dtypes #2802); floating-point predicates rejected in vote intrinsics ([BugFix] Reject floating-point predicates in vote intrinsics #2800);alloc_varinitializer dtype preserved ([BugFix] Preserve alloc_var initializer dtype #2801); invalid dtypes rejected inT.dp4a([BugFix] Reject invalid dtypes in T.dp4a #2652).T.copypath casts to the destination dtype ([BugFix] Cast to the destination dtype in the scalar T.copy path #2771).== +1([Arith] Gate canonical-simplify LT Case 2 on extra scale == +1 #2649); vectorizedSelectconstraint handling fixed (#052e6741).TMA / copy / memory layout
st.bulkdestination emitted as a shared write to fix a missing barrier and compilation-introduced races ([Bugfix] Emit st.bulk destination as a shared write to fix missing barrier and potential compilation-introduced races #2700).increase_descriptor_offsetguard ([BugFix] Fix operator precedence in increase_descriptor_offset guard #2675).T.transposeswaps only the final two axes ([BugFix] Make T.transpose swap only the final two axes #2757); contracting shared-buffer layouts rejected inT.annotate_layout([BugFix] Reject contracting shared-buffer layouts in T.annotate_layout #2719); unused fragment buffers allowed without layouts ([TIR][Transform] Allow unused fragment buffers without layouts #2717); shared-TMEM buffer pointer types checked before dereference ([BugFix] Check shared-TMEM buffer pointer types before dereference #2794).Metal backend
vec_typeincommon.hfor CPU codegen ([BugFix] Add arithmetic operators to vec_type in common.h for CPU codegen #2768).Race analysis & warp-specialization
Bindmodeling fixed in parallel race checks ([TIR][Transform] Fix flat Bind modeling in parallel race checks #2665).T.serial([BugFix][WS] Fix pipeline replacement under persistent T.serial #2674).GEMM / misc compiler fixes
T.gemmrejected instead of silently producing wrong results ([BugFix] Reject uncovered warp partitions in T.gemm instead of producing silently wrong results #2724).DataTypeargs no longer break compilation on ROCm ([BugFix] Fix MFMA DataType args causing compilation failure on ROCm #2726).T.Kernel([BugFix] Reject non-positive thread extents in T.Kernel #2653).fragmentspelling corrected ([BugFix] Correct the spelling of fragment #2695);BufferStorecast warning context improved ([Cherry][TIRx] Improve BufferStore cast warning context #2733).Autotuning
pass_configssupported in autotuning ([Autotune] Support per-config pass_configs in autotuning #2496).None([BugFix] Fix segfault when tunable params default to None #2657).Examples
topk_selectormemory-access optimization with thread coarsening — ~1.9× faster with identical results ([Example][Opt] deepseek_v32 topk_selector kernel memory access optimization (~1.9× faster) #2659).T.mma_gemm_blockscaled([CUDA] Add SM120 NVF4 block-scale MMA support #2364).Full commit list
138 commits (click to expand)
What's Changed
T.__expmust compute ex, not 2x (docstring + CuTeDSL codegen) by @Hughshine in [Fix]T.__expmust compute e**x, not 2**x (docstring + CuTeDSL codegen) #2696T.atomic_max/atomic_minsilently corrupting fp32 values by @jjppp in [BugFix] Fix fp16/bf16T.atomic_max/atomic_minsilently corrupting fp32 values #2780New Contributors
Full Changelog: v0.1.12...v0.1.13
This discussion was created from the release v0.1.13.
All reactions