Releases: microsoft/onnxscript
Releases · microsoft/onnxscript
v0.5.6
What's Changed
Optimizer and rewriter
- Clear initializers in constant folding pass by @justinchuby in #2668
Full Changelog: v0.5.5...v0.5.6
v0.5.5
What's Changed
Breaking Changes
- Create initializers not constant nodes in constant folding pass by @titaiwangms in #2650
Core ONNX Script
- Add support for traced if statements in onnxscript script by @gramalingam in #2644
Optimizer and rewriter
- Add RMS Normalization rule variant by @gramalingam in #2638
- Extend GQA fusion for Qwen by @gramalingam in #2662
Torch Lib
- Unsqueeze unbatched input of avg_pool by @wodesuck in #2646
- Support math trunc by @titaiwangms in #2653
- [torchlib] Fix concat when input tensor has shape
(0,)by @justinchuby in #2661
Other Changes
- Extend GQA fusion for Gemma3 by @gramalingam in #2639
- Bump version to 0.5.5 by @titaiwangms in #2640
- Add Gemma3 GQA fusion test case by @gramalingam in #2642
- [Rewriter]: introduce remove_optional_bias by @AyoubMDL in #2635
- Add a verbose mode to torch api for external data save by @justinchuby in #2643
- [version converter] Fix DFT opset 20 by @titaiwangms in #2659
- Declare support for Python 3.14 in pyproject.toml by @justinchuby in #2663
Full Changelog: v0.5.4...v0.5.5
v0.5.4
What's Changed
Optimizer and rewriter
- Fix constant in constant folding by @titaiwangms in #2622
- Create helper for comparing semantic equivalence of shapes by @justinchuby in #2620
- Fix GQA fusion to produce present key/value by @justinchuby in #2634
Torch Lib
- Separated implementation of aten::scatter overloads by @linshokaku in #2605
- Enhanced type annotations and simplified implementation of scatter.value by @linshokaku in #2612
- support for scalar args to aten::scatter by @linshokaku in #2613
- [torchlib] Implement aten_bilinear function using Einsum by @Copilot in #2574
- Simplify aten_unbind when shape is static by @justinchuby in #2597
- Consolidate overloads in torchlib by @justinchuby in #2604
- [torchlib] Fix implementations for bitwise_* overloads by @justinchuby in #2618
- [torchlib] Deprecate Rank and IsScalar by @justinchuby in #2624
- [torchlib] Fix operator add by @justinchuby in #2630
- Remove redundant registration of operator::add and fix sub.Scalar by @justinchuby in #2631
Other Changes
- Update torch api error message to include value names by @justinchuby in #2599
- Remove beartype by @justinchuby in #2603
- Allow
opset_versionto be set explicitly when exporting by @NoRaincheck in #2615 - Merge shapes only in identity op and nodel-level shape inference by @titaiwangms in #2623
Full Changelog: v0.5.3...v0.5.4
v0.5.3
What's Changed
Optimizer and rewriter
- Fix Onnx 23 Rotary Fusion by @gramalingam in #2576
- Record names of contributing values in the constant folding pass by @justinchuby in #2575
- Merge output shape with input shape instead of override by @wodesuck in #2578
- Extend utilities for checking a scalar value by @gramalingam in #2587
- Merge input and output shape when removing identity by @wodesuck in #2588
- Add NaN handling in softmax pattern in SDPA fusion by @gramalingam in #2593
- Fix collapse slices rewrite rules to handle unknown dims by @justinchuby in #2583
- Expose the should_fold option to optimize() by @justinchuby in #2594
Torch Lib
- [torchlib] Add trace_only flag to aten_copy, aten_tril, aten_triu by @justinchuby in #2572
- [torchlib] Support integers in logical_and/or ops and update other logical ops by @justinchuby in #2582
- [torchlib] Add back operator and/or by @justinchuby in #2590
- Improve aten_floor_divide for int inputs by @justinchuby in #2592
Other Changes
- Remove usages of ir.Input in test by @justinchuby in #2591
New Contributors
Full Changelog: v0.5.2...v0.5.3
v0.5.2
What's Changed
Optimizer and rewriter
- [rewriter] Remove generic pattern matcher by @justinchuby in #2567
- Add GQA fusion to ONNX fusions by @gramalingam in #2524
Torch Lib
- [torchlib] Fix aten_gather to correctly handle scalar indices by @linshokaku in #2566
- [torchlib] Simplify linalg_vector_norm to remove the redundant Abs by @justinchuby in #2570
New Contributors
- @linshokaku made their first contribution in #2566
Full Changelog: v0.5.1...v0.5.2
v0.5.1
What's Changed
Optimizer and rewriter
- Remove CheckerPass from ort_fusion by @justinchuby in #2560
Other Changes
- Bump version from 0.5.0 to 0.5.1 by @justinchuby in #2559
- Use ir.val to replace ir.Input by @justinchuby in #2556
- chore(deps): bump ruff from 0.12.11 to 0.13.0 in /requirements/lintrunner by @dependabot[bot] in #2563
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
Breaking Changes
- Refactor rewrite rules into the rewriter.rules namespace by @justinchuby in #2531
- Update constant folding behavior for large tensors by @justinchuby in #2488
Optimizer and rewriter
- [Rewriter] Prevent out of range when matching node outputs by @iksnagreb in #2508
- Add RMS Normalization variant by @gramalingam in #2519
- [Optimizer] Fix reinterpretation of strings in _get_numpy_value by @iksnagreb in #2514
- Improve symbolic dim tracking by @gramalingam in #2520
- Remove function extraction in ONNX rotary embedding by @gramalingam in #2525
- [Optimizer] Avoid accessing None value in _process_constant_node by @iksnagreb in #2513
- Increase DEFAULT_CONSTANT_FOLD_INPUT_SIZE_LIMIT by @justinchuby in #2527
- [Rewriter(matmul_add_to_gemm)]: check shapes by @AyoubMDL in #2528
- Add ort-specific passes to ort_fusion by @titaiwangms in #2532
- [Reland] Update SplitToSequence in constant folding by @titaiwangms in #2544
- [Rewriter]: add fusion rules for successive Min/Max patterns by @AyoubMDL in #2500
- [rewriter] Unify reshape flatten ops by @Johansmm in #2518
- Do not try to fold op.SplitToSequence when split is
Noneby @titaiwangms in #2550 - [Rewriter] Add fuse batchnorm to default rules by @AyoubMDL in #2553
- Add Conv-Affine(Mul+Add) and hardswish fusion by @Stonesjtu in #2472
- Fix rewriter and CI tests for the latest onnx-ir version by @justinchuby in #2554
Torch Lib
- [torchlib] Modify aten_unbind to use None for split_sizes by @justinchuby in #2536
- [torchlib] Improve pixel_shuffle by @justinchuby in #2537
- [torchlib] Improve handling of SymInt[] by @justinchuby in #2522
- [torch] Fix incorrect Concat when processing dynamic paddings by @kistenklaus in #2540
- Add test for dynamic padding by @justinchuby in #2541
- [torchlib] Mark atan2 as trace_only and map NaN to 0 by @justinchuby in #2557
- [torchlib] Fix repeat_interleave when repeats is a symbolic tensor by @xadupre in #2548
- Support
enable_gqaand only support 4D Q, K, and V by @titaiwangms in #2558 - [torchlib] Implement torch.ops.prims.broadcast_in_dim.default by @Copilot in #2382
Other Changes
- chore(deps): bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #2517
- Generate opset24 ops by @justinchuby in #2523
- Disable unstable tests by @xadupre in #2512
- Bump version to 0.4.1 by @justinchuby in #2529
- More robust checks for FLOAT8E8M0 by @justinchuby in #2530
- chore(deps): bump ruff from 0.12.10 to 0.12.11 in /requirements/lintrunner by @dependabot[bot] in #2535
- Implements repeat_interleave by @xadupre in #2477
- Update onnx-weekly version to 1.20.0 by @justinchuby in #2545
- [Rewriter] Support specifying node name in rewrites by @AyoubMDL in #2474
- Bump version to 0.5.0 by @justinchuby in #2538
New Contributors
- @iksnagreb made their first contribution in #2508
- @kistenklaus made their first contribution in #2540
- @Stonesjtu made their first contribution in #2472
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
Breaking Changes
- Remove torchscript graph builder by @justinchuby in #2444
New Features
- [torch api] Create torch API for PyTorch 2.9 by @justinchuby in #2503
Optimizer and rewriter
- Expose match functionality of rewrite-rule by extracting base classes by @Copilot in #2447
- Implement MatchContext class for rewriter pattern matching by @Copilot in #2455
- [Rewriter] Implement value/node level checkers for pattern matching infrastructure by @Copilot in #2459
- fix: handling of default attrs in SimplifiedLayerNormalization + LayerNormalization🐛 by @KarelZe in #2396
- Add initial support for RotaryEmbedding fusion for onnx opset 23 by @gramalingam in #2450
- Attention mask for GQA fusion by @gramalingam in #2452
- Handle matching against None explicitly by @gramalingam in #2460
- [docs] Document rewriter pattern options by @Copilot in #2406
- Rename fusion files by @gramalingam in #2476
- [Rewriter] Add optimizer to fold Pad operators into Conv by @Johansmm in #2363
- MHA fusion cleanup by @gramalingam in #2481
- Remove double transpose flag in MHA fusion by @gramalingam in #2483
- Add reproduction test case for incorrect slice rewrite and add potential fix by @sebimarkgraf in #2478
- [ort_fusuion] Support fp16 in rms_norm fusion by @titaiwangms in #2491
- Introduce layer-norm fusion by @gramalingam in #2492
- Correctly create empty ints for Constant in rewriter by @justinchuby in #2497
- Add Erf-based Gelu fusion rule by @gramalingam in #2495
- Extend rewriter to handle subgraphs by @gramalingam in #2494
- Minor fix for getting function's graph by @gramalingam in #2504
- Fixes for when attr type can be ambiguous for empty lists by @justinchuby in #2505
Torch Lib
- [torchlib] Improve aten_chunk conversion by @justinchuby in #2469
- Make onnx export SDPA match aten behavior by @IlyasMoutawwakil in #2479
- Add condition to dropout and ref to isnan by @titaiwangms in #2482
- Support aten::scatter.src by @titaiwangms in #2490
Other Changes
- Update VERSION to 0.4.0 by @justinchuby in #2449
- Remove legacy_ir usage in testutil by @justinchuby in #2451
- Remove legacy ir by @justinchuby in #2456
- Remove DORT related tests since it was removed from PyTorch by @justinchuby in #2465
- Update requirements-ort-nightly.txt by @justinchuby in #2471
- Fix logic for converting np array to text by @justinchuby in #2470
- Add a test for boolean attention mask within SDPA by @titaiwangms in #2480
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #2484
- Use onnx-ir 0.1.7 by @justinchuby in #2509
- Minor fixes to onnx to onnxscript converter by @gramalingam in #2510
New Contributors
- @IlyasMoutawwakil made their first contribution in #2479
- @sebimarkgraf made their first contribution in #2478
Full Changelog: v0.3.2...v0.4.0
v0.3.2
What's Changed
Optimizer and rewriter
- Eliminate unnecessary ScatterND by @gramalingam in #2422
- Change loop order during rewrite by @gramalingam in #2427
- Cleanup elimination of redundant scatter-nd: consolidate rules and improve organization by @Copilot in #2426
- [pass][reland] Enable DeduplicateInitializersPass by @titaiwangms in #2429
- [Rewriter]: fuse successive Relu/Clip nodes by @AyoubMDL in #2410
- Add support for onnx fusions by @gramalingam in #2412
- Fix MatchResult.fail() call signature in redundant_scatter_nd.py by @Copilot in #2431
- A couple of minor fixes on rewrite rules by @gramalingam in #2432
- Reorder optimization passes by @gramalingam in #2433
- Cleanup uses of onnxscript.rewriter.pattern - export symbols from main module by @Copilot in #2437
- Improve redundant slice removal by @gramalingam in #2441
- Make TransposeIdentity more robust by @justinchuby in #2443
ONNX IR
- Use onnx_ir common passes by @justinchuby in #2420
- [pass] Enable DeduplicateInitializersPass by @titaiwangms in #2416
Torch Lib
- [torchlib] Fix sdpa dtype in attn_mask by @titaiwangms in #2445
Other Changes
- Update VERSION to 0.3.2 by @justinchuby in #2421
- Copilot instructions by @gramalingam in #2448
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
Breaking Changes
- [rewriter] Decouple llama rule sets and make API explicit by @copilot-swe-agent in #2388
Core ONNX Script
- Update autocast.py to fix attribute creation error by @justinchuby in #2365
Optimizer and rewriter
- SDPA fusion cleanup by @gramalingam in #2352
- Enable CSE in optimizer by @titaiwangms in #2361
- Test SDPA fusion via MHA by @gramalingam in #2366
- Always fold the
Transposenode in the constant folder by @justinchuby in #2355 - Fix fused matmul check/rewrite functions by @bmehta001 in #2331
- Cast-cast elimination by @gramalingam in #2368
- Re-enable fused matmul rules by @bmehta001 in #2370
- Fusion extensions to improve GQA fusion by @gramalingam in #2374
- fix: pattern match gelu from contrib and onnx ops🐛 by @KarelZe in #2364
- [Rewriter]: Add ∘ MatMul -> Gemm by @AyoubMDL in #2356
- Fixes to MHA fusion by @gramalingam in #2380
- fix: check for rank of bias in bias-gelu fusion🐛 by @KarelZe in #2393
- [torchlib] Implement aten__upsample_bicubic2d_aa and aten__upsample_bilinear2d_aa functions by @copilot-swe-agent in #2383
- Move gemm_to_matmul_add rule to ort fusion rules by @justinchuby in #2398
- Fix fusion ordering for partial rotary embedding by @gramalingam in #2402
- [optimizer] Replace value.nbytes with value.size by @titaiwangms in #2399
Torch Lib
- Add missing converter for _local_scalar_dense by @xadupre in #2367
- [torchlib] Unregister aten::max.other by @titaiwangms in #2377
- Support dynamic shapes for aten_unfold by @xenova in #2407
Documentation
- docs: cleanup documentation for function-based rewrites📄 by @KarelZe in #2359
- Updates to the rewriter tutorial by @gramalingam in #2397
- Add sphinx inter link to onnx_ir by @justinchuby in #2415
Other Changes
- Fix test names for pytest by @justinchuby in #2358
- Require onnx-ir 0.1.1 by @justinchuby in #2360
- [CI] Fix execnet.gateway_base.DumpError: can't serialize <class 'numpy.int64'> by @titaiwangms in #2379
- Move _c_api_utils.py to version_converter package by @copilot-swe-agent in #2401
- Fix proto handling in version converter by @justinchuby in #2411
- Add phi2/phi4 test cases for mha/gqa fusion by @gramalingam in #2409
- Update VERSION to 0.3.1 by @justinchuby in #2414
- Bump onnx ir requirement to 0.1.3 by @justinchuby in #2418
- Create torch_2_8 apis by @justinchuby in #2419
New Contributors
- @KarelZe made their first contribution in #2359
- @copilot-swe-agent made their first contribution in #2383
- @xenova made their first contribution in #2407
Full Changelog: v0.3.0...v0.3.1