diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5bafa30d35da37..f9557603de5f06 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,8 +2,8 @@ ## How to contribute to the OpenVINO project -OpenVINO™ is always looking for opportunities to improve and your contributions -play a big role in this process. There are several ways you can make the +OpenVINO™ is always looking for opportunities to improve and your contributions +play a big role in this process. There are several ways you can make the product better. # Table of Contents @@ -15,32 +15,32 @@ product better. ### Provide Feedback - * **Report bugs / issues** - If you experience faulty behavior in OpenVINO or its components, you can + * **Report bugs / issues** + If you experience faulty behavior in OpenVINO or its components, you can [create a new issue](https://github.com/openvinotoolkit/openvino/issues) - in the GitHub issue tracker. + in the GitHub issue tracker. - * **Propose new features / improvements** + * **Propose new features / improvements** If you have a suggestion for improving OpenVINO or want to share your ideas, you can open a new - [GitHub Discussion](https://github.com/openvinotoolkit/openvino/discussions). - If your idea is already well defined, you can also create a + [GitHub Discussion](https://github.com/openvinotoolkit/openvino/discussions). + If your idea is already well defined, you can also create a [Feature Request Issue](https://github.com/openvinotoolkit/openvino/issues/new?assignees=octocat&labels=enhancement%2Cfeature&projects=&template=feature_request.yml&title=%5BFeature+Request%5D%3A+) In both cases, provide a detailed description, including use cases, benefits, and potential challenges. - If your points are especially well aligned with the product vision, they will be included in the - [development roadmap](./ROADMAP.md). + If your points are especially well aligned with the product vision, they will be included in the + development roadmap. User feedback is crucial for OpenVINO development and even if your input is not immediately prioritized, it may be used at a later time or undertaken by the community, regardless of the official roadmap. - + ### Contribute Code Changes - * **Fix Bugs or Develop New Features** - If you want to help improving OpenVINO, choose one of the issues reported in - [GitHub Issue Tracker](https://github.com/openvinotoolkit/openvino/issues) and - [create a Pull Request](./CONTRIBUTING_PR.md) addressing it. Consider one of the - tasks listed as [first-time contributions](https://github.com/orgs/openvinotoolkit/projects/3). - If the feature you want to develop is more complex or not well defined by the reporter, - it is always a good idea to [discuss it](https://github.com/openvinotoolkit/openvino/discussions) + * **Fix Bugs or Develop New Features** + If you want to help improving OpenVINO, choose one of the issues reported in + [GitHub Issue Tracker](https://github.com/openvinotoolkit/openvino/issues) and + [create a Pull Request](./CONTRIBUTING_PR.md) addressing it. If you want to start with something simple, + check out the [first-time contributions section](#3-start-working-on-your-good-first-issue). + If the feature you want to develop is more complex or not well defined by the reporter, + it is always a good idea to [discuss it](https://github.com/openvinotoolkit/openvino/discussions) with OpenVINO developers first. Before creating a new PR, check if nobody is already working on it. In such a case, you may still help, having aligned with the other developer. @@ -48,44 +48,44 @@ product better. You can build OpenVINO using the latest master branch and make sure that it still needs your changes. Also, do not address issues that only affect older non-LTS releases, like 2022.2. - * **Develop a New Device Plugin** + * **Develop a New Device Plugin** Since the market of computing devices is constantly evolving, OpenVINO is always open to extending - its support for new hardware. If you want to run inference on a device that is currently not supported, - you can see how to develop a new plugin for it in the + its support for new hardware. If you want to run inference on a device that is currently not supported, + you can see how to develop a new plugin for it in the [Plugin Developer Guide](https://docs.openvino.ai/canonical/openvino_docs_ie_plugin_dg_overview.html). - + ### Improve documentation - * **OpenVINO developer documentation** is contained entirely in this repository, under the + * **OpenVINO developer documentation** is contained entirely in this repository, under the [./docs/dev](https://github.com/openvinotoolkit/openvino/tree/master/docs/dev) folder. - * **User documentation** is built from several sources and published at - [docs.openvino.ai](https://docs.openvino.ai/), which is the recommended place for reading - these documents. Use the files maintained in this repository only for editing purposes. + * **User documentation** is built from several sources and published at + [docs.openvino.ai](https://docs.openvino.ai/), which is the recommended place for reading + these documents. Use the files maintained in this repository only for editing purposes. - * The easiest way to help with documentation is to review it and provide feedback on the - existing articles. Whether you notice a mistake, see the possibility of improving the text, - or think more information should be added, you can reach out to any of the documentation + * The easiest way to help with documentation is to review it and provide feedback on the + existing articles. Whether you notice a mistake, see the possibility of improving the text, + or think more information should be added, you can reach out to any of the documentation contributors to discuss the potential changes. - + You can also create a Pull Request directly, following the [editor's guide](./CONTRIBUTING_DOCS.md). ### Promote and Support OpenVINO - * **Popularize OpenVINO** - Articles, tutorials, blog posts, demos, videos, and any other involvement - in the OpenVINO community is always a welcome contribution. If you discuss + * **Popularize OpenVINO** + Articles, tutorials, blog posts, demos, videos, and any other involvement + in the OpenVINO community is always a welcome contribution. If you discuss or present OpenVINO on various social platforms, you are raising awareness of the product among A.I. enthusiasts and enabling other people to discover the toolkit. Feel free to reach out to OpenVINO developers if you need help with making such community-based content. - * **Help Other Community Members** - If you are an experienced OpenVINO user and want to help, you can always - share your expertise with the community. Check GitHub Discussions and - Issues to see if you can help someone. + * **Help Other Community Members** + If you are an experienced OpenVINO user and want to help, you can always + share your expertise with the community. Check GitHub Discussions and + Issues to see if you can help someone. ## Technical guide @@ -93,7 +93,7 @@ This section lists all the necessary steps required to set up your environment, Keep in mind that we are here to help - **do not hesitate to ask the development team if something is not clear**. Such questions allow us to keep improving our documentation. -### 1. Prerequisites +### 1. Prerequisites You can start with the following links: - [What is OpenVINO?](https://github.com/openvinotoolkit/openvino#what-is-openvino-toolkit) @@ -133,14 +133,21 @@ Choose the component your Good First Issue is related to. You can run tests to m ##### Tools - [Benchmark Tool](https://github.com/openvinotoolkit/openvino/tree/master/tools/benchmark_tool) -- [Model Optimizer](https://github.com/openvinotoolkit/openvino/tree/master/tools/mo) +- [OpenVINO Model Converter](https://github.com/openvinotoolkit/openvino/tree/master/tools/ovc) ##### Others - [Documentation](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_DOCS.md) ### 3. Start working on your Good First Issue -Use the issue description and locally built OpenVINO to complete the task. Remember that you can always ask users tagged in the "Contact points" section for help! You can also visit [Intel DevHub Discord server](https://discord.gg/7pVRxUwdWG) and ask questions in the channel dedicated to Good First Issue support. +To start contributing, pick a task from the [Good First Issues board](https://github.com/orgs/openvinotoolkit/projects/3). + +To be assigned to an issue, simply leave a comment with the `.take` command in the selected issue. +Use the issue description and build OpenVINO locally to complete the task. + +You can always ask users tagged in the "Contact points" section for help! +Visit [Intel DevHub Discord server](https://discord.gg/7pVRxUwdWG) and ask +questions in the channel dedicated to Good First Issue support. ### 4. Submit a PR with your changes @@ -152,5 +159,5 @@ We'll make sure to review your Pull Request as soon as possible and provide you ## License -By contributing to the OpenVINO project, you agree that your contributions will be +By contributing to the OpenVINO project, you agree that your contributions will be licensed under the terms stated in the [LICENSE](./LICENSE) file. diff --git a/README.md b/README.md index 7763d17f2f4e90..53016d9871605f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- + [![PyPI Status](https://badge.fury.io/py/openvino.svg)](https://badge.fury.io/py/openvino) [![Anaconda Status](https://anaconda.org/conda-forge/openvino/badges/version.svg)](https://anaconda.org/conda-forge/openvino) @@ -10,208 +10,124 @@ [![brew Downloads](https://img.shields.io/homebrew/installs/dy/openvino)](https://formulae.brew.sh/formula/openvino)
-## Contents: - - - [What is OpenVINO?](#what-is-openvino-toolkit) - - [Components](#components) - - [Supported Hardware matrix](#supported-hardware-matrix) - - [License](#license) - - [Documentation](#documentation) - - [Tutorials](#tutorials) - - [Products which use OpenVINO](#products-which-use-openvino) - - [System requirements](#system-requirements) - - [How to build](#how-to-build) - - [How to contribute](#how-to-contribute) - - [Get a support](#get-a-support) - - [See also](#see-also) - -## What is OpenVINO toolkit? - -OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference. - - Boost deep learning performance in computer vision, automatic speech recognition, natural language processing and other common tasks - - Use models trained with popular frameworks like TensorFlow, PyTorch and more - - Reduce resource demands and efficiently deploy on a range of Intel® platforms from edge to cloud - - -This open-source version includes several components: namely [OpenVINO Model Converter (OVC)], [OpenVINO™ Runtime], as well as CPU, GPU, NPU, multi device and heterogeneous plugins to accelerate deep learning inference on Intel® CPUs and Intel® Processor Graphics. -It supports pre-trained models from [Open Model Zoo], along with 100+ open -source and public models in popular formats such as TensorFlow, ONNX, PaddlePaddle, MXNet, Caffe, Kaldi. - -### Components -* [OpenVINO™ Runtime] - is a set of C++ libraries with C and Python bindings providing a common API to deliver inference solutions on the platform of your choice. - * [core](./src/core) - provides the base API for model representation and modification. - * [inference](./src/inference) - provides an API to infer models on the device. - * [transformations](./src/common/transformations) - contains the set of common transformations which are used in OpenVINO plugins. - * [low precision transformations](./src/common/low_precision_transformations) - contains the set of transformations that are used in low precision models - * [bindings](./src/bindings) - contains all available OpenVINO bindings which are maintained by the OpenVINO team. - * [c](./src/bindings/c) - C API for OpenVINO™ Runtime - * [python](./src/bindings/python) - Python API for OpenVINO™ Runtime -* [Plugins](./src/plugins) - contains OpenVINO plugins which are maintained in open-source by the OpenVINO team. For more information, take a look at the [list of supported devices](#supported-hardware-matrix). -* [Frontends](./src/frontends) - contains available OpenVINO frontends that allow reading models from the native framework format. -* [OpenVINO Model Converter (OVC)] - is a cross-platform command-line tool that facilitates the transition between training and deployment environments, and adjusts deep learning models for optimal execution on end-point target devices. -* [Samples] - applications in C, C++ and Python languages that show basic OpenVINO use cases. - -## Supported Hardware matrix - -The OpenVINO™ Runtime can infer models on different hardware devices. This section provides the list of supported devices. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DevicePluginLibraryShort Description
CPU Intel CPU - openvino_intel_cpu_pluginIntel Xeon with Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® Advanced Vector Extensions 512 (Intel® AVX-512), and AVX512_BF16, Intel Core Processors with Intel AVX2, Intel Atom Processors with Intel® Streaming SIMD Extensions (Intel® SSE), Intel® Advanced Matrix Extensions (Intel® AMX)
ARM CPU - openvino_arm_cpu_pluginARM CPUs with armv7a and higher, ARM64 CPUs with arm64-v8a and higher, Apple® Mac with Apple silicon -
GPUIntel GPUopenvino_intel_gpu_pluginIntel Processor Graphics, including Intel HD Graphics and Intel Iris Graphics
NPUIntel NPUopenvino_intel_npu_pluginIntel® Core™ Ultra Processors
- -OpenVINO™ Toolkit also contains several plugins which simplify loading models on several hardware devices: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PluginLibraryShort Description
Autoopenvino_auto_pluginAuto plugin enables selecting Intel device for inference automatically
Auto Batchopenvino_auto_batch_pluginAuto batch plugin performs on-the-fly automatic batching (i.e. grouping inference requests together) to improve device utilization, with no programming effort from the user
Heteroopenvino_hetero_pluginHeterogeneous execution enables automatic inference splitting between several devices
Multiopenvino_auto_pluginMulti plugin enables simultaneous inference of the same model on several devices in parallel
+Welcome to OpenVINO™, an open-source software toolkit for optimizing and deploying deep learning models. -## License -OpenVINO™ Toolkit is licensed under [Apache License Version 2.0](LICENSE). -By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms. +- **Inference Optimization**: Boost deep learning performance in computer vision, automatic speech recognition, generative AI, natural language processing with large and small language models, and many other common tasks. +- **Flexible Model Support**: Use models trained with popular frameworks such as TensorFlow, PyTorch, ONNX, Keras, and PaddlePaddle. +- **Broad Platform Compatibility**: Reduce resource demands and efficiently deploy on a range of platforms from edge to cloud. +- **Community and Ecosystem**: Join an active community contributing to the enhancement of deep learning performance across various domains. + +Check out the [OpenVINO Cheat Sheet](https://docs.openvino.ai/2024/_static/download/OpenVINO_Quick_Start_Guide.pdf) for a quick reference. + +## Installation -## Telemetry -OpenVINO™ collects software performance and usage data for the purpose of improving OpenVINO™ tools. This data is collected directly by OpenVINO™ or through the use of Google Analytics 4. -You can opt-out at any time by running the command: +[Get your preferred distribution of OpenVINO](https://docs.openvino.ai/2024/get-started/install-openvino.html) or use this command for quick installation: -``` bash -opt_in_out --opt_out +```sh +pip install openvino ``` -More Information is available at https://docs.openvino.ai/latest/openvino_docs_telemetry_information.html. +Check [system requirements](https://docs.openvino.ai/2024/about-openvino/system-requirements.html) and [supported devices](https://docs.openvino.ai/2024/about-openvino/compatibility-and-support/supported-devices.html) for detailed information. -## Documentation +## Tutorials and Examples -### User documentation +[OpenVINO Quickstart example](https://docs.openvino.ai/2024/get-started.html) will walk you through the basics of deploying your first model. -The latest documentation for OpenVINO™ Toolkit is available [here](https://docs.openvino.ai/). This documentation contains detailed information about all OpenVINO components and provides all the important information you may need to create an application based on binary OpenVINO distribution or own OpenVINO version without source code modification. +Learn how to optimize and deploy popular models with the [OpenVINO Notebooks](https://github.com/openvinotoolkit/openvino_notebooks)📚: +- [Create an LLM-powered Chatbot using OpenVINO](https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/llm-chatbot/llm-chatbot.ipynb) +- [YOLOv8 Optimization](https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/quantizing-model-with-accuracy-control/yolov8-quantization-with-accuracy-control.ipynb) +- [Text-to-Image Generation](https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/controlnet-stable-diffusion/controlnet-stable-diffusion.ipynb) -### Developer documentation +Here are easy-to-follow code examples demonstrating how to run PyTorch and TensorFlow model inference using OpenVINO: -[Developer documentation](./docs/dev/index.md) contains information about architectural decisions which are applied inside the OpenVINO components. This documentation has all necessary information which could be needed in order to contribute to OpenVINO. +**PyTorch Model** -## Tutorials +```python +import openvino as ov +import torch +import torchvision -The list of OpenVINO tutorials: +# load PyTorch model into memory +model = torch.hub.load("pytorch/vision", "shufflenet_v2_x1_0", weights="DEFAULT") -- [Jupyter notebooks](https://github.com/openvinotoolkit/openvino_notebooks) +# convert the model into OpenVINO model +example = torch.randn(1, 3, 224, 224) +ov_model = ov.convert_model(model, example_input=(example,)) -## Products which use OpenVINO +# compile the model for CPU device +core = ov.Core() +compiled_model = core.compile_model(ov_model, 'CPU') -- [OpenCV](https://opencv.org/) -- [ONNX Runtime](https://onnxruntime.ai/) -- [OpenVINO™ Integration with TensorFlow](https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/build/ovtfoverview.html) -- [TNN](https://github.com/Tencent/TNN/tree/master) +# infer the model on random data +output = compiled_model.infer_new_request({0: example.numpy()}) +``` -You can also check out [Awesome OpenVINO](https://github.com/openvinotoolkit/awesome-openvino) to see all the community-made projects using OpenVINO! +**TensorFlow Model** -## System requirements +```python +import numpy as np +import openvino as ov +import tensorflow as tf -The system requirements vary depending on platform and are available on dedicated pages: -- [Linux](https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-linux.html) -- [Windows](https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-windows.html) -- [macOS](https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-macos.html) +# load TensorFlow model into memory +model = tf.keras.applications.MobileNetV2(weights='imagenet') -## How to build +# convert the model into OpenVINO model +ov_model = ov.convert_model(model) -See [How to build OpenVINO](./docs/dev/build.md) to get more information about the OpenVINO build process. +# compile the model for CPU device +core = ov.Core() +compiled_model = core.compile_model(ov_model, 'CPU') -## How to contribute +# infer the model on random data +data = np.random.rand(1, 224, 224, 3) +output = compiled_model.infer_new_request({0: data}) +``` -See [Contributions Welcome](https://github.com/openvinotoolkit/openvino/issues/17502) for good first issues. +OpenVINO also supports CPU, GPU, and NPU devices and works with models in TensorFlow, PyTorch, ONNX, TensorFlow Lite, PaddlePaddle model formats. +With OpenVINO you can do automatic performance enhancements at runtime customized to your hardware (preserving model accuracy), including: +asynchronous execution, batch processing, tensor fusion, load balancing, dynamic inference parallelism, automatic BF16 conversion, and more. -See [CONTRIBUTING](./CONTRIBUTING.md) for contribution details. Thank you! +## OpenVINO Ecosystem -Visit [Intel DevHub Discord server](https://discord.gg/7pVRxUwdWG) if you need help or wish to talk to OpenVINO developers. You can go to the channel dedicated to Good First Issue support if you are working on a task. +- [🤗Optimum Intel](https://github.com/huggingface/optimum-intel) - a simple interface to optimize Transformers and Diffusers models. +- [Neural Network Compression Framework (NNCF)](https://github.com/openvinotoolkit/nncf) - advanced model optimization techniques including quantization, filter pruning, binarization, and sparsity. +- [GenAI Repository](https://github.com/openvinotoolkit/openvino.genai) and [OpenVINO Tokenizers](https://github.com/openvinotoolkit/openvino_tokenizers) - resources and tools for developing and optimizing Generative AI applications. +- [OpenVINO™ Model Server (OVMS)](https://github.com/openvinotoolkit/model_server) - a scalable, high-performance solution for serving models optimized for Intel architectures. +- [Intel® Geti™](https://geti.intel.com/) - an interactive video and image annotation tool for computer vision use cases. -## Take the issue -If you wish to be assigned to an issue please add a comment with `.take` command. +Check out the [Awesome OpenVINO](https://github.com/openvinotoolkit/awesome-openvino) repository to discover a collection of community-made AI projects based on OpenVINO! + +## Documentation -## Get support +[**User documentation**](https://docs.openvino.ai/) contains detailed information about OpenVINO and guides you from installation through optimizing and deploying models for your AI applications. -Report questions, issues and suggestions, using: +[**Developer documentation**](./docs/dev/index.md) focuses on how OpenVINO [components](./docs/dev/index.md#openvino-components) work and describes [building](./docs/dev/build.md) and [contributing](./CONTRIBUTING.md) processes. -* [GitHub* Issues](https://github.com/openvinotoolkit/openvino/issues) -* The [`openvino`](https://stackoverflow.com/questions/tagged/openvino) tag on StackOverflow\* -* [Forum](https://software.intel.com/en-us/forums/computer-vision) -* OpenVINO channels on the [Intel DevHub Discord server](https://discord.gg/7pVRxUwdWG) +## Contribution and Support + +Check out [Contribution Guidelines](./CONTRIBUTING.md) for more details. +Read the [Good First Issues section](./CONTRIBUTING.md#3-start-working-on-your-good-first-issue), if you're looking for a place to start contributing. We welcome contributions of all kinds! + +You can ask questions and get support on: + +* [GitHub Issues](https://github.com/openvinotoolkit/openvino/issues). +* OpenVINO channels on the [Intel DevHub Discord server](https://discord.gg/7pVRxUwdWG). +* The [`openvino`](https://stackoverflow.com/questions/tagged/openvino) tag on Stack Overflow\*. ## Additional Resources -* [OpenVINO Wiki](https://github.com/openvinotoolkit/openvino/wiki) -* [OpenVINO Storage](https://storage.openvinotoolkit.org/) -* Additional OpenVINO™ toolkit modules: - * [openvino_contrib](https://github.com/openvinotoolkit/openvino_contrib) -* [Intel® Distribution of OpenVINO™ toolkit Product Page](https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit.html) -* [Intel® Distribution of OpenVINO™ toolkit Release Notes](https://software.intel.com/en-us/articles/OpenVINO-RelNotes) -* [Neural Network Compression Framework (NNCF)](https://github.com/openvinotoolkit/nncf) - a suite of advanced algorithms for model inference optimization including quantization, filter pruning, binarization and sparsity -* [OpenVINO™ Training Extensions (OTE)](https://github.com/openvinotoolkit/training_extensions) - convenient environment to train Deep Learning models and convert them using OpenVINO for optimized inference. -* [OpenVINO™ Model Server (OVMS)](https://github.com/openvinotoolkit/model_server) - a scalable, high-performance solution for serving deep learning models optimized for Intel architectures -* [Computer Vision Annotation Tool (CVAT)](https://github.com/opencv/cvat) - an online, interactive video and image annotation tool for computer vision purposes. -* [Dataset Management Framework (Datumaro)](https://github.com/openvinotoolkit/datumaro) - a framework and CLI tool to build, transform, and analyze datasets. +* [Product Page](https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit.html) +* [Release Notes](https://docs.openvino.ai/2024/about-openvino/release-notes-openvino.html) +* [OpenVINO Blog](https://blog.openvino.ai/) +* [OpenVINO™ toolkit on Medium](https://medium.com/@openvino) + + +## License + +OpenVINO™ Toolkit is licensed under [Apache License Version 2.0](LICENSE). +By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms. --- \* Other names and brands may be claimed as the property of others. -[Open Model Zoo]:https://github.com/openvinotoolkit/open_model_zoo -[OpenVINO™ Runtime]:https://docs.openvino.ai/2024/openvino-workflow/running-inference.html -[OpenVINO Model Converter (OVC)]:https://docs.openvino.ai/2024/openvino-workflow/model-preparation.html#convert-a-model-in-cli-ovc -[Samples]:https://github.com/openvinotoolkit/openvino/tree/master/samples diff --git a/docs/dev/assets/openvino-logo-purple-black.svg b/docs/dev/assets/openvino-logo-purple-black.svg new file mode 100644 index 00000000000000..caef02a3a9bfd4 --- /dev/null +++ b/docs/dev/assets/openvino-logo-purple-black.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a2ad6ccc8a33a5a62f67d2bee37211e9e8998cacba9443c5799e5e1efb8ef68 +size 6804 diff --git a/docs/dev/index.md b/docs/dev/index.md index f5433a69d29afe..c21d0aa7924358 100644 --- a/docs/dev/index.md +++ b/docs/dev/index.md @@ -14,20 +14,20 @@ flowchart LR tf[("TensorFlow (*.pb)")] classDef blue3 fill:#0068B5, stroke: #004A86, color: #E9E9E9 class ir,onnx,paddle,tflite,tf blue3 - + click onnx "https://github.com/onnx/onnx" end - - mo{{Model Optimizer}} + + mo{{Model Converter}} classDef mos fill:#B1D272, stroke: #8BAE46, color: #000022 class mo mos - + onnx--convert--->mo paddle--convert--->mo tflite--convert--->mo tf--convert--->mo mo--->ir - + subgraph plugins [OV Plugins] auto(["AUTO"]) cpu(["Intel_CPU"]) @@ -52,9 +52,10 @@ flowchart LR onnx_fe--->openvino paddle_fe--->openvino tflite_fe--->openvino - + openvino--infer--->cpu openvino--infer--->gpu + openvino--infer--->npu openvino--infer--->auto classDef blue1 fill:#76CEFF, stroke: #00A3F6, color: #000022 class openvino blue1 @@ -67,7 +68,7 @@ flowchart LR * [Add new operation](../../src/core/docs/operation_enabling_flow.md) * [Add new conditional compilation](../../src/common/conditional_compilation/docs/develop_cc_for_new_component.md) * [Add new transformation](#todo) - * [Get code coverage report](./test_coverage.md) + * [Get code coverage report](./test_coverage.md) * [Add component developer documentation](./dev_doc_guide.md) * [Work with OpenVINO Public CI](./public_ci.md) * [OpenVINO contributing guidelines](../../CONTRIBUTING.md) @@ -75,7 +76,7 @@ flowchart LR ## OpenVINO Repository Structure -The repository is organized in such a way that the components contain all dependencies (for example, third-party, tests, documentation, and others). +The repository is organized in such a way that the components contain all dependencies (for example, third-party, tests, documentation, and others). The OpenVINO Repository includes the following components. Click on the component name to get more information:
@@ -95,13 +96,30 @@ The OpenVINO Repository includes the following components. Click on the componen
  
 
-### OpenVINO Component Structure +### OpenVINO Components + +OpenVINO Components include: + + * [OpenVINO™ Runtime](https://docs.openvino.ai/2024/openvino-workflow/running-inference.html) - is a set of C++ libraries with C and Python bindings providing a common API to deliver inference solutions on the platform of your choice. + * [core](./src/core) - provides the base API for model representation and modification. + * [inference](./src/inference) - provides an API to infer models on the device. + * [transformations](./src/common/transformations) - contains the set of common transformations which are used in OpenVINO plugins. + * [low precision transformations](./src/common/low_precision_transformations) - contains the set of transformations that are used in low precision models + * [bindings](./src/bindings) - contains all available OpenVINO bindings which are maintained by the OpenVINO team. + * [c](./src/bindings/c) - C API for OpenVINO™ Runtime + * [python](./src/bindings/python) - Python API for OpenVINO™ Runtime +* [Plugins](./src/plugins) - contains OpenVINO plugins which are maintained in open-source by the OpenVINO team. For more information, take a look at the [list of supported devices](#supported-hardware-matrix). +* [Frontends](./src/frontends) - contains available OpenVINO frontends that allow reading models from the native framework format. +* [OpenVINO Model Converter (OVC)](https://docs.openvino.ai/2024/openvino-workflow/model-preparation.html) - is a cross-platform command-line tool that facilitates the transition between training and deployment environments, and adjusts deep learning models for optimal execution on end-point target devices. +* [Samples](https://github.com/openvinotoolkit/openvino/tree/master/samples) - applications in C, C++ and Python languages that show basic OpenVINO use cases. + +#### OpenVINO Component Structure The OpenVINO component contains all dependencies (for example, third-party, tests, documentation, and others). An example component structure with comments and marks for optional folders is presented below. ``` ov_component/ // Component folder - cmake/ // (optional) CMake scripts that are related only to this component + cmake/ // (optional) CMake scripts that are related only to this component dev_api/ // (optional) Developer API is used when the component provides API for internal developers docs/ // (optional) Contains detailed component documentation include/ // (optional) Public component API