ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Find a file
Xinya Zhang bc353c7afe
Add FusedConv Op to ROCm (#11792)
* [ROCm] Add FusedConv Op.

* Enable ROCm for FusedConvTest

* [ROCm] Implement FusedConv Op. with Fusion API

The old code path was left as the fallback since some combinations are
not supported (e.g., FusedConvTest.Conv2D_Bias_Z_Relu as of ROCM 5.1,
where to bias layers are needed).

* [ROCM] Suppress duplicated warnings in unsupported Fusion API usage.

Know limitation for current MIOpen (verified with ROCM 5.2): Only one
bias layer may present in the Fusion Plan. Adding the second bias
operation to the Fusion plan will end up with miopenStatusUnsupportedOp.
In this case the fallback code path will be taken to complete required
FusedConv operation.

However, previously this failure was not detected and cached, and
applications that create multiple FusedConv Ops with both z and bias
will keep printing error messages, which is annoying to end users
while this message is mainly for developers.

This commit will let it print the first error message as a reminder, and
skip the Fusion API code path in following calls if both z and bias
present. (Note: the skipping applies to all newly created FusedConv Ops).

* [ROCM] Add cache mechanism for FusedConv Op.

Now the operator with the same configuration will share the same Fusion
Plan object, and the creation result will also be cached.

Two benefits:
1. No duplicated Fusion plan creation, which is a presumably very costly
process.
2. Failures due to MIOpen limitations (like z and b cannot present at
the same time) will only be triggered once.

Know limits:
Due to the limitation of MIOpen Interface, the tensor order of the
convolution operator can only be guessed.
2022-08-11 23:04:01 -07:00
.config A new pipeline to replace the existing WindowsAI packaging pipeline (#10646) 2022-03-03 08:56:49 -08:00
.devcontainer Remove two lines in the Dockerfile for Github Codespace (#12278) 2022-07-21 20:52:17 -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 [Java] JNI refactor for ONNX Tensor (#12281) 2022-08-08 12:48:30 -07:00
.pipelines DML EP Update to DML 1.9 (#12090) 2022-07-05 16:30:54 -07:00
.vscode cpplint & Eager mode: refactor and add comments to empty_* functions, general lint cleanup in ort_aten (#12238) 2022-07-20 11:47:57 -04:00
cgmanifests [xnnpack] basic QDQ operators support (#11912) 2022-08-11 10:12:51 +08:00
cmake [ROCm] NGramRepeatBlock, LongformerAttention and DecoderAttention Ops (#11971) 2022-08-11 19:32:08 -07:00
csharp Add MAUI csharp\sample\InferenceSample\ project (#12356) 2022-07-29 07:22:36 +10:00
dockerfiles [EP-Perf] Install new wheel>=0.35.1 dependency (#11917) 2022-06-20 15:09:27 -07:00
docs [Qlinearsoftmax] contrib cpu (#12177) 2022-08-10 10:52:02 +08:00
include/onnxruntime/core Remove CUDA 10.2 support (#12541) 2022-08-10 22:46:41 -07:00
java [Java] JNI refactor for ONNX Tensor (#12281) 2022-08-08 12:48:30 -07:00
js [js/node] upgrade terser version (#12351) 2022-08-02 15:50:44 -07:00
objectivec Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
onnxruntime Add FusedConv Op to ROCm (#11792) 2022-08-11 23:04:01 -07:00
orttraining Updating binary ops in eager mode to support broadcasting. (#12560) 2022-08-11 17:00:12 -04:00
package/rpm Bump ort version number (#11948) 2022-07-22 12:55:53 -07:00
samples Format all python files under onnxruntime with black and isort (#11324) 2022-04-26 09:35:16 -07:00
tools [ROCm] NGramRepeatBlock, LongformerAttention and DecoderAttention Ops (#11971) 2022-08-11 19:32:08 -07:00
winml Refactor InferenceSession Load member functions. (#12430) 2022-08-03 16:28:26 -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 Add codeowners for requirement files (#12512) 2022-08-09 09:46:47 -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 Reduce CI noise from Python lint (#12270) 2022-07-27 13:42:29 -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 Merge pull request #12056 from microsoft/bmeswani/merge-training_dev/on_device_poc 2022-07-21 15:09:48 -07:00
ThirdPartyNotices.txt add copyright (#9943) (#9970) 2021-12-08 14:34:53 -08:00
VERSION_NUMBER Bump ort version number (#11948) 2022-07-22 12:55:53 -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.