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
- [Relax][PyTorch] Cast non-bool inputs to bool in logical_and converter by @javierdejesusda in #19679
- [CI] Remove PyPI-only tag ref guard from wheel publishing by @tlopex in #19685
- [CI] Target apache-tvm for PyPI wheel publishing by @tlopex in #19686
- [Web] Bump tvmjs version to 0.25.0-dev1 by @akaashrp in #19687
- [Fix] CommReduce could handle 0-dim data by @flashmouse in #19683
- [CI] Pin actions by version tag, trim wheel perms by @MasterJH5574 in #19703
- [Tests] Fix s_tir tests using removed T.block API in TIRx script by @tlopex in #19706
- [CI] Fix release verification script by @MasterJH5574 in #19700
- [Refactor][Meta-schedule] Remove meta-schedule as_string mechanism in favor of default representation by @tlopex in #19709
- [Python] Bump apache-tvm-ffi floor to >=0.1.12 by @MasterJH5574 in #19710
- [Relax][CoreML] Fix CoreML partition pass by @tlopex in #19711
- [Tests] Skip test modules cleanly when optional deps are missing by @tlopex in #19704
- [CI] Merge PR against its target branch instead of main by @MasterJH5574 in #19712
- [CI] Fix CI script test subprocess environment by @tlopex in #19713
- [Codegen][LLVM] Accept splat form in VLA broadcast test by @tlopex in #19716
- [DOCS] Clarify loading serialized artifacts requires a trusted source by @tqchen in #19720
- [REFACTOR][PYTHON] Slim tvm.libinfo to info-only helpers by @tqchen in #19719
- [Codegen][NVPTX] Skip runtime execution in Vulkan codegen tests by @tlopex in #19717
- [REFACTOR][PYTHON] Remove tvm.ffi shim; import tvm_ffi directly by @tqchen in #19721
- [Runtime][Tests] Fix contrib wheel tests by @tlopex in #19714
- [Tests][Disco] Skip CCL tests when runtime support is absent by @tlopex in #19724
- [Tests][Relax] Gate multi-GPU VM test on three devices by @tlopex in #19725
- [REFACTOR][IR] Phase out diagnostic.h for visit-context-aware pass errors by @tqchen in #19722
- [Tests][Hexagon] Lazily import pytest plugin dependencies by @tlopex in #19726
- [Python] Refactor pyproject.toml dependencies by @tlopex in #19723
- [Tests][NNAPI] Skip tests cleanly when remote environment is unavailable by @tlopex in #19730
- [Tests][S-TIR] Fix stale MetaSchedule sketch expectations and migrate let binds to T.let by @tlopex in #19729
- [Tests] Remove test_runtime_ndarray (covered by tvm-ffi) by @tlopex in #19715
- [TIRx] Preserve Triton call_kernel compile options by @tlopex in #19728
- [Relax][PyTorch][DLight] Fix exported-program CUDA test failures by @tlopex in #19732
- [PYTHON] Autoload backends; simplify library loading; remove TVMError for native errors by @tqchen in #19727
- [Script][Tests] Fix dialect redirect module re-execution and stray category-less tirx.intrin_test op by @tlopex in #19731
- [S-TIR][Tests] Fix transform test failures after TIRx bringup by @tlopex in #19735
- [TIRx] Use canonical PTX async script API in s_tir test by @tlopex in #19739
- [Tests] Check WebGPU volatile allreduce annotation structurally by @tlopex in #19740
- [S-TIR] Fix software pipeline offsets for legacy MMA intrinsics by @tlopex in #19742
- [Tests] Fix flaky popen pool executor test by @tlopex in #19746
- [Hexagon][Tests] Clean up stale hexagon tests by @tlopex in #19747
- [Runtime][Disco] Fix session attribute storage, NVSHMEM build, and test gating by @tlopex in #19736
- [CI] Align cuda-python with PyTorch cuda-bindings by @tlopex in #19738
- [Codegen][LLVM][Tests] Gate +v9a vscale_range expectation on LLVM version by @tlopex in #19744
- [Runtime][Tests] Drop int4 from random_fill test, fix dtype error message by @tlopex in #19748
- [Tests][LLVM] Gate stepvector intrinsic rename on LLVM 20 by @tlopex in #19745
- [S-TIR][Tests] Mark test_cp_async_in_if_then_else as xfail by @tlopex in #19751
- [CI] Run s_tir/transform tests in the python-unittest stage by @tlopex in #19737
- [CI] Updated cibw to 4.1.0 by @tlopex in #19754
- [TIRX][Tests] Fix LLVM version gate for vectorized lround by @tlopex in #19753
- [S-TIR][CUDA] Fix legacy predicated cp.async zero fill by @tlopex in #19741
- [Tests][AArch64] Make SVE codegen assertions robust across LLVM versions by @tlopex in #19752
- [Relax][PyTorch] Add logical_or and logical_xor converters by @javierdejesusda in #19756
- [TIRx] Post-bringup follow-ups: op-dispatch, namespaces, launch bounds, gemm-async, backend reorg by @spectrometerHBH in #19757
- [REFACTOR][VM] Move CUDA graph VM builtin back under VM runtime by @tqchen in #19758
- [Runtime][CoreML] Fix FFI casts in CoreML runtime by @tlopex in #19762
- [CI] Drop redundant cmake/ninja install from the Linux wheel CUDA sidecar by @tlopex in #19761
- [REFACTOR][DataType] Phase out target custom datatype support by @tqchen in #19760
- [REFACTOR][TARGET] Cleanup backend target registration by @tqchen in #19759
- [MetaScheduler] Improve print info about builder/runner state by @cbalint13 in #19767
- [REFACTOR][CUDA] Phase out l2 cache flush preproc test by @tqchen in #19768
- [Relax][ONNX] Fix LayerNormalization no-bias zero tensor shape and dtype by @javierdejesusda in #19772
- [Relax][ONNX] Support exclusive option in CumSum by @javierdejesusda in #19773
- [CPP_RPC] Bugfix race conditions and enhance print infos by @cbalint13 in #19778
- [CMAKE] Upgrade TVM build baseline to C++20 by @Ubospica in #19734
- [REFACTOR][CUDA] Phase out cuda_common.h by @tqchen in #19770
- [REFACTOR][PYTHON] Consolidate backend autoload infra by @tqchen in #19769
- [Fix] nn.attention support dynamic batch_size by @flashmouse in #19779
- [Relax][ONNX] Make ReduceMax/ReduceMin NaN propagation order-independent(numpy semantics) by @cchung100m in #19755
- [Docs][CI] Bump tlcpack-sphinx-addon to restore search result summaries by @tlopex in #19782
- [REFACTOR][IR] Cleanup IR naming utilities by @tqchen in #19781
- [CUDA] Narrow the cuda extra from cuda-python to cuda-bindings by @tlopex in #19784
- [AGENT] Migrate agent instructions to vendor-neutral layout by @tqchen in #19783
- [Tests] Modernize test gating by @tlopex in #19777
- [TIRX][CUDA] Framework support for FA4, CLC intrinsics, and nvfp4 tcgen05 GEMM by @spectrometerHBH in #19785
- [Relax][TensorRT] Update TensorRT runtime to 10 by @tlopex in #19789
- [Tests] Make TargetCreation.DeduplicateKeys host-agnostic on AArch64 by @tlopex in #19786
- [Tests] Replace remaining requires_* helpers with standard pytest by @tlopex in #19787
- [TIRx][RISC-V] Use scalable RVV loops for fixed vectorize by @ZephyrLi-pro in #19776
- [Docs] Modernize test-gating documentation by @tlopex in #19788
- [Web] Destroy GPUDevice once on buffer creation error by @guan404ming in #19790
- [REFACTOR] Phase out unused queue and rang license entries by @tqchen in #19794
- [REFACTOR][HEXAGON] Phase out Hexagon app and test wrappers by @tqchen in #19796
- [CI] Pin GitHub Actions to SHA for ASF INFRA compliance by @guan404ming in #19793
- refactor(web): use singular requestFileHandle() instead of requestFileHandles() by @tomayac in #19780
- [REFACTOR][IR] Simplify CallingConv attribute access by @tqchen in #19799
- [CI] Remove Jenkins PR linter step by @tqchen in #19798
- [Relax][Frontend][TFLite] Add support for FFT/complex operators: REAL, IMAG, COMPLEX_ABS by @fnhirwa in #19763
- [Tests][Refactor] Remove unused testing helpers by @tlopex in #19800
- [REFACTOR][TIRX] Add IntImm common scalar ctor and streamline MakeConst by @tqchen in #19797
- [Relax] Fix FuseOpsByPattern dropping bound constants on duplicate-structure functions by @tlopex in #19801
- [Tests] Migrate tvm.testing.parameters() to pytest.mark.parametrize by @tlopex in #19803
- [Tests] Remove the now-unused tvm.testing.parameters() helper by @tlopex in #19807
- [Tests] Drop tautological env-probe implication tests by @tlopex in #19811
- [Relax][TensorRT] Update BYOC operator converters from Relay to Relax by @tlopex in #19810
- [FIX][TIRX] Fix dangling Op static reference warning by @tqchen in #19806
- [Relax][Frontend][TFLite] Add RFFT2D op and supporting TIR kernels by @Aharrypotter in #19812
- [BUILD] Hide static linked library symbols in shared libs by @tqchen in #19817
- Preserve ONNX BatchNormalization inference mode by @yinli-systems in #19818
- [CI] Drop redundant conda LLVM install in GH Actions build by @tlopex in #19823
- [Tests] Inline thin gating helpers in the pytest plugin and tvm.testing.env by @tlopex in #19819
- [Relax][Frontend][NN] Fix SourceModule include resolution for installed wheels by @tlopex in #19822
- [ARITH] Add optional Z3-backed proving to Analyzer by @Ubospica in #19667
- [Relax][Frontend][TFLite] Add missing TFLite operator mappings by @Aharrypotter in #19813
- [Tests] Migrate off tvm.testing.parametrize_targets to native pytest by @tlopex in #19826
- [FFI][ABI] Bump tvm-ffi to latest by @tqchen in #19831
- [Relax][TensorRT] Add partition_for_tensorrt and a pattern table by @tlopex in #19820
- [Arith] Let IRMutatorWithAnalyzer take a const Analyzer& by @tlopex in #19829
- fix: Support 5D volumetric inputs in ONNX GridSample frontend converter by @mvanhorn in #19816
- [Tests] Remove dead helpers and unused probes from tvm.testing by @tlopex in #19821
- [Arith] Restrict floormod coefficient reduction to keep DetectIterMapstable by @tlopex in #19832
- [Web] Avoid redundant OPFS lookup on cache hit by @guan404ming in #19791
- [Docs] Rework Bring Your Own Codegen tutorial and add TensorRT example by @tlopex in #19839
- [Arith] Add Analyzer::Clone for deep-copying analyzer state by @tlopex in #19836
- [BUILD] Bump tvm-ffi after RuntimeTypeIndex optimization by @tqchen in #19834
- [CPP_RPC] Replace legacy OS-specific API with std:: libraries by @cbalint13 in #19840
- [Relax][ONNX] Preserve NaN in Relu to align with ONNX Runtime by @cchung100m in #19750
- [Relax] Fix matmul and reductions with zero-size dimension return uninitialized memory by @cchung100m in #19680
- [TIRx] Phase out flat device-intrinsic op aliases by @tlopex in #19838
- [BUILD] Sync fallback version strings to 0.26 dev cycle by @MasterJH5574 in #19845
- [Docker] Bump CI image deps: sphinx-book-theme + z3-static by @tlopex in #19835
- [Tests] Clean unused tvm.testing helpers by @tlopex in #19846
- [Relax][ONNX] Drop NaN-preservation isnan-where wrappers by @tlopex in #19847
- [Relax][ONNX] Accept 1-D scalar inputs in NonMaxSuppression by @guan404ming in #19843
- [Relax][PyTorch] Add atan2 converter by @javierdejesusda in #19850
- [REFACTOR][IR] Unify StructInfo and Type by @tqchen in #19853
- [Docs] Add TIRx documentation section by @spectrometerHBH in #19855
- [Metal] Enable Metal 4 shader compilation by @oraluben in #19595
- [Relax][Frontend][TFLite] Add explicit operator marker handling by @Aharrypotter in #19824
- [Relax][ONNX] Support align_corners in AffineGrid op by @guan404ming in #19864
- [REFACTOR][RELAX] Phase out Relax PrimType by @tqchen in #19858
- [REFACTOR][IR] Phase out Downcast usages by @tqchen in #19857
- [Relax] Legalize nn.dropout as inference no-op by @guan404ming in #19841
- [Docs][CI] Switch docs theme and bump images to 20260619-214849-4174cdf5 by @tlopex in #19828
- [Relax] Legalize dilated conv_transpose by @guan404ming in #19842
- [Relax] Update dropout call_tir out_ty spelling by @tqchen in #19874
- [Docs] Right-align documentation footer by @tlopex in #19868
- [Relax][TFLite] Add remaining operator tests and reverse_sequence op by @Aharrypotter in #19814
- [CI] Stop building ci_lint Docker image by @tlopex in #19872
- [DOCS] Align footer dropdown menu by @tlopex in #19876
- [Relax][Frontend][TFLite] Support dynamic RANGE scalar bounds by @Aharrypotter in #19867
- [Relax][Frontend][TFLite] Support static hashtable find by @Aharrypotter in #19879
- [REFACTOR][IR] Unify PrimExpr type mechanism to PrimType instead of DataType by @tqchen in #19875
- [DOCS] Add PyPI install guidance and update install command by @tlopex in #19883
- [REFACTOR][IR] Clean up PrimType follow-ups by @tqchen in #19884
- [TFLite] Use structural checks in frontend tests by @tlopex in #19888
- [CI][CMAKE] Install CUDA driver stub for libtvm_runtime_cuda by @MasterJH5574 in #19886
- [ARITH] Use IntImm in canonical scalar hot paths by @tqchen in #19885
- [REFACTOR][RELAX] Rename Relax base type to AnyType by @tqchen in #19889
- [Relax][Frontend][TFLite] Support dynamic DYNAMIC_UPDATE_SLICE starts by @Aharrypotter in #19881
- [CI] Remove retired ci_lint Docker files by @tlopex in #19878
- [TIRx] Replace vars in buffer strides and elem_offset by @guan404ming in #19871
- [TIRx][LLVM] Support scalable Ramp lowering by @ZephyrLi-pro in #19866
- [REFACTOR][Relax] Phase out PrimValue and Relax expression wrappers by @tqchen in #19891
- [Relax] Use optional dtype for absent Relax dtype fields by @tqchen in #19890
- [ONNX] Use structural checks for composite frontend tests by @tlopex in #19880
- [Frontend][ONNX] Fix structural tests for TVMScript checks by @tlopex in #19894
- [DOCS][TIRX] Add in-kernel profiling (CudaProfiler) tutorial by @spectrometerHBH in #19895
- [Relax][PyTorch] Add rnn_tanh.input converter by @cchung100m in #19837
- [DOCS] Refine tvm pypi wheel optional install guidance by @tlopex in #19892
- [TIRx] Bundle CUDA tile primitive and op dispatch updates by @spectrometerHBH in #19896
- [FFI] Bump tvm-ffi to latest June 28 by @tqchen in #19903
- [CI][Docker] Move CI images to Ubuntu 24.04 (noble) by @tlopex in #19893
- [Relax] Fix RemoveUnusedParameters symbolic var promotion by @MasterJH5574 in #19901
- [Relax] Fix int64 row index cast in GPU multinomial sampling by @MasterJH5574 in #19902
- [CI][Docker] Install libpolly-15-dev for noble llvm-15 static linking by @tlopex in #19913
- [DOCS] Refine footer navigation links by @tlopex in #19914
- [Relax] Clean up deprecated void-dtype sentinel usage by @guan404ming in #19908
- [Target][RISC-V] Use riscv_cpu device key for RISC-V target tags by @Ga1axy0 in #19915
- [TVMScript] Render invisible paths in structural diagnostics by @tqchen in #19916
- [Runtime][KVCache] Adapt FlashInfer attention backend to 0.6.3 by @MasterJH5574 in #19904
- [Relax][ONNX] Support 3D AffineGrid by @guan404ming in #19863
- [TIRx] Add a dedicated boolean buffer lowering pass by @guan404ming in #19873
- [ONNX] Fix missing helper in AffineGrid test by @tlopex in #19920
- [REFACTOR][IR] Unify PrimExpr with Expr typed view by @tqchen in #19910
- [TIRX] Remove SizeVar in favor of contextual constraints by @tqchen in #19930
- [TIRx] Generalize expression functor signatures by @tqchen in #19931
- [TIR] Construct proven scalar integer constants directly by @tqchen in #19934
- [IR][Relax] Include expression types in structural identity by @tqchen in #19933
- [FFI] Use thread-safe packed function initialization by @tqchen in #19939
- [CI] Batch Python unittest pytest targets into a single invocation by @tqchen in #19941
- [TEST] Serialize local GPU execution under pytest-xdist by @tqchen in #19942
- [REFACTOR][SCRIPT] Keep dependent shape recursion in docsifier by @tqchen in #19940
- Refactor Tensor arithmetic dispatch away from tirx.generic by @tqchen in #19943
- [TIRx] Phase out duplicate Var type_annotation by @tqchen in #19944
- [CI] Remove stale GitHub automation by @tqchen in #19946
- [CI] Simplify Jenkins pytest execution by @tqchen in #19947
- [CI] Restore dependabot configuration by @tqchen in #19951
- [Cleanup] Remove macOS Clang warnings by @tqchen in #19954
- [ARITH][TIR] Track positive loop extents in analyzer visitors by @tlopex in #19927
- [CI] Repair Python test cleanup regressions by @tqchen in #19955
- [FFI] Bump tvm-ffi for stable Optional layout by @tqchen in #19956
- [ARITH] Scope interval constraints to mapped variables by @tqchen in #19963
- Phase out Relax-specific Id aliases by @tqchen in #19959
- [Relax][PyTorch] Bind symbolic scalar inputs in from_fx by @guan404ming in #19964
- [Relax] Fix divide-by-zero in reshape pattern detection by @guan404ming in #19958
- [Relax][Frontend][ONNX] Add support for Pad mode="wrap" for opset 19 by @napronald in #19827
- [Relax][PyTorch] Fix masked_select VM build by @V-aerus in #19937
- [TIRx] Reuse pass-through input names for inverse index map vars by @guan404ming in #19906
- [Relax] Fix bucketize output dtype during legalization by @V-aerus in #19936
- [Metal] Let compile callback declare payload format via (payload, fmt) by @echuraev in #19924
- [Runtime] Fix CUDA build breaks in fp8 cutlass and thrust by @MasterJH5574 in #19980
- [Fix][Relax][ONNX] Import TopK indices as int64 by @viiccwen in #19973
- [Fix][Relax][ONNX] Cast BatchNorm params to input dtype by @viiccwen in #19979
- [Relax] Legalize shape_to_tensor to device kernel by @guan404ming in #19957
- [CI] Enable parallel GitHub Actions wheel builds by @tlopex in #19983
- [Relax][Frontend][ONNX] Add GroupNormalization support by @napronald in #19907
- [Fix] Add
originsoption torequestFileHandleby @tomayac in #19960 - [Relax][PyTorch] Use make_tensor in exported program tests by @mshr-h in #19989
- [Fix][Relax][TFLite] Use astype for frontend casts by @Aharrypotter in #19932
- [Fix][Python] Use standard scikit-build directory by @tlopex in #19990
- [Arith] Fix const-int-bound modular-set tightening for Mod/FloorMod by @sbinabdullah in #19978
- [Fix][Relax][PyTorch] Compare Dynamo output against PyTorch reference by @mshr-h in #19994
- [Fix][Relax][ONNX] Preserve rank-expanding Expand by @viiccwen in #19992
- [DLight][CUDA] Fix undefined TX in GEMV broadcast epilogue by @Nanmur in #19970
- [Relax][Frontend][ONNX] Support Modern QDQ opset attributes by @napronald in #19993
- [Fix][Relax][ONNX] Recover ConstantOfShape initializer shape by @viiccwen in #20002
- [CI] Bump CI at the Ubuntu 24.04 images and re-enable USE_Z3 by @tlopex in #19911
- [Tests][TIRx] Localize hardware test gates by @tlopex in #19985
- [RUNTIME][PYTHON] Add explicit Target device conversion by @tqchen in #20005
- [Fix][Relax][ONNX] Preserve integer Div truncation during import by @viiccwen in #19975
- [IR][Relax][TIRx] Unify Var identity by @tqchen in #20004
- [RELAX] Unify call_tir primitive arguments by @tqchen in #20009
- [Tests] Reduce runtime of slow Python tests by @tlopex in #20006
- [Fix][Relax][ONNX] Relax op normalization for onnx subgraphs by @cbalint13 in #20010
- [REFACTOR][IR] Use CamelCase Var copy helpers by @tqchen in #20008
- [REFACTOR] Remove redundant defensive code guaranteed by IR invariants by @tqchen in #20011
- [Tests][Frontend] Remove redundant ONNX and TFLite tests by @tlopex in #20012
- [Relax][TensorRT] Fix YOLO BYOC offload and partitioning gaps by @tlopex in #19998
- [Web] Link TVMFFIHandleInitOnce into WASM runtime by @akaashrp in #20020
- [REFACTOR][TIR] Phase out redundant TIRx attr names by @tqchen in #20017
- [IR] Rename Var name_hint field to name by @tqchen in #20016
- [TIRx] Introduce first-class Return statement by @tqchen in #20018
- [Tests][Frontend] Remove redundant PyTorch frontend tests by @tlopex in #20021
- [REFACTOR][TIR] Remove buffer type and axis separators by @tqchen in #20019
- [Tests] Update test_adaptive_pooling_window expected IR for const-int-bound fix by @sbinabdullah in #20023
- [S-TIR] Remove unused meta-schedule annotation constants by @tqchen in #20022
- [Fix][Relax][ONNX] Preserve ONNX Squeeze axes attribute for opset < 13 by @OmarAzizi in #19966
- [Relax][Frontend][ONNX] Support dynamic index for Gather on shape by @hamzaqureshi5 in #19968
- [Tests] Reduce redundant ONNX and PyTorch integration tests by @tlopex in #20026
- [REFACTOR][TIRx] Keep AttrStmt node values unboxed by @tqchen in #20030
- [CI] Bump tvm-ffi with compatible Python wrappers by @tqchen in #20032
- [Vulkan] Fix SPIR-V 1.4+ entry-point interfaces by @wilx in #20028
- [Web] Expose RNG state for deterministic restore by @akaashrp in #20034
- [TIRx] Improve BufferStore cast warning context by @tlopex in #20038
- [CI] Verify packed uint1 tvm-ffi revision by @tqchen in #20041
- [Relax] Legalize grouped conv with symbolic channels by @guan404ming in #20039
- [Fix][TIRx] Ignore statement spans in structural identity by @tlopex in #20043
- [Web] Link custom allocator into WASM runtime by @akaashrp in #20046
- [Relax][Frontend][ONNX] Support Shape start and end attributes by @napronald in #20050
- [Fix][LLVM] Keep packed init callbacks local on Mach-O by @akaashrp in #20052
- [Relax][Frontend][ONNX] Fix LpPool conversion by @napronald in #20053
- [Fix][Relax] Return frontend tensor dtype value by @akaashrp in #20051
- [Fix][TIRx] Handle vector access pointer addresses in C codegen by @tlopex in #20058
- [FIX][TIRx] Use cluster arrivals for remote mbarrier views by @jinhongyii in #20074
- [TVMSCRIPT][TIRx] Preserve parser source spans in IR by @jinhongyii in #20073
- [FIX][TIRx] Make TilePrimitiveCall serializable by @jinhongyii in #20071
- [FIX][TIRx] Preserve pointer expression types by @jinhongyii in #20070
- [FIX][TIRx] Remap buffers consistently in ConvertSSA by @jinhongyii in #20069
- [FIX][TIRx][CUDA] Fix tcgen05 register fragment layouts by @jinhongyii in #20068
- [FIX][TIRx] Constant-fold copy slice extents by @jinhongyii in #20067
- [FEATURE][TIRx][CUDA] Support TMEM datapath B by @jinhongyii in #20075
- [TIRX] Represent buffers as typed variables by @tqchen in #20079
- [Web] Batch GPU-to-GPU copies, fix WebGPU synchronization, and add tests for command batching by @akaashrp in #20059
- [TIRx] tcgen05 dispatch paths, buffer dim-surgery views, FlashMLA lowering, and typed-buffer migration fixes by @spectrometerHBH in #20080
- [TIRx] Flatten cuda/trn backend operator folder by @spectrometerHBH in #20081
- [FFI] Bump tvm-ffi to latest Aug 3 by @tqchen in #20083
- [BUILD] Migrate the Z3 dependency to mlc-z3-static by @Ubospica in #20084
- [Relax][Test] Cover default GPU pipeline scheduling for R.power/elementwise kernels by @cchung100m in #19923
- [FIX][TIRx] Use physical order for Buffer.local views by @jinhongyii in #20076
- feat(lower-tirx): align NVIDIA IKET profiling with the official ABI by @spectrometerHBH in #20085
- [FFI] Bump tvm-ffi to 0.1.13.post2 by @tqchen in #20088
- tirx: represent buffer parameters with BufferType by @tqchen in #20086
- [Web] Bump tvmjs version to 0.26.0 and apache-tvm-ffi floor to >=0.1.13.post2 by @MasterJH5574 in #20093
- [Fix][TIRx] Fix MSVC build of IndexDataTypeNormalizer by @MasterJH5574 in #20096
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
- @flashmouse made their first contribution in #19683
- @ZephyrLi-pro made their first contribution in #19776
- @yinli-systems made their first contribution in #19818
- @mvanhorn made their first contribution in #19816
- @Ga1axy0 made their first contribution in #19915
- @napronald made their first contribution in #19827
- @V-aerus made their first contribution in #19937
- @viiccwen made their first contribution in #19973
- @sbinabdullah made their first contribution in #19978
- @Nanmur made their first contribution in #19970
- @hamzaqureshi5 made their first contribution in #19968
- @wilx made their first contribution in #20028
Full Changelog: v0.24.0...v0.26.0.rc0