NVIDIA/cuda-tile v13.4.0
NVIDIA/cuda-tile
Captured source
source ↗published Sep 10, 2026seen 2hcaptured 1hhttp 200method plain
v13.4.0: [Release] CUDA Tile IR 13.4.0
Repository: NVIDIA/cuda-tile
Tag: v13.4.0
Published: 2026-09-10T03:46:58Z
Prerelease: no
Release notes: This release is aligned with the CUDA Tile IR specification included in CUDA Toolkit 13.4.
*Supported Architectures*
- (Developer Preview) Added support for
sm_107(Rubin) architecture.
*New Operations*
- Added op
cuda_tile.fpowifor element-wise floating-point exponentiation with a signed-integer exponent. - Added op
cuda_tile.insertto insert a source subtile into a destination tile at a given subtile index. The source shape must evenly divide the destination shape. - Added op
cuda_tile.memory_fence_alias_tko, a token-ordered fence that orders operations accessing the same physical memory through different virtual aliases. - Added op
cuda_tile.gdc_launch_dependents_tkofor grid dependency control, signaling that programmatic-dependent-launch (PDL) dependent kernels may begin. It is a no-op belowsm_90. - Added op
cuda_tile.gdc_wait_tkofor grid dependency control, waiting for predecessor-kernel completion with acquire semantics. It is a no-op belowsm_90and pairs withcuda_tile.gdc_launch_dependents_tko.
*New Types and Attributes*
- (Developer Preview) Added the
f8E5M3FNU(8-bit floating-point) type. It is an alternative floating-point type intended for use as a block-scale type incuda_tile.mmaf_scaledwithf4E2M1FN(fp4) elements.
*Modified Operations*
- (Developer Preview) Modified op
cuda_tile.mmaf_scaledto add support forf4E2M1FNinputs withf8E5M3FNUscale factors accumulating tof32. - Modified op
cuda_tile.loopto support function return: acuda_tile.returnmay appear inside a loop body to return from the enclosing function. - Modified ops
cuda_tile.load_view_tkoandcuda_tile.store_view_tkoto add a newinboundsattribute so that programs can convey that accesses along specified dimensions are statically known to be in-bounds, allowing the compiler to skip bounds checking for those dimensions. Dimensions left unmarked default to conservative bounds checking, which matches the behavior of prior versions. - Modified op
cuda_tile.ftoito add an optional saturating modifier that clamps out-of-range values and convertsNaNto0. - Modified op
ftofto support a richer rounding-mode matrix, includingnearest_awayforf32totf32. - Renamed op
cuda_tile.powtocuda_tile.fpowf, complementing the new integer-exponentcuda_tile.fpowi.
*Compiler Improvements*
- Added opt-in compiler optimization remarks that identify selected load and store instructions and explain TMA instruction-selection failures. In this release they are emitted by
cuda-tile-optimizein verbose mode. - The Tile IR-level optimization pipelines in
cuda-tile-optimizenow apply canonicalization, common-subexpression elimination and loop-invariant code motion according to the selected optimization level. See documentation for further details.
*Documentation Improvements*
- Documented that the combiner function for
cuda_tile.reduceandcuda_tile.scanmust be commutative as well as associative. This was already required by the implementation, which may reorder the combine freely. - Added memory-alignment guidance for pointer loads, stores, atomic operations, and view accesses, including byte-alignment requirements for sub-byte element types.
- Clarified
cuda_tile.partition_viewandcuda_tile.strided_viewout-of-bounds semantics, distinguishing in-bounds view indices from partially out-of-bounds tiles and documenting load padding and store masking. - Clarified the
cuda_tile.tensor_viewmemory contract for 4-bit elements, including dense packing, byte-alignment requirements, and little-endian nibble order. - Expanded
cuda_tile.gather_scatter_viewdocumentation with sparse-dimension indexing rules and multidimensional gather, scatter, padding, and out-of-bounds examples. - Expanded optimization-hint reference documentation with per-operation and architecture-specific constraints.
*Fixed Issues*
- Fixed an
sm_120compiler crash when anf16constant was converted to an FP8 type withcuda_tile.ftofand the result was passed tocuda_tile.print_tko.
*Known Issues*
- A
cuda_tile.looporcuda_tile.foroperation may fail compilation or produce incorrect results when a tile produced by a load is carried between iterations. The issue may occur when the next iteration's tile is loaded before the carried tile's final use. As a workaround, place the next load after the carried tile's final use, or restructure the loop so the loaded tile is not carried between iterations. - Converting a
tf32tile loaded from global memory tof32may produce incorrect values if the lower 13 mantissa bits of any loaded value are nonzero. These bits do not affect MMA operations on the loaded tile. The issue becomes observable only after conversion tof32. As a workaround, ensure that the lower 13 mantissa bits of everytf32value loaded from global memory are zero.
*Open Source Release* The following changes are specific to the open-source release.
- Builds against LLVM
9ebb067a8a2b, which provides thef8E5M3FNUtype definitions and the publicMLIR_BINDINGS_PYTHON_EXTRA_*arguments foradd_mlir_python_modules. - Added attribute
ptr_attrto classifyptrvalues. - Fixed the
print_tkoexample in the README and added a test for it. Fixes #16.