ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Find a file
George Nash e8ba5145ce
Add Transpose, Reshape, Pow and LeakyRelu ops to DNNL execution provider (#9180)
* Transpose for DNNL EP

Transpose reorders the memory to the right format but has the wrong
dimentions and memory::format. So a new memory descriptor is created
that points to the reordered memory. However, that memory is in a
different location than the output expects.  An extra parameter was
added to the SetMemory to specify when memory must be copied if it is
output from the subgraph.

Signed-off-by: George Nash <george.nash@intel.com>

* Implementation of Reshape op for dnnl ep

Signed-off-by: George Nash <george.nash@intel.com>

* Add Pow op to dnnl execution provider

This Pow is limited; the exponent must be scaler or a one dimensional tensor
e.g. a tensor with only a single element. The exponent must also be a constant
initializer since it is only read when the primitive is created. OneDNN does
not have any way to change the exponent after the primitive is created.

The GraphViewer is now passed into the NodeCapability code since the GraphViewer
is needed to find out if an input is a constant initializer.

The unit tests for "Pow" did not make the exponent a constant initializer. To
help verify the dnnl execution providers Pow function a version of the Pow unit
tests was created for the DNNL execution provier that made the exponent a constant
initializer.

Signed-off-by: George Nash <george.nash@intel.com>

* Add LeakyRelu to DNNL execution provider

LeakyRelu was added to the dnnl elementwise ops.

In the elementwise op the GetAlpha method was modified
to take the default value for Alpha as a parameter instead
of reading it from a member varable. This felt like it would
be less likely to cause programer error.

Signed-off-by: George Nash <george.nash@intel.com>

* Switch dnnl_code_capability DataTypes from strings to enums

Signed-off-by: George Nash <george.nash@intel.com>

* Update DnnlSubgraphPrimitive.GetMemory function input

This updates the GetMemory member function to take DnnlTensor
instead of a string. This was done for two reasons.  Every
time the function was called it was always done using
DnnlTensor.Name() this will reduce the code repition. We never
called it using a saved string.

This also makes the function inputs more closely match the
GetMemoryAndReshape function. Making less differences between
member functions.

Signed-off-by: George Nash <george.nash@intel.com>
2021-10-13 10:20:07 -07:00
.gdn Update compliance tasks in python packaging pipeline and fix some compile warnings (#8471) 2021-07-30 17:16:37 -07:00
.github Update issue template to ask users to check known issues to avoid repetition. (#8288) 2021-07-02 15:36:14 -07:00
cgmanifests Fix to_dlpack Failure on PyTorch-1.10 (#9151) 2021-09-24 09:48:07 +08:00
cmake [js/web] Enable wasm profiling and preserve function names in profiling (#9314) 2021-10-11 22:04:50 -07:00
csharp #9182 removed the --is_store_build option but one place where that was used was missed. (#9219) 2021-09-29 09:28:31 -07:00
dockerfiles Update dockerfile readme (#9241) 2021-10-01 17:28:26 -07:00
docs Add same_shape case for BiasDropout (#9188) 2021-10-12 19:57:38 +08:00
include/onnxruntime/core Make onnxruntime::Status nodiscard (#9279) 2021-10-08 17:10:31 -07:00
java Fix Android build break after Virtual Environment update to 20210919 (#9163) 2021-09-23 10:07:18 -07:00
js [js/web] deduplicate test cases between opsets (#9327) 2021-10-12 22:37:19 -07:00
objectivec [Objective-C API] WIgnore clang documentation warnings from C/C++ header usage. (#9057) 2021-09-14 13:03:48 -07:00
onnxruntime Add Transpose, Reshape, Pow and LeakyRelu ops to DNNL execution provider (#9180) 2021-10-13 10:20:07 -07:00
orttraining fix a hardcode type (#9337) 2021-10-12 13:44:46 -07:00
package/rpm Bumping up to 1.10 (#9006) 2021-09-22 16:34:28 -07:00
samples Add Python checks pipeline (#7032) 2021-08-09 10:37:05 -07:00
server fix boost download url (#7843) 2021-05-26 16:08:57 -07:00
tools w (#9319) 2021-10-12 16:02:40 -07:00
winml Make onnxruntime::Status nodiscard (#9279) 2021-10-08 17:10:31 -07:00
.clang-format
.clang-tidy
.dockerignore Update dockerfiles (#5929) 2020-11-25 15:38:22 -08:00
.flake8 Add Python checks pipeline (#7032) 2021-08-09 10:37:05 -07:00
.gitattributes
.gitignore Add netstandard2.0 framework to nuget managed package. (#8960) 2021-09-04 08:01:46 +10:00
.gitmodules [js/web] update emsdk to v2.0.26 (#8653) 2021-08-26 15:31:34 -07:00
build.amd64.1411.bat
build.bat
build.sh Add iOS test pipeline and a sample app. (#5298) 2020-09-29 13:53:11 -07:00
CODEOWNERS Remove onnxruntime team from CODEOWNERS (#8954) 2021-09-09 15:26:59 -07:00
CONTRIBUTING.md fixed the link (#8757) 2021-08-18 11:45:42 -07:00
LICENSE Remove year from license (#6658) 2021-02-12 00:25:56 -08:00
NuGet.config Delete nuget extra configs (#6477) 2021-01-27 20:25:45 -08:00
ort.wprp
packages.config Update DirectML version to 1.5.1 and enable ARM/ARM64 builds with DML (#7511) 2021-04-30 00:49:30 -07:00
README.md Fix typo 2021-08-12 15:57:15 -07:00
requirements-dev.txt Add post-install command to build PyTorch CPP extensions from within onnxruntime package (#8027) 2021-06-28 18:11:58 -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 Add post-install command to build PyTorch CPP extensions from within onnxruntime package (#8027) 2021-06-28 18:11:58 -07:00
requirements.txt.in Chang how numpy version is handled. (#8130) 2021-06-23 14:08:37 -07:00
setup.py Implement FusedAdam for ORT adapted from DeepSpeed (#9266) 2021-10-05 20:50:34 -07:00
ThirdPartyNotices.txt Extend node debugging utilities to push tensors and node placement to SQL database (#8672) 2021-08-21 00:40:12 -07:00
VERSION_NUMBER Bumping up to 1.10 (#9006) 2021-09-22 16:34:28 -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.