OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference
Go to file
River Li ed31a46b7b
[CAPI] improve property implement to achieve better compatibility (#12887)
* Solve some code style issues

Change-Id: I06c31ad9513463c758db96dbe33031983a8fd7a5

* Refine ov_dimension with C style structure

Use C style definition to replace opaque C++ handle:
 1). Improve partial shape
 2). Improve dimension/rank
 3). Improve shape

Change-Id: I680fd3e76c63d0c06d9d8b07c67af0440fb15bb7

* Some minor update

Change-Id: I237490a765e6ecd6f3896b1bd75d5f962304f43b

* add partial_shape_is_dynamic and update doc

Change-Id: Ief358f27de8386e35485d08847c8243d1490157f

* Rename property and add basic test cases

Change-Id: Ifbed0bbf7a5e836d2cab186763d7e5f8f2cb7d44

* address reviewer's comments

Change-Id: I9a5d1ede6d086906f3777c3d29237986a505db52

* Fix compile error

Change-Id: I72267a8dda32dd8f43c1ea1522d07b392052358f

* Use ov_any_t to replace ov_property_value_t

Change-Id: Ia4062d0da0941c901990bf5f16497ae3c8f2eb0f

* update doc for ov_model

Change-Id: I80183394f16dd1e07ff998993e26f8b903f2402e

* Property key apply string variables replace enum variable

Change-Id: I0e1699862de3913ccdc06ded5b8f8ac5a2bf8773

* Fix compiling error in windows

Change-Id: I4f9c7c746e218db94491c5f4bc5aeda1b3fde62b

* Change init/deinit method to create/free, remove unnecessary methods

Change-Id: Ibc5de039da94e92db494583ab1ff1a63e0586c73

* Pass by value for single C structure data

Change-Id: I289eb56e2ba1ab90942c8c801c585ab0f792952f

* fix dllexport issue in windows

Change-Id: I1632375e5e651fdfa076cdab2d8d1c3e83986549

* Fix static build error

Change-Id: I6633fe4887edad0b3a8b7e10730fb9d36a6ac0cd

* Use pass by value for all transparent structure

Change-Id: I652f6e70b420ef7c5af5cff3f5d482911cf0d75a

* Unify parameter order in  C APIs, input first and then output parameters

Change-Id: Ib89c77d81c314e3a81bfcec9917630abbc896f5e

* Rename preprocess api to be more readable

Change-Id: I0a8ecd005e73e4ba8e90a8f25bedf0739fe31836

* Simplfy property implement for set and get property

Change-Id: Icad41606368cef9520b1623f6207784c295f1b9f

* check string type property issue

Change-Id: Ie8ee6995dda401f1db0cc098e061ffcfd24de92a

* Fix memory leak

Change-Id: Ife8980736be320314eca6fb3f3605e019663e1da

* Check string property data

Change-Id: I542a136ff874cb345c67f7d3c1dbc74981a909df

* Fix issues caused by rebase

Change-Id: I3d675a16cf76980a6414e369a83464a46dec1e49

* Remove some redundant code

Change-Id: Iab6bf7f355ec7a7424d884e620319ed9db80ecf5

* Remove property type from interface

ov_core_set_property will have 2 cases:

1) enum type:  <const char* property_key, ov_property_xxx_e property_value>
2) other: <const char* property_key, const char* property_value>

Change-Id: Id7dec1ac40948d45c4f8baee687652aee92ea75d

* Remove redundant code

Change-Id: I66865d3313e305b0109cb63bd049772a01c0688f

* Remove exception log and update propery size argument

Change-Id: Ia1a60c07c9adf08d175d94a7d5e4298adb27bf80

* Apply string for enum property

Change-Id: I591b1db453a52b5ea9000e0cc3e11edf0ef5f790

* Add test case for MULTI_DEVICE_PRIORITIES

Change-Id: I59e4307564a2560724b4dacdb83c3ed45ea1ce8d

* Fix test issues and add more negative test case

