onnxruntime/tools/python/util
Xavier Dupré e726151b5c
Introduce float 8 types (#14731)
### Description
The PR implements FloatE4M3FN, FloatE5M2, FloatE4MEFNUZ, FloatE5M2FNUZ
as described in PR https://github.com/onnx/onnx/pull/4805. It uses CUDA
API to cast float/half to float8 if CUDA>=11.8, a custom implementation
if CUDA<11.8.

* It implements, Cast, QuantizeLinear, DequantizeLinear for all types on
CPU, only for types FloatE4M3FN, FloatE5M2 on CUDA.
* It extends the supported types for control flow operator, Shape,
Reshape, Identity, If, Loop, Scan, Reshape
* It implements Equal(19).
* Cast, QuantizeLinear, DequantizeLinear operators now support a
parameter `saturate` only valid for float 8 types. It is true by
default. In that case, any value out of range is converted into the
maximum float 8 value. If false, it is infinite.
* QuantizeLinear, DequantizeLinear now supports multiple scales on CUDA
(and ROCm by extension), scale = 1D tensor with one scale per channel

### Motivation and Context
Supports latest onnx version.

Fixes
[AB#15395](https://aiinfra.visualstudio.com/6a833879-cd9b-44a4-a9de-adc2d818f13c/_workitems/edit/15395)

---------

Co-authored-by: Xavier Dupre <xadupre@microsoft.com@orttrainingdev8.d32nl1ml4oruzj4qz3bqlggovf.px.internal.cloudapp.net>
Co-authored-by: Randy Shuai <rashuai@microsoft.com>
Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
Co-authored-by: Scott McKay <Scott.McKay@microsoft.com>
2023-05-30 13:25:58 -07:00
..
android Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
mobile_helpers Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
ort_format_model Introduce float 8 types (#14731) 2023-05-30 13:25:58 -07:00
qdq_helpers Graph transformer to ensure unique DQ nodes for QDQ node units (#15145) 2023-03-31 08:39:43 +10:00
test Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
__init__.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
__init__append.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
check_onnx_model_mobile_usability.py Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
convert_onnx_models_to_ort.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
file_utils.py Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
get_azcopy.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
logger.py Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
make_dynamic_shape_fixed.py Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
onnx_model_utils.py Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
optimize_onnx_model.py Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
platform_helpers.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
pytorch_export_helpers.py Enable pylint and numpy rules (#15218) 2023-03-27 20:37:53 -07:00
reduced_build_config_parser.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
run.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
update_onnx_opset.py Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00