ONNX Runtime is an open source project that is designed to accelerate machine learning across a wide range of frameworks, operating systems, and hardware platforms. It enables acceleration of machine learning inferencing across all of your deployment targets using a single set of API. ONNX Runtime automatically parses through your model to identify optimization opportunities and provides access to the best hardware acceleration available.
-
+
ONNX Runtime also offers training acceleration, which incorporates innovations from Microsoft Research and is proven across production workloads like Office 365, Bing and Visual Studio.
+ At Microsoft, ONNX Runtime is used as the primary Machine Learning inferencing solution for products groups. ONNX Runtime serves over 1 trillion daily inferences across over 150 production models covering all task domains.
+
- ONNX Runtime abstracts custom accelerators and runtimes to maximize their benefits across an ONNX model. To do this, ONNX Runtime partitions the ONNX model graph into subgraphs that align with available custom accelerators and runtimes. When operators are not supported by custom accelerators or runtimes, ONNX Runtime provides a default runtime that is used as the fallback execution — ensuring that any model will run.
+ ONNX Runtime abstracts custom accelerators and runtimes to maximize their benefits across an ONNX model. To do this, ONNX Runtime partitions the ONNX model graph into subgraphs that align with available custom accelerators and runtimes. When operators are not supported by custom accelerators or runtimes, ONNX Runtime provides a default runtime that is used as the fallback execution — ensuring that any model will run. Learn more.
diff --git a/css/custom.css b/css/custom.css
index 3bc9a089fc..74b9bfd8d7 100644
--- a/css/custom.css
+++ b/css/custom.css
@@ -207,10 +207,18 @@ a.link:active .link-arrow{
height: 55px;
}
.customer-logo img{
- max-width: 100%;
- padding-right:20px;
- padding-left:20px;
-}
+ max-width: 100%;
+ padding-right:10px;
+ padding-left:10px;
+ padding-top:20px;
+ padding-bottom:20px;
+ }
+
+ .ms-logo img{
+ max-width: 100%;
+ padding-right:20px;
+ padding-left:20px;
+ }
div.customer-logo:hover{
diff --git a/docs/build/inferencing.md b/docs/build/inferencing.md
index 65b9196fc7..ed59e9c54c 100644
--- a/docs/build/inferencing.md
+++ b/docs/build/inferencing.md
@@ -161,21 +161,6 @@ Nuget packages are created under \nuget-artifacts
[Reduced Operator Kernel](./custom.md#reduce-operator-kernels) builds allow you to customize the kernels in the build to provide smaller binary sizes.
-### OpenMP (Deprecated)
-
-#### Build Instructions
-
-##### Windows
-
-```powershell
-.\build.bat --use_openmp
-```
-
-##### Linux/macOS
-
-```bash
-./build.sh --use_openmp
-```
### DebugNodeInputsOutputs
OnnxRuntime supports build options for enabling debugging of intermediate tensor shapes and data.
diff --git a/docs/execution-providers/index.md b/docs/execution-providers/index.md
index a6bfaf49aa..e4efeee9c8 100644
--- a/docs/execution-providers/index.md
+++ b/docs/execution-providers/index.md
@@ -28,12 +28,13 @@ ONNX Runtime supports many different execution providers today. Some of the EPs
|CPU|GPU|IoT/Edge/Mobile|Other|
---|---|---|---
-|Default CPU|[NVIDIA CUDA](../execution-providers/CUDA-ExecutionProvider.md)|[Intel OpenVINO](../execution-providers/OpenVINO-ExecutionProvider.md)|
-|[Intel DNNL](../execution-providers/oneDNN-ExecutionProvider.md)|[NVIDIA TensorRT](../execution-providers/TensorRT-ExecutionProvider.md)|[ARM Compute Library](../execution-providers/ACL-ExecutionProvider.md) (*preview*)|[Rockchip NPU](../execution-providers/RKNPU-ExecutionProvider.md) (*preview*)|
-|[TVM](../execution-providers/TVM-ExecutionProvider.md) (*preview*)|[DirectML](../execution-providers/DirectML-ExecutionProvider.md)|[Android Neural Networks API](../execution-providers/NNAPI-ExecutionProvider.md)|[Xilinx Vitis-AI](../execution-providers/Vitis-AI-ExecutionProvider.md) (*preview*)|
+|Default CPU|[NVIDIA CUDA](../execution-providers/CUDA-ExecutionProvider.md)|[Intel OpenVINO](../execution-providers/OpenVINO-ExecutionProvider.md)|[Rockchip NPU](../execution-providers/RKNPU-ExecutionProvider.md) (*preview*)|
+|[Intel DNNL](../execution-providers/oneDNN-ExecutionProvider.md)|[NVIDIA TensorRT](../execution-providers/TensorRT-ExecutionProvider.md)|[ARM Compute Library](../execution-providers/ACL-ExecutionProvider.md) (*preview*)|[Xilinx Vitis-AI](../execution-providers/Vitis-AI-ExecutionProvider.md) (*preview*)|
+|[TVM](../execution-providers/TVM-ExecutionProvider.md) (*preview*)|[DirectML](../execution-providers/DirectML-ExecutionProvider.md)|[Android Neural Networks API](../execution-providers/NNAPI-ExecutionProvider.md)||
|[Intel OpenVINO](../execution-providers/OpenVINO-ExecutionProvider.md)|[AMD MIGraphX](../execution-providers/MIGraphX-ExecutionProvider.md) (*preview*)|[ARM-NN](../execution-providers/ArmNN-ExecutionProvider.md) (*preview*)|
||[TVM](../execution-providers/TVM-ExecutionProvider.md) (*preview*)|[CoreML](../execution-providers/CoreML-ExecutionProvider.md) (*preview*)|
||[Intel OpenVINO](../execution-providers/OpenVINO-ExecutionProvider.md)|[TVM](../execution-providers/TVM-ExecutionProvider.md) (*preview*)|
+|||[Qualcomm SNPE](../execution-providers/SNPE-ExecutionProvider.md)
### Add an Execution Provider
diff --git a/docs/performance/tune-performance.md b/docs/performance/tune-performance.md
index 75f4b08238..3ba03f4414 100644
--- a/docs/performance/tune-performance.md
+++ b/docs/performance/tune-performance.md
@@ -166,12 +166,9 @@ Currently, there are no special provisions to employ mimalloc on Linux. It is re
### Thread management
-* If ORT is built with OpenMP, use the OpenMP environment variable to control the number of intra op num threads.
-* If ORT is not built with OpenMP, use the appropriate ORT API to control intra op num threads.
-* Inter op num threads (used only when parallel execution is enabled) is not affected by OpenMP settings and should
-always be set using the ORT APIs.
+* Use the appropriate ORT API to set intra and inter op num threads. Inter op num threads is only used when parallel execution is enabled.
-### Custom threading callbacks
+#### Custom threading callbacks
Occasionally, customers might prefer to use their own fine-tuned threads for multithreading,
hence ORT offers thread creation and joining callbacks in the [C++ API](https://github.com/microsoft/onnxruntime/blob/master/include/onnxruntime/core/session/onnxruntime_cxx_api.h):
@@ -514,13 +511,8 @@ Will be supported in future releases
## Troubleshooting performance issues
-The answers below are troubleshooting suggestions based on common previous user-filed issues and questions. This list is by no means exhaustive and there is a lot of case-by-case fluctuation depending on the model and specific usage scenario. Please use this information to guide your troubleshooting, search through previously filed issues for related topics, and/or file a new issue if your problem is still not resolved.
+Here is a list of things to check when assessing performance issues:
-### Performance Troubleshooting Checklist
-
-Here is a list of things to check when assessing performance issues.
-
-* Are you using OpenMP? OpenMP will parallelize some of the code for potential performance improvements. This is not recommended for running on single threads.
* Have you enabled all [graph optimizations](graph-optimizations.md)? The official published packages do enable all by default but when building from source, check that these are enabled in your build.
* Have you searched through prior-filed [GitHub issues](https://github.com/microsoft/onnxruntime/issues) to see if your problem has been discussed previously? Please do this before filing new issues.
* If using CUDA or TensorRT, do you have the right versions of the dependent libraries installed?
@@ -543,7 +535,7 @@ NCHW and NHWC are two different memory layout for 4-D tensors.
Most TensorFlow operations used by a CNN support both NHWC and NCHW data format. The TensorFlow team suggests that on GPUs NCHW is faster but on CPUs NHWC is sometimes faster in TensorFlow. However, ONNX only supports NCHW. As a result, if the original model is in NHWC format, extra transposes may be added when the model is converted. The [tensorflow-onnx](https://github.com/onnx/tensorflow-onnx) converter does remove many of these transposes, but if this doesn't help sufficiently, consider retraining the model in the NCHW format.
-### Mitigate high latency variance
+### I am seeing high latency variance
On some platforms, onnxruntime may exhibit high latency variance during inferencing. This is caused by the constant cost model that onnxruntime uses to parallelize tasks in the thread pool.
For each task, the constant cost model will calculate a granularity for parallelization among threads, which stays constant to the end of the task execution. This approach can bring imbalanced load sometimes, causing high latency variance.
diff --git a/images/logos/microsoft/azure.png b/images/logos/microsoft/azure.png
new file mode 100644
index 0000000000..26ce9f1b3a
Binary files /dev/null and b/images/logos/microsoft/azure.png differ
diff --git a/images/logos/microsoft/bing.png b/images/logos/microsoft/bing.png
new file mode 100644
index 0000000000..63c1a2f18b
Binary files /dev/null and b/images/logos/microsoft/bing.png differ
diff --git a/images/logos/microsoft/dynamics.png b/images/logos/microsoft/dynamics.png
new file mode 100644
index 0000000000..c2f0eadb22
Binary files /dev/null and b/images/logos/microsoft/dynamics.png differ
diff --git a/images/logos/microsoft/edge.png b/images/logos/microsoft/edge.png
new file mode 100644
index 0000000000..dfedbb4130
Binary files /dev/null and b/images/logos/microsoft/edge.png differ
diff --git a/images/logos/microsoft/office.png b/images/logos/microsoft/office.png
new file mode 100644
index 0000000000..e07443319d
Binary files /dev/null and b/images/logos/microsoft/office.png differ
diff --git a/images/logos/microsoft/powerplatform.png b/images/logos/microsoft/powerplatform.png
new file mode 100644
index 0000000000..8c174bf534
Binary files /dev/null and b/images/logos/microsoft/powerplatform.png differ
diff --git a/images/logos/microsoft/visualstudio.png b/images/logos/microsoft/visualstudio.png
new file mode 100644
index 0000000000..0be25e26e5
Binary files /dev/null and b/images/logos/microsoft/visualstudio.png differ
diff --git a/images/logos/microsoft/windows.png b/images/logos/microsoft/windows.png
new file mode 100644
index 0000000000..952833fabd
Binary files /dev/null and b/images/logos/microsoft/windows.png differ
diff --git a/ort-at-microsoft.html b/ort-at-microsoft.html
new file mode 100644
index 0000000000..b52805a767
--- /dev/null
+++ b/ort-at-microsoft.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+ ONNX Runtime | ORT at Microsoft
+
+
+
+
+
+
+
+
+
+ Skip to main content
+
+
+
+
+
+
+
+
+
+
+
ONNX Runtime usage at Microsoft
+ ONNX Runtime powers Machine Learning inferencing for most of Microsoft's products and services, providing high performance and deployment versatility to support a large range of device types across cloud, mobile, and edge.
+