* 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> |
||
|---|---|---|
| .github | ||
| cgmanifests | ||
| cmake | ||
| csharp | ||
| dockerfiles | ||
| docs | ||
| include/onnxruntime/core | ||
| java | ||
| nodejs | ||
| onnxruntime | ||
| orttraining | ||
| package/rpm | ||
| samples | ||
| server | ||
| tools | ||
| winml | ||
| .clang-format | ||
| .clang-tidy | ||
| .dockerignore | ||
| .flake8 | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| build.amd64.1411.bat | ||
| build.bat | ||
| BUILD.md | ||
| build.sh | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| NuGet.config | ||
| ort.wprp | ||
| packages.config | ||
| README.md | ||
| requirements-dev.txt | ||
| requirements-doc.txt | ||
| requirements.txt | ||
| run_ortmodule_mvp_bert_finetuning.sh | ||
| run_ortmodule_mvp_lightning.sh | ||
| run_ortmodule_mvp_poc.sh | ||
| run_ortmodule_mvp_poc_deepspeed.sh | ||
| setup.py | ||
| ThirdPartyNotices.txt | ||
| VERSION_NUMBER | ||

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
Build Pipeline Status
| System | CPU | GPU | EPs |
|---|---|---|---|
| Windows | |||
| Linux | |||
| Mac | |||
| Android | |||
| iOS |
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.