Change-Id: Ib849fb8c098e487a537c1b1ab881f5e905871f73
2022-09-20 15:59:27 +03:00
.ci Enable mock fe tests in python api 2.0 tests (#12978) 2022-09-20 11:56:46 +03:00
.github Run Python checks on Ubuntu 20.04 (#12687) 2022-08-22 23:15:27 +04:00
cmake Enable mock fe tests in python api 2.0 tests (#12978) 2022-09-20 11:56:46 +03:00
docs Fixed comments on dev doc (#13117) 2022-09-20 12:45:19 +04:00
licensing Debian packages tests on Azure (#12469) 2022-08-12 00:07:21 +04:00
samples [CAPI] improve property implement to achieve better compatibility (#12887) 2022-09-20 15:59:27 +03:00
scripts Generate openvino.pc pkg-config file (#12779) 2022-09-05 13:40:21 +04:00
src [CAPI] improve property implement to achieve better compatibility (#12887) 2022-09-20 15:59:27 +03:00
tests Refactor of renaming ov libraries for layer tests with key --use_new_frontend (#12846) 2022-09-20 13:43:37 +04:00
thirdparty Enable mock fe tests in python api 2.0 tests (#12978) 2022-09-20 11:56:46 +03:00
tools [MO] Extend support for TF BlockLSTM with the single output, concatenated hidden states (#13095) 2022-09-20 15:18:49 +03:00
.gitattributes [POT] Update tests with new data (#8209) 2021-10-27 12:40:19 +03:00
.gitignore Fixed newAPI for case if core was removed (#12207) 2022-07-22 16:46:08 +03:00
.gitmodules CPU Plugin refactoring: Transition from Intel MKL-DNN to oneDNN (#11023) 2022-04-05 01:10:53 +03:00
CMakeLists.txt [ONNX FE] Combine ONNX FrontEnd tests (#12680) 2022-08-31 17:39:21 +04:00
CODEOWNERS Update CODEOWNERS (#12723) 2022-09-06 11:00:12 +02:00
CONTRIBUTING.md Fixed comments on dev doc (#13117) 2022-09-20 12:45:19 +04:00
install_build_dependencies.sh [Packaging] RPM generation (#12810) 2022-09-19 23:16:07 +03:00
Jenkinsfile Beautify Jenkinsfile a little bit 2021-05-31 15:24:56 +03:00
LICENSE Publishing R3 2018-10-16 13:45:03 +03:00
README.md Fixed comments on dev doc (#13117) 2022-09-20 12:45:19 +04:00
SECURITY.md Added SECURITY.md back (#3177) 2020-11-17 16:44:44 +03:00

Stable release Apache License Version 2.0 GitHub branch checks state Azure DevOps builds (branch) PyPI Status PyPI Downloads

Contents:

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 Model Optimizer, OpenVINO™ Runtime, Post-Training Optimization Tool, as well as CPU, GPU, MYRIAD, multi device and heterogeneous plugins to accelerate deep learning inferencing on Intel® CPUs and Intel® Processor Graphics. It supports pre-trained models from the 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 - provides the base API for model representation and modification.
    • inference - provides an API to infer models on device.
    • transformations - contains the set of common transformations which are used in OpenVINO plugins.
    • low precision transformations - contains the set of transformations which are used in low precision models
    • bindings - contains all available OpenVINO bindings which are maintained by OpenVINO team.
      • c - provides C API for OpenVINO™ Runtime
      • python - Python API for OpenVINO™ Runtime
  • Plugins - contains OpenVINO plugins which are maintained in open-source by OpenVINO team. For more information please take a look to the list of supported devices.
  • Frontends - contains available OpenVINO frontends which allow to read model from native framework format.
  • Model Optimizer - is a cross-platform command-line tool that facilitates the transition between training and deployment environments, performs static model analysis, and adjusts deep learning models for optimal execution on end-point target devices.
  • Post-Training Optimization Tool - is designed to accelerate the inference of deep learning models by applying special methods without model retraining or fine-tuning, for example, post-training 8-bit quantization.
  • Samples - applications on C, C++ and Python languages which shows basic use cases of OpenVINO usages.

Supported Hardware matrix

The OpenVINO™ Runtime can infer models on different hardware devices. This section provides the list of supported devices.

Device Plugin Library ShortDescription
CPU Intel CPU openvino_intel_cpu_plugin Intel 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)
ARM CPU openvino_arm_cpu_plugin Raspberry Pi™ 4 Model B, Apple® Mac mini with M1 chip, NVIDIA® Jetson Nano™, Android™ devices
GPU Intel GPU openvino_intel_gpu_plugin Intel Processor Graphics, including Intel HD Graphics and Intel Iris Graphics
GNA Intel GNA openvino_intel_gna_plugin Intel Speech Enabling Developer Kit, Amazon Alexa* Premium Far-Field Developer Kit, Intel Pentium Silver J5005 Processor, Intel Pentium Silver N5000 Processor, Intel Celeron J4005 Processor, Intel Celeron J4105 Processor, Intel Celeron Processor N4100, Intel Celeron Processor N4000, Intel Core i3-8121U Processor, Intel Core i7-1065G7 Processor, Intel Core i7-1060G7 Processor, Intel Core i5-1035G4 Processor, Intel Core i5-1035G7 Processor, Intel Core i5-1035G1 Processor, Intel Core i5-1030G7 Processor, Intel Core i5-1030G4 Processor, Intel Core i3-1005G1 Processor, Intel Core i3-1000G1 Processor, Intel Core i3-1000G4 Processor
VPU Myriad plugin openvino_intel_myriad_plugin Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X

Also OpenVINO™ Toolkit contains several plugins which should simplify to load model on several hardware devices:

Plugin Library ShortDescription
Auto openvino_auto_plugin Auto plugin enables selecting Intel device for inference automatically
Auto Batch openvino_auto_batch_plugin Auto 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
Hetero openvino_hetero_plugin Heterogeneous execution enables automatic inference splitting between several devices
Multi openvino_auto_plugin Multi plugin enables simultaneous inference of the same model on several devices in parallel

License

OpenVINO™ Toolkit is licensed under Apache License Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.

Documentation

User documentation

The latest documentation for OpenVINO™ Toolkit is available here. This documentation contains detailed information about all OpenVINO components and provides all important information which could be needed if you create an application which is based on binary OpenVINO distribution or own OpenVINO version without source code modification.

Developer documentation

Developer documentation contains information about architectural decisions used inside the OpenVINO components. This documentation has all necessary information for contribution to OpenVINO.

Tutorials

The list of OpenVINO tutorials:

Products which use OpenVINO

System requirements

The full information about system requirements depends on platform is available on dedicated pages:

How to build

Please take a look to OpenVINO Wiki to get more information about OpenVINO build process.

How to contribute

See CONTRIBUTING for details. Thank you!

Get a support

Please report questions, issues and suggestions using:

See also


* Other names and brands may be claimed as the property of others.