diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 601f0cea3e649..eeba2307ab6ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,9 +20,6 @@ New code *must* be accompanied by unit tests. # Build [Build](BUILD.md) -# Additional Documentation - * [Adding a custom operator](docs/AddingCustomOp.md) - # Coding guidelines Please see [Coding Conventions and Standards](./docs/Coding_Conventions_and_Standards.md) diff --git a/README.md b/README.md index 35ffd0f547a8f..3281f20320c86 100644 --- a/README.md +++ b/README.md @@ -2,34 +2,71 @@ [![Build Status](https://dev.azure.com/onnxruntime/onnxruntime/_apis/build/status/Microsoft.onnxruntime)](https://dev.azure.com/onnxruntime/onnxruntime/_build/latest?definitionId=1) -ONNX Runtime is the runtime for [ONNX](https://github.com/onnx/onnx). +# Introduction +ONNX Runtime is an open-source scoring engine for Open Neural Network Exchange (ONNX) models. -# Engineering Design -[Engineering Design](docs/HighLevelDesign.md) +ONNX is an open format for machine learning (ML) models that is supported by various ML and DNN frameworks and tools. This format makes it easier to interoperate between frameworks and to maximize the reach of your hardware optimization investments. Learn more about ONNX on [https://onnx.ai](https://onnx.ai) or view the [Github Repo](https://github.com/onnx/onnx). + +# Why use ONNX Runtime +## Run any ONNX model +ONNX Runtime provides comprehensive support of the ONNX spec and can be used to run all models based on ONNX v1.2.1 and higher. See ONNX version release details [here](https://github.com/onnx/onnx/releases). -# API -| API | CPU package | GPU package | +In order to support popular and leading AI models, the runtime stays up-to-date with evolving ONNX operators and functionalities. + +## Cross Platform +ONNX Runtime offers: +* APIs for Python, C#, and C +* Available for Linux, Windows, and Mac  + +See API documentation and package installation instructions [below](#Installation). + +## High Performance +You can use the ONNX Runtime with both CPU and GPU hardware. You can also plug in additional execution providers to ONNX Runtime. With many graph optimizations and various accelerators, ONNX Runtime can often provide lower latency and higher efficiency compared to other runtimes. This provides smoother end-to-end customer experiences and lower costs from improved machine utilization. + +Currently ONNX Runtime supports CUDA, MKL, and MKL-DNN for computation acceleration, with more coming soon. To add an execution provider, please refer to [this page](docs/AddingExecutionProvider.md). + +# Getting Started +If you need a model: +* Check out the [ONNX Model Zoo](https://github.com/onnx/models) for ready-to-use pre-trained models. +* To get an ONNX model by exporting from various frameworks, see [ONNX Tutorials](https://github.com/onnx/tutorials). + +If you already have an ONNX model, just [install the runtime](#Installation) for your machine to try it out. One easy way to operationalize the model on the cloud is by using [Azure Machine Learning](https://azure.microsoft.com/en-us/services/machine-learning-service). See a how-to guide [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-build-deploy-onnx). + +# Installation +## APIs and Official Builds +| API Documentation | CPU package | GPU package | |-----|-------------|-------------| | [Python](https://docs.microsoft.com/en-us/python/api/overview/azure/onnx/intro?view=azure-onnx-py) | [Windows](TODO)
[Linux](https://pypi.org/project/onnxruntime/)
[Mac](TODO)| [Windows](TODO)
[Linux](https://pypi.org/project/onnxruntime-gpu/) | -| [C#](docs/CSharp_API.md) | [Windows](TODO)| Not available | -| [C](docs/C_API.md) | [Windows](TODO)
[Linux](TODO) | Not available | +| [C#](docs/CSharp_API.md) | [Windows](TODO)
Linux - Coming Soon
Mac - Coming Soon| Coming Soon | +| [C](docs/C_API.md) | [Windows](TODO)
[Linux](TODO) | Coming Soon | -# Build -[Build](BUILD.md) +## Build Details +For details on the build configurations and information on how to create a build, see [Build ONNX Runtime](BUILD.md). -# Contribute -[Contribute](CONTRIBUTING.md) +## Versioning +See more details on API and ABI Versioning and ONNX Compatibility in [Versioning](docs/Versioning.md). -# Versioning -[Versioning](docs/Versioning.md) +# Design and Key Features +For an overview of the high level architecture and key decisions in the technical design of ONNX Runtime, see [Engineering Design](docs/HighLevelDesign.md). + +ONNX Runtime is built with an extensible design that makes it versatile to support a wide array of models with high performance. + +* [Add a custom operator/kernel](AddingCustomOp.md) +* [Add an execution provider](AddingExecutionProvider.md) +* [Add a new graph +transform](../include/onnxruntime/core/graph/graph_transformer.h) +* [Add a new rewrite rule](../include/onnxruntime/core/graph/rewrite_rule.h) + +# Contribute +We welcome your contributions! Please see the [contribution guidelines](CONTRIBUTING.md). -# Feedback - * File a bug in [GitHub Issues](https://github.com/Microsoft/onnxruntime/issues) +## Feedback +For any feedback or to report a bug, please file a [GitHub Issue](https://github.com/Microsoft/onnxruntime/issues). -# Code of Conduct +## Code of Conduct This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. # License -[LICENSE](LICENSE) +[MIT License](LICENSE)