Skip to content

Logistics for ONNX Release 1.16.0

Andreas Fehlner edited this page Mar 19, 2024 · 18 revisions

ONNX Release 1.16.0

Release Manager: Charles Volzka

Target Release date: 03/25/2023

Timetable (plan)

  • 02/19 - Create v1.16.0 release wiki with release schedule. (done)
  • 02/20 - merge https://github.com/onnx/onnx/pull/5959 (prepare for rel-1.16.0) (in progress)
  • 02/23 - Document key v1.16.0 changes for the release in this wiki. (done)
  • 02/26 - Cut the release branch named rel-1.16.0 from main
    • All PRs with 1.16 milestone must be validated and merged by this date.
    • Only bug / regression fixes allowed in rel-1.16.0 after branch cut
    • 02/26 - create a pr to set VERSION_NUMBER content: 1.16.0rc1 and merge to rel-1.16.0 branch
    • 02/26 - create a pr to bump VERSION_NUMBER to 1.17.0 in main branch
      • opset version will be bumped up once new/updated ops are added.
  • 02/27 - Create test packages for v1.16.0rc1
  • 03/06 - Create test packages for v1.16.0rc2
  • Once validation is completed: (dates tentative based validation completion)
    • 03/25 - create a pr to set VERSION_NUMBER content: 1.16.0 and merge to rel-1.16.0 branch
    • 03/25 - 1.16.0 Official Release

References

Changelog

Key Updates

New operators introduced in ai.onnx opset 21

Op Name Description Validation status ONNX PR
None

Operator updates in ai.onnx opset 21

Op Name Description Validation status ONNX PR
Cast Support int4 and uint4. #5811
CastLike Support int4 and uint4. #5811
Constant Support int4 and uint4. #5811
ConstantOfShape Support int4 and uint4. #5811
DequantizeLinear Support blocked quantization. Support int4, uint4, int16, and uint16. #5812 #5811 #5737
Identity Support int4 and uint4. #5811
If Support int4 and uint4. #5811
Loop Support int4 and uint4. #5811
Pad Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4 and uint4. #5811
QLinearMatMul Support bfloat16 and float16 scales. Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz quantized tensors. #5473
QuantizeLinear Support blocked quantization. Support int4, uint4, int16, and uint16. #5812 #5811
Reshape Support int4 and uint4. #5811
Scan Support int4 and uint4. #5811
Shape Support int4 and uint4. #5811
Size Support int4 and uint4. #5811
Squeeze Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4 and uint4. #5811
Transpose Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4 and uint4. #5811
Unsqueeze Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4 and uint4. #5811

Function updates in ai.onnx opset 21

Function Name Description Validation status ONNX PR
Flatten float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4, and uint4. #5811
GroupNormalization Add stash_type attribute and change input shape of scale and bias from (G) to (C) #5808

New operators introduced in ai.onnx.ml opset 5

Op Name Description Validation status ONNX PR
TreeEnsemble Returns the regressed values for each input in a batch. Replaces deprecated TreeEnsembleClassifier and TreeEnsembleRegressor #5874

Operator updates in ai.onnx.ml opset 5

Op Name Description Validation status ONNX PR
TreeEnsembleClassifier DEPRECATED - Use TreeEnsemble instead #5874
TreeEnsembleRegressor DEPRECATED - Use TreeEnsemble instead #5874

Bugfixes and infrastructure improvements

