ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Find a file
Sherlock 8e200e13fe
Rewrite ORTModule background task coordination (#6700)
* Introduce OrtTasks to replace EventPool

* return run_id to frontend

* pass run_id to backward

* OrtTasks support multiple bg_events

* make message_queue a member of orttask

* Replace MessageQueue with std::promise

* Move status_promise into Task

* Move terminate flag into Task

* Reenable previously disabled UTs

* Add unit tests

* Replace condition variables with std::promise

* Move to CreateBackgroundTask in the main thread

* return status and output in forward_future

* use throw for terminating background thread

* cleanup tasks at destructor

* reenable test_mixed_nnmodule_ortmodules_training

* add mutex for ORTTasks functions

* add mutex for bg_threads

* delay tests before start

* add ut for multi-task common backbone

Co-authored-by: Sherlock Huang <bahuang@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2021-02-24 18:00:25 -08:00
.github Don't mark issues that are marked as enhancement as stale (#6134) 2020-12-14 18:57:40 -08:00
cgmanifests Add python 3.8/3.9 support for Windows GPU and Linux ARM64 (#6615) 2021-02-11 16:43:35 -08:00
cmake Fix merge leftover 2021-02-17 11:58:06 -08:00
csharp Update packaging pipelines(#6664) 2021-02-17 09:53:36 -08:00
dockerfiles OpenVino add build_shared_lib flag in the build command (#6560) 2021-02-05 12:18:02 -08:00
docs Update links to gh-pages for ORT minimal documents (#6721) 2021-02-17 14:34:50 -08:00
include/onnxruntime/core Merge branch 'master' of https://github.com/microsoft/onnxruntime into mzs/sync-from-master 2021-02-18 03:03:01 +00:00
java Fix build.gradle so it always targets Java 8 class files. 2021-02-05 22:26:17 -08:00
nodejs [Node.js binding] update dependency typedoc (#6720) 2021-02-17 10:22:05 -08:00
onnxruntime Rewrite ORTModule background task coordination (#6700) 2021-02-24 18:00:25 -08:00
orttraining Rewrite ORTModule background task coordination (#6700) 2021-02-24 18:00:25 -08:00
package/rpm Update version to 1.6.0 (#6041) 2020-12-08 11:09:51 -08:00
samples Update torchtext usage for pytorch transformer sample (#6767) 2021-02-23 14:06:35 -08:00
server Remove nGraph Execution Provider (#5858) 2020-11-19 16:47:55 -08:00
tools Re-enable test and increase timeout (#6785) 2021-02-23 18:51:06 -08:00
winml Minor WinML model test skip name change 2021-02-17 14:27:58 -08:00
.clang-format
.clang-tidy
.dockerignore Update dockerfiles (#5929) 2020-11-25 15:38:22 -08:00
.flake8 Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
.gitattributes
.gitignore Enable the xcode build for Apple Silicon (arm64 MacOS) (#5924) 2020-11-30 11:22:08 -08:00
.gitmodules Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
build.amd64.1411.bat
build.bat
BUILD.md OpenVino add build_shared_lib flag in the build command (#6560) 2021-02-05 12:18:02 -08:00
build.sh
CODEOWNERS Update code owners for pytorch frontend team (#6329) 2021-02-02 11:09:10 -08:00
CONTRIBUTING.md Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
LICENSE Remove year from license (#6658) 2021-02-12 00:25:56 -08:00
NuGet.config Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
ort.wprp
packages.config Update DirectML 1.4.0 to 1.4.1 for ORT 1.7 (#6636) 2021-02-10 10:34:40 -08:00
README.md Update readme to reference docs webpage content (#6621) 2021-02-11 16:50:32 -08:00
requirements-dev.txt Sync ORTModule branch with master and fix tests (#6526) 2021-02-02 08:59:56 -08:00
requirements-doc.txt
requirements.txt
run_ortmodule_mvp_bert_finetuning.sh Refactor IObinding 2020-12-15 09:03:08 -08:00
run_ortmodule_mvp_lightning.sh Refactor device handling and basic support for PyTorch Lightning (#6758) 2021-02-24 14:12:55 -08:00
run_ortmodule_mvp_poc.sh Refactor device handling and basic support for PyTorch Lightning (#6758) 2021-02-24 14:12:55 -08:00
run_ortmodule_mvp_poc_deepspeed.sh Refactor device handling and basic support for PyTorch Lightning (#6758) 2021-02-24 14:12:55 -08:00
setup.py Add Python 3.9 to pypi metadata 2021-02-12 20:00:17 -08:00
ThirdPartyNotices.txt Merge CPU packaging pipelines (#6480) 2021-02-04 08:38:56 -08:00
VERSION_NUMBER Update version to 1.6.0 (#6041) 2020-12-08 11:09:51 -08:00

ONNX Runtime is a cross-platform inference and training machine-learning accelerator compatible with deep learning frameworks, PyTorch and TensorFlow/Keras, as well as classical machine learning libraries such as scikit-learn, and more.

ONNX Runtime uses the portable ONNX computation graph format, backed by execution providers optimized for operating systems, drivers and hardware.

Common use cases for ONNX Runtime:

  • Improve inference performance for a wide variety of ML models
  • Reduce time and cost of training large models
  • Train in Python but deploy into a C#/C++/Java app
  • Run with optimized performance on different hardware and operating systems
  • Support models created in several different frameworks

ONNX Runtime inference APIs are stable and production-ready since the 1.0 release in October 2019 and can enable faster customer experiences and lower costs.

ONNX Runtime training feature was introduced in May 2020 in preview. This feature supports acceleration of PyTorch training on multi-node NVIDIA GPUs for transformer models. Additional updates for this feature are coming soon.

Get Started

http://onnxruntime.ai/

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

Data/Telemetry

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.