ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Find a file
Jameson Miller 975bb56e8c
Eager mode - argmax_out: set output tensor (#12233)
This change updates the implementation or te argmax_out operator to 1)
set the output tensor correctly and 2) remove the unnecessary use of a
temporary tensor to store intermediate result of onnx ArgMax operation.

Previously, the argmax_out operator did not correctly update the out
tensor - it replaced the OrtValue instead of the memory backing the
OrtValue . To properly update the output tensor, we need to calculate
the expected shape of the out tensor.

We add the helper function calculate_reduction_shape to calculate the
shape of the reduced tensor from the input tensor, dimension to reduce,
and option to keep the reduced dimension or not. This is based on the
utility functions in aten/src/ATen/native/ReduceOpsUtils.h in the
PyTorch repository, but is tailored to be a bit more specific to our
current needs.

Notes:

We considered just directly leveraging PyTorch's utility functions (e.g.
get_reduction_shape) to calculate the shape of the reduced tensor from
aten/src/ATen/native/ReduceOpsUtils.h in the PyTorch repository, but
including this header file resulted in warnings around unused functions
that we need to handle. As we only need a limited functionality at the
moment, we instead implemented our own utility function to calculate the
reduction shape for our specific current needs. If we need a utility
function to more generally calculate the reduction shape, we could
consider switching to leveraging the utility methods in PyTorch.
2022-07-19 14:37:03 -04:00
.config A new pipeline to replace the existing WindowsAI packaging pipeline (#10646) 2022-03-03 08:56:49 -08:00
.gdn Update compliance tasks in python packaging pipeline and fix some compile warnings (#8471) 2021-07-30 17:16:37 -07:00
.github [TVM EP][CI] Integrate TVM EP into ORT public CI on Windows (#12161) 2022-07-18 11:12:16 +02:00
.pipelines DML EP Update to DML 1.9 (#12090) 2022-07-05 16:30:54 -07:00
.vscode Add python static type checking in CI checks (#11518) 2022-05-16 13:26:56 -07:00
cgmanifests [TVM EP] support build on Windows (#11851) 2022-07-13 10:48:42 +02:00
cmake [ROCM] Navi21 fixes pr (#11368) 2022-07-18 22:26:57 -07:00
csharp Add undocumented attribute to disable generation of Java bindings from the Android AAR. (#12075) 2022-07-05 10:29:32 -07:00
dockerfiles [EP-Perf] Install new wheel>=0.35.1 dependency (#11917) 2022-06-20 15:09:27 -07:00
docs [TVM EP] support build on Windows (#11851) 2022-07-13 10:48:42 +02:00
include/onnxruntime/core x86/64 U8S8 Gemm Precision Fix (#12088) 2022-07-13 10:12:25 -07:00
java [java] First part of the JNI error handling rewrite (#12013) 2022-07-12 15:16:54 -07:00
js [js/web] use windowed Chrome for perf mode (#12157) 2022-07-18 14:04:27 -07:00
objectivec Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
onnxruntime Fix GH issue 12208 (#12224) 2022-07-19 10:03:43 -07:00
orttraining Eager mode - argmax_out: set output tensor (#12233) 2022-07-19 14:37:03 -04:00
package/rpm Bump master version to 1.12 (#10797) 2022-03-28 12:30:11 -07:00
samples Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
tools Simplify get_docker_image.py (#12166) 2022-07-19 09:53:01 -07:00
winml Fix WinML Tests are still targetting deprecated (deleted) experimental signal op definitions (#12006) 2022-06-27 16:35:50 -07:00
.clang-format
.clang-tidy
.dockerignore
.flake8 Fix torch cpp ext build when CPU wheel is installed but GPU card is present (#11608) 2022-05-25 09:44:26 -04:00
.gitattributes
.gitignore Add python docstring linting in vscode settings (#11316) 2022-04-23 06:23:04 -07:00
.gitmodules [TensorRT EP] support TensorRT 8.4 (#11866) 2022-06-16 07:46:40 -07:00
build.amd64.1411.bat
build.bat
build.sh
CITATION.cff Fix CITATION.cff and add automatic validation of your citation metadata (#10478) 2022-04-13 10:03:52 -07:00
CODEOWNERS Update to use teams instead of individual GH handles (#11163) 2022-04-12 12:06:12 -07:00
CONTRIBUTING.md minor improvements to CONTRIBUTING doc (#11080) 2022-04-12 15:22:34 -07:00
lgtm.yml Add LGTM config for c++ and c# (#11365) 2022-04-27 10:51:40 -07:00
LICENSE Remove year from license (#6658) 2021-02-12 00:25:56 -08:00
NuGet.config
ort.wprp
ORT_icon_for_light_bg.png Update nuget icon (#10672) 2022-03-01 09:11:03 -08:00
packages.config DML EP Update to DML 1.9 (#12090) 2022-07-05 16:30:54 -07:00
pyproject.toml Add python static type checking in CI checks (#11518) 2022-05-16 13:26:56 -07:00
README.md Add OpenVINO Pipeline Status to README (#11299) 2022-04-21 15:59:50 -07:00
requirements-dev.txt Introduce parameterized as a dev dependency (#11364) 2022-04-26 17:24:39 -07:00
requirements-doc.txt Add auto doc gen for ORTModule API during CI build (#7046) 2021-03-22 10:20:33 -07:00
requirements-training.txt pin protobuf version to be compatible with onnx (#12132) 2022-07-08 15:01:27 -07:00
requirements.txt.in Add additional python requirements (#11522) 2022-05-20 16:16:18 -07:00
SECURITY.md Microsoft mandatory file (#11619) 2022-05-25 13:56:10 -07:00
setup.py List 3.10 as supported python version and remove 3.6 (#12141) 2022-07-12 15:28:30 -07:00
ThirdPartyNotices.txt add copyright (#9943) (#9970) 2021-12-08 14:34:53 -08:00
VERSION_NUMBER Bump master version to 1.12 (#10797) 2022-03-28 12:30:11 -07:00

ONNX Runtime is a cross-platform inference and training machine-learning accelerator.

ONNX Runtime inference can enable faster customer experiences and lower costs, supporting models from deep learning frameworks such as PyTorch and TensorFlow/Keras as well as classical machine learning libraries such as scikit-learn, LightGBM, XGBoost, etc. ONNX Runtime is compatible with different hardware, drivers, and operating systems, and provides optimal performance by leveraging hardware accelerators where applicable alongside graph optimizations and transforms. Learn more →

ONNX Runtime training can accelerate the model training time on multi-node NVIDIA GPUs for transformer models with a one-line addition for existing PyTorch training scripts. Learn more →

Get Started

General Information: onnxruntime.ai

Usage documention and tutorials: onnxruntime.ai/docs

Companion sample repositories:

Build Pipeline Status

System CPU GPU EPs
Windows Build Status Build Status Build Status
Linux Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Mac Build Status
Build Status
Android Build Status
iOS Build Status
WebAssembly Build Status

Data/Telemetry

Windows distributions of this project may collect usage data and send it to Microsoft to help improve our products and services. See the privacy statement for more details.

Contributions and Feedback

We welcome contributions! Please see the contribution guidelines.

For feature requests or bug reports, please file a GitHub Issue.

For general discussion or questions, please use GitHub Discussions.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

This project is licensed under the MIT License.