ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Find a file
Changming Sun c716b56f26
Update C++ Standard from 14 to 17 (#8041)
Switched the code to C++17. To build ONNX Runtime on old distros like CentOS 7, you need to install a newer GCC from additionary repos. If you build onnxruntime with the newer GCC, typically the result binary can't be distributed to other places because it depends on the new GCC's runtime libraries, something that the stock OS doesn't have. But on RHEL/CentOS, it can be better. We use Red Hat devtoolset 8/9/10 with CentOS7 building our code. The new library features(like std::filesystem) that not exists in the old C++ runtime will be statically linked into the applications with some restrictions:

1. GCC has dual ABI, but we can only use the old one. It means std::string is still copy-on-write and std::list::size() is still O(n). Also, if you build onnxruntime on CentOS 7 and link it with some binaries that were built on CentOS 8 or Ubuntu with the new ABI and export C++ symbols directly(instead of using a C API), the it won't work.

2. We still can't use std::optional. It is a limitation coming from macOS. We will solve it when we got macOS 11 build machines. It won't be too long.

3. Please avoid to use C++17 in CUDA files(*.cu). Also, the *.h files that they include(like core/framework/float16.h). This is Because CUDA 10.2 doesn't support C++17. You are welcome to use the new features in any *.cc files.
2021-06-25 14:08:01 -07:00
.github Don't mark issues that are marked as enhancement as stale (#6134) 2020-12-14 18:57:40 -08:00
cgmanifests Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
cmake Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
csharp Enable TRT provider option configuration for C# (updated version) (#7808) 2021-06-25 03:21:22 -07:00
dockerfiles Update migraphx to rocm4.2 (#7994) 2021-06-22 13:39:51 -07:00
docs Adding optional ops in contrib ops (#7946) 2021-06-24 13:16:31 -07:00
include/onnxruntime/core Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
java [Java] Fixing the creation of OnnxTensors from scalars, adding tests (#8023) 2021-06-24 13:21:35 -07:00
js Adding optional ops in contrib ops (#7946) 2021-06-24 13:16:31 -07:00
objectivec [Objective-C API] Add support for documentation generation (#7999) 2021-06-11 17:49:00 -07:00
onnxruntime Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
orttraining Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
package/rpm bumping up version number to 1.8 (#7733) 2021-05-18 09:03:37 -07:00
samples Create ORT opschema library (#7903) 2021-06-14 14:02:33 -07:00
server fix boost download url (#7843) 2021-05-26 16:08:57 -07:00
tools Update C++ Standard from 14 to 17 (#8041) 2021-06-25 14:08:01 -07:00
winml Implement WINRT_IMPL_LoadLibraryW to avoid calling LoadLibraryW directly (#8065) 2021-06-22 14:31:20 -07:00
.clang-format Initial bootstrap commit. 2018-11-19 16:48:22 -08:00
.clang-tidy Add remaining build options and make minor changes in documentation (#39) 2018-11-27 19:59:40 -08:00
.dockerignore Update dockerfiles (#5929) 2020-11-25 15:38:22 -08:00
.flake8 Add ability to track per operator types in reduced build config. (#6428) 2021-01-29 07:59:51 +10:00
.gitattributes Initial bootstrap commit. 2018-11-19 16:48:22 -08:00
.gitignore Add auto doc gen for ORTModule API during CI build (#7046) 2021-03-22 10:20:33 -07:00
.gitmodules [wasm] emsdk: allow to install emscripten only (#7961) 2021-06-07 09:45:02 -07:00
build.amd64.1411.bat Initial bootstrap commit. 2018-11-19 16:48:22 -08:00
build.bat Initial bootstrap commit. 2018-11-19 16:48:22 -08:00
build.sh Add iOS test pipeline and a sample app. (#5298) 2020-09-29 13:53:11 -07:00
CODEOWNERS Add myself to CODEOWNERS for ORTModule python code (#7453) 2021-05-07 15:35:45 -07:00
CONTRIBUTING.md Add README for docs (#6626) 2021-03-12 15:14:40 -08: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 Add Tracelogging for profiling (#1639) 2019-11-11 21:34:10 -08:00
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 readme page (#7659) 2021-05-12 14:30:23 -07:00
requirements-dev.txt Add ability to track per operator types in reduced build config. (#6428) 2021-01-29 07:59:51 +10: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 missing Python dependencies for ORT training (#7104) 2021-03-23 18:43:19 -07:00
requirements.txt.in Chang how numpy version is handled. (#8130) 2021-06-23 14:08:37 -07:00
setup.py Chang how numpy version is handled. (#8130) 2021-06-23 14:08:37 -07:00
ThirdPartyNotices.txt ONNX Runtime React Native Library (#7564) 2021-05-11 10:34:40 -07:00
VERSION_NUMBER bumping up version number to 1.8 (#7733) 2021-05-18 09:03:37 -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

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
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.