Repository navigation
IREE v3.13.0 Release Notes
Release Candidate: iree-3.13.0rc20261016
PRs: 76 since v3.12.0
VMFB Bytecode Version: 17.0 (unchanged from v3.12.0)
HAL Module Version: 0.7 (unchanged from v3.12.0)
Breaking changes
- Textual IR syntax for op properties changed. The Codegen, VectorExt, Flow, HAL, LinalgExt, Stream, Util and VM dialects now use strict properties, so inherent op properties are written in
<...>instead of{...}, e.g.iree_codegen.inner_tiled ins(...) outs(...) <...> : .... Update hand-written IR and tuning specs that use the old form. #24983 - Scalable vectorization on LLVMCPU requires
--iree-llvmcpu-vscale-range. The range is recorded on the executable target. With+zvl*bfeatures, the larger of the two lower bounds is used. #24848 - CUDA targets default to newer PTX versions: 8.4 for sm_89, 8.7 for sm_120 and 8.8 for sm_121. sm_120 and sm_121 previously failed to compile at all. sm_89 now needs a driver that supports PTX 8.4 (CUDA 12.4).
--iree-cuda-target-featuresstill overrides the default. #24976 - Python
benchmark_moduleresults changed.user_counterswas replaced byBenchmarkResult.report, which holds the complete Google Benchmark JSON row with every user counter. Failures raiseBenchmarkToolError. #24985
Notable changes
Compiler
- Quantization:
- Dispatch creation: packed contractions fuse with their epilogues and unpack, contraction dimensions are normalized outside dispatches, and tensor encodings propagate outside dispatch regions. #24967, #24965, #24966
- Experimental dynamic compiler plugins load at runtime with
--iree-load-pluginorIREE_LOAD_PLUGINS(CMake optionIREE_EXPERIMENTAL_COMPILER_DYNAMIC_PLUGINS). Plugins need matching IREE and LLVM/MLIR revisions. An out-of-tree sample plugin was added. #24892, #24894, #24896 - CUDA: FP8
mma.synctranspose shapes are fixed. #25015 - CPU: RISC-V V f32
vfmacc.vfinner_tiled MMA. #24933 - StableHLO: dynamic ops with constant operands fold to static forms, and bounds encodings lower to
util.assume.int. #24938, #24939 - Compile time: fixed O(N²) scaling in Stream
partitionRegionConcurrency. #24958 - HAL: new
hal.command_buffer.flush_bufferandhal.command_buffer.invalidate_bufferops for non-coherent memory. Stream does not lower to them yet. #24945
Runtime
- VM: internal calls now preserve 64-bit arguments and results. Previously the high word could be dropped, which surfaced as out-of-range buffer bindings. #24946
- HAL:
- Vulkan: queue operations accept foreign semaphores, and a rejected
queue_deallocano longer clears the pending flag. #25010, #25003 - Parameters: parameter files can be loaded with asynchronous I/O, as an explicit opt-in. The existing mmap behavior is kept. #24988
- WebAssembly: f64 musl builtins for ONNX models were added, and async backend selection for Emscripten and wasm64 was fixed. #24953, #25042
Developer tools
iree-benchmark-module:- Bazel: Python bindings for the compiler, and IREE paths and labels now resolve in external consumers. #24980, #24977, #24981
New contributors
- @ayokunle321 made their first contribution in #24915
- @Prajit-Rahul made their first contribution in #24953
- @isa-Lai made their first contribution in #24958
- @snarang181 made their first contribution in #24976
- @rodburns made their first contribution in #24995
- @goutamadwant made their first contribution in #24992
- @liuyalong made their first contribution in #24949
- @purnima-nlp made their first contribution in #24945
- @smart-moomoo made their first contribution in #24727
Full changelog
Commit history: v3.12.0...v3.13.0
Release notes were AI-generated and edited.