What's Changed
- [release][Dont Squash] Update version to 0.24.0 and 0.25.0.dev on main branch by @ysh329 in #19446
- [Relax][Frontend] Add ParameterList and ParameterDict containers by @mshr-h in #19495
- [Relax][Frontend][TFLite] Add segment operator mappings by @Aharrypotter in #19491
- [BUGFIX][TIR] Skip bool-typed expressions in CSE by @tqchen in #19502
- [Relax][Frontend][TFLite] Add tests coverage for SPACE_TO_BATCH_ND and BATCH_TO_SPACE_ND by @rknastenka in #19499
- [BugFix][Relax] Fix scatter_elements and scatter_nd CUDA compilation by @as4230 in #19497
- [BugFix][Relax][ONNX] Resolve param Vars in Concat to handle mixed Shape/Tensor inputs by @swjng in #19498
- [Web] Add support for OPFS by @akaashrp in #19494
- [BugFix][Relax][Torch] Honor multi-axis dims in torch.flip converter by @swjng in #19511
- [BugFix][Relax][Torch] Honor
correctionin std/var converter by @swjng in #19512 - [BugFix][S-TIR] Wrap bare scalar bodies in DefaultGPUSchedule to avoid root-block crash by @swjng in #19514
- [Relax][TFLite] Add gather frontend expected IRModule tests by @weicheng-hsu in #19516
- [Relax][PyTorch] Fix segfault in from_exported_program when model uses index_put_ with tuple output by @cchung100m in #19488
- [Relax][Frontend][TFLite] Add Conv3D support by @weicheng-hsu in #19523
- [REFACTOR][IR] Remove dead AttrFunctor template by @tqchen in #19528
- [Relax][ONNX] Normalize negative indices before the take call for
Gatheroperator by @cchung100m in #19525 - [Relax][Frontend] Add TFLite Frontend Support for CONV_3D_TRANSPOSE by @weicheng-hsu in #19530
- [TIR] Add cooperative_tensor builtins and metal.cooperative_tensor storage scope by @oraluben in #19423
- [Relax][Frontend][TFLite] Add initial StableHLO builtin operator support by @Aharrypotter in #19536
- [Contrib] Fix CUDA contrib build after FFI/header cleanups by @MasterJH5574 in #19539
- [BugFix][Relax]: handle ONNX ScatterElements reduction by @THINKER-ONLY in #19527
- [Fix][Relax]: ONNX Clip NaN bounds and preserve input NaN (ORT parity) by @ConvolutedDog in #19535
- [Fix][CI]: remove astral-sh/setup-uv from lint workflow by @ConvolutedDog in #19554
- [Relax][ONNX] Set
max_output_boxes_per_classdefault value to 0 for NonMaxSuppression by @cchung100m in #19547 - [Relax][ONNX] Add ONNX Backend Tests for systematic frontend coverage by @Aharrypotter in #19515
- [Fix][Relax] Lower bool prod as logical all by @ConvolutedDog in #19557
- [Relax][ONNX] Prevent
Divdivide-by-zero crashes by @cchung100m in #19566 - [TIRx] Bringup TIRx Infrastructure by @spectrometerHBH in #19581
- [BugFix][Target][LLVM] Use libm for asin/acos instead of buggy inline Taylor by @swjng in #19567
- [RFC][CodeGen][CUDA]: Gate fast math intrinsic lowering behind target option by @ConvolutedDog in #19565
- [TVMScript] Handle undefined functions when dumping IRModule by @ConvolutedDog in #19583
- [BugFix][Target][LLVM] Route sinh/cosh/atan/asinh/erf through libm extern by @swjng in #19568
- [Relax][ONNX] Fix TopK scalar K extraction in from_onnx by @javierdejesusda in #19573
- [Relax][Frontend][TFLite] Support StableHLO region-based ops and multi-subgraph models by @Aharrypotter in #19587
- [ONNX] Add RMSNormalization converter for ONNX opset 23 by @q55180514 in #19590
- [BUILD] Modularize device runtime into per-backend DSOs by @tqchen in #19594
- [Relax] Normalize negative concat axis in ReorderPermuteDimsAfterConcat by @cchung100m in #19588
- [RPC][Tracker] Bound msg_size to MAX_TRACKER_MSG_BYTES to prevent unbounded buffer growth by @bl4cksku11 in #19586
- [CodeGen][CUDA] Move fast math intrinsic lowering option to PassContext by @tlopex in #19596
- [IR] Add annotations to Call nodes by @tlopex in #19597
- [REFACTOR][RELAX] Fold CalleeCollector into relax DeadCodeElimination by @tqchen in #19603
- [Relax][Frontend][TFLite] Support quantized TFLite import via QDQ decomposition by @Aharrypotter in #19538
- Fix PytestUnknownMarkWarning: Unknown pytest.mark.adreno_clml by @cchung100m in #19602
- [REFACTOR][IR] Cleanup attrs.h: drop NullValue, AttrsNodeReflAdapter, legacy BaseAttrsNode methods by @tqchen in #19607
- [Docs] Reorganize development guide content by @tlopex in #19606
- [REFACTOR] Move src/ir/script_printer.cc to src/script/printer/ by @tqchen in #19611
- [REFACTOR][IR] Phase out src/ir/structural_{hash,equal}.cc to tvm-ffi by @tqchen in #19613
- [REFACTOR][IR] Inline ApplyPassToFunction into relax decompose_ops, delete the util by @tqchen in #19612
- [REFACTOR][TIR][ARITH] Phase out ControlFlowGraph, NarrowPredicateExpression, and rename Simplify to StmtSimplify by @tqchen in #19604
- [REFACTOR][IR] Phase out class Integer and class Bool in Attrs and PassConfig by @tqchen in #19614
- [CMAKE][RUNTIME] Link tvm_rpc with all backend runtime libraries by @cbalint13 in #19617
- [REFACTOR][IR] attrs.h follow-up cleanup: drop legacy vtable / rename / phase out AttrFieldInfo by @tqchen in #19615
- [REFACTOR][TIR] Tie AnnotateDeviceRegions/SplitHostDevice/LowerDeviceKernelLaunch together by @tqchen in #19605
- [Relax][Frontend][TFLite] Support control-flow multi-subgraph operators by @Aharrypotter in #19616
- [Relax][Frontend][TFLite] Add UNIDIRECTIONAL_SEQUENCE_RNN converter by @LudovicoYIN in #19601
- [IR] Rename Call annotations to attrs by @tlopex in #19618
- [REFACTOR][RUNTIME] Phase out tvm::runtime::regex_match by @tqchen in #19620
- [REFACTOR][RUNTIME] Remove leftover microTVM/CRT crumbs by @tqchen in #19622
- [REFACTOR][RUNTIME] Relocate nvtx.h to tvm/support/cuda and make it header-only by @tqchen in #19621
- [REFACTOR][PYTHON] Lift compiler/CLI/process modules from tvm.contrib to tvm.support by @tqchen in #19624
- [REFACTOR][IR][FFI] Bump tvm-ffi (+ SEqHashDef migration) and phase out tvm/ir/repr.h by @tqchen in #19627
- [REFACTOR][IR] Inline ReplaceGlobalVars into AttachGlobalSymbol by @tqchen in #19625
- [BugFix][Vulkan][CodeGen] Change OpControlBarrier to AcquireRelease by @kistenklaus in #19619
- [REFACTOR][RUNTIME] Structural reorganization: locality moves for thread_map, texture, minrpc, disco, contrib by @tqchen in #19628
- [REFACTOR][PYTHON] Consolidate derived_object into tvm.ir.utils by @tqchen in #19630
- [CI] Remove tvm-lint from tvm-bot by @yongwww in #19629
- [REFACTOR][SCRIPT] tvmscript streamline: lift printer.h, restore one-way dep, migrate dialect config to extra_config by @tqchen in #19631
- [REFACTOR][ARITH] Phase out arith/scalable_expression; arith no longer proves over scalable vectors by @tqchen in #19638
- [Relax][Frontend][TFLite] Add REDUCE_WINDOW support by @THINKER-ONLY in #19637
- [Relax][Frontend][TFLite] Add RNN converter by @LudovicoYIN in #19632
- [REFACTOR][IR] Delete class Bool and class Integer boxed-type wrappers by @tqchen in #19636
- [Relax][Frontend][TFLite] Add LSTM and SVDF converter by @LudovicoYIN in #19633
- [Relax][Frontend][TFLite] Add TFLite Resource Variable and Static Hashtable Import Support by @Aharrypotter in #19639
- [TIRx] Fix stale Simplify import in lowering test by @tlopex in #19642
- [Relax][Frontend][TFLite] Support sequence LSTM and RNN operators by @LudovicoYIN in #19634
- [Relax][Frontend][TFLite] Support STABLEHLO_WHILE by @Aharrypotter in #19646
- [Fix] Stabilize layer_norm variance computation with two-pass reduction by @ConvolutedDog in #19643
- [Relax][IR] Skip in-place multiply when two operands are views of the same tensor by @ConvolutedDog in #19644
- [Relax][Frontend][TFLite] Support STABLEHLO_CUSTOM_CALL by @Aharrypotter in #19649
- [REFACTOR][PYTHON] Revisit lifted support modules from tvm.contrib by @cbalint13 in #19653
- [Relax][Frontend][TFLite] Add HASHTABLE_LOOKUP converter by @LudovicoYIN in #19654
- [Relax][Frontend][TFLite] Support STABLEHLO_RNG_BIT_GENERATOR by @Aharrypotter in #19651
- fix: Security Patch: Fix missing exported flag in AndroidManifest by @CodeMechanic-Bot in #19648
- [Relax][PyTorch] Cast non-bool inputs to bool in logical_not converter by @javierdejesusda in #19645
- [Web][COS] Persist URL→hash mapping across page loads by @tomayac in #19569
- [Fix][Relax] Support ND batched matmul chains in AdjustMatmulOrder pass by @ConvolutedDog in #19650
- [Relax][Frontend][TFLite] Add EMBEDDING_LOOKUP_SPARSE converter by @LudovicoYIN in #19652
- [CI] Add cibw-based wheel publishing to PyPI by @tlopex in #19656
- [TIRx] Post-bringup op-dispatch / codegen / TVMScript follow-ups by @spectrometerHBH in #19657
- [RPC] Import tvm.testing lazily in rpc.testing by @tlopex in #19658
- [CI] Wheel publishing follow-ups by @tlopex in #19659
- [REFACTOR][TIRX] Consolidate split host device stages by @tqchen in #19663
- [FFI][IR] Route JSON serialization through tvm-ffi by @tqchen in #19662
- [Relax][PyTorch] Decompose integer pow into repeated multiplication by @javierdejesusda in #19660
- [CI] Derive the version from Git tags via setuptools_scm by @tlopex in #19665
- [CI] Reformat the macOS repair-wheel-command as a multiline script by @tlopex in #19664
- [FFI][REFACTOR] Direct structural APIs to tvm-ffi by @tqchen in #19661
- [Arith] Memoize IntervalSet variable relaxation to avoid exponential blowup by @jinhongyii in #19670
- [Arith] Gate canonical-simplify LT Case 2 on extra scale == +1 by @jinhongyii in #19669
- [Relax][ONNX] Fix Cast operator float->int NaN/Inf handling by @cchung100m in #19626
- [TIRx] Update scoped ops and CUDA launch bounds by @spectrometerHBH in #19677
- [Relax][ONNX] Preserve NaN in Sign to align with ONNX Runtime by @cchung100m in #19674
- [Bump] tvm-ffi to 59da4c0 by @tqchen in #19681
- [Web] Add support for OPFS synchronous access handles and committed records by @akaashrp in #19673
- [Arith] Make Analyzer a tvm-ffi Object by @tlopex in #19675
- [RELEASE] Bump web npm version to 0.25.0 by @MasterJH5574 in #19684
New Contributors
- @weicheng-hsu made their first contribution in #19516
- @THINKER-ONLY made their first contribution in #19527
- @javierdejesusda made their first contribution in #19573
- @q55180514 made their first contribution in #19590
- @bl4cksku11 made their first contribution in #19586
- @kistenklaus made their first contribution in #19619
- @CodeMechanic-Bot made their first contribution in #19648
- @tomayac made their first contribution in #19569
Full Changelog: v0.24.0...v0.25.0.rc0