mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-17 18:40:28 +00:00
Update documentation for OVEP v5.0 release (#16441)
### Description Documentation updates ### Motivation and Context Update the OpenVINO Execution Provider and build documentations for 1.15.0 release.
This commit is contained in:
parent
1b61ac0517
commit
ea3af6cadb
2 changed files with 41 additions and 62 deletions
62
docs/build/eps.md
vendored
62
docs/build/eps.md
vendored
|
|
@ -232,75 +232,62 @@ See more information on the OpenVINO™ Execution Provider [here](../execution-p
|
|||
### Prerequisites
|
||||
{: .no_toc }
|
||||
|
||||
1. Install the OpenVINO™ offline/online installer from Intel<sup>®</sup> Distribution of OpenVINO™<sup>TM</sup> Toolkit **Release 2022.2** for the appropriate OS and target hardware:
|
||||
* [Linux - CPU, GPU, VPU, VAD-M](https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-linux)
|
||||
* [Windows - CPU, GPU, VPU, VAD-M](https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows).
|
||||
1. Install the OpenVINO™ offline/online installer from Intel<sup>®</sup> Distribution of OpenVINO™<sup>TM</sup> Toolkit **Release 2023.0** for the appropriate OS and target hardware:
|
||||
* [Windows - CPU, GPU](https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html?ENVIRONMENT=RUNTIME&OP_SYSTEM=WINDOWS&VERSION=v_2023_0&DISTRIBUTION=ARCHIVE).
|
||||
* [Linux - CPU, GPU](https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html?ENVIRONMENT=RUNTIME&OP_SYSTEM=LINUX&VERSION=v_2023_0&DISTRIBUTION=ARCHIVE)
|
||||
|
||||
Follow [documentation](https://docs.openvino.ai/latest/index.html) for detailed instructions.
|
||||
Follow [documentation](https://docs.openvino.ai/2023.0/index.html) for detailed instructions.
|
||||
|
||||
*2022.2 is the recommended OpenVINO™ version. [OpenVINO™ 2021.4](https://docs.openvinotoolkit.org/2021.4/index.html) is minimal OpenVINO™ version requirement.*
|
||||
*The minimum ubuntu version to support 2022.2 is 18.04.*
|
||||
*2023.0 is the recommended OpenVINO™ version. [OpenVINO™ 2022.1](https://docs.openvino.ai/2022.1/index.html) is minimal OpenVINO™ version requirement.*
|
||||
*The minimum ubuntu version to support 2023.0 is 18.04.*
|
||||
|
||||
2. Configure the target hardware with specific follow on instructions:
|
||||
* To configure Intel<sup>®</sup> Processor Graphics(GPU) please follow these instructions: [Windows](https://docs.openvino.ai/latest/openvino_docs_install_guides_configurations_for_intel_gpu.html#gpu-guide-windows), [Linux](https://docs.openvino.ai/latest/openvino_docs_install_guides_configurations_for_intel_gpu.html#gpu-guide)
|
||||
* To configure Intel<sup>®</sup> Movidius<sup>TM</sup> USB, please follow this getting started guide: [Linux](https://docs.openvino.ai/latest/openvino_docs_install_guides_configurations_for_ncs2.html#ncs-guide)
|
||||
* To configure Intel<sup>®</sup> Vision Accelerator Design based on 8 Movidius<sup>TM</sup> MyriadX VPUs, please follow this configuration guide: [Windows](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_ivad_vpu.html#vpu-guide-windows), [Linux](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_ivad_vpu.html#vpu-guide). Follow steps 3 and 4 to complete the configuration.
|
||||
* To configure Intel<sup>®</sup> Processor Graphics(GPU) please follow these instructions: [Windows](https://docs.openvino.ai/latest/openvino_docs_install_guides_configurations_for_intel_gpu.html#gpu-guide-windows), [Linux](https://docs.openvino.ai/latest/openvino_docs_install_guides_configurations_for_intel_gpu.html#linux)
|
||||
|
||||
|
||||
3. Initialize the OpenVINO™ environment by running the setupvars script as shown below. This is a required step:
|
||||
* For Linux run till OpenVINO™ 2021.4 version:
|
||||
* For Windows:
|
||||
```
|
||||
$ source <openvino_install_directory>/bin/setupvars.sh
|
||||
C:\<openvino_install_directory>\setupvars.bat
|
||||
```
|
||||
* For Linux run from OpenVINO™ 2022.1 version:
|
||||
* For Linux:
|
||||
```
|
||||
$ source <openvino_install_directory>/setupvars.sh
|
||||
```
|
||||
* For Windows run till OpenVINO™ 2021.4 version:
|
||||
```
|
||||
C:\ <openvino_install_directory>\bin\setupvars.bat
|
||||
```
|
||||
* For Windows run from OpenVINO™ 2022.1 version:
|
||||
```
|
||||
C:\ <openvino_install_directory>\setupvars.bat
|
||||
```
|
||||
**Note:** If you are using a dockerfile to use OpenVINO™ Execution Provider, sourcing OpenVINO™ won't be possible within the dockerfile. You would have to explicitly set the LD_LIBRARY_PATH to point to OpenVINO™ libraries location. Refer our [dockerfile](https://github.com/microsoft/onnxruntime/blob/main/dockerfiles/Dockerfile.openvino).
|
||||
|
||||
|
||||
4. Extra configuration step for Intel<sup>®</sup> Vision Accelerator Design based on 8 Movidius<sup>TM</sup> MyriadX VPUs:
|
||||
* After setting the environment using setupvars script, follow these steps to change the default scheduler of VAD-M to Bypass:
|
||||
* Edit the hddl_service.config file from $HDDL_INSTALL_DIR/config/hddl_service.config and change the field "bypass_device_number" to 8.
|
||||
* Restart the hddl daemon for the changes to take effect.
|
||||
* Note that if OpenVINO was installed with root permissions, this file has to be changed with the same permissions.
|
||||
|
||||
|
||||
### Build Instructions
|
||||
{: .no_toc }
|
||||
|
||||
#### Windows
|
||||
|
||||
```
|
||||
.\build.bat --config RelWithDebInfo --use_openvino <hardware_option> --build_shared_lib
|
||||
.\build.bat --config RelWithDebInfo --use_openvino <hardware_option> --build_shared_lib --build_wheel
|
||||
```
|
||||
|
||||
*Note: The default Windows CMake Generator is Visual Studio 2017, but you can also use the newer Visual Studio 2019 by passing `--cmake_generator "Visual Studio 16 2019"` to `.\build.bat`*
|
||||
*Note: The default Windows CMake Generator is Visual Studio 2019, but you can also use the newer Visual Studio 2022 by passing `--cmake_generator "Visual Studio 17 2022"` to `.\build.bat`*
|
||||
|
||||
#### Linux
|
||||
|
||||
```bash
|
||||
./build.sh --config RelWithDebInfo --use_openvino <hardware_option> --build_shared_lib
|
||||
./build.sh --config RelWithDebInfo --use_openvino <hardware_option> --build_shared_lib --build_wheel
|
||||
```
|
||||
|
||||
* `--build_wheel` Creates python wheel file in dist/ folder. Enable it when building from source and/or while building with CXX11_ABI=1 of OpenVINO.
|
||||
* `--use_openvino` builds the OpenVINO™ Execution Provider in ONNX Runtime.
|
||||
* `<hardware_option>`: Specifies the default hardware target for building OpenVINO™ Execution Provider. This can be overriden dynamically at runtime with another option (refer to [OpenVINO™-ExecutionProvider](../execution-providers/OpenVINO-ExecutionProvider.md#summary-of-options) for more details on dynamic device selection). Below are the options for different Intel target devices.
|
||||
|
||||
Refer to [Intel GPU device naming convention](https://docs.openvino.ai/2023.0/openvino_docs_OV_UG_supported_plugins_GPU.html#device-naming-convention) for specifying the correct hardware target in cases where both integrated and discrete GPU's co-exist.
|
||||
|
||||
| Hardware Option | Target Device |
|
||||
| --------------- | ------------------------|
|
||||
| <code>CPU_FP32</code> | Intel<sup>®</sup> CPUs |
|
||||
| <code>GPU_FP32</code> | Intel<sup>®</sup> Integrated Graphics |
|
||||
| <code>GPU_FP16</code> | Intel<sup>®</sup> Integrated Graphics with FP16 quantization of models |
|
||||
| <code>MYRIAD_FP16</code> | Intel<sup>®</sup> Movidius<sup>TM</sup> USB sticks |
|
||||
| <code>VAD-M_FP16</code> | Intel<sup>®</sup> Vision Accelerator Design based on 8 Movidius<sup>TM</sup> MyriadX VPUs |
|
||||
| <code>VAD-F_FP32</code> | Intel<sup>®</sup> Vision Accelerator Design with an Intel<sup>®</sup> Arria<sup>®</sup> 10 FPGA |
|
||||
| <code>GPU.0_FP32</code> | Intel<sup>®</sup> Integrated Graphics |
|
||||
| <code>GPU.0_FP16</code> | Intel<sup>®</sup> Integrated Graphics with FP16 quantization of models |
|
||||
| <code>GPU.1_FP32</code> | Intel<sup>®</sup> Discrete Graphics |
|
||||
| <code>GPU.1_FP16</code> | Intel<sup>®</sup> Discrete Graphics with FP16 quantization of models |
|
||||
| <code>HETERO:DEVICE_TYPE_1,DEVICE_TYPE_2,DEVICE_TYPE_3...</code> | All Intel<sup>®</sup> silicons mentioned above |
|
||||
| <code>MULTI:DEVICE_TYPE_1,DEVICE_TYPE_2,DEVICE_TYPE_3...</code> | All Intel<sup>®</sup> silicons mentioned above |
|
||||
| <code>AUTO:DEVICE_TYPE_1,DEVICE_TYPE_2,DEVICE_TYPE_3...</code> | All Intel<sup>®</sup> silicons mentioned above |
|
||||
|
|
@ -308,12 +295,12 @@ See more information on the OpenVINO™ Execution Provider [here](../execution-p
|
|||
Specifying Hardware Target for HETERO or Multi or AUTO device Build:
|
||||
|
||||
HETERO:DEVICE_TYPE_1,DEVICE_TYPE_2,DEVICE_TYPE_3...
|
||||
The DEVICE_TYPE can be any of these devices from this list ['CPU','GPU','MYRIAD','FPGA','HDDL']
|
||||
The DEVICE_TYPE can be any of these devices from this list ['CPU','GPU']
|
||||
|
||||
A minimum of two device's should be specified for a valid HETERO or MULTI or AUTO device build.
|
||||
|
||||
```
|
||||
Example's: HETERO:MYRIAD,CPU or AUTO:GPU,CPU or MULTI:MYRIAD,GPU,CPU
|
||||
Example's: HETERO:GPU,CPU or AUTO:GPU,CPU or MULTI:GPU,CPU
|
||||
```
|
||||
|
||||
#### Disable subgraph partition Feature
|
||||
|
|
@ -325,8 +312,7 @@ Example's: HETERO:MYRIAD,CPU or AUTO:GPU,CPU or MULTI:MYRIAD,GPU,CPU
|
|||
|
||||
```
|
||||
Usage: --use_openvino CPU_FP32_NO_PARTITION or --use_openvino GPU_FP32_NO_PARTITION or
|
||||
--use_openvino GPU_FP16_NO_PARTITION or --use_openvino MYRIAD_FP16_NO_PARTITION or
|
||||
--use_openvino VAD-F_FP32_NO_PARTITION or --use_openvino VAD-M_FP16_NO_PARTITION
|
||||
--use_openvino GPU_FP16_NO_PARTITION
|
||||
```
|
||||
|
||||
For more information on OpenVINO™ Execution Provider's ONNX Layer support, Topology support, and Intel hardware enabled, please refer to the document [OpenVINO™-ExecutionProvider](../execution-providers/OpenVINO-ExecutionProvider.md)
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Accelerate ONNX models on Intel CPUs, GPUs with Intel OpenVINO™ Execution Prov
|
|||
## Install
|
||||
|
||||
Pre-built packages and Docker images are published for OpenVINO™ Execution Provider for ONNX Runtime by Intel for each release.
|
||||
* OpenVINO™ Execution Provider for ONNX Runtime Release page: [Latest v4.3 Release](https://github.com/intel/onnxruntime/releases)
|
||||
* OpenVINO™ Execution Provider for ONNX Runtime Release page: [Latest v5.0 Release](https://github.com/intel/onnxruntime/releases)
|
||||
* Python wheels Ubuntu/Windows: [onnxruntime-openvino](https://pypi.org/project/onnxruntime-openvino/)
|
||||
* Docker image: [openvino/onnxruntime_ep_ubuntu20](https://hub.docker.com/r/openvino/onnxruntime_ep_ubuntu20)
|
||||
|
||||
|
|
@ -30,10 +30,9 @@ ONNX Runtime OpenVINO™ Execution Provider is compatible with three lastest rel
|
|||
|
||||
|ONNX Runtime|OpenVINO™|Notes|
|
||||
|---|---|---|
|
||||
|1.15.0|2023.0|[Details](https://github.com/intel/onnxruntime/releases/tag/v5.0)|
|
||||
|1.14.0|2022.3|[Details](https://github.com/intel/onnxruntime/releases/tag/v4.3)|
|
||||
|1.13.0|2022.2|[Details](https://github.com/intel/onnxruntime/releases/tag/v4.2)|
|
||||
|1.11.0|2022.1|[Details](https://github.com/intel/onnxruntime/releases/tag/v4.0)|
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
|
|
@ -59,28 +58,27 @@ pip install onnxruntime-openvino
|
|||
|
||||
* **Linux**
|
||||
|
||||
OpenVINO™ Execution Provider with Onnx Runtime on Linux installed from PyPi.org come with prebuilt OpenVINO™ libs and supports flag CXX11_ABI=0. So there is no need to install OpenVINO™ separately.
|
||||
OpenVINO™ Execution Provider with Onnx Runtime on Linux, installed from PyPi.org comes with prebuilt OpenVINO™ libs and supports flag CXX11_ABI=0. So there is no need to install OpenVINO™ separately.
|
||||
|
||||
To enable CX11_ABI=1 flag, build Onnx Runtime python wheel packages from source. For build instructions, please see the [BUILD page](../build/eps.md#openvino).
|
||||
But if there is need to enable CX11_ABI=1 flag of OpenVINO, build Onnx Runtime python wheel packages from source. For build instructions, please see the [BUILD page](../build/eps.md#openvino).
|
||||
OpenVINO™ Execution Provider wheels on Linux built from source will not have prebuilt OpenVINO™ libs so we must set the OpenVINO™ Environment Variable using the full installer package of OpenVINO™:
|
||||
|
||||
```
|
||||
C:\ <openvino_install_directory>\setupvars.bat
|
||||
$ source <openvino_install_directory>/setupvars.sh
|
||||
```
|
||||
|
||||
|
||||
**Set OpenVINO™ Environment for C++**
|
||||
|
||||
For Running C++/C# ORT Samples with the OpenVINO™ Execution Provider it is must to set up the OpenVINO™ Environment Variables using the full installer package of OpenVINO™.
|
||||
Initialize the OpenVINO™ environment by running the setupvars script as shown below. This is a required step:
|
||||
* For Linux run:
|
||||
```
|
||||
$ source <openvino_install_directory>/setupvars.sh
|
||||
```
|
||||
* For Windows run:
|
||||
```
|
||||
C:\ <openvino_install_directory>\setupvars.bat
|
||||
```
|
||||
* For Linux run:
|
||||
```
|
||||
$ source <openvino_install_directory>/setupvars.sh
|
||||
```
|
||||
**Note:** If you are using a dockerfile to use OpenVINO™ Execution Provider, sourcing OpenVINO™ won't be possible within the dockerfile. You would have to explicitly set the LD_LIBRARY_PATH to point to OpenVINO™ libraries location. Refer our [dockerfile](https://github.com/microsoft/onnxruntime/blob/main/dockerfiles/Dockerfile.openvino).
|
||||
|
||||
|
||||
|
|
@ -100,17 +98,17 @@ OpenVINO™ supports [model caching](https://docs.openvino.ai/latest/openvino_do
|
|||
|
||||
From OpenVINO™ 2022.1 version, model caching feature is supported on CPU and kernel caching on iGPU.
|
||||
|
||||
From OpenVINO™ 2022.3 version, the model caching feature is also supported on iGPU as preview.
|
||||
From OpenVINO™ 2022.3 version, the model caching feature is also supported on iGPU,dGPU as preview.
|
||||
|
||||
This feature enables users to save and load the blob file directly. This file can be loaded directly on to the hardware device target and inferencing can be performed.
|
||||
|
||||
Kernel Caching on iGPU :
|
||||
Kernel Caching on iGPU and dGPU:
|
||||
|
||||
This feature also allows user to save kernel caching as cl_cache files for models with dynamic input shapes. These cl_cache files can be loaded directly onto the iGPU hardware device target and inferencing can be performed.
|
||||
This feature also allows user to save kernel caching as cl_cache files for models with dynamic input shapes. These cl_cache files can be loaded directly onto the iGPU/dGPU hardware device target and inferencing can be performed.
|
||||
|
||||
#### <b> Enabling Model Caching via Runtime options using c++/python API's.</b>
|
||||
|
||||
This flow can be enabled by setting the runtime config option 'cache_dir' specifying the path to dump and load the blobs (CPU, iGPU) or cl_cache(iGPU) while using the c++/python API'S.
|
||||
This flow can be enabled by setting the runtime config option 'cache_dir' specifying the path to dump and load the blobs (CPU, iGPU, dGPU) or cl_cache(iGPU, dGPU) while using the c++/python API'S.
|
||||
|
||||
Refer to [Configuration Options](#configuration-options) for more information about using these runtime options.
|
||||
|
||||
|
|
@ -247,7 +245,7 @@ The following table lists all the available configuration options and the Key-Va
|
|||
|
||||
| **Key** | **Key type** | **Allowable Values** | **Value type** | **Description** |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| device_type | string | CPU_FP32, CPU_FP16, GPU_FP32, GPU_FP16, GPU.0_FP16, GPU.1_FP16, GPU.0_FP16, GPU.0_FP32 based on the avaialable GPUs, Any valid Hetero combination, Any valid Multi or Auto devices combination | string | Overrides the accelerator hardware type and precision with these values at runtime. If this option is not explicitly set, default hardware and precision specified during build time is used. |Overrides the accelerator hardware type and precision with these values at runtime. If this option is not explicitly set, default hardware and precision specified during build time is used. |
|
||||
| device_type | string | CPU_FP32, CPU_FP16, GPU_FP32, GPU_FP16, GPU.0_FP32, GPU.1_FP32, GPU.0_FP16, GPU.1_FP16 based on the avaialable GPUs, Any valid Hetero combination, Any valid Multi or Auto devices combination | string | Overrides the accelerator hardware type and precision with these values at runtime. If this option is not explicitly set, default hardware and precision specified during build time is used. |Overrides the accelerator hardware type and precision with these values at runtime. If this option is not explicitly set, default hardware and precision specified during build time is used. |
|
||||
| device_id | string | Any valid OpenVINO device ID | string | Selects a particular hardware device for inference. The list of valid OpenVINO device ID's available on a platform can be obtained either by Python API (`onnxruntime.capi._pybind_state.get_available_openvino_device_ids()`) or by [OpenVINO C/C++ API](https://docs.openvino.ai/latest/classInferenceEngine_1_1Core.html). If this option is not explicitly set, an arbitrary free device will be automatically selected by OpenVINO runtime.|
|
||||
| num_of_threads | string | Any unsigned positive number other than 0 | size_t | Overrides the accelerator default value of number of threads with this value at runtime. If this option is not explicitly set, default value of 8 is used during build time. |
|
||||
| cache_dir | string | Any valid string path on the hardware target | string | Explicitly specify the path to save and load the blobs enabling model caching feature.|
|
||||
|
|
@ -427,10 +425,6 @@ Below topologies from ONNX open model zoo are fully supported on OpenVINO™ Exe
|
|||
| inception_v1 | Yes | Yes |
|
||||
| inception_v2 | Yes | Yes |
|
||||
| mobilenetv2 | Yes | Yes |
|
||||
| resnet18v1 | Yes | Yes |
|
||||
| resnet34v1 | Yes | Yes |
|
||||
| resnet101v1 | Yes | Yes |
|
||||
| resnet152v1 | Yes | Yes |
|
||||
| resnet18v2 | Yes | Yes |
|
||||
| resnet34v2 | Yes | Yes |
|
||||
| resnet101v2 | Yes | Yes |
|
||||
|
|
@ -440,9 +434,8 @@ Below topologies from ONNX open model zoo are fully supported on OpenVINO™ Exe
|
|||
| shufflenet | Yes | Yes |
|
||||
| squeezenet1.1 | Yes | Yes |
|
||||
| vgg19 | Yes | Yes |
|
||||
| vgg16 | Yes | Yes |
|
||||
| zfnet512 | Yes | Yes |
|
||||
| mxnet_arcface | No | Yes |
|
||||
| mxnet_arcface | Yes | Yes |
|
||||
|
||||
|
||||
### Image Recognition Networks
|
||||
|
|
@ -458,8 +451,8 @@ Below topologies from ONNX open model zoo are fully supported on OpenVINO™ Exe
|
|||
| tiny_yolov2 | Yes | Yes |
|
||||
| yolov3 | Yes | Yes |
|
||||
| tiny_yolov3 | Yes | Yes |
|
||||
| mask_rcnn | Yes | Yes |
|
||||
| faster_rcnn | Yes | Yes |
|
||||
| mask_rcnn | Yes | No |
|
||||
| faster_rcnn | Yes | No |
|
||||
| yolov4 | Yes | Yes |
|
||||
| yolov5 | Yes | Yes |
|
||||
| yolov7 | Yes | Yes |
|
||||
|
|
|
|||
Loading…
Reference in a new issue