Description PR Status Notes
Enable empty list of values as attribute (#5559) 5559
Add backward conversions from 18->17 for reduce ops (#5606) 5606
DFT-20 version converter (#5613) 5613
Fix version-converter to generate valid identifiers (#5628) 5628
Reserve removed proto fields (#5643) 5643
Cleanup shape inference implementation (#5596) 5596
Do not use LFS64 on non-glibc linux (#5669) 5668
Drop "one of" default attribute check in LabelEncoder (#5673) 5673
TreeEnsemble base values for the reference implementation (#5665) 5665
Parser/printer support external data format (#5688) 5688
[cmake] Place export target file in the correct directory (#5677) 5677
Bump CMAKE_CXX_STANDARD as 17 globally (#5612) 5612
Fix shape inference for DequantizeLinear (#5709) 5709
Fix swapped version numbers in version converter (#5734) 5734
Expose LexicalScopeContext in checker.py (#5693) 5693
Create in-memory large models without serializing large initializers through protobuf (#5685) 5685
Define __all__ in onnx.reference (#5749) 5749
Add default for check_function & Use lexical_scope_ctx for readability (#5757) 5757
Make ReferenceEvaluator support ModelContainer (#5754) 5754
Fix reference implementation for loops with optional number of iterations (#5752) 5752
Print the actual and expected attribute types in checker (#5762) 5762
Resurrect check function context logic (#5778) 5778
Include pyi files in build (#5777) 5777
Fix conversion to zero for E4M3FNUZ and E5M2FNUZ (#5764) 5764
Support Unicode file paths when loading an ONNX file (#5806) 5806
Removed unused string_view include (#5813) 5813
Use mac-release 10.15 (#5820) 5820
fix: need setuptools>=64 for editable_mode (#5827) 5827
Process subgraphs in inliner (#5841) 5841
Enable unity(Jumbo) builds (#5768) 5768
Print tensor dtypes as strings in shape inference (#5856) 5856
Bump up IR_VERSION to 10 (#5860) 5860
Support Python 3.12 (#5743) 5743
Fix corner case where output size need to reduce by one in MaxPool (#5741) 5741
Bump Numpy minimal version to 1.20 (#5902) 5902
Fix endianness conversion in numpy_helper.to_array() (#5904) 5904
Add valueinfos field to FunctionProto (#5903) 5903
Remove deprecated properties from FormalParameter (#5921) 5921
Add proto support for overloaded functions (#5011) 5011
Add parser support for int4 types (#5934) 5934
Update proto to add metadata props (#5938) 5938
The latest Cmake 3.28.3 is failing with "Could NOT find Protobuf (missing: Protobuf_LIBRARIES)". Use Cmake 3.27.9 (#5951) 5951
Fix ReferenceEvaluator when run from a subclass (#5936) 5936
Support register custom OpSchema by python (#5906) 5936

Test improvements

Description PR Status Notes
Set tolerance for dft tests (#5623) 5623
Delete onnx/test/reference_evaluator_backend_test.py (#5667) 5667
Update reducesum test name - test name was duplicated (#5664) 5664
Remove global counters in tests (#5661) 5661
Add missing ReduceMax's empty set test (#5684) 5684
Skip ssd_mobilenet_v1 due to subgraph shape inference enhancement (#5700) 5700
Clean up backend tests for ONNX Runtime (#5814) 5814
Skip some int4 test with old numpy version (#5858) 5858

Documentation updates

Description PR Status Notes
Updated docs for DynamicQuantizeLinear to be consistent with reference implementation (#5603) 5603
Clarify cond to If must contain a single element (#5617) 5617
Update README.md (#5630) 5630
Fix affineGrid doc error - output shape shall has no 'C' in it (#5648) 5648
Use absolute link in README.md entirely (#5663) 5663
Reference implementation for TfIdfVectorizer supports string inputs (#5650) 5650
[Doc clarification] Added unidirectional text for LayerNorm (#5686) 5686
Add documentation for inliner (#5712) 5712
update release doc for tag creation (#5721) 5721
bump up VERSION_NUMBER to 1.16.0 (#5722) 5722
Doc: Add exception checks in check_model (#5736) 5736
Use docconvert to normalize docstring to Google style (#5580) 5580
Update diff2html to support dark theme when showing operator differences (#5795) 5795
Replace sanity with saftey for inclusive terminology (#5802) 5802
Fix reference implementation for nested local functions (#5817) 5817
Fix documentation in file *.proto about FLOAT8E5M2FNUZ (#5849) 5849
Increment year to 2024 in conf.py (#5855) 5855
Add perm length constraint in Transpose doc (#5857) 5857
Update sc-election-guidelines (Remove non existing Campaigning session) (#5797) 5797
Improve attribute docs formatting on the docs site (#5873) 5873
Fix label encoder definition in schema (#5863) 5863
Add badges to the README (#5928) 5928
Document UINT4, INT4 storage type (#5933) 5933
Update batchnorm documentation (number of outputs for training mode) (#5932) 5932
Q/DQ docs readability + 4bit info in onnx.proto (#5937) 5937

Security updates

Description PR Status Notes
Fix path sanitization bypass leading to arbitrary read 5917
Fix Out of bounds read due to lack of string termination in assert (#5918) 5918

Deprecation notice

  • C++14 is no longer supported for compling ONNX from source. Use C++17 instead #5612
  • TreeEnsembleClassifier and TreeEnsembleRegressor ai.onnx.ml operators have been deprecated.
  • Remove FormalParameter properties that were depreciated in ONNX 1.14 by 5074

Partner validation requests

Contributors

To get contributors:

  • Use script written by Aaron Bockover.
  • To generate an approximate list before the release branch is cut, use: --git-branch main --since-latest-tag instead.
    cd <ONNX_REPO_DIRECTORY>
    wget https://gist.github.com/abock/30fc4e8b1fd1e879e113597ff536aa35/raw/2b588790a5b8b2ba2bee047bc56fef8b2d378ae7/contributor-list.py
    GITHUB_TOKEN="YOUR_TOKEN" python contributor-list.py --github-repo-owner onnx --github-repo-name onnx --git-branch rel-1.16.0 --since-ref 
    v1.15.0
    

Thanks to these individuals for their contributions in this release since last 1.15.0 release:

Aditya Goel, Adrian Lizarraga, Andreas Fehlner, Charles Volzka, Daniel Richard G, Danni, G. Ramalingam, Gal Hubara-Agam, Ilya Lavrenov, Justin Chu, Tabari Alexander, Takeshi Watanabe, WORLD PEACE, Wouter Deconinck, Xavier Dupré, Yuan Yao, galagam, jslap-ubi, liqun Fu

Clone this wiki locally