Logistics for ONNX Release 1.16.0
Andreas Fehlner edited this page Mar 19, 2024
·
18 revisions
Release Manager: Charles Volzka
Target Release date: 03/25/2023
- 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
frommain
- 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
- 03/25 - create a pr to set VERSION_NUMBER content: 1.16.0 and merge to
-
ai.onnx
Opset 21- Update to support int4 and uint4:
- Update to support float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4 and uint4:
- Support blocked quantization. Support int4, uint4, int16, and uint16:
- Support bfloat16 and float16 scales. Support float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz quantized tensors:
- Add
stash_type
attribute to GroupNormalization and change input shape of scale and bias from (G) to (C).
-
ai.onnx.ml
Opset 5- Added new operator TreeEnsemble
- Deprecated TreeEnsembleClassifier and TreeEnsembleRegressor
- IR Version 10
- Added support for UINT4, INT4 types
- GraphProto, FunctionProto, NodeProto added
metadata_props
field - FunctionProto added
value_info
field
- Support registering custom
OpSchema
s via Python interface - Support Python 3.12
- C++17 now required to compile ONNX
Op Name | Description | Validation status | ONNX PR |
---|---|---|---|
None |
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 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 |
Op Name | Description | Validation status | ONNX PR |
---|---|---|---|
TreeEnsemble | Returns the regressed values for each input in a batch. Replaces deprecated TreeEnsembleClassifier and TreeEnsembleRegressor | #5874 |
Op Name | Description | Validation status | ONNX PR |
---|---|---|---|
TreeEnsembleClassifier | DEPRECATED - Use TreeEnsemble instead | #5874 | |
TreeEnsembleRegressor | DEPRECATED - Use TreeEnsemble instead | #5874 |
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 |
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 |
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 |
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 |
- 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.
- Use TreeEnsemble instead.
- Remove FormalParameter properties that were depreciated in ONNX 1.14 by 5074
- onnxruntime validated (https://github.com/microsoft/onnxruntime/pull/19745 Most CIs passed. CIs not passing are with known issues (mostly with non-implementation of new ops)
- pytorch validated (https://github.com/pytorch/pytorch/pull/121097])
- onnx-tensorflow https://github.com/onnx/onnx-tensorflow/issues/1068
- tensorflow-onnx https://github.com/onnx/tensorflow-onnx/issues/2318
- sklearn-onnx https://github.com/onnx/sklearn-onnx/issues/1083
- onnxmltools https://github.com/onnx/onnxmltools/issues/686
- onnx-tensort https://github.com/onnx/onnx-tensorrt/issues/958
- onnx-coreml this repo is archieved
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