onnxruntime/onnxruntime/python
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
..
backend Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
datasets Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
providers/tvm Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
tools Introduce float 8 types (#14731) 2023-05-30 13:25:58 -07:00
torch_cpp_extensions Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
training
__init__.py
_ld_preload.py
_pybind_state.py.in
exported_symbols.lst
numpy_helper.h
onnxruntime_collect_build_info.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
onnxruntime_inference_collection.py Introduce float 8 types (#14731) 2023-05-30 13:25:58 -07:00
onnxruntime_pybind.h
onnxruntime_pybind_exceptions.cc Run clang-format in CI (#15524) 2023-04-18 09:26:58 -07:00
onnxruntime_pybind_exceptions.h
onnxruntime_pybind_iobinding.cc Run clang-format in CI (#15524) 2023-04-18 09:26:58 -07:00
onnxruntime_pybind_mlvalue.cc
onnxruntime_pybind_mlvalue.h
onnxruntime_pybind_module.cc Expose build information in dynamic lib (#15643) 2023-04-28 21:57:31 -07:00
onnxruntime_pybind_ortvalue.cc Run clang-format in CI (#15524) 2023-04-18 09:26:58 -07:00
onnxruntime_pybind_schema.cc Fix issues on Windows for Vitis AI (#15810) 2023-05-04 14:42:19 -07:00
onnxruntime_pybind_sparse_tensor.cc
onnxruntime_pybind_state.cc New configuration to limit the arena extension (#15983) 2023-05-25 02:19:07 -07:00
onnxruntime_pybind_state.h
onnxruntime_pybind_state_common.cc
onnxruntime_pybind_state_common.h Remove onnxruntime_PYBIND_EXPORT_OPSCHEMA definition from onnxruntime (#15776) 2023-05-03 13:08:35 -07:00
onnxruntime_validation.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
pybind.def
version_script.lds
version_script_expose_onnx_protobuf.lds