Compare commits

...

946 Commits

Author SHA1 Message Date
Chen Peter
71b97b69a8 Add notes for AUTO hints (#12076)
* Update doc for AUTO and AUTO_BATCH

Signed-off-by: Chen Peter <peter.chen@intel.com>

* Update per the comments

Signed-off-by: Chen Peter <peter.chen@intel.com>

* Move default hint to THROUGHPUT section

Signed-off-by: Chen Peter <peter.chen@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-08-04 14:26:21 +08:00
Katarzyna Mitrus
e9030cca21 Update opset.md with opset9 (#12171) 2022-07-26 14:13:58 +02:00
Sebastian Golebiewski
c591d773d4 Porting to 2022.2 - DOCS-code-reference-css-style-change (#12198)
Porting  the following PR:

https://github.com/openvinotoolkit/openvino/pull/12109/

to 2022.2
2022-07-26 14:13:13 +02:00
Sebastian Golebiewski
5f4999117d Porting to 2022.2 - update -readme for CPP and Python benchmark (#12246)
Porting #11961 to 2022.2
2022-07-26 14:12:38 +02:00
Ilya Churaev
c9f9795d29 Fixed newAPI for case if core was removed (#12208)
* Fixed newAPI for case if core was removed

* Fixed code style

* Fixed typo

* Use new API by default

* Create core with template plugin

* Added doxygen comment

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-07-23 11:53:26 +00:00
Maciej Smyk
28922e2080 Install guide update for 2022.2 (#12222)
* Toctree

* Fixing reference

* Linux

* Windows

* macOS

* Raspbian-OS

* Whats-Next-Section

* References

* HDDL-MYRIAD

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Runtime-fix

* Update docs/install_guides/installing-openvino-overview.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update installing-openvino-overview.md

* Update docs/OV_Runtime_UG/supported_plugins/MYRIAD.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/HDDL.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update configurations-for-intel-gpu.md

* Update docs/install_guides/configurations-for-intel-gpu.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/configurations-for-intel-gpu.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/configurations-for-intel-gpu.md

* Delete installing-openvino-images.md

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/install_guides/troubleshooting-steps.md

* Update installing-model-dev-tools.md

* Update configurations-for-intel-gpu.md

* Revert "Update configurations-for-intel-gpu.md"

This reverts commit f5294de324.

* Revert "Update installing-model-dev-tools.md"

This reverts commit 9109a916d6.

* ID-fix

* Update installing-openvino-macos.md

Co-authored-by: sgolebiewski-intel <101244613+sgolebiewski-intel@users.noreply.github.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-07-21 13:55:28 +00:00
Tomasz Dołbniak
4a88aa0493 ipython removed from the dependencies of docs (#12193) 2022-07-20 16:39:43 +02:00
Kelvin Choi
3a72200f92 [GPU] Add reorder from i32 to f32 for max-pooling/conv/fc which doesn't support i32 (#12144) 2022-07-20 22:14:22 +09:00
Egor Duplenskii
fdae95a769 [CPU] Explicitly enable DNNL_VERBOSE only in case of CPU_DEBUG_CAPS (#12151)
and rely on oneDNN default behavior otherwise
2022-07-20 14:07:42 +04:00
Sebastian Golebiewski
483f38e6d8 Porting OV Runtime to 2022.2 (#12192)
Porting OV Runtime (PR #11658) to 2022.2

https://github.com/openvinotoolkit/openvino/pull/11658/
2022-07-20 11:14:45 +02:00
River Li
c144702d8b Restore static fem in 2022.2 (#12223)
* Restore FEM to be static instance

* Restore frontend manager in ie_read_network.cpp
2022-07-20 10:29:52 +04:00
Yuan Xu
79db96d61e Pypi org updates 22/2 (#12210)
* fix references

* update links

* update the wording to be more clear

* add the error message about Visual studio back

* update links to static html links of 2022.2
2022-07-19 06:26:32 +00:00
Chenhu Wang
123f8e62bf [DOC][CPU] Denormals optimization document (#12132) 2022-07-18 16:37:44 +04:00
Taylor Yeonbok Lee
8c80f9ff58 [GPU] optimize permute_ref (#12160)
* change memory access pattern of fsv layout for permute

* Fix permute_ref to process F first only when (bf...) => (b...f)

* Refactor

Co-authored-by: si-eun-kim <sieun.kim@intel.com>
2022-07-18 18:26:00 +09:00
Eddy Kim
de5e9bb397 Revert "[GPU] Pass activation unit tests on DG2 (#11969)" (#12165)
This reverts commit 3334e8933c.
2022-07-18 18:25:45 +09:00
zihan wu
32f800c6a6 [CPU] polish onednn cc readme (#12114) (#12176) 2022-07-15 16:36:31 +00:00
Min, Byungil
b492f98d30 [GPU] modify fusing condition for reduce (#12147)
Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-07-15 16:07:43 +09:00
Andrew Kwangwoong Park
9c49b71c11 Enable tensor offset to GemmKernelRef for input padding support (#12140)
Signed-off-by: Andrew Park <andrew.park@intel.com>
2022-07-15 16:01:35 +09:00
Tomasz Dołbniak
02330bc11c Zlib update to 1.12.2 (#12129) 2022-07-14 14:40:23 +02:00
Luo Cheng
4412e1ddfa [CPU] revert pr 11990 and enable brgconv avx512 on SPR by default (#12134) 2022-07-14 14:10:51 +04:00
Tingqian Li
b7b3f0ab4a move cpu_dump_check into CPU plugin's tools folder (#12123) 2022-07-13 13:38:17 +08:00
Paul Youngsoo Ahn
0621e8cf28 [GPU] Fix gather data type issue (#12089) (#12089) 2022-07-12 19:01:07 +09:00
Tomasz Dołbniak
9d6d84088f Virtual destructor for the base class (#12103) 2022-07-12 11:55:41 +02:00
Eddy Kim
a63dad6fdd updated to fuse activation in eltwise_vload8 (#12092) 2022-07-12 18:51:48 +09:00
Wang, Yang
bbc1c26750 setting tput as the default performance mode only for AUTO, excluding MULTI plugin. (#12090)
Signed-off-by: ywang2 <yang4.wang@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
Co-authored-by: Shen, Wanglei <wanglei.shen@intel.com>
2022-07-10 15:16:59 +08:00
Eddy Kim
8d852b4aee fixed 'is_rotating_except_batch' to follow the IE order (#12050) 2022-07-08 15:36:17 +09:00
Min, Byungil
b5c058738d Update module version to remove vulnerability (#12054) 2022-07-08 08:28:48 +02:00
Tingqian Li
bc34fa0934 [CPU] Re-enable Selective build on oneDNN2.6 (#12074)
* update submodule onednn26 selective build

* onednn code review

* merge onednn selective build

* fix bug in cc onednn26

Co-authored-by: zihan wu <zihan.wu@intel.com>
2022-07-08 03:48:12 +00:00
Taylor Yeonbok Lee
2500ad120e Revert the mmap-ed constants to the original buffer load (#12075) 2022-07-08 11:51:53 +09:00
guozhong wang
ab8c2f6fd8 change gpunum to 3 (#12073) 2022-07-07 18:15:27 +03:00
Andrew Kwangwoong Park
32937ab7ca Add Debug Config for maximum kernels per batch (#12068)
Signed-off-by: Andrew Park <andrew.park@intel.com>
2022-07-07 14:26:51 +03:00
guozhong wang
cd6c7da91c AUTO/MULTI supports ov::auto_batch_timeout (#12023)
* add auto_batch_timeout for MULTI and AUTO

* fix clang-format for ie_core.cpp

* fix coredump

* simplify insert key to deviceConfig logic and parseDeviceNameIntoConfig() check "AUTO" and "AUTO:" only

* check config auto_batch_timeout

* add CleanUpInIECore()

* fix clang-format for ie_core.cpp
2022-07-07 10:33:04 +00:00
Bonhun Koo
d5e8d1d968 Nm/outputs quantization scheme (#12035)
* [POT] outputs quantization scheme

* [POT] remove needless blank line

* add a range_estimator config for outputs

* Add fq_config_priority
2022-07-07 16:08:55 +09:00
Luwei Zhou
0224e6a067 Fix the deconv depwise post ops issue on AVX2 and AVX512 and enable deconv test (#11870)
* Fix the deconv fused issue on AVX2 and AVX512 and enable deconv test

* Keep GroupDeconv BF16 test cases still disabled.

* Update to also excluding nightly

* Update onednn submodule.

* Update onednn submodule

* Update onednn submodule.

* Update the ONDENN submodule

* Update the ONEDNN commit.

* Update with merged onednn commit.
2022-07-07 13:26:44 +08:00
RICKIE777
70d967ffb6 [C API] Enable hello_nv12_input_classification samples for C APIs of OV API 2.0 (#12031)
* Define new ppp API for nv12

* Add new ppp API function

* Add new ppp API unit test

* Add hello nv12 input classification ov

* Define new ppp API for nv12

* Add new ppp API function

* Add new ppp API unit test

* Add hello nv12 input classification ov

* Fix the clang -formate issue

* Modify the function called is_supported_image_size

* Update code as suggested

* Add hello_nv12_input_classification e2e test

* clang-format openvinotoolkit

* Fix the doc error in CI

Co-authored-by: River Li <river.li@intel.com>
2022-07-07 11:36:55 +08:00
Xiping Yan
e8bd70f273 Add build flag for GCC. (#12017)
Some compiler flags restrict the compiler from making arbitrary decisions while handling undefined C/C++ behaviors.

Therefore they can be used to fix some issues caused by undefined behavior.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-07-07 10:02:04 +08:00
River Li
b80f724414 Fix rnn cache missing issue (#12053) 2022-07-06 11:20:27 +00:00
Kelvin Choi
63ab516c85 [GPU] Delete previous inputs by numbered new name for batching (#12045) 2022-07-06 16:32:14 +09:00
Bonhun Koo
1901087677 [POT] GNA - prevent an overflow in eltwise layer (#12048) 2022-07-06 16:15:13 +09:00
yanlan song
e718e51a85 Bell/fix lifecycle coredump (#11934)
* enable binder schedule

Signed-off-by: fishbell <bell.song@intel.com>

* add cases

Signed-off-by: fishbell <bell.song@intel.com>

* refine

Signed-off-by: fishbell <bell.song@intel.com>

* fix build failure

Signed-off-by: fishbell <bell.song@intel.com>

* fix coredump

Signed-off-by: fishbell <bell.song@intel.com>

* do not return hw requests directly, potential issues

Signed-off-by: fishbell <bell.song@intel.com>

* fix bug

Signed-off-by: fishbell <bell.song@intel.com>

typo

Signed-off-by: fishbell <bell.song@intel.com>

* optimize memory

Signed-off-by: fishbell <bell.song@intel.com>

* hold the hw plugin

Signed-off-by: fishbell <bell.song@intel.com>

* Revert "hold the hw plugin"

This reverts commit 5b537f5b6f.

* apply the fix

Signed-off-by: fishbell <bell.song@intel.com>

apply the fix

Signed-off-by: fishbell <bell.song@intel.com>

* hold the plugin library for destructing tensor

Signed-off-by: fishbell <bell.song@intel.com>

* solve the virtuual plugin Getblob life cycle issue

Signed-off-by: fishbell <bell.song@intel.com>

* remove log

Signed-off-by: fishbell <bell.song@intel.com>

* refine interface

Signed-off-by: fishbell <bell.song@intel.com>

* fix build failure

Signed-off-by: fishbell <bell.song@intel.com>

* fix for hetero plugin

Signed-off-by: fishbell <bell.song@intel.com>

* replace with vector

* enable life time tests for virtual plugins

Signed-off-by: fishbell <bell.song@intel.com>

rework cases due to vpux build issue

Signed-off-by: fishbell <bell.song@intel.com>

disable context test for now

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-07-06 05:21:17 +00:00
opoluektov-lohika
7a50ce2491 Coverity: fix issue with uninitialized members (#11996) 2022-07-05 23:55:53 +00:00
Mateusz Bencer
43c0c964b8 Added FoldSubgraphEmptyInputs transformation (#11957) 2022-07-05 19:38:46 +02:00
Maciej Smyk
d91a06ac08 Apache MXNet rename (#11871)
* MXNet

MXNet renaming into Apache MXNet

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* MXNet 2

* MXNet 3

* Revert "MXNet 3"

This reverts commit 046c25239d.

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
2022-07-05 15:04:03 +02:00
Karol Blaszczak
f635621aab DOCS-return ONNX and MO_techniques articles (#11805)
* DOCS-return ONNX and MO_techniques articles

ONNX support article revised and changed to local tabs

* Update docs/MO_DG/prepare_model/Model_Optimization_Techniques.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/OV_Runtime_UG/ONNX_Support.md

* Update docs/OV_Runtime_UG/ONNX_Support.md

* Update docs/OV_Runtime_UG/ONNX_Support.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-07-05 15:03:26 +02:00
Pawel Raasz
e1bcfeca9d Add SoftSign to CPU plugin (#12034) 2022-07-05 13:34:42 +02:00
River Li
177d977449 oneTBB support terminate tbb thread (#11972)
Change-Id: Iea618b72db193bd48bfbf0dba3586dcdb139c43f

Co-authored-by: Shen, Wanglei <wanglei.shen@intel.com>
2022-07-05 14:11:10 +03:00
Bartek Szmelczynski
82f691c38b [ONNX FE] Extend ONNX FE NMS-9 (#11790)
* update ONNX FE NMS to v9

* remove reshaping dynamic shapes

* fix style

* xfail two MSFT models
2022-07-05 12:10:29 +02:00
Sungeun Kim
654105d567 Set reorder format in reorder_inputs pass (#11992)
* Set reorder format in reorder_inputs pass
* set zyx_fsv16 formats if input is zyx_fsv4 formats
2022-07-05 18:20:01 +09:00
Tingqian Li
3e97d12fe2 [Transformation] transform ConvertLike into Convert when applicable (#7543)
* [Transformation] transform ConvertLike into Convert when applicable

Signed-off-by: Li, Tingqian <tingqian.li@intel.com>

* Remove xfail markup for onnx castlike cpu tests

Signed-off-by: Li, Tingqian <tingqian.li@intel.com>

* remove un-used xfail

Signed-off-by: Li, Tingqian <tingqian.li@intel.com>

* Enable ConvertLike cpu functional test

Signed-off-by: Li, Tingqian <tingqian.li@intel.com>

* remove unnecessary headers

* move to common transformation

Signed-off-by: Li, Tingqian <tingqian.li@intel.com>

* remove test

* fix pytest CI issue

* minor fix after rebase

* fix clang format check

* fix failed tests
2022-07-05 15:50:35 +08:00
Chenhu Wang
8c152405ad [CPU] General denormals optimization (#11883)
* FTZ_and_DAZ_set_for_cpu

* remove DAZ

* fix

* extract to utils

* ie core part changes to add do as property and benchmark_app enable do

* enable brgcov from Luocheng patch

* add debug info

* enable_brgemm_on_avx512

* add python binding

* dlb test

* FTZ_and_DAZ_set_for_cpu

* remove DAZ

* fix

* extract to utils

* ie core part changes to add do as property and benchmark_app enable do

* enable brgcov from Luocheng patch

* add debug info

* enable_brgemm_on_avx512

* add python binding

* dlb test

* revert test code

* revert test code
2022-07-05 15:50:16 +08:00
Kelvin Choi
186189ee09 [GPU][DOC] Change fixed input string name to get_friendly_name at yuv infer request (#12003) 2022-07-05 15:36:02 +09:00
Tingqian Li
3f9c6b2f3f [BUG fix] Reshape node: WA in-place failure case by mem-copy (#10828)
* Handle in-place failure cases in reshape node

* Disable inplace when non-const reshape connected to constant

* Add comment to reshape_inplace test

* move copy WA into execute() to cover more general in-place failure cases
2022-07-05 04:46:27 +00:00
Mang Guo
a571539107 Optimize FullyConnected FakeQuantize post-ops (#11819)
* Optimize FullyConnected FakeQuantize post-ops

* matmul bias fuse

* Add simplifyToScale for FakeQuantize and use it in FC and Conv.

* Add fakequantize documentation

* Update doc and fix accuracy issue

* Update doc

* Fix accuracy regression

* Generalize the judgment Criteria about fake quantization with scale

* Update document

Co-authored-by: Zhang Yi3 <yi3.zhang@intel.com>
Co-authored-by: xuchen-intel <chen.xu@intel.com>
2022-07-05 09:39:42 +08:00
Luo Cheng
35ee842446 [CPU] [WA] Use config to enable brgconv f32 kernel (#11990)
* enable brgconv f32

* use config to enable brgconv f32

* when brg disabled not init bin-postops

* change prop name for extensive

* use more general field

* fix review comments.
2022-07-05 07:14:40 +08:00
River Li
30c7f561e3 Add FORCE_TBB_TERMINATE to legacy API (#12022)
* Add FORCE_TBB_TERMINATE to legacy API

* Put this config into proper place

* fix issue in property test

Co-authored-by: Shen, Wanglei <wanglei.shen@intel.com>
2022-07-04 18:49:23 +03:00
Jan Iwaszkiewicz
e5a719480b [PyOV] Fix bugbear's B023 (#12040) 2022-07-04 15:57:36 +02:00
Felix Dohyun Kim
3334e8933c [GPU] Pass activation unit tests on DG2 (#11969)
* supprot bfwzyx format
* Add test: bfwzyx activation
* Make opt kernel support bfwzyx
2022-07-04 19:54:17 +09:00
Jade Cho
195f5df2e8 set zero-point as immediate value (#12002) 2022-07-04 19:53:50 +09:00
avoskoboinyk-lohika
88784c2b6f [CPU] Optimize NonZero operation (#11549)
* [CPU] Optimize NonZero operation

# Conflicts:
#	src/plugins/intel_cpu/src/nodes/non_zero.cpp

* [CPU] Rewrite NonZero implementation, so it will use generic ie_parallel API

* [CPU] NonZero operation: apply an additional optimization

* NonZero operation: add fallback code for inRank >= 6

* NonZero operation: apply review modifications

# Conflicts:
#	src/plugins/intel_cpu/src/nodes/non_zero.cpp

* NonZero operation: inShape.getDims().size() -> inRank

* NonZero operation: eliminate input array index calculation by slight modification of ie_parallel API

* Adjust ie_parallel.hpp style for clang-format

* Try to unbreak the build

* Move to parallel_nt and add a cache for nd loops to optimize more

* Add minimal size threshold for threading and reduce warning count

* Try to workaround linter errors

* One more try to unbreak cpplint build

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2022-07-04 10:52:18 +08:00
Mang Guo
d22c429d0e [CPU] Remove vmaxps in store_vector. (#12005)
* Remove vmaxps in store_vector.
This instruction is not needed for dst_prc int8.
And it may lead to wrong result with denormals optimization is on.

* Add vpmaxsd if dst_prc is u8 or u16.
2022-07-02 13:22:05 +00:00
Oleksandr Kramskyi
dde3300cac [GPU] Add SoftSign_9 operation (#11795) 2022-07-01 15:22:17 +09:00
Mykhailo Hnap
e23a568b7a Added axes node validation to DFTs operations (#11814)
* Fix DFTs axes node validation.

* Add DFTs type prop tests for invalid nodes.

* Adjusted DFTs axes node validation.
2022-07-01 15:19:04 +09:00
Wang, Yang
8138e240a0 Remove the config key MULTI_WORK_MODE_AS_AUTO from the AUTO/MULTI plugin. (#12016)
Signed-off-by: Wang, Yang <yang4.wang@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-07-01 05:05:39 +00:00
Wang, Yang
378b3a2dca Enable default performance hint as tput in AUTO (#11848)
* Enable hint to tput if no property is specified for both AUTO device and target device.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* 1. Update logic.
2. Add test cases.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update. Set hints to default for target device if no hints setting for AUTO plugin and no specific properties setting for target device.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>
2022-07-01 02:49:20 +00:00
Taylor Yeonbok Lee
1872e05375 Fix wrong output type propagation for gather elements (#12013) 2022-06-30 17:22:38 +00:00
Tomasz Dołbniak
5a5c404f13 Hello reshape SSD sample fix (#12004) 2022-06-30 13:35:14 +03:00
Bo Liu
7834dba545 fix CPU Plugin deformable conv Node output incorrect issues with uneven dilations (#11940) 2022-06-29 18:14:30 +08:00
Min, Byungil
730c3f8f25 [GPU] Update Debug config for GPU plugin (#11983)
+ Added OV_GPU_DumpLayersResult
+ Applied minor update

Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-06-29 11:41:13 +03:00
Karol Blaszczak
563d4f16e6 DOCS-nncf_rephrasing (#11997) 2022-06-29 08:54:05 +02:00
Wonju Lee
62d5f9a006 [POT] Rename ranger to range_supervision (#11998)
* fix: rename ranger by range_supervision

* ci: dummy commit
2022-06-29 15:27:57 +09:00
stephenli2000
4125d71ce8 setupvars.sh: Removing extra semicolon, which breaks glibc build (#11849)
This extra semicolon creates an output as example below. The extra
'::' is equivalent to add '.' as part of the LD_LIBRARY_PATH. This
breaks glibc build, and very often creates weird issue when launch
commands from different path.

...inference_engine/external/tbb/lib::/opt/intel/openvino_2021/...

We also noticed that :${parameter:+:$parameter} is widely used in
this file. Please review the code and fix as needed.
2022-06-29 08:11:24 +02:00
Vladyslav Tsilytskyi
72505b1d82 Use 2020-resolver feature only for pip3 < 20.3.0 (#11926)
Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
2022-06-28 12:05:13 +02:00
Katarzyna Mitrus
674ca1ccc2 [ONNX] Enable Concat with empty tensor/scalar (#11979) 2022-06-28 08:34:10 +02:00
Chenhu Wang
1288706589 large_batch_opt (#11951) 2022-06-28 10:33:16 +08:00
Karol Blaszczak
a4e6cda7e8 DOCS-restore_gsearch_comma (#11980) 2022-06-27 23:27:12 +02:00
Mateusz Mikolajczyk
a70bbad988 [PyOV] Fix loading data to Tensor from array-like objects (#11974) 2022-06-27 16:26:45 +02:00
opoluektov-lohika
8a21e4e062 [GPU] Implement ExperimentalDetectronDetectionOutput operation (#11772)
* ExperimentalDetectronDetectionOutput: refine sorting criteria for NMS stage

This is to ensure the operation produces stable predictable results across
the possible sorting algorithm implementaions.
This property is useful for the operation testing.

* [GPU] Implement ExperimentalDetectronDetectionOutput operation

* [GPU] ExperimentalDetectronDetectionOutput: use vector types and operations in kernel

* Reformat changed files to make clang format checker happy

* [GPU] ExperimentalDetectronDetectionOutput: add another test case to the unit test

* [GPU] ExperimentalDetectronDetectionOutput: Add f16 test

* ExperimentalDetectronDetectionOutput: single-layer test: use all three outputs

* [GPU] ExperimentalDetectronDetectionOutput: increase single layer test coverage

More attribute permutations were added.
2022-06-27 23:11:03 +09:00
Chenhu Wang
95a297ed68 onednn_update (#11930) 2022-06-27 11:22:50 +00:00
Inhyuk Jo
4d741703d1 [POT] Fix dynamic shapes and batchfying data (#11923)
* fix: batchfy data by sampler or data loader

* feat: add batched sampler

* docs: update doc
2022-06-27 15:18:36 +09:00
Luwei Zhou
4be0c59505 Fix the Non_Zero childedge check. (#11963) 2022-06-27 10:43:38 +08:00
guozhong wang
44da3f06c4 add tag for log (#11887)
* add tag for log

* cumulative log tag output AUTOPLUGIN

* add use comment for log_xxx_tag and use AUTO OR MULTI for log tag
2022-06-26 15:10:45 +08:00
guozhong wang
c0a2c98a45 add testcase for plugin properties should not be revised by compile_m… (#11842)
* add testcase for plugin properties should not be revised by compile_model

* rename smoke_cpuCompileModelBehaviorTests to smoke_gpuCompileModelBehaviorTests

* remove property EXCLUSIVE_ASYNC_REQUESTS in ov2.0 test

* add testcase for plugin properties should not be revised by loadNetwork
2022-06-25 16:37:43 +08:00
River Li
2bbd2b1990 Fix coverity issue in executorManager (#11964)
1. fix coverity issue
2. avoid oneTBB build error due to different API with TBB

Change-Id: I0339446e33186e0ce57de07aa8492186f2f6e369
2022-06-25 10:22:34 +08:00
Wang, Yang
bd04dc1ecf fix compiled model failed issue when set config with ov device properties (#11793)
* 1. Enable IE Core filter to promote the secondary properties to first level for hardware device.
2. Enable IE Core filter to pass the secondary properties to AUTO plguin.
3. Enable AUTO Plugin to parse secondary properties to first level and pass them to corresponding target hardware device.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* 1. Enable MULTI Plugin to support secondary properties.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* 1. Enable HETERO Plugin to support secondary priorities.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Catch the EXPECT_CALL with AVAILABLE_DEVICES argument inputting to GetMetric.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Revert the logic of handling secondary properties for MULTI and HETERO device.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Remove the secondary property flattening logic because this logic has been implemented within AUTO plugin.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* 1. update flatten logic when secondary properties is specified.
2. add the test case with secondary properties for CPU.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* add the test case with secondary properties for GPU plugin.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add debug message to fix the test case failure issue.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add more debug info.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.
1. For IE Core, 1st level property overides the 2nd level property.
2. For AUTO plugin, add available device list to check if the secondary properties is vaild.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add CUDA and ARM.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update device name for ARM Plugin and add device name for HPU plugin.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-06-25 10:17:30 +08:00
Karol Blaszczak
23b0ba6898 Update integrate_with_your_application.md (#11833) 2022-06-24 13:26:06 +02:00
Kevin Putnam
f19b4c7ae4 Puts page switch parameters in alphabetic order to support S3 (#11960)
Signed-off-by: intelkevinputnam <intelkevinputnam@github.com>

Co-authored-by: intelkevinputnam <intelkevinputnam@github.com>
2022-06-24 11:59:10 +02:00
Wang, Yang
30bd4a905e Support ov::device::capabilities for AUTO plugin. (#11925)
* 1. Enable OPTIMIZATION_CAPABILITIES for AUTO plugin.
2. Add corresponding test case.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Remove EXPORT_IMPORT as Export is not implemented in the AUTO/MULTI.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>
2022-06-24 10:14:34 +08:00
Yuan Xu
079d1d6e74 fix the link to VPU extensibility article (#11956) 2022-06-23 11:24:32 +00:00
Yuan Xu
5008ee8090 Troubleshooting guide update (#11896)
* Add Overview page

* Revert "Add Overview page"

* fix errors & formatting

* fix article usage according to the styles

* fix errors

* update according to PXT comments

* CVS-80775

* update support matrix with Python version

* fix formatting

* fix formatting

* CVS-71745

* update formatting

* fix formatting

* fix formatting

* fix links & errors

* fix formatting

* update bullet points

* update

* adjust the order

* update

* update

* updates

* update references

* update

* update

* apply same updates with 22/1

* minor fix

* update reference link

* fix CVS-71846

* test

* add troubleshooting steps

* restructure get started home page

* update navigation menu

* update formatting

* fix mistakes

* update wording

* update

* rename configurations files

* update wording

* adjust the structure

* update formatting

* reverse the heading

* test with formatting

* 2nd version of Get Started homepage

* add line breaks

* change to ordered list

* update wording

* update content

* updates

* update DL workbench reference

* update wording

* update references to pip installations

* remove redundant files

* update headings

* update

* update

* restructure

* rename

* updates

* remove a comment

* correct grammar

* fix formatting

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* integrating comments

* update

* update

* correct an error

* update

* typo

* hiding CentOS issues

* update verification steps

* to show one change

* to show the change

* add comments

* update comments

* revert the changes

* update formatting

* test formatting

* update code formatting

* update formatting

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* update content, remove some comments

* update Python installation info

* update formatting

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Ryan Loney <ryanloney@gmail.com>

* update wording

* test formatting

* update formatting

* update formatting

* fix formatting

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
Co-authored-by: Ryan Loney <ryanloney@gmail.com>
2022-06-23 10:22:30 +00:00
Karol Blaszczak
1341c0d6f4 Docs doc structure step 1 (#11922)
* DOCS-structure_workflow
workflow diagram files and formatting
added overview articles on models and deployment
added the ecosystem page and changed the header from addons

* DOCS-structure_dlworkbench
* DOCS-structure_ovtf
2022-06-23 10:38:08 +02:00
Artur Kulikowski
7e7bb37fe3 Fixed FakeOutputResolver to avoid renaming correctly named nodes (#11938)
* fixed FakeOutputResolver to avoid renaming correctly named nodes

* fixed failed mo_args test: process reverse_input_channels through eltwise with constant with shape=[]

* changed fix to more accuarate to avoid possible issues

* Remove unnecessary iterating over producer outputs

Co-authored-by: sadolini <svetlana.a.dolinina@intel.com>
2022-06-23 08:05:06 +00:00
RICKIE777
ebeb0a3802 Add hello_classification_ov_c test (#11933)
Co-authored-by: River Li <river.li@intel.com>
2022-06-23 15:08:53 +08:00
Paul Youngsoo Ahn
11a9888c3f [GPU] Fix coverity issues(#11876) (#11876)
- CID: 1489915
2022-06-23 07:21:05 +03:00
River Li
b490ef545f Property to terminate tbb threads (#11650)
* Property to force terminate tbb threads

During inference done, tbb threads cannot be closed by itself, which cause memory leak and unload/lingering threads.
Sometimes the tbb threads need to be terminate for resource(memory, thread) consumption

This PR contains:
1. Add a new property to control whether force to terminate tbb threads.
2. Property key is "FORCE_TBB_TERMINATE", default value is false.
3. Explicitly to terminate tbb task scheduler during unload openvino dll if this property is set true.
    e.g: core.set_property(device, ov::force_tbb_terminate(true));
4. If not set FORCE_TBB_TERMINATE, there will be no any additional tbb operations.

Change-Id: I32dc0ba122bb19a9dbf3ba12fdd596aad9ac54b4

* Fix executorManager test case

Change executorManager from static to be dynamic, the test case should fit this change.

* Change frontendManger to be non-static instance

Make frontendManger to be non-static instance.
We should guard it is not released before Model, due to Model will use the mem allocated by frontendManger.
So put frontendManager reference in ov::Model to make it work.

* Fix race condition between executor and executorManger

* Add test case for tbb property

1. Add basic test case for ov::force_tbb_terminate property
2. set ov::force_tbb_terminate to be false

* Avoid terminate tbb in case of no tbb thread created

* Fix Constant ops segmentfault issue

There is segmentfault issue during Constant destruction, which is caused by some shared memory is double free
Test case is:
	ie = IECore()
        net = ie.read_network(model=test_net_xml, weights=test_net_bin)
        query_res = ie.query_network(net, device)
        func_net = ng.function_from_cnn(net)
        ops_net = func_net.get_ordered_ops()
ie and net will be released before ops_net destruction, so Constant will free the shared memory that has been freed

* Make constant::m_data is released before frontendmanager

* tiny format change

* change tbb blocking_terminate to terminate

Tbb blocking_terminate calling will cause some segmentfault during run some special models,
the reason may comes from block_terminate cause current thread block here to wait for tbb exit,
but cannot handle some resource dependencies.
After adopt terminate(), the dependencies can be resolved and no segmentfault any more.

Change-Id: I0b920630a25cd3fd2747c57ec71ca749ba35573b

* Remove unnecessary dependencies

* Disable dynamic lib test case in static library compilation version

As CVS-68982 description, we should disable the test case which will load
dynamic library in openvino static library compilation.

* Fix nested-namespace-definition issue

* Address reviewer's comments
2022-06-23 03:20:15 +00:00
Tomasz Jankowski
bf2bd624b6 Limit ONNX version (#11949)
OV does not currently support opset 17 introduced in onnx 1.12 release.
2022-06-22 22:26:47 +02:00
Bartek Szmelczynski
1543e35b1b [MO] update ROIAlign op to opset9 (#11623) 2022-06-22 10:58:15 +02:00
Adam Tumialis
4426aa58e2 Update windows.yml (#11943)
Temporary change for Win build timeout in Azure.
2022-06-22 10:30:33 +02:00
Roman Baranchuk
5cba0ae871 [CPU] GRN: dynamic shapes support (#11678) 2022-06-22 10:45:06 +08:00
Roman Baranchuk
dab9da25fa [CPU] Roll: dynamic shapes support (#11707) 2022-06-22 10:33:18 +08:00
Roman Baranchuk
44cecc8579 [CPU] ReverseSequence: dynamic shapes support (#11644) 2022-06-22 10:27:06 +08:00
Tomasz Jankowski
c8ced8728e [Core] Fix GridSample assertion (#11924)
* Fix GridSample assertion

* Avoid ONNX opset 17 backend tests
2022-06-21 23:28:21 +02:00
Krzysztof Bruniecki
d25b8466f6 [GNA] Fix and extend removed logging capabilities (#11880)
* [GNA] Fix and extend warning and debug log levels using speech_sample

* [GNA] Cleanup and apply const correctness

* Apply review
2022-06-21 09:57:44 +02:00
Yuan Xu
dc6e5c51ee update pypi installation for pypi.org (#11907)
* update pypi installation for pypi.org

* Update docs/install_guides/pypi-openvino-dev.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* Update docs/install_guides/pypi-openvino-rt.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* Update docs/install_guides/pypi-openvino-rt.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* Update docs/install_guides/pypi-openvino-dev.md

* update

* remove comment

* remove comment

* hide Visual Studio error

* update wording

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
2022-06-20 17:06:49 +08:00
Katarzyna Mitrus
217b39e76b [MO] Name fix for mxnet Eye conversion (#11903)
* Fix mx eye op name string

* Enable default for num_columns 0
2022-06-20 07:03:11 +02:00
yanlan song
7f435059c9 Bell/fix single device coredump (#11895)
* enable binder schedule

Signed-off-by: fishbell <bell.song@intel.com>

* add cases

Signed-off-by: fishbell <bell.song@intel.com>

* refine

Signed-off-by: fishbell <bell.song@intel.com>

* fix build failure

Signed-off-by: fishbell <bell.song@intel.com>

* fix coredump

Signed-off-by: fishbell <bell.song@intel.com>

* do not return hw requests directly, potential issues

Signed-off-by: fishbell <bell.song@intel.com>

* fix bug

Signed-off-by: fishbell <bell.song@intel.com>

typo

Signed-off-by: fishbell <bell.song@intel.com>

* optimize memory

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-06-20 10:10:45 +08:00
Wilson Seok
477bfa1c09 [GPU]fix kernel select validate in deconv kernel fsv16 for fs=8 input (#11909)
* fix kernel select validate in deconv kernel fsv16 for fs=8 input
* apply the WA for Windows only
* Narrow down condition of ref kernel selection
2022-06-20 10:34:45 +09:00
River Li
ce5b2c6a45 Refine ov_partial_shape for OV API 2.0 C interface (#11891)
* Refine ov_partial_shape for OV 2.0 C interface

To avoid potential string security problem, remove string pointer from ov_partial_shape structure.

* Remove redundant code

* fix typo issue

* fix shape test issue

* fix some minor issues

* Address reviewing comments

Use Dimension to represent rank of parital shape.

* Appy safer method to parse partialShape string

1. adopt ov::Dimension::value_type to construct ov::Dimension
2. safter method to convert string to dimension value
3. apply std::vector<std::string> to replace std::vector<char *> during pasrsing partialShape string

Change-Id: I0e0b70a915fc5c5fefad51de51f167798854f55e
2022-06-20 08:22:39 +08:00
Xiping Yan
870f84f19b Xp/maxnick in place fix 43602 (#11664)
* Convolution concat sum inplace conflict fix

* Minor refactoring.

* Rebase to OV2.0, build pass.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

* Remove old file.
Rebase introduce this file by mistake.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

* Move functional test for subgraph.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

* Disable some crash test for continue to test others.

* Rename ConcatConvSumInPlaceTest to ReLuConcatConvSumInPlaceTest
fix ci crash issue.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

* Revert "Disable some crash test for continue to test others."

This reverts commit f7a8677c002747b45e84f74672f76e2fdfc7ab22.

* Add const for inPlace.

Signed-off-by: Yan, Xiping <xiping.yan@intel.com>

* fix build issue, missing braces;

Co-authored-by: Maksim Kutakov <maksim.kutakov@intel.com>
2022-06-17 16:35:58 +08:00
Min, Byungil
d3ca2f8cf1 [GPU] Add functionality of debug config ForceImpltype (#11884)
+ Force one layer using id
+ Add do, reduce to the primitive list

Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-06-17 15:03:34 +09:00
Kelvin Choi
49c1a25e0f [GPU] Add deeper case handling for ConvertColor op (#11874) 2022-06-17 09:15:17 +09:00
Yuan Xu
d7b8d80a61 Cumulative throughput 2022.2 (#11831)
* Add Overview page

* Revert "Add Overview page"

* update auto with cumulative throughput

* update formatting

* update formatting

* update content

* update

* fix formatting

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Chen Peter <peter.chen@intel.com>

* update

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/multi_device.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Chen Peter <peter.chen@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* Update docs/OV_Runtime_UG/auto_device_selection.md

* update indentation of table

Co-authored-by: Chen Peter <peter.chen@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-06-16 16:23:10 +00:00
Tingqian Li
2fec03024d Add signal stack management for AMX in linux python API (#11894)
* Add signal stack management for AMX in linux python API

* fix wording

* fix empty line

* add AT_MINSIGSTKSZ definition

* Fix misspelling and conditional compiling on __linux__
2022-06-16 20:17:05 +08:00
guozhong wang
164a59925a ctput enable perf_count (#11854) 2022-06-16 15:44:35 +08:00
Tomasz Jankowski
f8c4e736b4 [Core] GridSample operator reference implementation (#11841) 2022-06-16 08:47:29 +02:00
mei, yang
39981bf2b8 relax the class number check in paddle multiclass_nms op (#11857)
* relax the class number check in paddle multiclass_nms op

* relax checks in paddle multiclass_nms op
2022-06-16 11:29:15 +08:00
Yuan Xu
54fe2d1a3f Fix yum code format (#11902)
* fix formatting

* update formatting
2022-06-16 09:52:32 +08:00
Bonhun Koo
e5ddce54f6 Add an option to store the quantized weights as INT8 on the GNA speech sample (#11838) 2022-06-16 09:51:28 +09:00
Przemyslaw Wysocki
09a0fb7890 [PYTHON] Create graph and generate image in tests (#11569)
* Change read_image() into generate_image()

* Move test utils from testdata repo to local files

* Minor changes

* Remove unnecessary code

* Minor changes

* Fix compatibility tests

* Fix imports for Azure pipeline

* Move model generation into test_utils

* Minor changes

* Minor changes

* Update linux.yml CI

* Remove testdata repo from .ci/linux.yml

* Remove testdata repo from pipelines

* Fix Azure compatibility tests

* Reset linux.yml

* Remove testdata repo from linux CI

* Try eliminating one of configs

* Attempt at fixing Azure tests

* Add separate utils for compatibility

* xfail comp if op tests

* Minor changes

* Revert changes to .ci files

* minor changes

* Remove xfails

* Remove unecessary import

* Skip if op tests

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2022-06-16 00:31:05 +03:00
Helena Kloosterman
7114863cbc Update date in MO update message (#11834) 2022-06-15 16:53:45 +02:00
Tomasz Dołbniak
eb2fb5bf7d Additional tensor names for ONNX variadic ops (#11893) 2022-06-15 13:22:59 +02:00
Szymon Irzabek
9f7d08154d [GNA] Decompose 2D convolution fix (#11818) 2022-06-15 12:39:22 +02:00
yanlan song
6d903d4376 optimize sample (#11864)
Signed-off-by: fishbell <bell.song@intel.com>

optimize sample

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-06-15 13:38:10 +03:00
Bartek Szmelczynski
6033e52dd9 Remove set_from from samples, update docstrings (#11889) 2022-06-15 12:10:00 +02:00
OpenVINO-dev-contest
594c3dac49 Top k v2 (#11731)
* add paddle op top_k_v2

* rebase

* fix variable support issue for paddle top_k_v2

* Update src/frontends/paddle/src/op/top_k_v2.cpp

Co-authored-by: Bo Liu <bo4.liu@intel.com>

* Update src/frontends/paddle/src/op/top_k_v2.cpp

Co-authored-by: Bo Liu <bo4.liu@intel.com>

* Update src/frontends/paddle/src/op/top_k_v2.cpp

Co-authored-by: Bo Liu <bo4.liu@intel.com>

* format the top_k_v2.cpp

Co-authored-by: meiyang-intel <yang.mei@intel.com>
Co-authored-by: Bo Liu <bo4.liu@intel.com>
2022-06-15 17:59:48 +08:00
Artur Kulikowski
6fdbbe03f5 Remove protobuf requirements in python bindings (#11886) 2022-06-15 10:52:33 +02:00
Yuan Xu
7963ba20f4 Update Get Started Guide structure (#11875)
* Add Overview page

* Revert "Add Overview page"

* fix errors & formatting

* fix article usage according to the styles

* fix errors

* update according to PXT comments

* CVS-80775

* update support matrix with Python version

* fix formatting

* fix formatting

* CVS-71745

* update formatting

* fix formatting

* fix formatting

* fix links & errors

* fix formatting

* update bullet points

* update

* adjust the order

* update

* update

* updates

* update references

* update

* update

* apply same updates with 22/1

* minor fix

* update reference link

* fix CVS-71846

* test

* add troubleshooting steps

* restructure get started home page

* update navigation menu

* update formatting

* fix mistakes

* update wording

* update

* rename configurations files

* update wording

* adjust the structure

* update formatting

* reverse the heading

* test with formatting

* 2nd version of Get Started homepage

* add line breaks

* change to ordered list

* update wording

* update content

* updates

* update DL workbench reference

* update wording

* update references to pip installations

* remove redundant files

* update headings

* update

* update

* restructure

* rename

* updates

* remove a comment

* correct grammar

* correct grammar

* update structure

* update headings

* restructure

* fix formatting

* change the capitalization

* update heading

* update PyPI install

* updates

* update formatting

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* Update docs/install_guides/troubleshooting-steps.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

* integrating comments

* update

* update

* correct an error

* correct an error

* update

* update

* update wording

* typo

* typo

* hiding CentOS issues

* update headings

* update heading

* Update docs/get_started/get_started_demos.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/get_started/get_started_demos.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/install_guides/pypi-openvino-dev.md

* Update docs/install_guides/pypi-openvino-dev.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-06-15 05:59:17 +00:00
Krzysztof Bruniecki
5939cb1b36 [GNA] Use node name as tensor name on import previous format where tensor n… (#11826) 2022-06-14 17:16:59 +02:00
Sungeun Kim
a454b7371e add zyx_fsv32 format for onednn deconv (#11873) 2022-06-14 22:04:29 +09:00
Krzysztof Czugala
25e002808a Change pyenchant version to 3.0.0 (#11735)
* Change pyenchant version to 3.0.0

* Change pyenchant version to 3.0.0
2022-06-14 07:56:33 +02:00
Krzysztof Czugala
15d64d25af removal of compatibility tests executing models with dynamic shapes (#11751) 2022-06-14 07:55:24 +02:00
Taylor Yeonbok Lee
c73201c9e6 Optimize memory depdendency analysis (Constant memory does not use pool : No need to add constant nodes to deps) (#11861) 2022-06-14 13:46:24 +09:00
Luo Cheng
cae0c924b6 [CPU] [Test] Eye testcase does not populate all parameters (#11869) 2022-06-14 09:32:56 +08:00
Luo Cheng
151d77062f [CPU] remove unused primitive (#11811)
* remove unused primitive

* update onednn commit
2022-06-14 06:19:05 +08:00
Zhang Yi
209331d9df Pr/8669 (#11840)
* Added tests

* Apply comments

* Update

* Apply comments

* Fixed remaining comments

* Use ov::test::SubgraphBaseTest

Co-authored-by: Egor Shulman <egor.shulman@intel.com>
2022-06-13 20:25:59 +08:00
Tomasz Dołbniak
8603acecba Dont use moved-from object (#11859) 2022-06-13 10:13:47 +00:00
Katarzyna Mitrus
421520bda0 Handle error from propagate_rt_info (#11773) 2022-06-13 11:11:30 +02:00
Luo Cheng
922e32e2f1 disable avx512 brgconv (#11866) 2022-06-13 17:10:42 +08:00
cecilia peng
d91b8bd17c disable random unit tests for multiclass nms and matrix nsm. (#11839)
They sporadically impact CI... possible reason is the order of paddle and openvino is not guaranteed when more than
one bboxes have equal scores.
Actually there is no need for these random tests as the remainding cases have covered them.
2022-06-13 16:43:57 +08:00
Bartek Szmelczynski
93839f8379 [PYTHON API] Check new config (#11402)
Improve code-style in Python API and reduce number of ignored hints.

Co-authored-by: Anastasia Kuporosova <anastasia.kuporosova@intel.com>
2022-06-13 10:21:04 +02:00
Luo Cheng
9fe27be1cb [CPU] Fix smoke_Conv_3D_FP32_fusingScaleShiftAndFakeQuantizePerChannel sporadic failure (#11813)
* fix smoke_Conv_3D_FP32_fusingScaleShiftAndFakeQuantizePerChannel sporadic failure

* rebase onednn
2022-06-13 15:29:20 +08:00
Luo Cheng
91216fef5a [CPU] Revert enable ReduceSum -> AvgPool transformation due to perf issues (#11865)
* disable ConvertReduceMeanToPooling

* recover testcase
2022-06-13 14:11:53 +08:00
River Li
c4fdcafa70 Enable unit test for OV 2.0 C API (#11828) 2022-06-13 13:37:59 +08:00
River Li
0571124fd3 Fix CC issues for transformation and snippets (#11798)
* Fix CC issues for transformation and snippets

Matcher should be enabled if it was hit during analyze stage.

* Fixed 3 naming issue
2022-06-13 13:36:35 +08:00
Luo Cheng
c848e138f8 [CPU] cherry-pick: Fix possible data race when accessing global reorder list (#11829)
* [CPU] cherry-pick: Fix possible data race when accessing global reorder list

* rebase onednn
2022-06-13 13:11:53 +08:00
Eddy Kim
3961a241cd Revert "Disable fc_int8_inputs_fused_fp32_sum (#11709)" (#11863) 2022-06-13 13:25:59 +09:00
Sieun Kim
6e3dd4adce Update scatter nd update kernel to support blocked_formats (#11533)
* draft pr for planar and fsv16

* draft pr for general test

* update fusion test (failing)

* update fusing test (pass)

* update fusing test (include exception)

* clean gpu unit test

* review comment applied

* unit test cases added & cpplint applied

* cpplint error fixed

* change gpu test cases for fp16

* fusing test fix generate_unique_indices

* fix typo

* revise cl kernel for occasions when updates shape is altered
2022-06-13 13:25:24 +09:00
Paul Youngsoo Ahn
ca7ddae9ba [GPU][Coverity] Fix coverity defects (#86191) (#11852)
- CID 1486993 Big parameter passed by value (PASS_BY_VALUE)
- CID 1489431 Uninitialized scalar variable
- CID 1489432 Uninitialized scalar variable
2022-06-13 02:51:45 +00:00
Sungeun Kim
9bda2bd580 lws quantize/eltwise (#11851) 2022-06-13 11:18:49 +09:00
Felix Dohyun Kim
d831047f30 [GPU] Optimize DepthToSpace (#11761)
* lws optimize
2022-06-13 11:17:22 +09:00
Luwei Zhou
0066ddbd22 Update onednn submodule hash to fix 3D deconv post-ops issue. (#11836) 2022-06-13 09:21:29 +08:00
Luwei Zhou
c73f6576e0 Luwei/extend reorder test (#10003)
* Extend the reorder unit test.

* Update CMake

* fix somme issues.

* Update

* Update

* Update

* Update

* Update and fix caused by input portconfig only support NCSP.

* Update Copyright

* Add more tests

* Apply review comments.

* Update

* Update

* Fix building error.

* Applied review comments.

* Update

* Update

* Update

* Fix CI

* Update

* Update Cmake
2022-06-11 21:09:26 +08:00
Mateusz Bencer
8e9eaaee91 [FakeQunatize] Use shape from HostTensor instead of FakeQuantize* (#11843) 2022-06-10 17:57:03 +03:00
mei, yang
38a81ec486 update and reorder supported paddle op list (#11601) 2022-06-10 18:46:11 +08:00
guozhong wang
408bdc9f81 add single IECore for core_threading test (#11796) 2022-06-10 08:25:12 +03:00
Bo Liu
79d3fbe3c1 remove limitation usage of brgemm for 'FullyConnected' Node (#11783) 2022-06-10 10:19:41 +08:00
Chenhu Wang
1066d4551f fix_nms_ops_transformation (#11794)
* fix_nms_ops_transformation

* replace node when 5-9
2022-06-10 10:18:28 +08:00
Chenhu Wang
604dc4589c [CPU] Deconvolution caching support (#11835)
* Deconvolution caching support

* get ride of deprecated name

Co-authored-by: mandrono <maxim.andronov@intel.com>
2022-06-10 10:17:59 +08:00
Chenhu Wang
e2e7417c2a load_store_emitters_optimization_and_apply_to_interpolate (#11742)
* load_store_emitters_opt_and_apply_to_interpolate

* zmm_zero_is_always_needed_on_all_platform
2022-06-10 10:17:29 +08:00
opoluektov-lohika
d87233863d Fix experimental detectron do ref impl (#10621) 2022-06-10 03:10:13 +03:00
Tomasz Dołbniak
0932c74ff8 GridSample operator (#11770) 2022-06-09 14:21:53 +00:00
Andrew Kwangwoong Park
5fa669785c [GPU] Update reorder_inputs for data type conversion on fc layer (#11832)
Signed-off-by: Andrew Park <andrew.park@intel.com>
2022-06-09 15:18:28 +09:00
River Li
8faf8f2d89 OV 2.0 C API (#11700)
* Initial files & cmakefiles for ov 2.0 c api development

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add all ov 2.0 C APIs define

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix review comments

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Disable test of OV 2.0 C APIs test for tmp

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add related property key for ov 2.0 C-API

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add description for ov_property_key_e

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add EXECEPTION handling

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* compiledModel add interface

* add inferrequest interface

* solve cpplint problem

* Finished OV 2.0 C-APIs PPP related development

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix code review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add ov::tensor API

* add compiled model func

* Finished C-API funs about core, model, node development

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C-API] add const to ov_output_node

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C-API] Using define GET_OV_ELEMENT_TYPE & GET_CAPI_ELEMENT_TYPE in tensor APIs

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C-API] add string initialize

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* add inferrequest func

* add move construction to runtime_model

* supplement two infer request interface functions

* [OV 2.0 C-API] Add the common framwork of unit test

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* modify ov_infer_request_get_profiling_info

* add tests dir

* restore CMakeLists.txt

* Fix the bug of COPY in Tensor

* [OV 2.0 C API] Finished core related function unite test

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Add ov:Tensor API test

* [OV 2.0 C API] fix some review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* add some infer request test

* add compiled model test

* [OV 2.0 C API] Finished preprocess related function unite test

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C API] Fix review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C API] Modify to use default model

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* transfer device_name from fix value to parameter

* add some infer request test

* remove compiled model get_property test

* add infer request tests

* Add ov::model Test and modify Tensor Test name

* Determine whether partial shape meets the standard

* Add get tensor name function and Modify reshape test case

* modify fixed tensor name,remove unnecessary comparison

* add ov_model_get_nodes_info, modify according to comments

* Update reshape test

* extract common function, modify interface about get tensor name,shape and type

* modify according comments

* [OV 2.0 C API] Finished hello classification with ov 2.0 c-api development

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C API] Fixed hello classification with ov 2.0 c-api review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [OV 2.0 C API] delete inactive code hello classification with ov 2.0 c-api

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix clang format issue

* [OV 2.0 C API] rename

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix windows build erre

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Apply qsort for sorting data

Apply qsort for sarting data
Fix issues of "potentially uninitialized local pointer variable"

* Not use deprecated INSTANTIATE_TEST_CASE_P for c api gtest

INSTANTIATE_TEST_CASE_P is deprecated, should use INSTANTIATE_TEST_SUITE_P.

* Fix some review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* [Ov 2.0 C API] Add error info

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix some review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* Fix review issues

Signed-off-by: xuejun <Xuejun.Zhai@intel.com>

* polish error message for ov c api

* Redefined ov_shape_t, ov_partial_shape_t and ov_layout_t. Modified functions and test cases involving these variables

* Added the conversion between char* and partial_shape

* Add partial_shape_to_shape

* prune code

* modify split

* Use regex to split and search pattern

* Modify str_to_char_array delete

* Add the judgment of rank

* Fix compiling error

Fix issue: address of array 'shape.dims' will always evaluate to 'true'  if -Wpointer-bool-conversion

Co-authored-by: xuejun <Xuejun.Zhai@intel.com>
Co-authored-by: sunxiaoxia2022 <xiaoxia.sun@intel.com>
Co-authored-by: ruiqi <ruiqi.yang@intel.com>
2022-06-09 10:39:07 +08:00
Roman Baranchuk
0231637441 [CPU] GatherTree: dynamic shapes support (#11544) 2022-06-09 10:18:51 +08:00
Karol Blaszczak
fe41b8eacc Docs multiplugin page-wide tabs merge (#11461) (#11784)
* Docs multiplugin page-wide tabs merge

porting to master changes aligning multi plugin with other articles already present in 22.1

* Update docs/snippets/MULTI4.cpp

* Update docs/snippets/MULTI4.cpp
2022-06-08 16:56:37 +02:00
hyunback kim
41a0d3a0f8 [GPU] Add oneDNN zero point value debug log. (#11817)
* [GPU] Add oneDNN zero point value debug log.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-06-08 22:01:16 +09:00
Sungeun Kim
2c4cb88862 [83906] DG2 Systolic engine not getting used for fp16 Action Recognition model (#11815)
* shallow feature convolution needs to set by zyx_fsv2

* bug fix: wrong get_output_layout calling in is_mixedLayout
2022-06-08 16:48:40 +09:00
Mykhailo Hnap
9ee9f880bd [GPU] Implement Bucketize-3 (#11738)
* [GPU] Implement Bucketize-3

* Add i8 and u8 to evaluates map for bucketize op.
2022-06-08 15:47:19 +09:00
yanlan song
bd02415ad5 enable binder schedule for preview (#11763)
* enable binder schedule

Signed-off-by: fishbell <bell.song@intel.com>

* add cases

Signed-off-by: fishbell <bell.song@intel.com>

* refine

Signed-off-by: fishbell <bell.song@intel.com>

* fix build failure

Signed-off-by: fishbell <bell.song@intel.com>

* fix coredump

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-06-08 10:02:33 +08:00
Tetiana Gubanova
a3cd2bcc49 [GPU] Implement Reverse operation (#11672)
* Reverse operation single-layer test

* Reverse CreateOp(), primitive and kernel selector

* Implement Reverse CL kernel

* Implement reverse GPU unit tests

* Add boolean as extended input type to reverse operation
2022-06-08 09:46:52 +09:00
Steve Yoo
263c184b97 Fix deformable convolution cl kernel for Multi-Groups (#11613)
* Fix deformable convolution cl kernel for multi group and add its test cases

* Add batch 2, 3, 4 test case to multiple groups
2022-06-08 09:45:42 +09:00
David Nam
755394c1cb [GPU] Use IE_THROW() instead of throw std::runtime_error (#11769)
* Use IE_THROW() instead of throw std::runtime_error

* Change all of throw std::runtime_error into IE_THROW()
2022-06-08 09:44:59 +09:00
Karol Blaszczak
e70074d9db DOCS-clear out the integrate_with_app article (#11799)
* DOCS-clear out the integrate_with_app article

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-06-07 21:52:27 +02:00
Karol Blaszczak
275f2adf52 DOCS-add supported PdPd models (#11804) 2022-06-07 21:51:17 +02:00
Eddy Kim
3a5805fce0 quick fix in tests (#11812) 2022-06-07 15:22:39 +00:00
hyunback kim
98f989302a [GPU] Update to use immad with oneDNN test case. (#11808)
Update correct test case

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-06-07 17:08:23 +03:00
Felix Dohyun Kim
1c9cd04f96 [GPU] Enable blocked formats in Gather primitive (#11486)
* gather blocked format
* enable double blocked
* 5d test
* support cross dimension
* Add some disabled test for later use
* Support non-default planar formats
2022-06-07 17:50:09 +09:00
Felix Dohyun Kim
c1f4cc04de [GPU] Enable blocked formats in Border primitive (#11652)
* fix default_value of border tensor parameters
* Enable all in/out layout
2022-06-07 17:39:57 +09:00
Min, Byungil
49942c2f80 [GPU] Forcing to use clDNN FC on small batch size (#11715)
+ forced to use clDNN FC due to perf drop

Signed-off-by: byungilm <byungil.min@intel.com>
2022-06-07 10:25:14 +03:00
Kelvin Choi
f9afe07c9d [GPU] Add reorder between FC matmal and reshape (#11706) 2022-06-07 13:10:58 +09:00
Mateusz Bencer
7335984edd [MO] Check only source layout if both changing layout and reverse input channel is applied (#11779) 2022-06-06 17:46:07 +02:00
Min, Byungil
104a9d8d52 Add debug config for forcing impl type of fc (#11713)
+ Added new debugging config OV_GPU_ForceImplType to set impl type

Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-06-06 23:02:34 +09:00
Luo Cheng
bb3868d8cd [CPU] OneDNN 2.6 migration (#11627)
* Migrate on OneDNN 2.7

* [CPU] Enabled brconv implementation

* Post ops optimizations

* [CPU] Enabled I8 precision on activations for Convolution node

* [CPU][WA] Disabled Deconvolution + post ops fusing optimization

* Fixed FQ post op optimization

* [CPU] Optimize post ops processing

* [WA] Add node name if tensor names are empty

* [WA] remove  layout compatibility chheck that leads to the fase-positive exceptions

* [CPU] Optimize processing for FQ + Sum + FQ post ops pattern

* [CPU][WA] Enabled ReduceSum -> AvgPool transformation due to perf issues

* fix compiler error

* rebase onednn master

* cherry pick from 2.7 to 2.6

* [WA] make cpu case to run completed

* fix xmm zero check

* reopen 'FuseDeconvolutionAndSimpleOperation' Transform  to fix CPU 'ConvolutionBackpropDataLayerTest' fail issue

* [WR] Removed failed the ReduceMean tests caused by 21f3555.

* group deconv may crash on memory out of bound

* [WA] Remove the moc fail case by #af4731a1

* testcase conv maxpool will check brgconv instead of jit

* test subgraph added nhwc format check

* fix gemm bf16 win crash

* fix avx2 groupconv accuracy problem

* [WA] remove invalid FQ tests

* WR to disable the LPT multiplyToGroupConv test because the  transformation was disabled in d5e16f

* add gemm int8 binary postops to fix GroupConvolutionQDqTransformation fail

* add gemm int8 binary postops to fix GroupConvolutionQDqTransformation fail

* fix gemm bf16 fail

* Fix ConcatConvSumInPlaceTest

* Add cpuDebugFuncTests target

* [WA] bf16 crash due to MemoryInput/Output

* OVClassBasicTest case typo

* testcase subgraph sets default ENFORCE_BF16 to NO

* fix clang check

* Fix primType check issue

* Fix cpplint error

* MemoryInput/Output support bf16; Enforce bf16 'NO' should enable snipptes

* disable BF16 fusing fakequant testcase

* testcase init support amx check

* testcase for conv brgconv avx512/amx

* testcase for conv brgconv avx512/amx

* WR enforce reorder bug and add NSPC into deconv supported list.

* Compiling issue fix.

* [WA] skip fakequantize fusing in bf16

* mix legacy/new binary postops

* make nightly case run. tested on amx/avx512/avx2.

* [CPU] Add BF16 AMX test for Matmul

* Add CPU dump check tool

* Add verbose log

* Generate exec graph in cpu dump check tool

* fix binary prelu post Ops

* fix cpplint

* Update ONEDNN version to fix AVX2 bug.

* cpu dump check supports compare dump files

* Add a new CPU_DEBUG_CAPS: OV_CPU_SUMMARY_PERF

* change VERBOSE_LOG to DEBUG_LOG

* fix oneDNN register_jit_code log

* fix cpplint

* Add OV_CPU_DEBUG_LOG controls debug logs to show

* Revert reorder WR.

* Enhanced CPU debug logs and breakpoint support

* Enhanced cpu_dump_check with --ports

* Fix DEBUG_LOG compile issue

* GroupDeconvolutionLayerCPUTest extend to add amx test cases

* Add Node into DBUEG_LOG

* cpu_dump_check: Dump results even no port is specified

* FIx MergeTransposeAndReorder for blocked input

* Fix cpu_dump_check result names

* Enhance DEBUG_LOG on edges

* Cpu dump check support shape mismatch

* Fix bi-directionl inplace

* Cpu dump check support inference_precion_hing f32.

* fix windows dump fail.

* fix depthwise nwc conv

* add rtol arg

* win debugbreak

* fix pooling accuracy

* GroupDeconvolutionLayerCPUTest remove invalid test param for nspc

* recover ov onednn fork

* revert af4731a1f1 '[WA] remove layout compatibility chheck'

* [WA] disable avx2 conv3d fusing case

* [WA] disable avx2 conv3d fusing case

* [WA] Disabled weights md transpose in FC to prevent perf degradations

Co-authored-by: dmitrygo <dmitry.gorokhov@intel.com>
Co-authored-by: Vladislav Golubev <vladislav.golubev@intel.com>
Co-authored-by: Zhang Yi3 <yi3.zhang@intel.com>
Co-authored-by: liubo-intel <bo4.liu@intel.com>
Co-authored-by: Luwei Zhou <luwei.zhou@intel.com>
Co-authored-by: Li, Tingqian <tingqian.li@intel.com>
Co-authored-by: xuchen-intel <chen.xu@intel.com>
Co-authored-by: ceciliapeng2011 <cecilia.peng@intel.com>
2022-06-06 18:30:32 +08:00
Helena Kloosterman
764a2ec012 Fixes for OpenCV script filename in docs (#11791) 2022-06-06 16:42:04 +08:00
guozhong wang
d3b7a1b86c fix cumulative donot handle nireq (#11775) 2022-06-06 10:10:05 +08:00
Artur Kulikowski
32580ca65b Add ReduceMerge transformation (#11746)
Tickets: 60918
2022-06-04 13:44:50 +02:00
Sungeun Kim
8029fd9675 add mixed precision case (#11747) 2022-06-04 11:40:52 +09:00
Mateusz Bencer
dba4dbb9d6 Improve L2NormFusion transformation (#11765) 2022-06-03 18:51:21 +02:00
Mateusz Tabaka
4650ecd0b5 Disable fusings_gpu/deconv_scale_activation_quantize_i8_eltwise_quantize_u8.basic/4 (#11777) 2022-06-03 21:07:48 +09:00
Min, Byungil
aea04e275c [GPU] Enable onednn reduction (#11570)
* It has better performance by using reduction kernel instead of pooling kernel in oneDNN for reduction layer.
* Stop using global pooling instead of reduce primitive
* Use oneDNN reduction if its mode is supported by optimized onedNN kernel
* activation pow is supported
* Use clDNN reduce if 3d or redundant reduce, tensor size mismatch
* Updated thirdparty onednn_gpu

Signed-off-by: Min, Byungil <byungil.min@intel.com>

Co-authored-by: Wei Tang <wei1.tang@intel.com>
Co-authored-by: Chen Kurt <kurt.chen@intel.com>
2022-06-03 18:36:27 +09:00
mei, yang
b780c61506 Extend python API for GenerateProposals (#11723) 2022-06-03 10:38:02 +02:00
Krzysztof Bruniecki
4ef0aab166 Create copy of RO IR/bin file mapped Blob to allow converting from NCHW to NHWC (#11771) 2022-06-03 08:38:52 +02:00
Krzysztof Bruniecki
10a6e56811 Return instead throw in check function aroun dtors (#11745) 2022-06-03 08:37:33 +02:00
Katarzyna Mitrus
47155b43d0 [Transformation] Add GeluFusion with Tanh (#11752) 2022-06-03 08:36:12 +02:00
Przemyslaw Wysocki
1db4446e2a [MO] Extend MO for NonMaximumSupression-9 (#11576) 2022-06-02 18:18:14 +02:00
Sebastian Golebiewski
b88eed7645 Proofreading MO Guide (#11605)
* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_DeepSpeech_From_Tensorflow.md

Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_DeepSpeech_From_Tensorflow.md

Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md

Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/FP16_Compression.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/customize_model_optimizer/Extending_Model_Optimizer_with_Caffe_Python_Layers.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_lm_1b_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_lm_1b_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update Additional_Optimizations.md

* Update Deep_Learning_Model_Optimizer_DevGuide.md

* Update IR_and_opsets.md

* Update Getting_performance_numbers.md

* Update Model_Optimizer_FAQ.md

* Update Supported_Frameworks_Layers.md

* Update Convert_Model_From_Caffe.md

* Update Convert_Model_From_Kaldi.md

* Update Convert_Model_From_MxNet.md

* Update Convert_Model_From_ONNX.md

* Update Convert_Model_From_Paddle.md

* Update Convert_Model_From_PyTorch.md

* Update Convert_Model_From_TensorFlow.md

* Update Convert_Model_Tutorials.md

* Update Converting_Model.md

* Update Cutting_Model.md

* Update IR_suitable_for_INT8_inference.md

* Update Aspire_Tdnn_Model.md

* Update Convert_GluonCV_Models.md

* Update Convert_Style_Transfer_From_MXNet.md

* Update Convert_Faster_RCNN.md

* Update Convert_Mask_RCNN.md

* Update Convert_Bert_ner.md

* Update Convert_Cascade_RCNN_res101.md

* Update Convert_F3Net.md

* Update Convert_QuartzNet.md

* Update Convert_RCAN.md

* Update Convert_RNNT.md

* Update Convert_YOLACT.md

* Update Convert_AttentionOCR_From_Tensorflow.md

* Update Convert_BERT_From_Tensorflow.md

* Update Convert_CRNN_From_Tensorflow.md

* Update Convert_DeepSpeech_From_Tensorflow.md

* Update Convert_EfficientDet_Models.md

* Update Convert_FaceNet_From_Tensorflow.md

* Update Convert_GNMT_From_Tensorflow.md

* Update Convert_NCF_From_Tensorflow.md

* Update Convert_Object_Detection_API_Models.md

* Update Convert_RetinaNet_From_Tensorflow.md

* Update Convert_Slim_Library_Models.md

* Update Convert_WideAndDeep_Family_Models.md

* Update Convert_XLNet_From_Tensorflow.md

* Update Convert_YOLO_From_Tensorflow.md

* Update Convert_lm_1b_From_Tensorflow.md

* Update Customize_Model_Optimizer.md

* Update Extending_Model_Optimizer_with_Caffe_Python_Layers.md

* Update docs/MO_DG/prepare_model/FP16_Compression.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/FP16_Compression.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/FP16_Compression.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_ONNX.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_PyTorch.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_PyTorch.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_PyTorch.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Convert_Model_From_PyTorch.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Converting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Converting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Converting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/IR_suitable_for_INT8_inference.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/kaldi_specific/Aspire_Tdnn_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/kaldi_specific/Aspire_Tdnn_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/mxnet_specific/Convert_Style_Transfer_From_MXNet.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/onnx_specific/Convert_Faster_RCNN.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/onnx_specific/Convert_GPT2.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/onnx_specific/Convert_Mask_RCNN.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_Bert_ner.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_Cascade_RCNN_res101.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_Cascade_RCNN_res101.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_RNNT.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_YOLACT.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_YOLACT.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_YOLACT.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/pytorch_specific/Convert_YOLACT.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_AttentionOCR_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_BERT_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_BERT_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_DeepSpeech_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_DeepSpeech_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_EfficientDet_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_EfficientDet_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_FaceNet_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_FaceNet_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_NCF_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_NCF_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_NCF_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_RetinaNet_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_Slim_Library_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_Slim_Library_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_Slim_Library_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_WideAndDeep_Family_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_WideAndDeep_Family_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update Getting_performance_numbers.md

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Cutting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update Convert_Model_From_Kaldi.md

* Update docs/MO_DG/prepare_model/convert_model/Cutting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Model_Optimizer_FAQ.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Apply suggestions from code review

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Supported_Frameworks_Layers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Cutting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Cutting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/Cutting_Model.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Apply suggestions from code review

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_NCF_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_Object_Detection_API_Models.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_GNMT_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_FaceNet_From_Tensorflow.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/MO_DG/IR_and_opsets.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Apply suggestions from code review

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Getting_performance_numbers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Apply suggestions from code review

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update

* Update docs/MO_DG/prepare_model/Supported_Frameworks_Layers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Supported_Frameworks_Layers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/MO_DG/prepare_model/Supported_Frameworks_Layers.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Apply suggestions from code review

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update Convert_Model_From_Paddle.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-06-02 17:05:14 +02:00
Eddy Kim
04b69af0f5 [GPU] Support for PReLU with multiple dims slope tensor for GPU (#11782)
* reshape a slope tensor of channel-wise prelu

* changed to follow prelu spec

* added unittests for prelu with multiple dims slope

* Update constant.cpp

Blanks are added.

* added comments about PReLU slope reshape policy

* added int8 prelu fusion tests
2022-06-02 23:01:01 +09:00
Yuan Xu
fc61b001c0 Yuan transition guide restructure (#11778)
* Add Overview page

* Revert "Add Overview page"

* restructure

* update

* updates

* update

* update

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/preprocessing.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* fix formatting

* fix formatting

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-06-02 11:33:44 +00:00
Katarzyna Mitrus
fb09555b6d [Eye-9] Extend MO with Eye-9 op (#11555) 2022-06-02 11:29:55 +02:00
guozhong wang
5b75d69712 add testcase for EXCLUSIVE_AYSNC_REQUESTS when input device is AUTO (#11716)
* add AUTO cpu and gpu testcase for EXCLUSIVE_AYSNC_REQUESTS

* add AUTO myriad testcase for EXCLUSIVE_AYSNC_REQUESTS
2022-06-02 10:28:30 +08:00
guozhong wang
cd771ed23b Simple graph correctness test for virtual devices (#11492)
* add cumulative correctness test

* add infer_correctness test

Signed-off-by: Hu, Yuan <yuan2.hu@intel.com>

* add comments

Signed-off-by: Hu, Yuan <yuan2.hu@intel.com>

Co-authored-by: Hu, Yuan <yuan2.hu@intel.com>
Co-authored-by: Chen Peter <peter.chen@intel.com>
Co-authored-by: Shen, Wanglei <wanglei.shen@intel.com>
2022-06-02 09:42:38 +08:00
Mykhailo Hnap
d26ed6a180 [GPU] Roll-7 (#11602)
* [GPU] Implement Roll kernel

* [GPU] Add Roll kernel selector

* [GPU] Add Roll primitive

* [GPU] Add Roll helpers

* [GPU] Implement unit tests for the Roll operation

* [GPU] Add Roll operation to GPU plugin

* [GPU] Add single layer tests for the Roll operation

* [GPU] Add changes after review

* [GPU] Improve cldnn unit test
2022-06-02 09:42:11 +09:00
Jan Iwaszkiewicz
c7f8112339 [ONNX] Extend ONNX FE with SoftSign-9 operation (#11766) 2022-06-01 13:37:17 +02:00
River Li
042bd7274a Dynamic shape mem reuse solution (#11667)
* Dynamic shape memory reuse solution

* Fix Split node to properly work with dyn mem

* Fix race condition for Memory mgrHandle

* Avoid Memory race condition between GetData and SetDataHandle

Add a lock for race condition between  ov::intel_cpu::Memory::GetData() and ov::intel_cpu::Memory::SetDataHandle() is not a good solution,
which will impact the inference performance. We found that it is unnecessary get edge DataPtr in inferRequest::SetBlob or GetBlob, which
only need the tensorDesc, so we can only get tensorDesc to replace get dataPtr to avoid this race condition.

* Resolve reviewer's comments

* Avoid performance impact due to frenquent reset MemMngrHandle

If MemMngrHandle already has been assigned an external buffer, it can be reused.
Else it need create a new one.
2022-06-01 18:49:47 +08:00
Artur Kulikowski
8b1ed3d5b2 Fix onnx_frontend_tests (#11358) 2022-06-01 10:59:37 +02:00
Artur Kulikowski
c519aff42f Enable ShuffleChannelsFusion and DepthToSpaceFusion in MOC (#11662)
Ticket: 79523
2022-05-31 11:09:00 +02:00
Chenhu Wang
2e4f14a9f7 fix unitialized value in code scan (#11711) 2022-05-31 05:53:50 +03:00
cecilia peng
016c5f537a Cecilia/multiclass nms9/cpu impl (#11246)
* multiclass_nms opset9 spec, api, reference, paddle fe mapper, paddle fe unittest.

* multiclass_nms opset9 cpu node impl.

* multiclass_nms opset9 shape infer fix.

* multiclass_nms opset9: add transform ConvertMulticlassNms8ToMulticlassNms9.

* ConvertMulticlassNmsToMulticlassNmsIE: to MulticlassNmsIEInternal

* add test dependency package paddledet==2.1.0

* 1. fix for roisnum overflow. 2. common shape_infer private function.

Signed-off-by: jialipen <cecilia.peng@intel.com>

* 1. use common infer_shape helper. 2. fix roisnum overflow issue. 3. fix for nmsWithEta.

* test suite for opset9 multiclass_nms smoke tests pass, with both static and dynamic shapes.

code clean for unit test.

* decouple specification from this PR.

* op fuzzy: dynamic input/output

* reference impl refactor

* multiclass_nms_base no need clone_inputs.

* code clean

* restrict ppdet import

* fix clang format error

* change ppdet import to resolve CI fail issue related to its dependency.

* fix CI

* refactor: multiclass_nms_shape_inference for opset9 and reference impl.
TODO: could be applied to opset8 and even matrix_nms.

* fix CI build failure.

* CI fix for ambiguous namespace reference issue when
building static libs.

* update nms save_model python scripts.

* dynamic inputs for NMS with CPU plugin.

* copyright header for test scripts.

* op comformance test for multiclass_nms_9.

* minor update: is_type

* python opset9 and multiclass_nms

* flake8 CI fix

flake8 CI fix

flake8 CI fix

* remove NmsBase. stage1.

flake8 CI fix

remove NmsBase. stage 1 fix.

* rm NmsBase. stage2.

* more multiclass_nms prop tests and fix.

* remove unchanged ops from binding opset9.

* dependcy of paddle_tests.

* fix: add MulticlassNms to op mapper.

* clang format fix

* fix merge error.
2022-05-31 07:56:01 +08:00
Sungeun Kim
82fdf165eb [GPU] choose onednn for 3d conv (#10857)
* add formats for 3d conv
   data formats
   -bs_fs_zyx_bsv32_fsv32
   -bs_fs_zyx_bsv32_fsv16
   -bs_fs_zyx_bsv8_fsv4
   -bs_fs_zyx_bsv8_fsv2
   -bs_fs_zyx_bsv16_fsv32
   -b_fs_zyx_fsv2, b_fs_zyx_fsv4
   weight formats
   -os_is_zyx_osa2_isa8_osv8_isv2
   -os_is_zyx_osv8_isv4
   -os_is_zyx_osv8_isv2
   -gs_oizyx_gsv32
* add supported formats for primitives
* choose onednn convolution impl for 3d conv
* optimize layout of shallow depth convolution
* remove reorder for conv
* Don't remove reorder between bs_fs_zyx_b32_f16/f32 and bfyx.
* add formats to SetDefault() to optimize gws/lws for quantize/eltwise
* fallback cldnn if onednn pooling's layout is b_fs_zyx_fsv32 and i8.
* fixed wrong position for new weight formats
* restore imad_case()
* This func is used to choose format for fallbacked cldnn
* [GPU] add debug flag: OV_GPU_SerialCompile
    0(default): parallel compile
    1: serial compile
* add is_mixed_layout
* remove format::bs_fs_zyx_bsv8_fsv4 in needs_onednn_small_ic_to_blocked
* prevent to fuse the reorder which is between quantize and conv
* shallow feature first conv
2022-05-31 07:54:00 +09:00
Yuan Xu
b67ffe303f Fix a heading issue in Auto (#11744)
* fix the heading issue

* fix headings
2022-05-30 09:01:54 +00:00
Artur Kulikowski
93021121e3 Fix cutting the graph (#11574)
* Revert "[MO args][ONNX FE]fix cutting graph with input, output or both (#9698)"

This reverts commit 2b03d5fe66.

* Fix cutting the graph when inputs/outputs are passed to the MO

* Check that port exists

* Simplification of getting node port

* Reducing amount of nesting inside searching of node by operation name

* Refactoring

- remove mutable default arg
- changes in code style
- change variables name

* Check that user input data type is dictionary

Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
2022-05-30 10:04:24 +02:00
guozhong wang
f5e2a463b5 remove CPU from default candidate list while GPUs more than 2 (#11753) 2022-05-30 10:04:13 +08:00
Tomasz Jankowski
70e9cc0ce8 Enable ConvertNegative in MOC (#11720) 2022-05-27 13:37:35 +02:00
Artur Kulikowski
ae84e11a41 [ONNX Import] add method Node::get_attribute_as_constant() (#10783)
Tickets: 53284
2022-05-27 12:34:48 +02:00
Katarzyna Mitrus
8a975c886a [MO] Support for TF GRUBlockCell (#11732)
* Add GRUBlockCell front extractor

* Add GRUBlockCell Op to mo ops

* Add TF GRUBlockCell mo layer tests

* Add GRUBlockCellToGRUCell Replacement init

* Update GRUBlockCellToGRUCell Replacement with gate order adjustment

* Update GRUBlockCellToGRUCell Replacement with weights transpose

* GRUBlockCellToGRUCell Replacment refactor

* Set tests eps to avoid sporadic failures

* Style
2022-05-27 11:47:42 +02:00
Bartek Szmelczynski
da09272d9f remove xfails and update tolerance (#11729) 2022-05-27 10:26:28 +02:00
Bartek Szmelczynski
ffd797bc9f [PYTHON][NMS-9] Extend Python API for NMS-9 (#11681)
* extend NMS-9 ngraph python

* add tests for NMS

* move tests for NMS from test_reduction to test_create_op
2022-05-27 10:25:49 +02:00
Sungeun Kim
7a1e7f122f [GPU] some convs are in ref for WDSR (#11728)
* add supported data types for onednn conv

* Remove case: in_f32 to out_f32 in are_data_types_suitable_for_onednn
2022-05-27 13:50:30 +09:00
Artur Kulikowski
873e3dad2d Limiting protobuf to version < 4.0.0 (#11748)
* Upgrade Protobuf to version 3.18.2 in python's requirements

* PaddlePaddle tests requires protobuf < 4.0.0

* ONNX tests use protobuf 3.18

* Python bindings protobuf <4.0.0
2022-05-26 21:32:37 +02:00
Yuan Xu
1bcdf48f42 Get started guide restructuring and updating (#11719)
* Add Overview page

* Revert "Add Overview page"

* restructure get started home page

* update navigation menu

* update formatting

* update wording

* update

* rename configurations files

* update wording

* adjust the structure

* update formatting

* reverse the heading

* test with formatting

* 2nd version of Get Started homepage

* add line breaks

* change to ordered list

* update wording

* update content

* updates

* update DL workbench reference

* update wording

* update references to pip installations

* remove redundant files

* update headings
2022-05-26 17:09:31 +02:00
Paul Youngsoo Ahn
c185198785 [GPU] Added UUID property(#81574) (#11567)
Co-authored-by: Ahn, Paul Y <paul.y.ahn@intel.com>

Co-authored-by: Vladimir Paramuzov <vladimir.paramuzov@intel.com>
2022-05-26 16:44:53 +09:00
opoluektov-lohika
ccd001f25b [GPU] Support axis 0 for Softmax (#10364)
* [GPU] Modify Softmax single layer tests to check Softmax-8 is supported with axes in [-rank, rank) interval

* [GPU] Fix cldnn::softmax::dimension_t documentation

* [GPU] Fix ParamsKey::EnableSoftmaxDim

Support Z dimension.

* [GPU] Add Softmax single layer test that checks 5D case

Since some Softmax kernel code contains ifdef on 5-dimensional case,
a test case is needed that covers this functionality.

* [GPU] Support axis 0 in Softmax

* [GPU] Modify Softmax single layer tests to check axis 0

* [GPU] Modify Softmax items class optimized kernel to handle axis 0 correctly

Modify single layer test accordingly.

* [GPU] Modify Softmax unit-test to check softmax::normalize_b

* Split SoftMaxLayerTest into opset1 and opset8 versions

Use SoftMax8LayerTest in the tests throughout repository.
SoftMaxLayerTest now defaults to SoftMax1LayerTest for compatibility.

* [GPU] Add f16 test-case for Softmax single-layer test

Co-authored-by: tgubanova-lohika <tgubanova@lohika.com>
2022-05-26 12:06:08 +09:00
Bo Liu
1cce278fcb Paddle Frontend Op conversion: ROIAlign9,Sqrt,Swish (#11661)
* Paddle Frontend Op conversion: ROIAlign9,Sqrt,Swish

* modify import ppdet way based on the latest master branch
2022-05-26 08:38:31 +08:00
Tomasz Dołbniak
dd930fdb6e GridSample-9 specification (#11703) 2022-05-25 21:34:11 +02:00
yanlan song
0c7840ef28 multi code refine (#11663)
* draft

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* refactor for multi

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* refactor auto draft

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* try to fix executable get config test failed issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* set ExecNetwork only one time

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* format code and using alias

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* clear head file

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* change name from Context to ScheduleContext

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* polishing

Signed-off-by: fishbell <bell.song@intel.com>

* polish & new implementation

Signed-off-by: fishbell <bell.song@intel.com>

* enable/test a new schedule

Signed-off-by: fishbell <bell.song@intel.com>

* port fps logs over

Signed-off-by: fishbell <bell.song@intel.com>

* restructure

Signed-off-by: fishbell <bell.song@intel.com>

* fix windows build failure

Signed-off-by: fishbell <bell.song@intel.com>

* clean up code

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-05-25 22:53:47 +08:00
Tetiana Gubanova
eb36b891eb [GPU] Impelement ExperimentalDetectronPriorGridGenerator-6 gpu implementation (#11632)
* Implement experimental_detectron_prior_grid_generator kernel

* register experimental_detectron_prior_grid_generator operation

* implement single layer tests

* add unit tests to detectron
2022-05-25 18:52:03 +09:00
Jan Iwaszkiewicz
320531def0 [MO] SoftSign operator extractors (#11726) 2022-05-25 11:44:26 +02:00
Krzysztof Bruniecki
81adc47e83 [GNA] Implement GNA memory region splitting (RO/Input/Output/State/Scratch) and export in GNA format enabled (#11577) 2022-05-25 11:40:50 +02:00
Serhii Pavlovskyi
4b08ce4787 [GPU] (I)Dft with single layer test (#9891)
* dft with single layer test

* idft with single layer test

* fix output param usage in dft

* update dft according to the clang-format

* move output layout setup to calc_output_layout

* add support for other dimensions

* add clDNN unit test for DFT/IDFT

* remove unnecessary original rank

* use defined formats in kernel

* fix dft docs

* changes after review

* Revert "fix dft docs"

This reverts commit 45b05172dfd161d92dae6d26e0f1b74748e56fd5.

Co-authored-by: Serhii Pavlovskyi <spavlovskyi@lohika.com>
Co-authored-by: Mykhailo Hnap <mhnap@lohika.com>
2022-05-25 16:24:46 +09:00
Mateusz Tabaka
e767e9e243 Extend python API of RDFT and IRDFT (#11737)
Tickets: 79184 and 79198
2022-05-25 08:25:01 +02:00
Mateusz Tabaka
5ffba43f62 Disable fc_int8_inputs_fused_fp32_sum (#11709)
Ticket: 85210
2022-05-25 06:54:22 +02:00
Chenhu Wang
fa7ca20425 NMS-9 op creation and ref implementation and CPU plugin (#11132)
* operation creation

* refrence implementation

* code style

* soft_nms_supported_by_nms9

* IE core and cpu plugin update

* apply review

* add transformation test
2022-05-25 06:27:12 +03:00
Karol Blaszczak
728a243d77 Docs-minor fix for documentation build error (#11724)
* Docs-minor fix for documentation build error

* fix one snippet comment and auto-device updates
2022-05-24 19:50:29 +02:00
Mateusz Tabaka
3a202c2775 Don't install networkx with version 2.8.1 (#11718)
With new networkx release (2.8.1) some of MO tests started to fail
with following error:
```
def __setstate__(self, state):
    self._graph = G = state["_graph"]
    self._adjdict = G._pred if hasattr(G, "pred") else G._adj
    AttributeError: 'Graph' object has no attribute '_adj'
```

Seems like regression that was introduced in
f50fc70b8c
2022-05-24 14:07:36 +02:00
Tetiana Gubanova
22ee17fda6 [GPU] AdaptiveMaxPool and AdaptiveAvgPool gpu implementations (#11556)
* Add kernel for AdaptivePooling

* Add GPU primitive for AdaptivePooling

* Add single-layer tests for GPU

* Add adaptive pooling unit tests
2022-05-24 00:48:55 +09:00
Mateusz Tabaka
ff6ea62ce0 Fix local work size for conv kernel yxfb_yxio_b16 with fp16 (#11679)
convolution_gpu_yxfb_yxio_b16 for fp16 has hardcoded reqd_work_group_size
to (16, 1, 1). On devices where CL_DEVICE_MAX_WORK_GROUP_SIZE is 512
GetOptimalLocalWorkGroupSizes picks (16, 2, 1) for LWS.
That causes issues during clEnqueueNDRangeKernel since LWS doesn't match
with reqd_work_group_size in the kernel.
2022-05-23 15:59:37 +02:00
Mateusz Tabaka
fbc99ef1ad Disable conv_int8_activation_eltwise_quantize_onednn/bsv32_fsv32 (#11708)
Tests fail because eltwise is not fused properly to convolution.

Ticket: 85205
2022-05-23 12:50:53 +02:00
Mateusz Tabaka
488315fe2e Fix pooling_onednn_activation2 test in cldnn tests (#11680) 2022-05-23 10:26:42 +02:00
Mateusz Bencer
a859024d76 MO support of RDFT and IRDFT (#11690) 2022-05-21 13:14:23 +02:00
Szymon Irzabek
714601cf5b [GNA] Change Constants' precision in MVN decomposition (#11665) 2022-05-20 13:21:32 +02:00
Adam Tumialis
14f82ea31c Update CODEOWNERS
Maintainers for IE transformations changed to a new team.
2022-05-20 12:22:43 +02:00
Tetiana Gubanova
91ab69e0c7 [GPU] Implement ExperimentalDetectronGenerateProposalsSingleImage-6 (#11616)
* Add single layer tests for GPU

* Add GPU primitive for ExperimentalDetectronGenerateProposalsSingleImage

* Add kernel for ExperimentalDetectronGenerateProposalsSingleImage

* Add unit test

* rename abbreviation edgpsi to the full name experimental_detectron_generate_proposal_single_image

* Add f16 support to operation

* Add f16 support to the unit test

* Add notification about the second output in primitive

Co-authored-by: Oleksii Khovan <okhovan@lohika.com>
2022-05-20 17:02:29 +09:00
Chen Xu
8886d0fde7 [CPU] Fix shape mismatching in fusing per channel (#11162)
* Fix shape mismatching in fusing per channel

* channelAxis data type changes to int
2022-05-20 11:05:17 +08:00
yanlan song
35ba009cd6 Bell/cache refine (#11414)
* cache compliance

Signed-off-by: fishbell <bell.song@intel.com>

* clang format

Signed-off-by: fishbell <bell.song@intel.com>

* fix crash

Signed-off-by: fishbell <bell.song@intel.com>

* enable test cases

Signed-off-by: fishbell <bell.song@intel.com>

* enable more tests

Signed-off-by: fishbell <bell.song@intel.com>

* refine cases

Signed-off-by: fishbell <bell.song@intel.com>

* do not use try catch

Signed-off-by: fishbell <bell.song@intel.com>

* case refine

Signed-off-by: fishbell <bell.song@intel.com>

* fix unicode failure

Signed-off-by: fishbell <bell.song@intel.com>

* use model_path.empty instead of try catch

Signed-off-by: fishbell <bell.song@intel.com>

* add mock test

Signed-off-by: fishbell <bell.song@intel.com>

* add more mock test

Signed-off-by: fishbell <bell.song@intel.com>

* disable unicode test on windows

Signed-off-by: fishbell <bell.song@intel.com>

* add hetero caching/stateful mode support

Signed-off-by: fishbell <bell.song@intel.com>

* remove the disable label for CPU

Signed-off-by: fishbell <bell.song@intel.com>

* resolve the CI failure

Signed-off-by: fishbell <bell.song@intel.com>

remove redundant lines

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Chen Peter <peter.chen@intel.com>
2022-05-20 10:17:40 +08:00
Katarzyna Mitrus
76dfeceb93 [Eye-9] Reference and CPU implementation for Eye-9 (#11538)
* Added shell for Eye-9

* Updated spec for Eye-9

* Added reference for Eye-9

* eye cpu

* Added op impl check for Eye-9

* Fix unallowed dynamic to static dim conversion in eye shape_infer

* Add template plugin tests for dynamic shapes

* Add template plugin tests for dynamic shapes batch input

* Enable batch shape input dynamic rank

* Uncomment 3D batch cpu Eye tests

* Update assertions and messages

* use ov::element type

* Remove redundant evaluate from eval map

* Style fix

* Add static_cast<T>(1) to cpu eye

* Add defaults to eye cpu class members

* Reuse out_ptr and checks

* Reutrn if onesPerBatchNum == 0

* Add Eye CPU Dynamic shape tests with 2D batch

* Additional test cases for CPU and reference

* Disable 3D batch eye cpu tests

* Fix CPU implementation for matrix with not equal cols and rows

* Update CPU test name

* Disable CPU Eye 3D batch static shapes tests

Co-authored-by: Alexandra Sidorova <alexandra.sidorova@intel.com>
Co-authored-by: Yury Gaydaychuk <yury.gaydaychuk@intel.com>
2022-05-19 16:37:00 +03:00
Bartek Szmelczynski
f83530138e [ROIAlign-9] Extend nGraph Python API for operation "ROIAlign-9" (#11572)
* add opset8 ngraph ROIAlign op

* fix style

* fix style v2

* remove redundnat added files

* fix __init__.py imports

* fix style v3

* fix wrong imports

* fix flake error

* fix minor errors

* add blank line

* fix args name

* Update src/bindings/python/src/compatibility/ngraph/opset9/ops.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* update docsstring, move roi_align tests to test_create_op.py file

* Update src/bindings/python/tests/test_ngraph/test_create_op.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Update src/bindings/python/tests_compatibility/test_ngraph/test_create_op.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* add alias

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
2022-05-19 13:55:46 +02:00
Mateusz Bencer
4d0a572f13 Move RemoveConcatZeroDimInput and RemoveMultiSubGraphOpDanglingParams to CNNNetworkNGraphImpl ctor (#11547) 2022-05-19 10:50:22 +02:00
Yuan Xu
18260e0b4b Revert "CVS-82186 port to master (#11701)" (#11704)
This reverts commit 31dab599c7.
2022-05-18 13:43:22 +02:00
Tomasz Jankowski
a61902fc7c Disable ONNX UT on Mac (#11685) 2022-05-17 16:15:26 +02:00
Tomasz Dołbniak
94ce06fc29 ONNX node names as friendly names (#10532) 2022-05-17 13:47:52 +02:00
Yuan Xu
31dab599c7 CVS-82186 port to master (#11701)
* Add Overview page

* Revert "Add Overview page"

* plugin api separate config (#11109)

Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
2022-05-17 11:46:46 +00:00
hyunback kim
8691b88296 [GPU] Support weight tag for oneDNN v2.6 (#10859)
* Update oneDNN rls-v2.6
* Support weight tag for oneDNN v2.6
* Fix first conv selection issue in oneDNN
* oneDNN v2.6 required specific tags to run jit:ir primitives.
* any_tag can find optimized primitives in oneDNN.
* Enable aBcd2b src tag for oneDNN v2.6
* Add create_memory_desc from format string.
* Apply group depthwise separable conv uses jit:ir in oneDNN v2.6
* Use byxf format.
* Update only use acdb format in shallow group conv
* Fix refconv selection in shallow conv with post operations.
2022-05-17 16:55:55 +09:00
Taylor Yeonbok Lee
a82a0d3672 [GPU] Improve int8 FC performance (#11612)
* Enable reshape int8

* Fixed quantize fusing through reorder+reshape : Fixed the condition to check per_tensor_input_shift only when need_input_shift is true

* minor change

* Allow FP quant to be fused to FC/gemm

* Disable reshape tranform for onednn until onednn FC is optimized
2022-05-17 12:48:38 +09:00
Tomasz Dołbniak
ffea6b5aac ONNX Resize - sizes/scales inputs handling (#11692) 2022-05-16 20:05:06 +03:00
Mateusz Bencer
3b32502fbf Add IRDFT reference implementation (#11642) 2022-05-16 10:30:56 +03:00
mei, yang
9648080fbc Meiyang/paddle generate proposals 2 (#11285)
* create new op v9::GenerateProposalsSingleImage and support paddle generate proposal v2

* support scale in GenerateProposals

* Add output roi_num in GenerateProposal; change anchor's shape to [H, W, A, 4]

* fix paddle generate proposals frontend issue

* rename MKLDNNGenerateProposalsSingleImage to GenerateProposalsSingleImage

* add GenerateProposals attribute 'roi_num_type'

* fuse type togenerate_proposals

* multibatch support

* fix review comments; paddle tests added

* use pad instead of concat

* fix generate proposals visitor test parameter

* add testcase for generate proposal scale and fix generate proposals reference issue

* rename to GenerateProposals

* add generate proposals ngraph reshape test; opset9 support and test;

* fix compiling issue

* add dependency 'paddledet' on paddle frontend test

* Update src/core/include/ngraph/op/generate_proposals.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/include/openvino/op/generate_proposals.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/reference/include/ngraph/runtime/reference/generate_proposal.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/src/op/generate_proposals.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/include/ngraph/op/generate_proposals.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/src/op/generate_proposals.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/src/op/generate_proposals.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/src/op/generate_proposals.cpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/include/openvino/op/generate_proposals.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Update src/core/include/openvino/op/generate_proposals.hpp

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* fix compiling issue after newly added commit

* clang fix

* fix compiling issue

* add paddledet dependency

* fix compiling issue

* fix compiling issue

* clang fix

* skip ppdet.modeling.ops in paddle generate proposals test

* single layer update after rebase master

* set pycocotools to 2.0.4

* skip ppdet.modeling.ops.__init__

* add paddle test dependency

* fix template issue

* rename mkldnn to dnnl

* fix template issue

* fix windows compiling issue

* update testcase vector construction

* add shape check and test; add some annotation; apply review suggestion

* Revert "add paddle test dependency"

This reverts commit 959a2d770d3f6cb28d4609981c79cc49a25847fd.

* rm dependency of paddledet for paddle frontend test

* update opset9 number

* fix windows issue

Co-authored-by: Luo Cheng <cheng.luo@intel.com>
Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
2022-05-16 09:13:52 +08:00
Jade Cho
6ce6a7662e [GPU] Support implicit crop in input transposition. (#11496)
* [GPU] Support implicit crop in input transposition.

+ Make the crop in front of quantize implicit by changing output format to bfyx.
+ Use implicit concat after quantize nodes.

* Add unit test for implicit crop and concat.

+ remove unnecessary code.
2022-05-13 18:02:13 +09:00
Min, Byungil
5da3162cd1 [GPU] Bugfix for invalid LoadType for planar input (#11493)
+ Modified jitter Load for planar input of fused eltwise
+ Bugfix in jitter if planar input has LT_ALIGNED_READ

Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-05-13 17:31:20 +09:00
Jan Iwaszkiewicz
d19b80a82d [SoftSign-9][PYTHON] Python API for SoftSign (#11677) 2022-05-13 09:55:14 +02:00
Jade Cho
de1db99383 [GPU] Replace out scale attribute of onednn pooling with binary mul (#11674) 2022-05-13 13:34:12 +09:00
yanlan song
b1ecd3ea8f only strip when device start with - (#11651)
Signed-off-by: fishbell <bell.song@intel.com>
2022-05-12 04:53:38 +00:00
Jan Iwaszkiewicz
62d17a070a [SoftSign-9] Shell, reference impl and decomposition for SoftSign-9 (#11546) 2022-05-11 16:44:15 +02:00
Katarzyna Mitrus
7851020cd3 [ONNX] Enable ONNX ROIAlign-16 (by ov::v9::ROIAlign) (#11633) 2022-05-11 11:43:15 +02:00
Wilson Seok
5456631517 Cleanup eltwise skipped testcase in gpu single layer test (#11525)
* cleanup eltwise skipped test cases in gpu plugin

* update comment clearly
2022-05-11 18:07:36 +09:00
hyunback kim
a7368d2e35 [GPU] Apply hsigmoid decomposition in oneDNN post-opt (#11603)
* [GPU] Apply hsigmoid decomposition in oneDNN post-opt

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-05-11 10:07:02 +09:00
Anuj Mittal
01a08c0a97 installing-openvino-yocto: update for 2022.1 (#11657)
Update the branch to be used for 2022.1 and remove reference to
-staticdev package which isn't generated anymore.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-05-10 18:00:42 +02:00
Kevin Putnam
bdf1d92660 1. Makes transition guide link absolute so it will work for API docs using the same theme (#11610)
2. Adds # to links that are broken in openvino_docs_get_started_get_started_demos.htm

Signed-off-by: intelkevinputnam <intelkevinputnam@github.com>

Co-authored-by: intelkevinputnam <intelkevinputnam@github.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-05-10 17:59:48 +02:00
Sebastian Golebiewski
4924e33255 Proofreading the Transition Guide (#11543)
* Update common_inference_pipeline.md

Minor stylistic and grammar corrections.

* Proofreading

Minor stylistic and grammar corrections.

* Update common_inference_pipeline.md

* Update common_inference_pipeline.md

* Proofreading

Minor corrections

* Update preprocessing.md

* Update intro.md

* Update deployment_migration.md

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>

* Update intro.md

* Update docs/OV_Runtime_UG/migration_ov_2_0/common_inference_pipeline.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update deployment_migration.md

* Update intro.md

* Update common_inference_pipeline.md

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/intro.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* Update intro.md

* Update deployment_migration.md

* Update docs/OV_Runtime_UG/migration_ov_2_0/deployment_migration.md

Co-authored-by: msmykx <101244365+msmykx-intel@users.noreply.github.com>
Co-authored-by: Maciej Smyk <maciejx.smyk@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-05-10 17:59:12 +02:00
Paul Youngsoo Ahn
35b8972da3 [GPU] fix coverity control flow issue (#11585) (#11585)
- Coverity CID: 1488473
- Coverity CID: 1486904
2022-05-10 09:15:03 +09:00
Bo Liu
eddd31f58f Liubo/roi align 9 ov core cpu plugin (#11188)
* roi_align_9: ov_core, transformations, template_plugin

* roi_align_9: CPU Plugin

* keep only constructor with enums which is aligned with spec

* remove evaluate function for ROIAlign_9

* Add op check test for operation ROIAlign-9

* Apply suggestions from code review

* fix version name from 'v0' to 'v3' in transform part

* use common shape_infer function for v3 and v9

* remove'tf_' prefix for ROIAlign::AlignedMode to avoid misleading for models from different platforms
2022-05-10 08:14:37 +08:00
Karol Blaszczak
ad61593aa5 Update Convert_Model_From_TensorFlow.md (#11425) (#11591)
* Update Convert_Model_From_TensorFlow.md (#11425)

* Apply suggestions by Yuan

The changes are made in the port PR, so will be published with the 22.2 version.

Co-authored-by: Evan <evan.juras@gmail.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-05-09 16:49:15 +02:00
Karol Blaszczak
ab7b9afc14 Docs: Add links to specific examples - port (#11618) (#11653)
* Docs: Add links to specific examples (#11618)

* Update docs/OV_Runtime_UG/integrate_with_your_application.md
* Add links to specific examples

This edit adds links to more example applications, making it easier for users to discover how to build an OpenVINO application around their specific model.

* Add links to MO installation and ONNX examples (#11617)

These edits help make it easier for a new user to find more information on how to convert ONNX models.

* Apply suggestions by Yuan

The changes are made in the port PR, so will be published with the 22.2 version.
Co-authored-by: Evan <evan.juras@gmail.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-05-09 16:48:39 +02:00
Tomasz Dołbniak
53e62d2ac6 ONNX OperatorsBridge - non-static version (#11578) 2022-05-09 12:58:51 +00:00
Kelvin Choi
860a074fa9 [GPU] Add tuning cache v2 for yolo_v3 and yolo_v3_tiny (#11589) 2022-05-09 17:10:11 +09:00
Mateusz Bencer
99c04c0d6a additional validation of places (#11480) 2022-05-09 07:24:07 +00:00
yanlan song
35ad252003 Bell/rule out device (#11516)
* Fix batchability check of MAX_BATCH_SIZE

* Applied review comment

* new implementation

Signed-off-by: fishbell <bell.song@intel.com>

* enable device removing

Signed-off-by: fishbell <bell.song@intel.com>

* enable tests

Signed-off-by: fishbell <bell.song@intel.com>

* Update plugin.hpp

cpplint error

Co-authored-by: Taylor Yeonbok Lee <taylor.lee@intel.com>
2022-05-07 17:41:59 +08:00
Mateusz Bencer
c404e7f76d Handle onnx shape inference exceptions (#11451) 2022-05-07 01:04:07 +03:00
Mateusz Bencer
d60deae083 If shape inference - scalar and 1D union handle (#11499) 2022-05-07 00:55:36 +03:00
Tomasz Jankowski
e0e916b557 [ONNX] Extract onnx frontend tests from ov core unit tests (#11535) 2022-05-06 11:21:55 +02:00
Jan Iwaszkiewicz
6eb9c11d7e [PYTHON] Infer calls improvement (#11498) 2022-05-06 08:58:00 +02:00
yanlan song
912f40e74d stateful inferface impl for AUTO/HETERO (#11590)
* CPU for stateful model

Signed-off-by: fishbell <bell.song@intel.com>

* log

Signed-off-by: fishbell <bell.song@intel.com>

* hetero impl

Signed-off-by: fishbell <bell.song@intel.com>

* enable tests

Signed-off-by: fishbell <bell.song@intel.com>
2022-05-06 12:43:56 +08:00
guozhong wang
870455675c add cumulative_throughput for python (#11195) 2022-05-06 12:43:41 +08:00
guozhong wang
0a65f5f607 selectdevice returns MULTI:device in cumulative_throughput (#11367)
* selectdevice returns MULTI:device in cumulative_throughput

* load multi with throughput and disable cpu helper in cumulative

* disable cpu helper in cumulative_throughput

* add cumulative to bechmark_app help message

* modify benchmark_app.hpp clang-format
2022-05-06 12:42:59 +08:00
Andrew Kwangwoong Park
caccde6a82 [GPU] Add TC for MXNet-style NMS model(decrease_label_id) (#10624)
- Add TC for decrease_label_id=true to cover MXNet-style NMS models
- Fix segfault issue that occurs when data precision is fp16

Signed-off-by: Andrew Kwangwoong Park <andrew.kwangwoong.park@intel.com>
Signed-off-by: Andrew Park <andrew.park@intel.com>
2022-05-06 10:36:46 +09:00
Artur Kulikowski
1331eabbed Getting of python version depend on the used shell (#11614) 2022-05-05 23:42:54 +02:00
Katarzyna Mitrus
50287625d7 [Eye-9] Python API for Eye-9 (#11552) 2022-05-05 16:16:36 +02:00
mei, yang
2d0ffd8fe5 Specify GenerateProposals-9 (#11004) 2022-05-05 10:28:18 +02:00
Bo Liu
d560cf19a3 Specify ROIAlign-9 (#11067) 2022-05-05 10:27:58 +02:00
cecilia peng
e68613a2fc Specify MulticlassNonMaxSuppression-9 operation (#11083) 2022-05-05 10:27:47 +02:00
Mateusz Tabaka
68ef1555bc Enable test_loop_simple_precommit on GPU (#11625) 2022-05-05 09:55:02 +02:00
Tomasz Jankowski
0babf20bd2 Remove unsued map initialization (#11621)
Details:
- Unused variable removed.
- Added pytest markers declaration to avoid useless warnings.
Tickets:
70158
2022-05-05 00:50:34 +02:00
Mateusz Tabaka
b92e10ff6e Fix setting default affinity property in cpuFuncTests (#11609)
CPU plugin sets default affinity to HYBRID_AWARE
if it's running on AlderLake, so we need to reflect that
in cpuFuncTests.
2022-05-04 12:42:43 +02:00
Tetiana Gubanova
7dd8fbd47e [GPU] Einsum with repeated labels and ellipsis support (#11615)
* Einsum test helper

* Einsum single layer tests

* Add Einsum decomposition with repeated labels and ellipsis support
to GPU transformations pipeline

Co-authored-by: Oleksii Khovan <okhovan@lohika.com>
2022-05-03 20:46:22 +09:00
opoluektov-lohika
1ed03bbe6b Fix conformance test runner handling of input directories (#11611)
Check first whether the path specified by --input_dirs is a directory.

Otherwise the argument is always treated as a .lst file,
and in case it is a directory it silently fails,
which causes the test runner to not execute any tests intended.
2022-05-02 22:00:21 +09:00
Artur Kulikowski
26aa197cb1 Expand ONNX functions in Graph ctor (#11599)
* Expand ONNX function in constructor of class Graph

* Add test to expanding function GreaterOrEqual inside If op
2022-05-02 10:12:41 +02:00
Jan Iwaszkiewicz
8d221d1e06 Add lower bound for wheel package (#11595) 2022-04-28 13:02:46 +02:00
Sebastian Golebiewski
844fbde328 Update installing-openvino-windows-header.md (#11221)
* Update installing-openvino-windows-header.md

* Update docs/install_guides/installing-openvino-windows-header.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
2022-04-27 13:09:31 +02:00
Karol Blaszczak
f5781b1255 DOCS-cpu_language_review-port (#11537)
* DOCS-cpu_language_review

Co-Authored-By: Yuan Xu <yuan1.xu@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/CPU.md

* Update docs/OV_Runtime_UG/supported_plugins/Device_Plugins.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-04-27 13:07:38 +02:00
Mateusz Tabaka
54e5af95da Disable two cases from smoke_Conv_3D_FP32_fusingScaleShiftAndFakeQuantizePerChannel (#11536)
They sporadically fail in precommit.
Ticket: 84153
2022-04-20 14:34:46 +02:00
Mateusz Tabaka
e53f702f81 Handle negative axis in SimplifySecondInputOfReshape (#11524)
Fixes #11501
2022-04-19 12:20:21 +02:00
Karol Blaszczak
22398ac9cd sphinx google search (#11439) (#11506)
porting from 22.1 as per Andrey's request from 04.08
* sphinx google search

* fixes

* fixes

* fix version tabs

Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
2022-04-13 12:39:36 +02:00
Karol Blaszczak
1b5756a4d7 Docs benchmarktool python correction - port (#11505)
* DOCS-benchmarktool_python_correction

add info on tool installation

* Update docs/OV_Runtime_UG/Samples_Overview.md

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>

Co-authored-by: Helena Kloosterman <helena.kloosterman@intel.com>
2022-04-13 11:14:39 +02:00
Karol Blaszczak
1e1735b022 Fixed operation names (#11447) (#11507)
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-04-13 11:14:24 +02:00
Alexandra Sidorova
9dffa706fb Added shell for Eye-9 (#11210) 2022-04-12 12:49:07 +02:00
Przemyslaw Wysocki
76610393a0 [PYTHON] Change dependabot schedule (#11497) 2022-04-12 11:17:29 +02:00
Katarzyna Mitrus
5bedbbe05d [ONNX] Add Scan operator to ONNX Frontend (#11053) 2022-04-12 10:35:15 +02:00
Karol Blaszczak
e1cd7bfc5b DOCS-review GPU article changes (#11477)
As per ticket #CVS-80053
int8 link removed
2022-04-12 10:08:10 +02:00
Phillip Schmidt
4da0941cd2 Update README.md (#8048)
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-04-06 06:51:09 +03:00
Luo Cheng
e72d32065c [FrontEnd] add assign, meshgrid, expand_v2 for paddle faster_rcnn model (#10627)
* assign, meshgrid op support

* fix review comments

* add copyright message

Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-04-06 09:43:18 +08:00
Alexander Zhogov
9f01380558 Azure CI: Set master ref branch (#11475) 2022-04-05 22:23:07 +03:00
Ilya Lavrenov
c2703c81f6 Don't install nlohmann_json_schema_validator for samples (#11446)
* Try to improve gflags

* Try to improve gflags: part 2

* Tried to use dependencies on system

* Use nlohmann_jsonConfig from system

* Enabled nlohmann_json from system

* Improvements

* handle system gflags in developer package

* Simplifications

* Simplify dependency management

* Corrected package names

* Fixed subgraphsDumper configure stage

* Try to fix rhel8

* Try to fix macosx

* Fixed VPUX build

* Fixed aliasing issues

* Suppress some wanrings

* export gflags when build it

* Fixed some LTO

* Try to fix Mac

* revert

* use gflags as private dependency

* Aligned targets in developer package

* Fixed frontends tests build on U20 with LTO

* PAssed

* Don't use pkg_search_module(zlib ..) during cross-compilation

* Removed unused variables

* Fixed finding of zlib during cross-compilation

* CVS-83529

* Use nothreads_static

* Fixed python
2022-04-05 19:16:32 +00:00
Vladimir Paramuzov
050e2e518d [GPU] Replaced tensor dims usages with layout methods calls (#10984) 2022-04-05 21:49:34 +03:00
Irina Efode
01f530d443 API Conformance refactoring (#11421)
* ie_infer_request + ie_exec_net

* build

* build

* ov_compiled_model

* ov_infer_request

* ov_plugin

* ie_plugin

* build
2022-04-05 18:43:36 +03:00
Irina Efode
3f953b37c1 Reduce conformance execution time (#11416) 2022-04-05 18:40:33 +03:00
Jan Iwaszkiewicz
8e9fb18882 [PYTHON] Properties API, improvements of OVAny (#11389)
* WIP for POC

* Bulkwork

* Clean up current solution

* Extend Core methods

* Refactor Any python converts

* add submodule to runtime

* Add initial tests

* Fix copy-paste error

* Extend test

* Improve casting options and move common parts to utils

* Add newline

* Fix properties, remove class approach, move to all string Properties API

* Fix codestyle

* Fix pystyle

* ResolveTODOs, better align and extend python api

* Add extended test cases

* Fix properties in one of compile_model overload.

Co-authored-by: Alexey Lebedev <alexey.lebedev@intel.com>

* Update src/bindings/python/tests/test_inference_engine/test_properties.py

Co-authored-by: Alexey Lebedev <alexey.lebedev@intel.com>

Co-authored-by: Alexey Lebedev <alexey.lebedev@intel.com>
2022-04-05 18:01:36 +03:00
Chenhu Wang
fca2595293 Specify NonMaxSuppression-9 (#10729)
* define_NMS-9_specification

* default value as true for soft-nms-supressed-by-iou

* soft nms support

* comments apply
2022-04-05 15:58:02 +03:00
Karol Blaszczak
bff9769dd2 DOCS-transitionguide_name_correction (#11450)
OpenVINO™  2.0 => OpenVINO™ API 2.0
2022-04-05 13:33:28 +02:00
Przemyslaw Wysocki
55497a12d8 [PYTHON] Add method to_dtype() to Type class (#11433)
* Add Type method to_dtype()

* Clang formatting

* Add Type __init__ binding

* Add Type constructor

* Add numpy types classes to test
2022-04-05 14:00:02 +03:00
Ilya Churaev
86495ceb0f Update readme content (#11201)
* Update readme content

* Updated HW support matrix

* Update README.md

* Update doc links to nightly

* Update README.md

* Update README.md

* Update README.md

* Add logo

* Update README.md

* fixed links

* Update README.md
2022-04-05 13:09:22 +03:00
Andrey Noskov
3a36d90c11 [GNA] Moved PWL functional tests (#10731)
* Moving PWL to ngraph

* improving the running time of php_search; refactoring the pwl operation

* fixed erros & refactored code

* moved PWL op to GNA

* Update src/plugins/intel_gna/ops/pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/ops/reference/pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/ops/pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/transformations/transpose_to_pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/transformations/transpose_to_pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* fixed compilation error

* Update inference-engine/tests/unit/gna/ngraph/transformations/gna_pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* added some tests; changed algorithm of checking accuracy of pwl; refactoring

* added first and last segments; added fq and fixed errors

* fixed after review & rewrote some tests on ngraph

* removed debug logs & fixed code style check error

* s/ngraph_helper/ngraph_util

* removed TRANSFORMATIONS_API in PWLApproximation class declaration

* removed OPENVINO_API in Pwl class declaration

* replaced the deprecated version of evaluate() with a new one

* fixed some problems after reviewing

* fixed a problem when a value of function of left point of segment is less than minimum of function

* corrected a value of the right point of last segments

* [GNA] Moved pwl func tests

* Deleted deprecated test

* s/OPENVINO_RTTI/OPENVINO_OP

* Deleted conflicted test file

* fixed after review

Co-authored-by: Dmitrii Khurtin <dmitrii.khurtin@intel.com>
Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>
2022-04-05 11:43:24 +03:00
Maxim Gordeev
9c8a6aacb7 [IE Samples] Activating new parameter is compact mode(memory_reuse) in speech sample (#11405)
* [IE Samples] Activating new parameter is compact mode(memory_reuse) in speech sample

* changed format

* renamed the option to memory_reuse

* renamed the option
2022-04-05 11:31:05 +03:00
Andrey Noskov
a018298023 [GNA] Deleted duplicated config test (#10601) 2022-04-05 11:27:01 +03:00
Maksim Doronin
4edf85c928 [RT][VPU]: Fixes for dynamic models (#10826)
* DynamicShapeResolver is able to save information about dynamic output in order to pass it in INFER_DYNAMIC_SHAPE mode. Previously, it propagated fully dynamic output shape (however ranks were equal) and dynamic Convolutions and Poolings were performed incorrectly. Now in the case of dynamic batch, DSR propagates only dynamic batch and Convolutions and Poolings are performed properly as a Loop of single-batch operations.
* Fixed dynamicToStaticShapeTranspose transformation. There was a bug: transposition indices could not be applied with Scatter because the formula is not applicable for this. Replaced with Gather.
i.e. Shape of output tensor of Transpose with transition [0,3,1,2] indices (NHWC [1, 224, 224, 3]->NCHW [1, 3, 224, 224]) was calculated by ScatterElementsUpdate. So output_shape[transposition[i]] = input_shape[i] and the result was output_shape=[1, 224, 3, 224] which was wrong. Vise-versa Gather does output_shape[i] = input_shape[transposition[i]] and the result is [1, 3, 224, 224] which is right.
* MaxPool and AvgPool can be sliced for loop in case of dynamic batch
* Convert stage for inputs is not inserted in the VPU model in the case of OV API 2.0. It did not cause a problem with non-dynamic functions because Graph Transformer has a pass to eliminate redundant converts (u8->f16, ~f16->f16~). In the case of dynamic inputs, yet another inserted Convert breaks data<->shape relations.
2022-04-05 11:19:43 +03:00
Egor Shulman
ed190374fd [CPU] Added support of 'Batched' memory type (#10909) 2022-04-05 09:20:19 +03:00
Ilya Lavrenov
4ad20fb53f Use system dependencies (#11419)
* Try to improve gflags

* Try to improve gflags: part 2

* Tried to use dependencies on system

* Use nlohmann_jsonConfig from system

* Enabled nlohmann_json from system

* Improvements

* handle system gflags in developer package

* Simplifications

* Simplify dependency management

* Corrected package names

* Fixed subgraphsDumper configure stage

* Try to fix rhel8

* Try to fix macosx

* Fixed VPUX build

* Fixed aliasing issues

* Suppress some wanrings

* export gflags when build it

* Fixed some LTO

* Try to fix Mac

* revert

* use gflags as private dependency

* Aligned targets in developer package

* Fixed frontends tests build on U20 with LTO

* PAssed

* Don't use pkg_search_module(zlib ..) during cross-compilation

* Removed unused variables

* Fixed finding of zlib during cross-compilation
2022-04-05 04:47:22 +03:00
Ilya Lavrenov
90366c2c60 Fixed detection of sample type c / cpp (#11444) 2022-04-05 01:57:10 +03:00
Vladislav Volkov
d654071b51 CPU Plugin refactoring: Transition from Intel MKL-DNN to oneDNN (#11023) 2022-04-05 01:10:53 +03:00
Yegor Kruglov
74638251e8 [MO] Support TensorFlow FusedBatchNorm with channel_first data_format (#11084)
* layout fix in FusedBatchNorm decomposition

* added tests
2022-04-05 00:13:58 +03:00
Anton Chetverikov
c1dc71ce28 [MO] Fix IndexError inside ScatterNDUpdate shape inference function (#11220)
* Restore inputs order in IR Reader

* Add WA to numpy ndarrays IndexError

* Add comments to code

* Add unit test
2022-04-04 23:59:24 +03:00
Svetlana Dolinina
c75bc65b83 added recursive run for transformation to fix fp16 IR with Interpolate inside If/Loop/TI (#10905)
* added recursive run for transformation to fix fp16 IR with Interpolate inside If

* added test for interpolate inside If

* remove useless variable

* fixed transformaion for divide

* fix code style

* commit auto change

* review fix

* add test for recursive call of divide marks

* removed empty line
2022-04-04 23:33:59 +03:00
Ilya Churaev
60f9f3dc92 Enabled LTO for static CPU (#11426)
* Enabled LTO for static CPU

* Update CMakeLists.txt

* Update CMakeLists.txt
2022-04-04 20:22:22 +03:00
Maxim Shevtsov
500d36e1c0 cherry-picking opt guide changes from the release branch (#11430) 2022-04-04 19:41:17 +03:00
Mikhail Letavin
417d75d80b [GPU] Fix allocation for cached USM remote blobs (#11304) 2022-04-04 18:16:53 +03:00
Fedor Zharinov
787610b0db -l option is replaced with -extensions (#10878) 2022-04-04 16:08:38 +03:00
Elizaveta Lobanova
9b4e8f5b59 [GNA] Fixed cascade concats binding (#11326) 2022-04-04 15:56:13 +03:00
Karol Blaszczak
da8388e263 [DOCS] polish autodevice article (#11171) (#11427)
the article has been changed much and its language has been impacted in the process. Here are some corrections.
2022-04-04 13:12:18 +02:00
Gleb Kazantaev
a52092deb0 Enable FQ fusions in MOC (#11269)
* Enable FQ fusions in MOC

* Fix codestyle
2022-04-04 13:34:01 +03:00
Edward Shogulin
542a374c40 [LPT] Introduce new quantization mode attribute (#11380) 2022-04-04 13:27:03 +03:00
Ilya Churaev
b9ba0bb40c Removed OV_NEW_API (#11082)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-04-04 13:07:12 +03:00
Dmitry Pigasin
80e7857eca [Python Speech Sample] Change argument format (#11012)
* Change `-i` argument format

* Change `-sf` argument format

* Change `-o` and `-r` argument format

* Fix saving file with multiple utterances

* Fix flake8 D415

* fix scale factor for imported models
2022-04-04 13:03:39 +03:00
Roman Kazantsev
9dee25fa79 [MO] Support TensorFlow Grouped Conv2DBackpropInput (#11420)
* [MO] Support TensorFlow Grouped Conv2DBackpropInput

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct computation of group number for ConvBackpropInput operation

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix get_conv_backprop_groups function

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Add unit-tests for Deconvolution shape inference

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-04-04 12:30:31 +03:00
Chenhu Wang
60521a92c9 [CPU] Fixed NMS implementation on APL targets (#10649) 2022-04-04 10:52:22 +03:00
Maxim Andronov
65a182aaea [CPU] Extract weight cache to executable network (#11118) 2022-04-04 10:47:58 +03:00
Vladimir Paramuzov
afdaa7cf89 [GPU] Align permute axis format with IE (#11379) 2022-04-04 10:28:51 +03:00
Ilya Lavrenov
d879e34363 Tbb: download only if system libraries are not found (#11415)
* Download custom TBB on demand

* Download TBBBind on demand

* Fixed install steps

* FIxes
2022-04-03 19:55:54 +03:00
Edward Shogulin
5d821453ae [LPT] Introduce new granularity attribute instead of OperationPerTensorQuantizationRestriction (#11330) 2022-04-03 19:35:04 +03:00
Ilya Lavrenov
29fb8c79b1 Don't use template plugin unconditionally (#11409) 2022-04-02 11:40:45 +03:00
Ilya Lavrenov
4fcc18c00e Tbb 2018 and older usage (#11411)
* fixed TBB

* Fixed compilation with old TBBs

* Fixed installation for custom provided TBB
2022-04-02 11:11:13 +03:00
Ilya Znamenskiy
1e4a1b2b4a [GPU] Klockwork issue 57997 fix (#10956) 2022-04-02 11:06:56 +03:00
Roman Kazantsev
1a288c2e99 Enable MO unit-tests but bom tests (#11399)
Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-04-02 10:58:23 +03:00
Ivan Mikhalev
6105ea3902 [CPU] [DEBUG CAPS] Revert DNNL_VERBOSE (#11410)
Compilation with ENABLE_CPU_DEBUG_CAPS was fixed.
Previous to this change it failed due to undefined dnnl::impl::md2dim_str
(since DNNL_VERBOSE was disabled in the scope of PR #11244).
2022-04-02 10:57:29 +03:00
Andrey Zaytsev
415daecc26 Cherry-pick Feature/azaytsev/doc fixes 2022 1 1 (#11388) (#11407)
* Removed a redundant image

* Fixed ops specifications and other issues

* converted html links to anchor links

* converted html links to anchor links

* Fixed a link

* Fixed a link

* Changed anchor links according to dev review
# Conflicts:
#	docs/OV_Runtime_UG/Operations_specifications.md
2022-04-01 19:53:58 +03:00
Ilya Lavrenov
8ae7c9f2cc Disabled TBBBind usage for oneTBB (#11386) 2022-04-01 19:09:06 +03:00
Maxim Gordeev
2388f3b976 Updated docs for python's version of hello_reshape_ssd (#11401) 2022-04-01 18:21:40 +03:00
Vladislav Golubev
a02b3f4995 [Transformation] MarkPrecisionSensitiveDivides extending to mark fp32 divides (#11391)
* MarkPrecisionSensitiveDivides: fp32 divides marking enabled

* ConvertDivide: added a negative test-case with fp32 divide on precision sensitive subgraph
2022-04-01 17:31:23 +03:00
Maksim Derbasov
56df3962e3 Fix for warnings spotted by clang compiler (#11384) 2022-04-01 16:10:51 +03:00
Maxim Andronov
3d92c8c4c7 [CPU] Avoid inserting reorder after RNN in native order case (#10799) 2022-04-01 16:02:50 +03:00
Nikita Semaev
fca159293d Fix Bucketize Conformance tests for Template plugin (#11029)
* Right fill in the values of the inputs

* Using create_and_fill_tensor_unique_sequence() instead of create_and_fill_tensor()

* Fixing a problem with a missing parameter when calling the create_and_fill_tensor method

* Fix Bucketize Conformance tests inputs generation for Template plugin

* Correct filling of the first port (data)
2022-04-01 15:22:45 +03:00
Andrey Zaytsev
cad355a03e Docs labels adjustment (#11227) (#11294)
* Adjusted documentation labels

* Renamed images

* fix doc tests

Co-authored-by: CCR\ntyukaev <nikolay.tyukaev@intel.com>
# Conflicts:
#	docs/IE_PLUGIN_DG/ExecutableNetwork.md
2022-04-01 15:06:55 +03:00
Anton Grishin
7efc85063b [GNA] Add GRUCell/GRUSequence/LSTMSequence support (#11333)
* Add grucell/gruseq/lstmseq unrolling

Add tests

* remove bidirectional decomposition

* completly remove bidirectional_sequences_decomposition
2022-04-01 14:16:11 +03:00
Nikita Semaev
dc55f8bb5a Correct the order of passing arguments to the InputGenerateData constructor (Fix Round, Ceiling Conformance tests for Template plugin) (#11099)
* Correct the order of passing arguments to the InputGenerateData constructor

* Full range correction for random numbers

* Refactoring the argument sequence of the InputGenerateData class constructor

* A small imperfection

* Rollback changes that are related to range
2022-04-01 13:42:10 +03:00
Alexey Lebedev
6eaa15745a [PYTHON API] Tensor.data property for low precisions + packing (#11131)
* rebase old branch with master

* Fix doc style

* fix test

* update tests

* Add missed param

* Rewrite docstring for tensor and refactor set_input_tensors test

* update python exclusives

* keep compatibility

* remove notes about slices

* fix code style

* Fix code style
2022-04-01 12:04:04 +03:00
Karol Blaszczak
701d75eafa [DOCS]continue_language_review-transitionguide (#11177)
PR for 22.1 made, now porting to release...
some discrepancy between this version and the 22.1 branch seems to exist, so I adjusted the conflicting link to avoid build check errors...

the overview has been merged, the remaining articles are reviewed here
2022-04-01 17:03:40 +08:00
Ilya Churaev
80739700ff Added clone method for ov::Model (#11390)
* Added clone method for ov::Model

* Changed python API
2022-04-01 10:52:31 +03:00
Ilya Churaev
8ab5dbade0 Revert "Add constant folding to hetero to avoid dynamism on GPU (#10572)" (#11370)
This reverts commit 5b18677f1b.
2022-04-01 10:16:14 +03:00
Bo Liu
070f27a089 Paddle FasterRCNN Ops Conversion: roi_align, strided_slice, where (#10893)
* Paddle FasterRCNN Ops Conversion: roi_align, strided_slice, where

* add check for 'aligned' feature of 'roi_align' op; use common function for idx_node in 'striede_slice' op

* Apply suggestions from code review

* use common funciton for stride_slice and slice, OP_CHECK for 'where' op conversion

* Apply suggestions from code review
2022-04-01 14:37:28 +08:00
yanlan song
4057e408d8 Bell/shape auto (#11284)
* Fix batchability check of MAX_BATCH_SIZE

* Applied review comment

* clonenetwork in auto

Signed-off-by: fishbell <bell.song@intel.com>

* clone in correct way

Signed-off-by: fishbell <bell.song@intel.com>

Co-authored-by: Taylor Yeonbok Lee <taylor.lee@intel.com>
2022-04-01 11:09:22 +08:00
Mikhail Nosov
e52bd441e2 Frontend exception safety (#11368)
* Frontend exception safety

Every call to frontend's API (except Places) can throw exception. If during exception handling, FrontEndManager is destroyed and calls 'dlclose' for plugin - call stack will be corrupted and crash will occur.

Solution is to wrap 'plugins' calls with try/catch and throw new exception in 'openvino' context

TODO: currently "Place" objects don't have 'actual' wrappers, so exception in 'place' objects will potentially cause such crash (if exception handler destroys FrontEndManager). Workaround for user would be to try/catch any calls of Place API on their side.
We're not expecting users to use Place API directly, so this workaround looks acceptable

* Add check for exception message

* Keep type of frontend exception during rethrow

* IR FE tests: don't expect InferenceEngine::exception as it be not propagated as is by FrontEndManager
2022-03-31 22:23:40 +03:00
Anastasia Kuporosova
dd54cb9c17 [Python API] Remove old api class from the new api (#10470)
* [Python API] Remove old api class from the new api

* start working on refactoring of OVAny

* fix tests

* fix code-style

* remove tuple test

* fix test

* fix omz hash

* one more overload

* fix pyfloat

* move from_ov_any to utils

* code-style

* move function from common to utils
2022-03-31 21:57:05 +03:00
Elizaveta Lobanova
d3060d4bcc [GNA] Fixed handling of unaligned crop layer (#11316) 2022-03-31 20:03:51 +03:00
Vladimir Paramuzov
1cb254307e [GPU] Gather params update (#11369) 2022-03-31 19:46:38 +03:00
Ilya Lavrenov
3c724a1dee Build with system TBB (#11244)
* Build with system TBB

* Fixes

* Check whether system TBB is available

* Try to fix ONNX Runtime build with system TBB

* Test

* Fixed compilation of threading.cpp

* Fixed unset of cache dirs

* Limit dearch paths of TBB

* Try to enable pip packages with custom TBB

* Fix for TBB 2021.2

* Install only needed TBB libraries

* Install TBB from system to pip package

* Reverted usage of TBBROOT

* Fixed oneTBB case

* Try to fix Android

* Escape some paths

* Added samples path

* Fixed TBBBind usage for case of system TBB
2022-03-31 18:05:59 +03:00
Ekaterina Aidova
d99104cf55 [OMZ]: update submodule (#11305) 2022-03-31 17:53:41 +03:00
Alina Kladieva
dc83410cd7 Revert "Skip sporadic GPU canInferOnUserQueue test case (#11310)" (#11362)
This reverts commit 458378e9e7.
2022-03-31 17:38:03 +03:00
Vladimir Paramuzov
15b4553eaf [GPU] Align OneHot primitive parameters with ngraph (#11361) 2022-03-31 17:13:49 +03:00
Alexey Lebedev
1efb0a034f [PYTHON API] release GIL (#10810)
* AsyncInferQueue nogil update + refactoring

* nogil in compiled model

* nogil in Core

* fix refactoring

* nogil in infer_request

* add tests

* Fix code style

* update test with incrementing reference counting

* try to fix code style

* fix code style

* release gil in reshape and preprocessing

* make args optional in test

* fix code style

* add docs about GIL

* try to link doc string with docs

* Apply suggestions from code review

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Fix docs

* docs refactoring

* Apply review comments

* Fix code style

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
Co-authored-by: Anastasia Kuporosova <anastasia.kuporosova@intel.com>
2022-03-31 16:12:48 +03:00
Maxim Andronov
1d247815be Don't execute reference::strided_slice if input/output tensor is empty (#11337) 2022-03-31 15:42:10 +03:00
Alexandra Sidorova
9185f03e77 Added specification for Eye-9 (#11104)
* Added specification for EyeLike-9

* Update docs/ops/generation/EyeLike_9.md

* removed batch from TF

* minor fix

* Applied comment by Anton

* Added new example with dynamic output, added corner case

* Fixed corner case description

* Rename matrix

* applied comments by Yuan

* Added diag_idx as input, minor fixes, renaming

* added support of batch_shape from TF

Co-authored-by: Andrei Kochin <andrei.kochin@intel.com>
2022-03-31 14:46:55 +03:00
Smirnov Grigorii
a87e8f7880 moved TransformationsTestsF method's definitions from .hpp to .cpp (#11359)
* moved

* fix style
2022-03-31 14:07:41 +03:00
Pavel Esir
16a5962698 [MO] pad fusing fix (#10453)
* pad fusing fix

* added unit-tests for pad fusing fix

* fixed port reconnecting

* Update tools/mo/openvino/tools/mo/middle/passes/fusing/mark_unfused_nodes.py

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
2022-03-31 14:07:07 +03:00
Smirnov Grigorii
763d522759 add graph_comparator tests (#11360) 2022-03-31 14:06:36 +03:00
Mikhail Ryzhov
a9853d2790 [GNA] Additional tests on compact mode (#10969)
* Moved InitGNADevice to plugin constructor

* Added tests for ordering layers

* Added allocator header

* Fixed fused_iterator header

* protected GNAMemRequestsQueue properties

* Fixed unit test names

* Fixed compile issue

* Fixed default initialization

* Fixed depricated matchers

* Fixed pwl deprecated tests

* Added page alignment

* Reset gnadevice in the tests

* Update src/plugins/intel_gna/gna_fused_iterator.hpp

Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>

* Revert "Update src/plugins/intel_gna/gna_fused_iterator.hpp"

This reverts commit d624bdadaf.

Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>
2022-03-31 13:56:25 +03:00
Elizaveta Lobanova
3578ee9c3f [GNA] Remove extra FQ layers from the final network (#10599)
* [GNA] Fuse all FakeQuantize layers with their previous layers

* [GNA] Fuse FQ with previous layer if it's not required for precision change

* [GNA] Fixed MatMulOverloadCorrectionTest
2022-03-31 13:21:27 +03:00
Sergey Shlyapnikov
79e3272237 [GPU] Update eltwise calc_output_layout function and prevent output layouts invalidation after adding reorders for weights (#11073) 2022-03-31 13:15:47 +03:00
Sergey Shlyapnikov
f2af1ef88a [GPU] Update memory location to __local in GPU Detection Output (#11209)
* [GPU] Update memory location to __local in GPU Detection Output

* Replace hardcoded stack size with JIT constant
2022-03-31 13:13:58 +03:00
Egor Shulman
23476c8eee CC for LPT transformation call in CPU plugin (#11341)
* Use CC in LPT

* Applied comment
2022-03-31 12:35:27 +03:00
Przemyslaw Wysocki
f45ca99de6 [PYTHON] Add ov::clone_function bindings (#11331)
* Add clone_function bindings

* Add clone_function binding tests

* Debugging changes

* Minor changes

* Code style

* Add an assert

* Update src/bindings/python/tests/test_ngraph/test_basic.py

* Update src/bindings/python/src/pyopenvino/graph/model.cpp

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
Co-authored-by: Anastasia Kuporosova <anastasia.kuporosova@intel.com>
2022-03-31 12:14:51 +03:00
Alina Kladieva
7d0750fa2a Add SKIP_IF_CURRENT_TEST_IS_DISABLED macros for needed cases (#11335) 2022-03-31 11:12:19 +03:00
Ilya Lavrenov
c795382b1f Configurable OpenCL usage in BA (#11344) 2022-03-31 10:49:40 +03:00
Maxim Gordeev
fad66d8442 [IE Samples] New command line parameters format for speech sample (#11051)
* New command line parameters format for speech sample

* fixed notes

* changed format for scale factor

* changed format for scale factor in tests

* added more variants, when name is directy specified for i/o/r like it is done for sf

* removed nthreads flag

* fixed notes

* changed output params

* updated tests with new format

Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
2022-03-31 10:09:31 +03:00
Daria Mityagina
5c917cfaaa [ICV][XLink] - port XLink changes from mdk (#10212)
-76384
Port changes from MDK
2022-03-31 09:50:26 +03:00
Sergey Shlyapnikov
24a74672f6 [GPU] Fix remote blobs tests (#11349) 2022-03-31 09:04:46 +03:00
Vladimir Paramuzov
f5f93cfbeb [GPU] Strided slice primitive params update (#11339) 2022-03-31 08:54:05 +03:00
Ilya Churaev
3e58ccbce7 Fixed evaluate for ov::Tensor (#11354)
* Fixed evaluate for ov::Tensor

* Fixed old ops with EvaluationContext
2022-03-31 07:47:49 +03:00
Anton Pankratov
78285f9db4 Added ov::NotImplemented Exception (#11124)
* Added ov::NotImplemented Exception

* add ie namespace

* Try fix
2022-03-31 07:36:13 +03:00
Oleg Pipikin
88e20199f0 Fix query network for hetero plugin (#10556)
* Fix query network for hetero plugin

* Apply comments

* Fix1

* Add tests

* Apply comments 2

* Apply comments 3
2022-03-31 07:24:46 +03:00
Anastasia Kuporosova
d107cec39f [Python API] Update names in Model class (#11348)
* [Python API] Update names in Model class

* fix code-style

* remove from_capsule in the new API
2022-03-31 00:33:57 +03:00
Anastasia Kuporosova
4c7050f6a9 [Python API] Improve configuration files (#10960)
* [Python API] Improve configuration files

* fix config files

* update setup.cfd + change quotes

* move all codestyle checks to py_checks job

* update requirements_test.txt

* fix  codestyle according to flake-docstring

* fix

* fix mypy

* apply comments
2022-03-30 20:26:36 +03:00
Oleg Pipikin
be6db5d69a Fix for str_to_container if string value has whitespaces (#10224)
* Fix for str_to_container if string value has whitespaces

* Add test

* Add trim for leading and trailing whitespaces

* Apply comments

* Apply comments 2

* Apply comments 3
2022-03-30 19:48:29 +03:00
Alexey Lebedev
c8720f122d [PYTHON API] lifetime test for CompiledModel and extension (#11120)
* Add test for lifitime and extensions

* Remove ExtendedModel
2022-03-30 19:43:07 +03:00
Mateusz Bencer
7a0d85a067 remove resize asserts (#11234) 2022-03-30 19:13:55 +03:00
Mikhail Nosov
a635150b9d [IE Common] Enable explicit TBlob declaration in all compilers (#11183)
* Enable explicit TBlob declaration in all compilers

This fixes problems when linking gcc compiled IE with clang compiled
applications.

Previous to this change, only clang compilers would consider TBlob<T>
templated types as declared externally. When *declared* explictly (with
the `extern template` syntax), the C++ spec says
that any inline methods of the templated class (such as TBlob<T>
constructors) should be ignored in favor of the externally instantiated
version of that templated type:

    "An explicit instantiation declaration (an extern template) skips
    implicit instantiation step: the code that would otherwise cause an
    implicit instantiation instead uses the explicit instantiation
    definition provided elsewhere (resulting in link errors if no such
    instantiation exists)."

However, when IE is compiled with gcc, it does not see the explicit
`extern template` declarations of TBlob<T> (due to the `#ifdef
__clang__` guards in `ie_blob.h`). As an end result, presumably due to
link-time-optimizations during IE library compilation(?), none of the
TBlob<T> implementations are actually included in the IE dynamic
libraries.

* Fix warnings for windows

* Fix typo
2022-03-30 18:56:49 +03:00
Ilya Sharikov
1906c27c2d Update mo_tool parameter for converter.py (#11319)
* Update mo_tool parameter for converter.py

* Hot fix
2022-03-30 18:32:53 +03:00
Egor Shulman
e507b630eb Use CC in CPUSpecificTransform (#11231) 2022-03-30 18:26:35 +03:00
Gleb Kazantaev
8317493e65 Update Accuracy Check inside Func tests (#11314) 2022-03-30 17:44:03 +03:00
Alexey Lebedev
ee31b648d1 [docs] port from release branch (#11309)
* save work

* Add common snipp

* update ie pipeline with python snippets

* ov_common_snippet

* Python snippets for graph construction

* Fix docs

* Add missed old api snippets

* Fix names

* Fix markers

* Fix methods call
2022-03-30 17:03:29 +03:00
Sergey Shlyapnikov
5dc3da926c [GPU] Add fusion through feature (#9674)
* [GPU] Add fuse through feature

* Apply review comments


Tasks marked as not passed:
* https://dev.azure.com/openvinoci/dldt/_build/results?buildId=313769&view=results
* https://dev.azure.com/openvinoci/dldt/_build/results?buildId=313766&view=results
2022-03-30 16:43:32 +03:00
Alexander Kozlov
4b4bd7399c Fixed conflicts (#11332) 2022-03-30 16:10:03 +03:00
Anastasia Kuporosova
9fa5150d71 [Python API][Docs] Fix references for several classes (#11251) 2022-03-30 13:29:30 +03:00
Ilya Lavrenov
932f8bf767 Install 97-myriad-usbboot.rules to install_dependencies (#11301) 2022-03-30 13:03:42 +03:00
Ilya Churaev
17f8f7ec25 Fixed typo in exception message (#11322) 2022-03-30 12:45:09 +03:00
Vladimir Paramuzov
fccd5d4445 [GPU] ShapeOf op (#10983) 2022-03-30 12:27:04 +03:00
Ivan Novoselov
1beb7158d5 [Snippets] Develop Snippets test infrastructure (#10605) 2022-03-30 12:21:19 +03:00
Sergey Shlyapnikov
cd703580b6 [GPU] Host time optimizations for in order queue (#11255)
* [GPU] Host time optimizations

* Fix failed fusings_gpu/permute_eltwise_loop.basic/* tests
2022-03-30 10:53:53 +03:00
Ivan Tikhonov
f13b6252e9 Fix insertion of tensor names after UnrollTensorIterator transformation (#11276)
* revert previous version of convert_seq_to_ti transformation

* try to check that outputs of TI are connected to Result nodes

* add unit tests

* fix codestyle

* fix Memory tests

* revert local change

* revert local change

* replace duplicated code with lambda
2022-03-30 10:26:04 +03:00
Maxim Andronov
72f802f282 [CPU] Fix Parameter -> Result model for dynamic case (#10764) 2022-03-30 10:20:52 +03:00
Anton Pankratov
614a6a3457 [CPU] Graphs are created in compiled_model constructor (#10872) 2022-03-30 10:02:12 +03:00
Vladimir Gavrilov
e7b35c3b00 nGraph reference for the operation RDFT. (#11175)
* Written nGraph reference for the operation RDFT.

* Used std::reverse() algorithm to simplify the function reverse_shape() from fft_common.cpp.

* Added assert into the function offset_from_coords_and_strides().

* Deleted redundant variable.

* Deleted redundant functions from the reference implementation of (I)DFT.

* Renamed the method reverse_shape() in fft_common.hpp.

* Code style fix.
2022-03-30 09:38:05 +03:00
Alexander Zhogov
1386f52dd6 Azure CI: Disable Model Optimizer UT 2022-03-30 09:01:05 +03:00
Ilya Lavrenov
9f923ba39f Install only proper GNA library files (#11243) 2022-03-30 08:58:31 +03:00
yanlan song
f6e5ec9684 return device infer request in passthrough mode (#11253)
Signed-off-by: fishbell <bell.song@intel.com>
2022-03-30 09:21:13 +08:00
Ilya Lavrenov
4145291e84 Added f16 tests for tensor (#11273) 2022-03-30 01:11:07 +03:00
Anton Chetverikov
5d719cbc7b [MO] Remove _output_shape nodes attribute while loading TF meta graph (#11078)
* Remove _output_shape attribute while loading meta_graph

* Update tools/mo/openvino/tools/mo/front/tf/loader.py

Simplify code

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>

* Add comment about the problem

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
2022-03-29 21:27:00 +03:00
Gleb Kazantaev
01b701349d Move tensor utils to common utils (#11306) 2022-03-29 21:08:55 +03:00
Alina Kladieva
458378e9e7 Skip sporadic GPU canInferOnUserQueue test case (#11310) 2022-03-29 19:48:37 +03:00
Ilya Lavrenov
fb99fd1d2f Try to remove MO install rules (#11208)
Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
2022-03-29 19:24:30 +03:00
Dmitrii Khurtin
4b0417018a [GNA] Fixed clang 13 build issue (#11238) 2022-03-29 19:06:50 +03:00
Vitaliy Urusovskij
d261da4820 Replace get_os_name() with get_os_type() in get_lib_path() (#11300)
In case of ubuntu system `get_os_name()` returns "ubuntu",
but `get_os_type()` returns "Linux" which is expected by tests
2022-03-29 18:17:38 +03:00
Evgenya Stepyreva
ed030e113e StridedSlice default shape inference (#11292) 2022-03-29 16:42:52 +03:00
Gleb Kazantaev
5b0a1fe7bb Move FunctionsComparator to common utils (#11277)
* Move FunctionsComparator to common utils

* Fix includes
2022-03-29 14:51:17 +03:00
Jade Cho
070c47ec09 [GPU] fix a bug of onednn sum post-op (#11254)
+ Add a unit test for this.
2022-03-29 20:35:09 +09:00
Mikhail Letavin
23732417c5 [GPU] Propagate output flag to mutable_data deps to ensure correct event creation (#11021) (#11021) 2022-03-29 13:08:58 +03:00
Maxim Andronov
d764fe7d27 [CPU] Prohibit int8 desc convolution creation in case s8 precision on data input (#10730) 2022-03-29 09:44:06 +00:00
Gleb Kazantaev
866f006a83 Transformations Python API (#10971)
* Keep changes

* Update tests

* Keep changes

* Cleanup

* Add predicates support; new pattern ops; new tests

* support for public passes; added tests

* Fix compilation warning

* Fix code style

* Added docstrings; code cleanup

* Update python API tests

* Fix build on Windows

* Revert back pass registration logic

* Fix flake8 errors

* Update docstrings; fix utils.hpp

* Cleanup

* Cleanup

* Fix flake errors

* Fix mypy

* Skip mypy for passes
2022-03-29 11:41:23 +03:00
Bo Liu
02c60c76ab Paddle FasterRCNN Ops Conversion: greater_than, less_than, gather, floor (#9657)
* Paddle FasterRCNN Ops Conversion: greater_than, less_than, gather, floor

* Apply suggestions from code review

* fix 'gather' testcase failure issue on CI

* implement 'axis' input for 'Gather' Op conversion with testcase comment;use common function for all elementwise Ops
2022-03-29 16:20:37 +08:00
Alexey Lebedev
8f88889876 [docs] python snippets for devices master (#11176)
* Update CPU docs

* update GPU docs

* update with sphinxtab

* Fix docs

* Add preprocessig snippet

* Fix path

Co-authored-by: Anastasia Kuporosova <anastasia.kuporosova@intel.com>
2022-03-29 11:01:53 +03:00
Anton Pankratov
bc9f140bb4 Fixed element type destruction in global scope (#11211)
* Fixed element type destruction in global scope

* Fixed mispirint
2022-03-29 10:21:41 +03:00
Nikolay Tyukaev
8aa98ce0d5 fix wildcard sphinxdirective (#11264) 2022-03-28 20:56:56 +03:00
Nikolay Tyukaev
da9596bade cvs-80083 (#11281) 2022-03-28 20:53:21 +03:00
Dmitry Belyakin
30ec7366bb [OMZ]: update submodule (#11279) 2022-03-28 19:48:53 +03:00
Dmitrii Khurtin
a925ec6a29 changed symlink order of libgna (#11267) 2022-03-28 19:48:08 +03:00
Ilya Lavrenov
19d0e5ba52 CMAKE: IE_VERSION => OpenVINO_VERSION (#11242)
* IE_VERSION => OpenVINO_VERSION

* Reverted installation of python unconditionally
2022-03-28 19:32:21 +03:00
Karol Blaszczak
8b591c141e Update installing-openvino-overview.md (#11271) 2022-03-28 15:15:32 +00:00
Dmitry Belyakin
27741d316e [OMZ]: update submodule (#11239)
* [OMZ]: update submodule

* bump omz ver
2022-03-28 15:45:35 +03:00
Valentin Dymchishin
52937967bb Add dynamism in memory tests (API 2) (#10589) 2022-03-28 12:51:53 +03:00
Irina Efode
76e2f2697f [CONFORMANCE] Fix run of Conformance tests (#11225) 2022-03-28 12:29:27 +03:00
Ilya Churaev
10698abc29 Revert vpu custom kernel master (#11228)
* Added original VPU custom kernel doc

* Moved to new API

* Added links from introduction

* Fixed intro
2022-03-28 12:18:29 +03:00
RavirajSitaram
30884a8161 Fix -Winfinite-recursion error reported by compiler (#11247)
Signed-off-by: Raviraj P Sitaram <raviraj.p.sitaram@intel.com>
2022-03-28 11:54:11 +03:00
Nikolay Tyukaev
aded1a2c70 a bunch of doc fixes (#11230) (#11237) 2022-03-25 20:22:43 +03:00
Evgenya Stepyreva
2d7f46b95a Update Divide_1.md (#11232) 2022-03-25 15:41:55 +00:00
Helena Kloosterman
05f97f2bb5 Update two paragraphs in performance hints docs (#11223) 2022-03-25 16:07:46 +03:00
Ilya Churaev
4dc0d6e711 Fixed comments after #11155 (#11202)
* Fixed comments after #11155

* Add information about plugin option
2022-03-25 16:02:18 +03:00
Smirnov Grigorii
a2705b1fed f64 to f32 and 0.0. to 0.1 (#11127) 2022-03-25 15:10:23 +03:00
Andrey Somsikov
3442e90144 Fix setupvars.bat patching (#11160)
* Fix setupvars.bat patching

setupvars.bat shoudl not be patched for regular Debug and Release
configurations.

* Use SRTEQUAL for cmake string comparison
2022-03-25 14:15:04 +03:00
Eddy Kim
200026f28b Missing backslashes right after mo (#11216) 2022-03-25 13:39:33 +03:00
Nikita Malinin
5e3e8d6084 [POT] Update POT with the ResultRenaming flag (#10989)
* Update POT with the ResultRenaming flag

* Update flag

* Update gold
2022-03-25 13:22:20 +03:00
Mikhail Nosov
8bfde58fd9 [Core] Improve performance for 'ov::Model::add_output' (#11052)
* Improve performance for 'ov::Model::add_output'

On first call of `add_output(tensor_name)` all available tensor names are cached.
Next calls take nodes from cache which significantly reduces complexity.
Cache is invalidated if topological cache is not valid or cache points to incorrect output (no tensor name of this node anymore)

The same caching is done for 'add_output(op_name, output_index)'

Tests:
- Verifies that adding outputs to all nodes has linear complexity O(N), not O(N^2)
- Verifies cache invalidation scenarios

* Fix python tests

* Update topological cache after add_output(Output<Node>) by adding result to the end of cached ops

* Add 'm_shared_rt_info' to 'result node just for consistency (there is actually no scenario which may fail due to absence of this info for Result

* Added test cases to verify that names cache should be cleared on refresh of 'get_ordered_ops'
2022-03-25 12:17:41 +03:00
Anastasia Popova
45a21bf902 Fixed setting of input name for case of multiple outputs from Parameter. (#11019)
* Fixed setting of input name for case of multiple outputs from Parameter.

* Small correction.
2022-03-25 12:11:07 +03:00
Sergey Lyubimtsev
fae1c27657 Add missed dependencies for OpenVINO Runtime wheel build (#11193)
* Disable IncrediBuild

* Add dependencies for frontends

* new line

* Add dependencies for frontends

* Enable IncrediBuild
2022-03-25 11:42:40 +03:00
Oleg Pipikin
aa0ab0e995 Move TF frontend tests (#11038) 2022-03-25 08:28:07 +03:00
Oleg Pipikin
5b18677f1b Add constant folding to hetero to avoid dynamism on GPU (#10572)
* Add constant folding to hetero to avoid dynamism on GPU

* Aplly comments

* Apply comments 2

* Fix1
2022-03-25 07:10:23 +03:00
Ilya Lavrenov
a883dc0b85 DOCS: ported changes from 2022.1 release branch (#11206)
* Extensibility guide with FE extensions and remove OV_FRAMEWORK_MAP from docs

* Rework of Extensibility Intro, adopted examples to missing OPENVINO_FRAMEWORK_MAP

* Removed OPENVINO_FRAMEWORK_MAP reference

* Frontend extension detailed documentation

* Fixed distributed snippets

* Fixed snippet inclusion in FE extension document and chapter headers

* Fixed wrong name in a snippet reference

* Fixed test for template extension due to changed number of loaded extensions

* Update docs/Extensibility_UG/frontend_extensions.md

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>

* Minor fixes in extension snippets

* Small grammar fix

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>

Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>

* DOCS: transition banner (#10973)

* transition banner

* minor fix

* update transition banner

* updates

* update custom.js

* updates

* updates

* Documentation fixes (#11044)

* Benchmark app usage

* Fixed link to the devices

* More fixes

* Update docs/OV_Runtime_UG/multi_device.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Removed several hardcoded links

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Updated documentation for compile_tool (#11049)

* Added deployment guide (#11060)

* Added deployment guide

* Added local distribution

* Updates

* Fixed more indentations

* Removed obsolete code snippets (#11061)

* Removed obsolete code snippets

* NCC style

* Fixed NCC for BA

* Add a troubleshooting issue for PRC installation (#11074)

* updates

* adding gna to linux

* add missing reference

* update

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/installing-model-dev-tools.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* update

* minor updates

* add gna item to yum and apt

* add gna to get started page

* update reference formatting

* merge commit

* add a troubleshooting issue

* update

* update

* fix CVS-71846

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* DOCS: fixed hardcoded links  (#11100)

* Fixes

* Use links

* applying reviewers comments to the Opt Guide (#11093)

* applying reviewrs comments

* fixed refs, more structuring (bold, bullets, etc)

* refactoring tput/latency sections

* next iteration (mostly latency), also brushed the auto-batching and other sections

* updates sync/async images

* common opts brushed

* WIP tput redesigned

* minor brushing of common and auto-batching

* Tput fully refactored

* fixed doc name in the link

* moved int8 perf counters to the right section

* fixed links

* fixed broken quotes

* fixed more links

* add ref to the internals to the TOC

* Added a note on the batch size

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* [80085] New images for docs (#11114)

* change doc structure

* fix manager tools

* fix manager tools 3 step

* fix manager tools 3 step

* new img

* new img for OV Runtime

* fix steps

* steps

* fix intendents

* change list

* fix space

* fix space

* code snippets fix

* change display

* Benchmarks 2022 1 (#11130)

* Minor fixes

* Updates for 2022.1

* Edits according to the review

* Edits according to review comments

* Edits according to review comments

* Edits according to review comments

* Fixed table

* Edits according to review comments

* Removed config for Intel® Core™ i7-11850HE

* Removed forward-tacotron-duration-prediction-241 graph

* Added resnet-18-pytorch

* Add info about Docker images in Deployment guide (#11136)

* Renamed user guides (#11137)

* fix screenshot (#11140)

* More conservative recommendations on dynamic shapes usage in docs (#11161)

* More conservative recommendations about using dynamic shapes

* Duplicated statement from C++ part to Python part of reshape doc (no semantical changes)

* Update ShapeInference.md (#11168)

* Benchmarks 2022 1 updates (#11180)

* Updated graphs

* Quick fix for TODO in Dynamic Shapes article

* Anchor link fixes

* Fixed DM config (#11199)

* DOCS: doxy sphinxtabs (#11027)

* initial implementation of doxy sphinxtabs

* fixes

* fixes

* fixes

* fixes

* fixes

* WA for ignored visibility attribute

* Fixes

Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>
Co-authored-by: Ivan Tikhonov <ivan.tikhonov@intel.com>
Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>
Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
2022-03-24 22:27:29 +03:00
Anastasia Kuporosova
8118147a96 [Python API] Fix documentation for Core API (#11187)
* [Python API] Fix documentation for Core API

* fix style
2022-03-24 19:56:45 +03:00
Ilya Churaev
a8f9863f72 Add compiler requirements master (#11190)
* Added software tab for Linux installer

* Added information for apt and yum

* Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Update docs/install_guides/installing-openvino-linux.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-03-24 14:25:49 +00:00
Sofya Balandina
0c6c3b0d74 [subgraphsDumper] Serialize the lightest operations from existing (#11097) 2022-03-24 16:43:46 +03:00
Irina Efode
f156429b11 [IE TESTS] API Conformance review (#11133)
* [IE TESTS] API Conformance review. Part 1

* properties

* properties
2022-03-24 16:34:05 +03:00
Maxim Shevtsov
7dc1d0935c Auto batching improved tests (#11179)
* wip remote tests2, fixed smoke_canInferOnUserContext

* completed the OV 1.0 tests for remote blobs

* updated OV 2.0 tests for remote blobs with auto-batching (using the ngraph func that is reshape-able by the batch)

* re-using the DetectionOutput-based ngraph func that is 100% batch-reshapeble
2022-03-24 16:23:00 +03:00
Ilya Churaev
b5dbabe41d Fixed registration of template plugin (#11155)
* Fixed registration of template plugin

* Added option for template plugin

* Fixed static build
2022-03-24 14:39:20 +03:00
Mikhail Nosov
9d865a2133 [Model Caching] Enabling per-device cache dir (#10774)
* Initial commit

10 more caching tests

* Fix clang-format

* Added brief explanations to each test

* Fix review comments
2022-03-24 11:24:47 +03:00
Wilson Seok
0cc119cd86 Fix N/A reported ops in conformance test (#11165)
* fix N/A ops in OpImplCheck

* update RandomUniform with parameter

* modify Constant function
2022-03-24 09:59:37 +03:00
Vladislav Volkov
5e6fd8c721 Validation of invalid names in CC factory (#11170) 2022-03-24 09:47:10 +03:00
Gleb Kazantaev
714d7a79c7 Fix SimplifySecondInputOfReshape (#11128) 2022-03-23 23:00:39 +00:00
Vladimir Dudnik
3a8800cbd2 [Docs][IE Samples] fix hard links (#11144)
* fix hard links

* change encoding

* fix TM

Co-authored-by: CCR\ntyukaev <nikolay.tyukaev@intel.com>
2022-03-23 23:48:08 +03:00
Irina Efode
001d098410 [IE TESTS][CONFORMANCE] Fix issue with checkmarks for op impl check (#11178) 2022-03-23 20:10:49 +03:00
Irina Efode
5847e3cb44 [IE TESTS][CONFORMANCE] Allow to serialize report to CSV (#11119)
* [IE TESTS][CONFORMANCE] Allow to serialize report to CSV

* Small improvement

* Move import
2022-03-23 17:36:07 +03:00
Wilson Seok
32886cf90f change to fp16 ov::Model (#11018) 2022-03-23 17:09:20 +03:00
Fedor Zharinov
fe3270c232 [benchmark_app]Exception handling in callback (#11123)
* Exception handling in callback

* stylefix
2022-03-23 16:55:41 +03:00
Fedor Zharinov
1315cfaa64 Add CHW/HWC heuristics for tensors with 3 dimensions (#10817) 2022-03-23 16:54:56 +03:00
Alexey Varyzgin
75bbfe336d [CPU] API2.0 input issues (#10222) 2022-03-23 16:41:59 +03:00
hyunback kim
fc2a8eb1a6 [GPU] Fix unused variable build issue (#11157)
* [GPU] Fix unused variable build issue

Signed-off-by: hyunback <hyunback.kim@intel.com>

* Update to remove unused variables.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-03-23 16:26:09 +03:00
Artur Kulikowski
3674ec403f Update ONNX to version 1.11.0 (#11046) 2022-03-23 13:52:33 +01:00
Ilya Churaev
a63e2080e1 Added group for transformation passes (#11102) 2022-03-23 14:08:04 +03:00
Chen Peter
066882579d [AUTO] Fix mess table in doc (#11158)
Signed-off-by: Peter Chen <peter.chen@intel.com>
2022-03-23 13:35:28 +03:00
Nikita Malinin
b50079143f Update IRReader with the ResultRenaming flag (#10988) 2022-03-23 13:16:40 +03:00
Ilya Churaev
eb80b28624 Added groups for core headers (#11080) 2022-03-23 12:19:07 +03:00
Alexey Lebedev
3de9189d50 [core][python] ov::serialize (#10945)
* add ov::serialize

* create python binding

* update python tools

* use ov::serialize in benchmark app

* remove serialize from python offline_transformations

* fix import

* revert pot

* update docs

* apply review comments

* add const

* make bin path optional

* Add docs

* add compare test
2022-03-23 11:44:00 +03:00
Yuan Hu
af874e7754 update AUTO Debug doc with snippets (#11117)
Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-03-23 16:31:03 +08:00
Nikita Malinin
eb74afe417 Fix FBC missed spaces (#11091) 2022-03-23 11:17:42 +03:00
Liubov Talamanova
99f0093615 [POT] Fixed bug with out port for nodes with multiple outputs (#10932)
* Fixed bug with out port

* Add test

* Fix test

* Change test model
2022-03-23 11:17:06 +03:00
Edward Shogulin
cd361ecae1 [CPU] Code generation: Floor & Ceiling & Round implementation (#10666) 2022-03-23 10:32:25 +03:00
Ilya Churaev
9bc7ebda7b Add couple words about tensor names master (#11116)
* Added more information about tensor names

* Fixed comment and added documentation for extensions

* Fixed typo
2022-03-23 10:04:21 +03:00
Ilya Churaev
1ad4a99478 Port api reference (#11152) 2022-03-23 10:03:16 +03:00
Oleg Pipikin
6710d78e63 Move shared frontend tests (#11036)
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-23 09:00:34 +03:00
Mingyu Kim
ac58e8eaf1 [GPU] Temporal WA to fix accuracy issue in a network (#11016)
resample_opt generates wrong result when feature depth is two.
2022-03-23 14:40:20 +09:00
Wang, Yang
e259548530 Add logic test case for auto batching enable (#10626)
* Add test case for the loadNetwork with Auto Batching.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Enable logic test case for GPU.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Enable property for config key 'AUTO_BATCH_DEVICE_CONFIG'.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Omit {}.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add commont test for the property ALLOW_AUTO_BATCHING.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add commont test for AUTO Batching plugin.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>
2022-03-23 09:30:19 +08:00
Alexey Suhov
4a47c95c04 Update release version in readme (#11145) 2022-03-23 01:06:08 +03:00
Yuan Xu
2693ff3e48 fix a reference link (#11050) 2022-03-22 22:51:56 +03:00
Egor Duplensky
090799a362 [Samples] Fix cpp benchmark_app help message (#11055) 2022-03-22 22:51:05 +03:00
Maksim Kutakov
3ae167b88e Updated note about latency, added note about mem usage with dynamic shapes (#11126) 2022-03-22 22:45:38 +03:00
Karol Blaszczak
8cac305b8f [DOCS]transition_guide_intro_language (#11134)
a few language suggestions and grammar issues
2022-03-22 22:27:19 +03:00
Irina Efode
eeea2de3eb Extend PDPD regex by legacy (#10994) 2022-03-22 15:09:33 +03:00
Ilya Lavrenov
2f46890444 Removed obsolete scri[ts (#11107) 2022-03-22 14:52:03 +03:00
Nikita Semaev
5dcb6c2cee Correcting a regular expression (#10822) 2022-03-22 13:41:23 +03:00
Dmitrii Khurtin
2ae7e45edb [GNA] Moving PWL op to GNA (#8207)
* Moving PWL to ngraph

* improving the running time of php_search; refactoring the pwl operation

* fixed erros & refactored code

* moved PWL op to GNA

* Update src/plugins/intel_gna/ops/pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/ops/reference/pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/ops/pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/transformations/transpose_to_pwl.hpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* Update src/plugins/intel_gna/transformations/transpose_to_pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* fixed compilation error

* Update inference-engine/tests/unit/gna/ngraph/transformations/gna_pwl.cpp

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>

* added some tests; changed algorithm of checking accuracy of pwl; refactoring

* added first and last segments; added fq and fixed errors

* fixed after review & rewrote some tests on ngraph

* removed debug logs & fixed code style check error

* s/ngraph_helper/ngraph_util

* removed TRANSFORMATIONS_API in PWLApproximation class declaration

* removed OPENVINO_API in Pwl class declaration

* replaced the deprecated version of evaluate() with a new one

* fixed some problems after reviewing

* fixed a problem when a value of function of left point of segment is less than minimum of function

* corrected a value of the right point of last segments

* s/OPENVINO_RTTI/OPENVINO_OP

Co-authored-by: Elizaveta Lobanova <elizaveta.lobanova@intel.com>
2022-03-22 13:24:57 +03:00
Alexander Sesorov
fb7249d496 [bandit] Add nosec for subprocess (#10941) 2022-03-22 12:56:54 +03:00
Ekaterina Aidova
37adb6d8a9 Docs: update AC info in API 2.0 migration guide (master) (#11113) 2022-03-22 12:42:13 +03:00
Ekaterina Aidova
1b9fbf25fd [OMZ]: update submodule (#11069) 2022-03-22 12:41:59 +03:00
Anastasia Kazantaeva
46df794908 Add changes to contribution guide (#10675) 2022-03-22 11:51:53 +03:00
Andrey Zaytsev
e782cd18b7 Feature/azaytsev/img updates (#11110)
* Updated images

* Updated images
2022-03-22 11:13:17 +03:00
Ilya Churaev
2a43c64336 Removed indentation (#11112) 2022-03-22 10:09:24 +03:00
Oleg Pipikin
7ccc48110d Move common test utils (#11022)
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-22 09:52:38 +03:00
Yury Gaydaychuk
1b9c58125c Checking in setShape() method if blob was preallocated moved to the case of increased shape (#11009)
* allow setshape for preallocated  blob in the case of non-increased memory size

* codestyle

* test cases added

* pytest aligned
2022-03-22 09:35:37 +03:00
Sofya Balandina
dfac195ffe Fix saving report in dir with more than one non-existing level (#11088) 2022-03-22 09:26:08 +03:00
Jade Cho
a7df1531db [GPU] Code refactoring to choose between binary_add and sum (#10724)
+ Fix colorization-sig accuracy issue using oneDNN
	Memory crash in case reuse_eltwise_sum_post in oneDNN and memory_pool
	And print node in/out gpu_usm_mem addr at OV_GPU_Verbose >= 1
+ Check the size of z spatial axis for checking fulltensor.
+ Remove program_helpers's functions.

Co-authored-by: hyunback <hyunback.kim@intel.com>
2022-03-22 14:58:36 +09:00
Aleksandr Korolev
e8288eb31d [VPU] removal deprecated test (#10597)
* [VPU] removal deprecated test

* Adding ie plugin cache reset to avoid myriad device is not opened issue

* Review changes

* Review changes
2022-03-21 21:14:41 +03:00
Mikhail Nosov
d84d00e2d6 Fix issue with output's friendly name after post-processing (#11095)
Scenario:
- Node "Split" with multiple outputs (e.g. 3). All outputs are connected to "Result"s
- Add post-processing step (e.g. convert element type, can be also implicit)

Issue: after post-processing, 3 new results will be created, each will have "Split" friendly name - inconsistency with IRv10 rules
Fix:
- For nodes with multiple outputs, add '.<idx>' suffix to new output's friendly name
- If no post-processing is applied, return immediately, keeping original results as is

Tests:
- Split with 3 outputs where 2 outputs have post-processing.
- Split with 3 outputs, post-processing doesn't create any nodes
2022-03-21 20:26:24 +03:00
Sergey Lyubimtsev
dacdf67c2c Update Benchmark guides (#11076) (#11085)
* - Update Benchmark Tool usage message
- Remove not existed paths
- Fix examples
* remove reference on FPGA

(cherry picked from commit 3caa77eb30)

# Conflicts:
#	samples/cpp/benchmark_app/README.md
2022-03-21 19:31:17 +03:00
Maxim Gordeev
3ac6e95ead [IE Samples] Fixed hanging of samples if InferImpl() throws exception (#11075)
* [IE Samples] Fixed hanging of samples if InferImpl() throws exception

* improved re-throw an exception
2022-03-21 19:30:30 +03:00
Evgenya Stepyreva
2f0620600f Reshape documentation (#10901)
* Reshape documentation

* Converting Model : reshape metrined, Supported Devices: no shape inference mentioning

* demos removed
2022-03-21 19:13:24 +03:00
Liubov Talamanova
bdc89b1571 Moved quantization templates to openvino/tools/pot (#10814) 2022-03-21 14:17:55 +03:00
Fedor Zharinov
0b444ab2db [benchmark_app]Show network original I/O info (#10694)
* Show network original I/O info

* additional no-name case check

* stylefix

* Update samples/cpp/benchmark_app/main.cpp

Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>

* Update samples/cpp/benchmark_app/main.cpp

Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>

Co-authored-by: Nadezhda Ageeva <nkogteva@gmail.com>
2022-03-21 13:57:56 +03:00
Alexey Lebedev
332d27ca82 Replace enforcebf16 and qb by infer_precision (#11007) 2022-03-21 13:36:00 +03:00
Daria Mityagina
51ee3f81cb [XLink] - run XLink tests in pre-commit (#10302)
* [XLink] - tests to smoke scope

* [XLink] - small change in XLink related file to trigger ie-tests-windows-myriadx

* [XLink] - azure windows and linux

* [XLink] - azure windows and linux

* [XLink] - azure windows and linux - change dir?

* [XLink] - azure windows and linux - change dir?

* [XLink] - azure windows and linux - install?

* [XLink] - azure windows and linux - xlink cmake

* [XLink] - azure windows and linux - XLinkTests because another target with the same name already exists

* [XLink] - azure windows and linux - XLinkTests because another target with the same name already exists

* [XLink] - azure windows and linux - install TARGETS given target XLinkTests which does not exist

* [XLink] - azure windows and linux - remove smoke
2022-03-21 13:28:44 +03:00
Yuan Xu
be9bbb676d sync the same updates with 22/1 (#11071)
* Add Overview page

* Revert "Add Overview page"

* updates

* update

* updates
2022-03-21 09:11:39 +00:00
Sergey Shlyapnikov
782ef6b42e [GPU] Add estimation of required memory for CAFFE_OPT_2 stage of GPU Detection Output (#11001) 2022-03-21 12:06:07 +03:00
Tomasz Dołbniak
b480a49d66 RandomUniform-8: shape inference fix (#11047)
* Shape inference fix

* Update src/core/src/op/random_uniform.cpp

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>

* Update src/core/tests/type_prop/random_uniform.cpp

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>

Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
2022-03-21 12:04:51 +03:00
Edward Shogulin
a887b41db6 [snippets] Tokenization fix: fused names (#10997) 2022-03-21 11:44:43 +03:00
hyunback kim
ad179980d9 [GPU] Fix implicit concat padding offset issue in OneDNN (#11062)
Inserting padding into oneDNN primitive has issue with implicit concat behavior.
Deconv onedNN initialized output buffer to 0 including padding area. Padding area should be reserved.
Use oneDNN offset from program_node in/out lower_padding instead of oneDNN memory desc.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-03-21 16:57:39 +09:00
Evgeny Kotov
d7005af4a5 [GNA] add 3D shape input support for StridedSlice (#10818)
* add 3D shape to test and rename crop4d to strided_slice

* remove ConvertStridedSliceToCropNegative2 since 3D is now supported

* add myriad functional tests to skip-list
2022-03-21 10:15:59 +03:00
Mateusz Tabaka
c18030207c [ONNX] Avoid allocating vector for constants if possible (#10860)
For FLOAT, DOUBLE, INT32, INT64, UINT64 we can get a pointer
to data from TensorProto and pass it to Constant constructor.
2022-03-20 14:07:50 +01:00
Ilya Lavrenov
5390aa7ebc Updated multi code snippets (#11037) 2022-03-20 15:44:33 +08:00
Yuan Hu
72e8661157 [Auto PLUGIN] update Auto docs (#10889)
* update Auto docs

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update python snippets

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* remove vpu, fix a mistaken in python code

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update MYRIAD device full name

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update API name

old API use name Inference Engine API
NEW API usen name OpenVINO Runtime API 2.0

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update tab name, and code format

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix AUTO4 format issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update set_property code

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* auto draft

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* mv code into .cpp and .py

modify the devicelist part accoding to the review

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* remove priority list in code and document

modify the begning of the document
remove perfomance data
remove old API
use compile_model instead of set_property
add a image about cpu accelerate

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix mis print and code is not match document

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* try to fix doc build issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix snippets code compile issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-03-19 18:25:35 +03:00
Maksim Derbasov
76fde1f7b0 Optimization for ie_memcpy (#10996) 2022-03-19 14:33:21 +03:00
Vladimir Paramuzov
b2110b352c [GPU] Update data structures for conv/pool/deconv params (#9641) 2022-03-19 11:11:07 +03:00
Irina Efode
3322b74bd9 [IE TESTS] Align Impl status (#11045) 2022-03-18 19:48:14 +03:00
Ilya Lavrenov
e3098ece7e DOCS: port changes from releases/2022/1 (#11040)
* Added migration for deployment (#10800)

* Added migration for deployment

* Addressed comments

* more info after the What's new Sessions' questions (#10803)

* more info after the What's new Sessions' questions

* generalizing the optimal_batch_size vs explicit value message

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/OV_Runtime_UG/automatic_batching.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Perf Hints docs and General Opt Guide refactoring (#10815)

* Brushed the general optimization page

* Opt GUIDE, WIP

* perf hints doc placeholder

* WIP

* WIP2

* WIP 3

* added streams and few other details

* fixed titles, misprints etc

* Perf hints

* movin the runtime optimizations intro

* fixed link

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* some details on the FIL and other means when pure inference time is not the only factor

* shuffled according to general->use-case->device-specifics flow, minor brushing

* next iter

* section on optimizing for tput and latency

* couple of links to the features support matrix

* Links, brushing, dedicated subsections for Latency/FIL/Tput

* had to make the link less specific (otherwise docs compilations fails)

* removing the Temp/Should be moved to the Opt Guide

* shuffled the tput/latency/etc info into separated documents. also the following docs moved from the temp into specific feature, general product desc or corresponding plugins

-   openvino_docs_IE_DG_Model_caching_overview
-   openvino_docs_IE_DG_Int8Inference
-   openvino_docs_IE_DG_Bfloat16Inference
-   openvino_docs_OV_UG_NoDynamicShapes

* fixed toc for ov_dynamic_shapes.md

* referring the openvino_docs_IE_DG_Bfloat16Inference to avoid docs compilation errors

* fixed main product TOC, removed ref from the second-level items

* reviewers remarks

* reverted the openvino_docs_OV_UG_NoDynamicShapes

* reverting openvino_docs_IE_DG_Bfloat16Inference and openvino_docs_IE_DG_Int8Inference

* "No dynamic shapes" to the "Dynamic shapes" as TOC

* removed duplication

* minor brushing

* Caching to the next level in TOC

* brushing

* more on the perf counters ( for latency and dynamic cases)

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Updated common IE pipeline infer-request section (#10844)

* Updated common IE pipeline infer-reqest section

* Update ov_infer_request.md

* Apply suggestions from code review

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

* DOCS: Removed useless 4 spaces in snippets (#10870)

* Updated snippets

* Added link to encryption

* [DOCS] ARM CPU plugin docs (#10885)

* initial commit

ARM_CPU.md added
ARM CPU is added to the list of supported devices

* Update the list of supported properties

* Update Device_Plugins.md

* Update CODEOWNERS

* Removed quotes in limitations section

* NVIDIA and Android are added to the list of supported devices

* Added See Also section and reg sign to arm

* Added Preprocessing acceleration section

* Update the list of supported layers

* updated list of supported layers

* fix typos

* Added support disclaimer

* update trade and reg symbols

* fixed typos

* fix typos

* reg fix

* add reg symbol back

Co-authored-by: Vitaly Tuzov <vitaly.tuzov@intel.com>

* Try to fix visualization (#10896)

* Try to fix visualization

* New try

* Update Install&Deployment for migration guide to 22/1 (#10933)

* updates

* update

* Getting started improvements (#10948)

* Onnx updates (#10962)

* onnx changes

* onnx updates

* onnx updates

* fix broken anchors api reference (#10976)

* add ote repo (#10979)

* DOCS: Increase content width (#10995)

* fixes

* fix

* Fixed compilation

Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com>
Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
Co-authored-by: Aleksandr Voron <aleksandr.voron@intel.com>
Co-authored-by: Vitaly Tuzov <vitaly.tuzov@intel.com>
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>
Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
2022-03-18 17:48:45 +03:00
Irina Efode
2f5cb43cba Change CODEOWNERS file (#11041) 2022-03-18 17:28:53 +03:00
Taylor Yeonbok Lee
d539a04efb [GPU] Add multiple output support in kernel selector, helper, set_arguments (#10755) 2022-03-18 17:26:07 +03:00
Taylor Yeonbok Lee
e5ad30f194 [GPU] Added a new unittest to test the mapped external primitive of a loop is fused to other primitive (#10832) 2022-03-18 17:25:32 +03:00
Mateusz Bencer
fe406d1606 Cpp fix of python segfault, reverted pybind workaround (#10749)
* test fix of segfault

* styles applied

* added keep_alive to pybind

* remove redundant code

* fix json tests

* review remarks

* introduced correct path to dlls in CI

* removing passing path via env variable

* introduced cpp solution

* remove keep alive

* review remarks

* remove explicit removing model

* removed shared_objects from ir frontend

* core test updated

* unified approach to handle extensions by frontends

* added nullptr check

* Revert "added nullptr check"

This reverts commit 666f5e4489.

* Revert "unified approach to handle extensions by frontends"

This reverts commit bf85ac24a6.

* m_extensions declaration in Frontend

* added assert
2022-03-18 16:29:46 +03:00
Yuan Xu
a5362a4d58 Apply same changes from 22/1 to master (#11035)
* Add Overview page

* Revert "Add Overview page"

* fix errors & formatting

* fix article usage according to the styles

* fix errors

* update according to PXT comments

* CVS-80775

* update support matrix with Python version

* fix formatting

* fix formatting

* CVS-71745

* update formatting

* fix formatting

* fix formatting

* fix links & errors

* fix formatting

* update bullet points

* update

* adjust the order

* update

* update

* updates

* update references

* update

* update

* apply same updates with 22/1

* minor fix
2022-03-18 12:07:07 +00:00
Maxim Vafin
c8f4f9b7db [MO] Fix swish value infer (#10802) 2022-03-18 14:56:37 +03:00
Maksim Kutakov
dfdbdb4601 [CPU] CPU plugin docs refactoring (#10970)
* CPU device documentation refresh

* Bfloat16 inference page aligned with the new API

* Bfloat16 inference section moved to CPU main

* First review comments applied

* Second review step comments applied

* OneDNN reference changed to the GitHub page

* AvgPool added to the oneDNN ops list
2022-03-18 14:56:22 +03:00
Ilya Churaev
a4d164eda4 Fixed macro for plugin registration. Register only required plugins (#11031) 2022-03-18 13:13:33 +03:00
Irina Efode
931313c03b Move Subgraph Dumper tool to RTTI declaration (#10862) 2022-03-18 13:01:53 +03:00
Anton Dudchenko
4cbdf9e737 [VPU] Fix MyriadPlugin build with enabled options of Conditional Compilation (#10811)
Added initialization for streamPacketDesc_t
CVS-80386
2022-03-18 12:20:15 +03:00
Yuan Hu
967f056761 [AUTOPLUGIN] update multi plugin document for ov2.0 (#10688)
* update multi document

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update snippets ov::enableProfile

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix build issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* use Anymap in snippets

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix format and set property

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update python

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* try fo fix test document issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* removed NEW IE-CENTRIC API and upated set_property

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* update ov::optimal_number_of_infer_requests

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-03-18 11:31:36 +03:00
David Nam
000723acd0 Add ReadValue and Assign to template plugin tests (#9132)
* Add readvalue, assign to templte plugin test

* Fix clang error

* Fix clang error

* Remove unnecessary comment

* Fix type-casting error

* Fix ci issue regarding const value

* Change Function to Model

* Fix op scope

* Change way to get variable

* Fix type-casting error

* Set variable id to const

* Fix side-effect in ieFuncTests

* Implement Assign-3, ReadValue-3 in evaluates_map

* Correct setting attribute

* Correct setting attribute

* Remove unnecessarily added method

* Roll back v6

* Use member variable for variable_id in assign-3, read_value-3

* Get data pointer from host tensor

* Remove visitor API test for ReadValue-6, Assign-6

* Implement visitor api test for read_value-6, assign-6

* Fix clang error

* Split read_value and assign into each file for visitor test

Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-18 07:13:40 +00:00
Mikhail Nosov
c4f5bce3b0 If CMAKE_BUILD_TYPE is not set - set it to 'Release' by default (#11026)
This behavior is already used by default because ONNX is enabled by default and thirdparty/onnx/onnx/CMakeLists.txt forcing CMAKE_BUILD_TYPE to Release if it is not set

It fixes the following issues:
- When ONNX frontend is disabled - source is built for Debug, which is very unexpected comparing to Release with ONNX frontend enabled
- When ONNX frontend is disabled, even libopenvino.so could not be built due to some generated makefiles issues

It is set to 'Release' (not to 'Debug') to comply with default behavior when ONNX is enabled (it is default option working for most users)
2022-03-18 06:59:36 +03:00
Maxim Vafin
0be4bca954 Incremental improvement of MO user guide. (#11010)
* Incremental improvement of MO user guide.

* Apply feedback
2022-03-17 22:38:20 +03:00
Anton Romanov
73994d7c70 Fixed coverity in benchmark app (#11013) 2022-03-17 18:26:59 +03:00
Alina Kladieva
aedcf2cb9f Skip hanging Myriad canRun3AsyncRequestsConsistentlyFromThreads (#11011)
* Skip Myriad canRun3AsyncRequestsConsistentlyFromThreads

* Update skip_tests_config.cpp

Fix typo
2022-03-17 17:52:25 +03:00
Mikhail Nosov
4b3dd808df [First Inference] Read time improvements via using 'mmap/munmap' (#10907)
* Performance improvement for constant creation

The issue is that 'are_all_data_elements_bitwise_identical()' is called every time in Constant constructor, and it potentially checks all buffer which is O(N) complexity.
While it is needed only if client uses 'get_all_data_elements_bitwise_identical'

Solution:
- Defer calculation until first call of 'get_all_data_elements_bitwise_identical'
- Store calculated value in mutable class member to reuse it on next calls of 'get_all_data_elements_bitwise_identical'

Test verifies both cases:
a) that constant creation with shared memory data (now O(1)) is significantly faster than creation+bitwiseCheck O(N)
b) Than once calculated, value is taken from cache, which is significantly faster than re-calculation

* fix clang-format

* Stash - Linux implementation

* Windows mmap implementation + unicode

* Clang for windows

* removed debug print

* Add handling of empty bin file

* fix windows includes

* Fix python test

* Unit tests
Fix for Constant with size > 4GB

* Fix review comments
2022-03-17 17:16:06 +03:00
Indira Salyahova
3a8fd7135e [POT] Method сhange to get bias shape in bc and fbc algoritms (#10463)
* refactoring: get bias shape in bc and fbc algoritms

* use scipy to take most frequent shape

* pylint

* update reference

* pylint

* Update test_sanity.py

* update test_sanity.py

* Update test_sanity.py
2022-03-17 16:46:28 +03:00
Sergey Lyubimtsev
412f2190d1 Update for get started samples (#10975)
* Update for get started samples

* Update docs/get_started/get_started_demos.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/get_started/get_started_demos.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/get_started/get_started_demos.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* formatting

* rewording

* fix links

* fix formatting

* Update docs/get_started/get_started_demos.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* Update docs/get_started/get_started_demos.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

* replace squeezenet1.1 with googlenet-v1

* GoogleNet v1 Caffe* model

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-03-17 16:01:42 +03:00
Vladimir Zinoviev
f12ab5c182 [LPT] Tests on reshape with channel dim reducing (#10999) 2022-03-17 16:00:45 +03:00
Mikhail Nosov
857a1ad2af Caching snippets try/catch to make coverity happy (#11005) 2022-03-17 09:58:18 +00:00
Artyom Anokhov
2b4ee3d937 Fix Deployment Manager configs for MacOS and Win-HDDL target (master) (#11000)
* DM configs: Updated path for MacOS. Removed MovidiusDriver for HDDL target for Windows

* DM config MacOS: Updated name for libov_runtime
2022-03-17 12:45:07 +03:00
Andrey Noskov
0091d52c78 [GNA] Added SW_FP32 mode w/o SF for BasicLSTM (#10115)
* [GNA] Added SW_FP32 mode w/o SF for BasicLSTM

* deleted additional test
 added sw_fp32 mode for exisiting test
 changed reference output for new mode

* [GNA] Fixed according to review

* [GNA] Parametrized weights range

* fixed after review

Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com>
2022-03-17 11:32:46 +03:00
Anton Romanov
bfa0e3e1a4 Fix samples tests on azure (#10892)
* Fix samples tests on azure

* fixed bmp reader
2022-03-17 11:17:25 +03:00
Dawid Kożykowski
cf80156fcc Expose Output object bindings to Python (#10743) 2022-03-16 18:31:38 +01:00
Dawid Kożykowski
6f64de4c27 DynamicQuantizeLinear op support (#10565) 2022-03-16 18:30:15 +01:00
Karol Blaszczak
33d90c5c77 [DOCS] update HETERO execution (#10758)
* [DOCS] update HETERO execution

a basic language review

* Update docs/OV_Runtime_UG/hetero_execution.md

* Update docs/OV_Runtime_UG/hetero_execution.md

* Update docs/OV_Runtime_UG/hetero_execution.md

* Update docs/OV_Runtime_UG/hetero_execution.md

Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-16 18:37:30 +03:00
Yegor Kruglov
7cfd8698ce [Master] Cascade RCNN res101 document model support (#10902)
* cascade rcnn model support

* fix typo

* specify model directory

* comments resolving
2022-03-16 18:16:28 +03:00
Vladimir Zinoviev
25e1f6ac97 [CODEOWNERS] LPT folder owner change to LPT team (#10993) 2022-03-16 17:38:29 +03:00
Vladislav Volkov
ed8c9d6f9a CPU Plugin refactoring: class names (#10639) 2022-03-16 17:16:29 +03:00
Yegor Kruglov
f7b2e3a8ca SoftSign-9 specification (#10690)
* SoftSign-9 specification

* opset9 update

* fix formula

* comments resolving
2022-03-16 14:58:26 +03:00
Vladimir Gavrilov
f7875da083 nGraph shell of operations RDFT and IRDFT (#10353)
* Written header files for the nGraph operations RDFT and IRDFT.

* Written nGraph shell for the operation RDFT.

* Added missed include.

* Added RDFT to opset9 table.

* Code style fixes.

* Written the nGraph shell of the operation IRDFT.

* Added IRDFT to opset9 table.

* Started to write shape infer tests for RDFT.

* Refactoring: shape infer functions of RDFT and IRDFT moved into separate files.

* Written shape infer tests for RDFT.

* Written shape infer tests for IRDFT operation.

* Fixed code style.

* Fixes in the shape infer function of RDFT.

* Fixes in the shape infer function of RDFT.

* Fixes in the shape infer function of IRDFT.

* Deleted redundant includes in include/ngraph/op/irdft.hpp and include/ngraph/op/rdft.hpp

* Deleted redundant includes in include/openvino/op/rdft.hpp and include/openvino/op/irdft.hpp.

* Deleted redundant includes in cpp-files of nGraph shells of operations IRDFT and RDFT.

* Code style fixes.

* Shape inference functions of operations RDFT and IRDFT moved to the namespace ov::op::util.

* Deleted RDFT and IRDFT from docs/template_plugin/backend/opset_int_tbl.hpp.

* Deleted 'using namespace ngraph' from cpp-files of nGraph shells of operations RDFT and IRDFT.

* Fixed typos.

* Merged some loops in shape inference functions of RDFT and IRDFT.

* Written visitor tests for RDFT and IRDFT.

* Small change.

* Common part of RDFT and IRDFT shape validation moved into the separate file.

Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-16 14:54:32 +03:00
Nadezhda Ageeva
097006d97a [GNA] Update documentation (cherry-pick from release) (#10974)
* [GNA] Update documentation (release) (#10873)

* parent 5f755d5e4a
author Nadezhda Ageeva <nadezhda.ageeva@intel.com> 1646919359 +0300
committer Nadezhda Ageeva <nadezhda.ageeva@intel.com> 1647270928 +0300

[GNA] Updte documentation (release)

Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Denis Orlov <denis.orlov@intel.com>

Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Denis Orlov <denis.orlov@intel.com>

Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Denis Orlov <denis.orlov@intel.com>

Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Denis Orlov <denis.orlov@intel.com>

Apply comments

Move snippets to separate file

Add notes about POT and 2d convolutions

* Add lins to GNA setup

* cleanup after rebase

* [GNA] small docs fixes (#10959)

* [GNA] small docs fixes

* Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/GNA.md

Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>

Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>

Co-authored-by: Victoria Yashina <victoria.yashina@intel.com>
2022-03-16 14:37:55 +03:00
Ilya Znamenskiy
848a824260 [GPU] Removed unneeded data from the code (#10987) 2022-03-16 14:22:54 +03:00
Chenhu Wang
3bb83b4ddd [CPU] Fixed undefined values in MVN and Interpolate nodes (#10829) 2022-03-16 14:11:07 +03:00
Alexandra Sidorova
68452e97e2 [CPU] Fixed default ellipsis in StridedSlice (#10713) 2022-03-16 14:09:42 +03:00
Chen Xu
49fb48e744 [CPU] Topk node extend to support horizontal sort for all layouts for top_k == 1 (#10700) 2022-03-16 14:09:14 +03:00
Luo Cheng
4d8adabcaa [CPU] Fusing in non-0 output port exception (#10837) 2022-03-16 14:08:28 +03:00
Alexander Zhogov
8a813d0da9 Update windows.yml
Azure CI: Enable IB again
2022-03-16 13:05:36 +03:00
Mikhail Nosov
7cea7dd4e6 Docs: model caching page update according to OpenVINO API 2.0 (#10981) 2022-03-16 12:22:33 +03:00
Ilya Znamenskiy
2687f6fb2e [GPU] Enabled IFM leftovers inside fully_connected_imad kernel (#10912) 2022-03-16 12:02:36 +03:00
Alexander Zhogov
06f55bd8e8 Azure CI: Disable IB 2022-03-16 08:57:45 +03:00
Yuan Hu
50adb2240c [AUTOPLUGIN] don't check dynamic shape when there is only one device (#10868)
* don't check dynamic shape when there is only one device

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* remove redundant if

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-03-16 09:56:23 +08:00
guozhong wang
8c9c592fcf Guozhong/add hint cumulative throughput (#10727)
* mod docs/_static/images/dataset.png and docs/_static/images/inputs.png

* add new hint cumulative_throughput

* clang format properties.hpp

* add set properties and get properties test case for CUMULATIVE_THROUGHPUT

* reset docs/_static/images/dataset.png and docs/_static/images/inputs.png

* reset docs/_static/images/dataset.png and docs/_static/images/inputs.png

* reset dataset.png and inputs.png

* reset dataset.png and inputs.png

* remove test value cumulative_throughput from gpuplugin and cpuplugin testcase

* rollback dataset.png and inputs.png to 41818a377
2022-03-16 09:56:05 +08:00
Yuan Hu
4f6dcc1d32 [AUTOPLUGIN] add fps log (#10662)
* add fps log

add format '%lf' for log
add INFO_RUN and DEBUG_RUN, code only run when greater than special log level
add fps log for device
print device config info with DEBUG_RUN
add mock test for DEBUG_RUN and INFO_RUN

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* use n / end -start instead of (n-1) / ((nst start) -(1st start))

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-03-16 09:55:41 +08:00
Andrey Zaytsev
ea8f1d0344 Cherry-picked Changes to the OpenVINO 2.0 Transition Guide (#10936) (#10978) 2022-03-15 21:09:33 +00:00
Nadezhda Ageeva
3c721b0f03 [nGraph] [MO] Add ngraph transformations for PRelu fusing (#10209)
* MO: add PRelu fusing pattern with Sub

* PRelu fusing

* Apply review comments

* Code style
2022-03-15 18:57:59 +03:00
Mikhail Nosov
93722fe101 Docs. Fix link in layout overview (#10968) 2022-03-15 15:35:02 +00:00
Sofya Balandina
499ffcaa59 [conformance] SetUp timeout per test (#10426) 2022-03-15 18:28:19 +03:00
azhogov
37e05afd12 GitHub org control: all ignored accounts are showed now 2022-03-15 17:27:08 +03:00
Nikita Malinin
e103af056e [POT] References & golds update (#10937)
* Update references

* Update golds & add stats dumping

* Statistics_data upd

* Enable densenet in nightly

* Pylint fixes

* Update try-except WA

* Update simplified gold
2022-03-15 16:55:48 +03:00
Vladimir Paramuzov
4e8e56e887 [GPU] Removed unused variable to fix android build (#10961) 2022-03-15 16:22:13 +03:00
Bartek Szmelczynski
aed3b59796 [DOCS] Python snippets for Query device page (#10789)
* create python snippets

* remove redundant space
2022-03-15 16:11:32 +03:00
Taylor Yeonbok Lee
13b6a3d86e [GPU] Fix batchability check of MAX_BATCH_SIZE (#10660)
* Fix batchability check of MAX_BATCH_SIZE

* Applied review comment
2022-03-15 21:31:03 +09:00
Vitaliy Urusovskij
2dbd60c1ae Mark get_type_info_static() op class methods as hidden (#10691)
* Mark `get_type_info_static()` as hidden

Each plugin linked with openvino library contains `type_info_static` symbols. In case when one of the libraries is unloaded and app tries to get opset, it leads to segfault. So mark `get_type_info_static()` as hidden to use only one implementation exactly from openvino lib

* Fix "'visibility' attribute ignored" issue by moving `TestPass` out of test scope

* Fix clang format

* Small update of `If` op

* Revert "fix 79520 (#10449)" to correctly compare DiscreteTypeInfo via `==`

This reverts commit 29883a152a.
2022-03-15 14:59:13 +03:00
Vladislav Golubev
060a149322 [nGraph] get_constant_from_source fix (#10787) 2022-03-15 14:50:21 +03:00
Jan Iwaszkiewicz
660c6a3e84 [DOCS] Python Exclusives overview (#10946)
* Add python docs

* Small fix

* Apply comments

* Fix style
2022-03-15 14:26:12 +03:00
Tomasz Dołbniak
29144d3a6b ONNX Expand extended support (#10833) 2022-03-15 12:21:30 +01:00
Bartek Szmelczynski
840e622da5 add snippets for automatic batching (#10910)
* add snippets for automatic batching

* Update docs/snippets/ov_auto_batching.py

Co-authored-by: Alexey Lebedev <alexey.lebedev@intel.com>

* add missing bracket

Co-authored-by: Alexey Lebedev <alexey.lebedev@intel.com>
2022-03-15 14:17:20 +03:00
Sergey Lyubimtsev
5f27c74d96 Add description for zsh: no matches found : openvino-dev[...] issue. (#10950)
* Add description for `zsh: no matches found : openvino-dev[...]` issue.

* spell check
2022-03-15 13:37:39 +03:00
Ilya Znamenskiy
fc5356cd3b [GPU] Spelling fixes (#10952) 2022-03-15 12:25:55 +03:00
Yuan Xu
e341cdf541 Add Python version for Docker installation (#10840)
* update support matrix with Python version

* fix formatting

* update formatting

* fix formatting

* fix formatting
2022-03-15 12:06:48 +03:00
Yuan Xu
e71a05d94d Minor updates to Linux/macOS/Windows installation guide (#10955)
* Add Overview page

* Revert "Add Overview page"

* CVS-71745

* fix links & errors

* fix formatting

* update bullet points
2022-03-15 12:06:30 +03:00
Mateusz Tabaka
c58ef365b5 Fuse FQ->Mul also if first FQ input can be constantfolded (#10712)
The change fixes FQ fusions for subgraphs like 'Const weights'->FQ->Transpose->Multiply.
After PullTransposeThroughFQUp transformation, we end up with following:
'Const weights'->Transpose->FQ->Multiply. Because of the Transpose on first
FakeQuantize inputs, Multiply could not be fused since FakeQuantizeMulFusion
expected that weights is a Constant node.

Ticket: 77785
2022-03-15 09:54:41 +01:00
Nikita Semaev
758d12b9cb The correct namespace LayerTestsDefinitions (#10821)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-15 11:34:33 +03:00
Vladimir Zinoviev
4a2d0f39dd [LPT] Turn back checks in reshape transformation when subtract is absent (#10939) 2022-03-15 11:34:12 +03:00
Mikhail Nosov
ef5ad90dd7 [Read time improvement] Avoid calling of 'are_all_data_elements_bitwise_identical()' during Constant creation (#10858)
* Performance improvement for constant creation

The issue is that 'are_all_data_elements_bitwise_identical()' is called every time in Constant constructor, and it potentially checks all buffer which is O(N) complexity.
While it is needed only if client uses 'get_all_data_elements_bitwise_identical'

Solution:
- Defer calculation until first call of 'get_all_data_elements_bitwise_identical'
- Store calculated value in mutable class member to reuse it on next calls of 'get_all_data_elements_bitwise_identical'

Test verifies both cases:
a) that constant creation with shared memory data (now O(1)) is significantly faster than creation+bitwiseCheck O(N)
b) Than once calculated, value is taken from cache, which is significantly faster than re-calculation

* fix clang-format

Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-15 10:03:47 +03:00
Mingyu Kim
0a8f97f429 [GPU] Friendly exception msg for alloc failure (#10953) 2022-03-15 15:48:31 +09:00
Steve Yoo
a9ff10b365 Add SLT to Template Plugin: ROIAling-3 (#10625) 2022-03-15 07:31:27 +03:00
Mingyu Kim
0b556fd7a9 [GPU] More friendly exception message (#10721)
* [GPU] More friendly exception message

* Apply Ilya's comment

Co-authored-by: Ilya Znamenskiy <ilya.znamenskiy@intel.com>

Co-authored-by: Ilya Znamenskiy <ilya.znamenskiy@intel.com>
2022-03-15 09:57:22 +09:00
Karol Blaszczak
3b2b055bfd repair 2 png files (#10949) 2022-03-14 22:03:09 +03:00
Ilya Churaev
ad1c4a24c3 Deprecate version inside DiscreteTypeInfo (#10781)
* Deprecate version inside DiscreteTypeInfo

* Fixed code style

* Fixed openvino for macOS

* Fixed build for macOS

* Fixed errors for Windows build
2022-03-14 21:18:00 +03:00
Ryan Loney
575b2fad73 Update Binder URL on the tutorials landing page (#10877)
* Update Binder URL on the tutorials landing page

Binder URL was linking to a file. It should go to an actual Binder tutorial.

(Replaces https://github.com/openvinotoolkit/openvino/pull/10747)

* binder logo

* fixes

Co-authored-by: CCR\ntyukaev <nikolay.tyukaev@intel.com>
2022-03-14 21:11:01 +03:00
Ilya Churaev
0d404633a9 Add OpenVINO as required component and remove clang-format from example (#10944) 2022-03-14 20:05:24 +03:00
Mateusz Tabaka
23eaa80325 Don't memset Constant's buffer if it's about to be filled with data (#10861)
* Don't memset Constant's buffer if it's about to be filled with data

* dont memset buffer in visit_attributes
2022-03-14 19:36:40 +03:00
Irina Efode
3aa525c003 SubgraphDumper: clone only not constant graph (#10867)
* SubgraphDumper: clone only not constant graph

* Apply comments
2022-03-14 18:49:11 +03:00
Maxim Vafin
4e27d936b5 Update Convert_YOLACT.md (#10942) 2022-03-14 15:21:43 +00:00
Mikhail Nosov
72fe6082ea [Preprocess] InputTensorInfo::set_from implementation (#10839)
* InputTensorInfo::from implementation

If user's application already has `ov::runtime::Tensor` object created,
it will be possible to reuse basic characteristics for input (shape, precision) from tensor using InputTensorInfo::from method

* Rename 'from' to 'set_from' as  in Python 'from' keyword is used for import modules
Python bindings: from ov.Tensor and from numpy array

* Style fix (quotes)

* Apply suggestions from code review

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Fix code style

* Use set_from in hello_classification CPP sample

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
2022-03-14 18:02:51 +03:00
Vladimir Paramuzov
4c4581940a [GPU] Use int64_t type for axis in concat (#9790) 2022-03-14 18:02:21 +03:00
Anastasia Kuporosova
d0b4cae2f8 [Python API] move util under utils (#10923)
* [Python API] move util under utils

* fix importing

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-14 14:40:28 +03:00
Mikhail Nosov
96f954c704 [Preprocessing] Crop preprocessing support (#10805)
* Crop preprocessing support

Note: instead of 'ov::Coordinate' simple std::vector<int> is used because Coordinate don't support negative dimensions

Added unit tests, template reference tests, cpu and gpu tests

* Added python bindings
Fix review comments

* Fixed python code style

* Fix thresholds

* Fix python style

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-14 13:32:27 +03:00
Roman Kazantsev
6ec8e53183 Update Model Optimizer User Guide (#10759)
* Remove install prerequisites steps, order FWs, and move pre-processing details

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Update Introduction: examples of MO CLIs, references to parameters description pages

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Update Setting Input Shape section

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Update Optimizing Preprocessing Computation page

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Revert location of Additional_Optimizations.md

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Describe layout and FP16 support in MO

* Fix docs issue

* Apply feedback

* Apply review feedback

* Clean-up Resources

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Mention FP16 compression in MO Introduction

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply the first portion of feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply the second portion of feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply review feedback

* Apply review feedback

* Apply the third portion of feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Apply feedback for FP16 compression documentation

* Apply review for FP16 page

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update docs/MO_DG/prepare_model/Additional_Optimizations.md

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Apply feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Address feedback about tutorials, input_shape option

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Rework Setting Input Shapes section

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Update "See also" list

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct conversion documents for each FW

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Refactor TensorFlow converting document and expand Embedding Preprocessing document

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix a link to POT

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>
2022-03-14 13:08:58 +03:00
Mikhail Nosov
43cb3920fb Docs: preprocessing use case with saving model to IR (#10698)
* Docs: added preprocessing use case with saving resulting model to IR

* Enable Model Caching to 'application code' section

* Fix review comments
2022-03-14 12:12:20 +03:00
Alexey Suhov
ef00057c8e Change product version to 2022.2.0 (#10911)
* Change product version to 2022.2.0

* change OPENVINO_VERSION_MINOR
2022-03-14 11:42:03 +03:00
yanlan song
a6583965a5 try avoid timeout in batch plugin during transition in auto plugin (#10753)
* initial debug

Signed-off-by: fishbell <bell.song@intel.com>

* refine

Signed-off-by: fishbell <bell.song@intel.com>

* remove debug msg

Signed-off-by: fishbell <bell.song@intel.com>
2022-03-14 11:05:26 +03:00
Ilya Churaev
0bc6196d96 Migrate to new RTTI for all transformations and graph structures (#10703)
* Migrate to new RTTI for all transformations and graph structures

* Fixed code style
2022-03-14 06:57:21 +03:00
Maxim Gordeev
4be227f5a1 [IE Samples] Fixed rights for file with image (#10924) 2022-03-12 01:51:34 +03:00
Alexander Zhogov
45d34e7885 CODEOWNERS: Fix 3d party dependencies 2022-03-11 21:43:09 +03:00
Dawid Kożykowski
3b5f3d1957 Snippets for preprocessing migration page (#10899)
* add placeholder for python version of first snippet

* fix problem with placeholder

* fix wrong file name

* fix fragment name

* update python snippets

* move imports to the top of the code fragments
2022-03-11 21:19:07 +03:00
Przemyslaw Wysocki
de3088adce [Docs] Add Python snippets for configure devices (#10913)
* Add Python docs for configure devices

* Bugfixes

* Minor changes

* Minor changes

* Format changes

* Minor changes
2022-03-11 21:17:22 +03:00
Anastasia Kuporosova
23604ca28c [Python API] Update doc style (#10708)
* [Python API] Update doc style

* apply comments

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-11 19:18:20 +03:00
Irina Efode
7790f2036f [IE TESTS][CONFORMANCE] Fix for IRs with dynamic shapes (#10880) 2022-03-11 19:17:53 +03:00
Vladimir Zinoviev
eebe8c70f9 [LPT] Fix out of bounds access in reshape (#10791) 2022-03-11 18:04:14 +03:00
Mikhail Nosov
86322c916b Fix loading time issues for POT models (with lots of results) (#10898)
* Fix loading time issues for POT models (with lots of results)

* Same for 'optimized_strided_slice'
2022-03-11 17:44:36 +03:00
Andrey Noskov
6fdd983750 [GNA] Added multi crop test (#10459) 2022-03-11 15:05:14 +03:00
Andrey Noskov
caaacb2db4 [GNA] Moved single Lstm-cell test from deprecated tests (#10472)
* [GNA] Single lstm-cell test added

* Added additional config for test

* one more input and hidden shape

* Added cell with ReLU
Deleted deprecated test

* test added as lstm_cell_basic

* Enabled gna_compact_mode

Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com>

* enabled compact_mode in all tests

Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com>
2022-03-11 15:03:16 +03:00
Ilya Churaev
d93ce1e246 Added intro to transformation guide (#10894) 2022-03-11 14:27:11 +03:00
Vladimir Dudnik
f48b233629 update omz intel models, fix docs (#10843) 2022-03-11 12:34:55 +03:00
Vladislav Volkov
9d74f5cd76 Export/import fixed for param->result and const->result models (#10838)
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-03-11 11:10:56 +03:00
Nikolay Tyukaev
2940db0fb1 benchmark legal, snippet margin bottom (#10886) 2022-03-11 11:10:11 +03:00
Sergey Lyubimtsev
dd076264eb add pre-release description for wheels packages (2) (#10813)
* add pre-release description for wheels packages

* refactoring

* lines

* Revert "lines"

This reverts commit 01a74dc168.

* linters

* linters

* nighly revision of docs URL
2022-03-11 11:09:17 +03:00
Sergey Lyubimtsev
0dc2ab182b Update APT instructions according to repository configuration (#10869) 2022-03-11 10:45:31 +03:00
Alexey Lebedev
97efdb5020 [docs] python snippet for dynamic shapes (#10762)
* Create snipp

* link python snipp with doc

* fix docs

* Apply suggestions from code review

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Fix cpp comments

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
2022-03-11 08:42:33 +03:00
Elizaveta Lobanova
4e0a740eb3 [GNA] Support of overload correction for MatMul with 2 non-constant layers (#10447) 2022-03-10 15:16:17 +03:00
Vladimir Paramuzov
09246e2db8 [GPU] GPU plugin docs (#10734) 2022-03-10 15:01:52 +03:00
Anton Pankratov
a8a2640fb7 Added callback and wait migration guide (#10775)
* Added callback and wait migration guide

* Added start async

* Simplified wait

* Added selector for sync async

* fixed doc

* fixed build

* fixed doc

* fixed doc
2022-03-10 14:00:42 +03:00
Irina Efode
5566b67238 Frontend support in Subgraph dumper (#10765)
* Init

* Enable frontends

* Update read_ir_compare_with_refs.cpp

* Remove extra line

* Update CMakeLists.txt
2022-03-10 13:34:47 +03:00
Nikita Malinin
4746d0881b [POT] Update BC with the Parameter nodes connection (#10848)
* Update BC with the Parameter nodes connection

* Update test_sanity with octave
2022-03-10 10:28:47 +03:00
Tatiana Savina
d7372d678c [DOCS] fixes for nightly (#10842)
* fixes for nightly

* modify xfile

* change launcher ref
2022-03-10 09:10:54 +03:00
Katarzyna Mitrus
531fa9018d [DOCS] Python snippets for Hetero execution page (#10769)
* Update docs ov hetero snippets

* Add missing space

* Update precision hint

* Update hetero docs snippets with GPU profiling
2022-03-09 19:34:42 +03:00
Karol Blaszczak
44ec4661a4 Update Auto plugin docs (#10623)
* Update Auto plugin docs

Revise auto plugin and auto plugin debugging articles. Include necessary image files.

* Update docs/OV_Runtime_UG/supported_plugins/AutoPlugin_Debugging.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/AutoPlugin_Debugging.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/AutoPlugin_Debugging.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/AutoPlugin_Debugging.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/auto_device_selection.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/supported_plugins/AutoPlugin_Debugging.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update AutoPlugin_Debugging.md

* include review corrections

* Update auto_device_selection.md

* Update auto_device_selection.md

* Update auto_device_selection.md

* Update auto_device_selection.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-03-09 18:09:37 +03:00
Serhii Pavlovskyi
948347f3dd ncc build fixes (#10367)
* fix .ncc_style target names

it was breaking configure on system with libclang-12-dev, clang-12,
ninja and cmake 3.17+(ninja complains about duplicate
target). with lower cmake version configure succeeds, but build exits
immediately with error. by replacing ninja with make error becomes
warning(it's still significant, make just skips duplicate rules, i.e.
doesn't check style of some source files, rule duplication is genuine
bug). without libclang-12-dev and clang-12 ENABLE_NCC_STYLE is OFF and
bug is not triggered

* silence uninitialized warning in core_integration

probably it was always initialized before use, but compiler wasn't made
aware of it

* fix function spelling to unbreak code style checks in benchmark_app

* include <thread> for std::this_thread

existing code was relying on namespace pollution by old libstdc++

* replace is_pod with is_standard_layout && is_trivial

is_pod is deprecated, it breaks build on current gcc

Co-authored-by: Serhii Pavlovskyi <spavlovskyi@lohika.com>
Co-authored-by: Ilya Churaev <ilya.churaev@intel.com>
2022-03-09 13:42:06 +03:00
Vladimir Dudnik
d9976332b0 upd open-model-zoo, upd docs, upd ac cfgs (#10676) 2022-03-09 11:48:47 +03:00
Ilya Churaev
702f8cf223 Fixed duplicated words (#10827) 2022-03-09 08:06:12 +00:00
Taylor Yeonbok Lee
3e7e0d5651 [DRYRUN] Fix dryrun in partial build (#10761)
When partial build is called for dryrun, do constant propagate too.
In normal case, partial build is not doing constant propate for saving build time of internal program.
However, if partial build is called with dryrun, it will fail at transfer_constants due to the generic nodes which does not have impl.
2022-03-07 13:37:21 +09:00
Tatiana Savina
de47a3b4a4 POT documentation updates (#10578)
* POT changes

* change install

* change img size

* remove cli option
2022-03-06 09:14:39 +03:00
Nikita Malinin
41818a377f [POT] Update IEEngine with the Dynamic model support (#10717)
* Update IEEngine with the Dynamic models support

* Update with the batch

* Method naming fix

* Update image_loader & tests with dynamic models

* Update test_sanity.py

* Replace custom_mo_config from the model
2022-03-05 15:49:21 +03:00
Egor Duplensky
3b8e960b10 [CPU] Avoid using cache for constant inplace or multi-child edges (#10573) 2022-03-05 14:37:50 +03:00
Tatiana Savina
3b8ca9f0af [DOCS] Fixes for nightly (#10806)
* add img

* wb img for input

* dataset added

* add img

* wb img for input

* dataset added

* ov_fix

* more imgs

* new img

* new img

* nlp

* new img

* delete img
2022-03-05 13:03:46 +03:00
Maksim Kutakov
e87ea5d611 [CPU] Use raw pointer to share peer data for constants (#10744) 2022-03-05 12:32:11 +03:00
Andrey Zaytsev
0f8c599ce7 Re-structure Model Optimizer User Guide and Clean-up (#10801)
* Modified the workflow diagram

* Moved supported topology lists to separate topics

* Additional changes

* Removed Supported Topologies list and Deprecated pages

* Created the Model Conversion Tutorials section for instructions for specific models

* Topic names alignment, removed Default_Model_Optimizer_Optimizations.md

* Additional structural changes

* Fixed links

* heading fixes
2022-03-05 12:31:15 +03:00
Roman Kazantsev
0c20e7a3ca [MO] Remove IR frontend from available frontend list in MO (#10798)
* [MO] Remove IR frontend from available frontend list in MO

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix issue - forget to pass FEM

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix issue for TF with new FE and default legacy

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-03-04 20:50:02 +03:00
Yuan Xu
3b24ed032a Yuan install guide 22/1 (#10786)
* Add Overview page

* Revert "Add Overview page"

* fix errors & formatting

* fix article usage according to the styles

* fix errors

* update according to PXT comments
2022-03-04 19:32:10 +03:00
Ilya Churaev
cb9049076b Enabled clang-format for cc and itt libs (#10793) 2022-03-04 18:40:18 +03:00
Dmitry Pigasin
c28cebb2a6 [CPP Speech Sample] Fix result saving when batch size is not 1 (#10714)
* Fix result saving when batch size is not 1

* Remove useless if statement

* improved processing scores for model with more than one outputs

* added checking on count of model outputs

* improve if statements

* divide fix for model with several outputs to other PR

Co-authored-by: Maxim Gordeev <maxim.gordeev@intel.com>
2022-03-04 15:41:47 +03:00
Anuj Mittal
7e8bbf4968 installing-openvino-yocto.md: fix install instructions (#10785)
Change _ to : as per the new override syntax.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2022-03-04 15:41:37 +03:00
Nikita Malinin
69ad9e80e1 [POT] Update OverflowCorrection algo for nodes without bias (#10687)
* Update OverflowCorrection algo for nodes without bias

* Pylint line fix

* Update OC with the last add name

* Pylint fix
2022-03-04 14:50:44 +03:00
Irina Efode
32edd596e3 [IE TESTS] Functional test review: Part 4 (#10772)
* [IE TESTS] Move specific import_export_tests to gna and myriad

* add
2022-03-04 14:42:16 +03:00
Ilya Churaev
ed702910bd Enable clang for transformations (#10778)
* Enable clang for transformations

* Fixed code style

* Fixed build

* Fixed macOS
2022-03-04 13:38:42 +03:00
Irina Efode
082ebbcbf8 [IE TESTS] Remove NgraphConversionTests (#10770) 2022-03-04 09:52:58 +00:00
Fedor Zharinov
043a773f61 [Benchmark_app]Check all I/O names (#10745)
* Check all I/O names

* stylefix
2022-03-04 09:49:03 +03:00
hyunback kim
5cee51e9c4 [GPU] update to check quantize fusing condition in oneDNN (#10680)
* [GPU] update the condition for minimize_local_reorders

* Update to check needs reorder condition in quantize.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-03-04 14:30:07 +09:00
yanlan song
8a2252b774 fix multi infer result corrupt issue (#10704)
* do not share blob

Signed-off-by: fishbell <bell.song@intel.com>

* build error

Signed-off-by: fishbell <bell.song@intel.com>

* remove comment codes

Signed-off-by: fishbell <bell.song@intel.com>
2022-03-04 08:13:12 +03:00
Mateusz Bencer
fd18632d89 Update --extenions MO doc (#10763) 2022-03-04 07:24:52 +03:00
Wang, Yang
78c9f5b0a2 Add coommon test of the key PERFORMANCE_HINT for AUTO plugin API 2.0. (#10505)
* Add coommont test of the key PERFORMANCE_HINT for AUTO plugin API 2.0.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Add common test case for config check.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Update.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>

* Use the implemented property test case.

Signed-off-by: Wang, Yang <yang4.wang@intel.com>
2022-03-04 10:04:48 +08:00
Alexander Kozlov
1bbd92a8f8 Revised Tuning For Performance and Model optimization docs (#10276)
* Revised Tuning for performance and Model optimization docs

* Fixed links

* Fixed link

* Applied comments

* Fixed one more comment
2022-03-03 18:58:58 +03:00
Ilya Churaev
554b50eb85 Remove redundant calls from set_argument (#10701)
* Remove redundant calls from set_argument

* Fixed tests
2022-03-03 18:01:59 +03:00
Vladimir Gavrilov
f8ce57319b Specifications of operations RDFT and IRDFT (#10242)
* Written the draft of the specification of the operation RFFT.

* Started to write the specification of the operation IRFFT.

* Small fix.

* Renamed RFFT operation as RDFT.

* Fix in Operations_specifications.md.

* Written the specification of the operation IRDFT.

* Fixes in examples.

* Fixes in opset9.md and Operations_specifications.md.

* Small fix.

* Replaced opset8 by opset9 in opset9.md.

* Deleted redundant sentences.

* Small fix.

* Replaced input_shape by data_shape.

* Fixed mistypes.

* Fixes of mistypes.

* Fixed typo.

* Fixed RDFT specification, in order to perform signal_size input as in TF and PyTorch.

* Fixes in examples for RDFT.

* Fixes in the output shape calculation of IRDFT. Now this calculation is as in TF and PyTorch.
2022-03-03 13:47:23 +00:00
Maxim Gordeev
f81f819ecd [IE Samples] Improved processing outputs for model with more than one output (#10737)
* Improved processing outputs for model with more than one output

* fixed condition

* added checking count of output/reference files
2022-03-03 16:35:41 +03:00
Irina Efode
28889c4833 [IE TESTS][CONFORMANCE] Fix Crashes in ReadIRTest::SetUp() (#10736)
* [IE TESTS][CONFORMANCE] Fix Crashes in ReadIRTest::SetUp()

* remove extra lines

* Update read_ir.cpp
2022-03-03 14:10:07 +03:00
Irina Efode
fdf12c9537 Update main.cpp (#10740) 2022-03-03 14:09:55 +03:00
Steve Yoo
8121de731c Add tests to OpImplCheckTest (#10413)
* Add tests to OpImplCheckTest

* Fix Gelu, Interpolate, LRN and related codes
2022-03-03 13:59:16 +03:00
Mateusz Bencer
d1630c9ac1 Fix problem with segfault during using extension feature via Python (#10650) 2022-03-03 11:22:42 +01:00
Dmitry Pigasin
75f7bced65 Fix -layout option (#10648) 2022-03-03 12:12:22 +03:00
Nikolay Tyukaev
59cfdce73b ignore doc python errors sphinx (#10756)
* fixes

* fixes

* Update workbench.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-03-03 11:25:54 +03:00
Ilya Churaev
1fec99afa3 Removed duplicated words (#10754) 2022-03-03 06:50:54 +00:00
Ilya Lavrenov
974ae136a6 Enabled old BA only under ENABLE_SAMPLES (#10746) 2022-03-03 09:36:26 +03:00
Sergey Lyalin
1c5e76c4db Dynamic Shapes Documentation (#10656)
* Added draft of Dynamic Shapes Doc

* Better wording

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>

* Apply suggestions from code review

Better wording, grammar, technical fixes. No significant content rework.

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>

* Removed indentation in dynamic shapes snippets

* Split dynamic shapes doc to two separate files, added more examples, fixed code review comments, connected to TOC

* Fix links

* Added aux doc to toc to avoid crash in docs build in CI

* Added dynamicbatching in temp section

* Apply suggestions from code review

* Removed old DynamicBatching document

* Applied @myshevts changes

* Update docs/OV_Runtime_UG/ov_without_dynamic_shapes.md

* Update ov_dynamic_shapes.md

* Fix links to dynamic shapes doc

Co-authored-by: Ilya Churaev <ilyachur@gmail.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com>
2022-03-03 09:00:28 +03:00
FanJiangIntel
7ba71f9c20 Enable apivalidator check when BUILD_SHARED_LIBS=OFF (#10461)
* enable apivalidator for static build

* add target _ie_plugins_hpp as dependency of inference_engine_obj
2022-03-03 07:39:52 +03:00
Nico Galoppo
3318dd6c68 Fix MacOS DYLD_LIBRARY_PATH export (#10750) 2022-03-03 00:36:02 +03:00
Ilya Lavrenov
4f6ca1b85f Docs: update some rendering stuff (#10742)
* Fixed small rendering issues

* Updated picture

* Give better name for stateful models

* Removed the document
2022-03-02 18:30:44 +00:00
Ilya Churaev
d670e77d97 Docs: Changed OpenVINO Runtime User Guide integration (#10187)
* Changed C++ OpenVINO Runtime User Guide integration

* Remove IE from C++ guide

* Fixed comments

* Additional fix

* Fixed some comments

* Some new documents

* Fixed some comments

* Added Python snippets

* Added sphinx tabs

* Removed tabs

* Removed group-tab

* Added additional lines

* Fixed typo

* Fixed comments and build

* Try to fix complex tabs

* Fixed some typos

* Added python code for model representation

* Added more python code

* Added serialize/visualize python examples

* Simplify integration pipeline

* Fixed typo

* Try to fix tabs

* Extend CompiledModel guide

* Resolve merge conflict

* Added separate infer request guide

* Fixed build

* Added cancel infer request method

* Update docs/snippets/ov_model_snippets.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Fixed comments

* Fixed typo

* Extend visualize pass

* Fixed comments

* Fixed build

* Fixed typo

* Update docs/snippets/ov_infer_request.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Update docs/snippets/ov_infer_request.py

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/integrate_with_your_application.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/model_representation.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/OV_Runtime_UG/model_representation.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Fixed comments

* Fixed doc

* Fixed merge

Co-authored-by: Jan Iwaszkiewicz <jan.iwaszkiewicz@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-03-02 20:07:52 +03:00
Maxim Shevtsov
21185189d8 adding 2.0 config param for auto_batch_timeout and the tests (#10719) 2022-03-02 19:45:42 +03:00
Taylor Yeonbok Lee
24a5aab501 Fixed bug: When external id of a loop is fused, the i/o map of a loop should be updated (#10726) 2022-03-03 01:27:32 +09:00
Evgenya Stepyreva
4b55ef9911 Static Shape constraints removed from Interpolate 1->4 transformation (#10732)
* Static Shape constraints removed from Interpolate 1->4 transformation

* Dynamic tests added
2022-03-02 19:16:34 +03:00
Nesterov Alexander
bea352f272 Update Linux Azure CI (#10739) 2022-03-02 18:00:32 +03:00
Maxim Shevtsov
180f15e84c auto-batching- bare min of the info (#10190)
* auto-batching- bare min of the info

* renaming BATCH.MD to the automatic_batching.md, also aligned the link to the new naming convention

* more info and brushed

* added openvino_docs_OV_UG_Automatic_Batching to the main TOC

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* close on the comments, added the code examples

* Apply suggestions from code review

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>

* Update example

* Update format

* Update docs format

* added couple of more perf considerations

* more code examples

* Apply suggestions from code review

* Apply the rest from code review

* Update header

Co-authored-by: Tatiana Savina <tatiana.savina@intel.com>
2022-03-02 17:48:01 +03:00
Nikolay Tyukaev
42d3893833 doc fixes (#10738) 2022-03-02 17:46:49 +03:00
csy0225
7cd3c8e86e Fix compile problem when open -Wnon-virtual-dtor compile flag (#10705)
* Fix compile problem when open -Wnon-virtual-dtor compile flag

* update code style

* fix the code style
2022-03-02 16:31:37 +03:00
Ilya Churaev
d3ded2fc36 Fixed declaration of 'xxx' hides global declaration (#10733) 2022-03-02 16:01:21 +03:00
Gorokhov Dmitriy
40fc5334d8 [CPU] Fixed number of streams initialization for hint = throughput (#10728) 2022-03-02 15:44:34 +03:00
Anastasia Kuporosova
cd52cc6767 [Python API][Docs] Remove excess info (#10672)
* [Python API][Docs] Remove excess info

* autodoc: add skip methods (#68)

* remove utils from docs

* undo changes

Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com>
2022-03-02 15:36:31 +03:00
Victor Kuznetsov
c54926ecb8 Update nightly memcheck models scope (#10709) 2022-03-02 18:03:28 +08:00
Wilson Seok
969060c8db Add op impl check tests (#10339)
* Remove fp16 of Convert layer test from skip_tests.config.cpp as it works now

* update repo

* add initial op impl check tests

* add op imple check tests

* add op impl check tests

* add rnn cell based ops

* modify lstmsequence

* update rnn cell base op test

* add priorbox, priorboxclustered, proposal

* add ROIAlign to ReverseSequence

* add Roll to ScatterElementsUpdate

* add select to swish tests

* add tensoriterator to variadicsplit test

* temporary block of LSTMCell v1 due to crash in mkldnn

* use ov namespace instead of ngraph as possible

* update indexing of vector array

* update multiple parameter vector

* add loop test

* fix cpplint errors

* fix build error
2022-03-02 12:50:31 +03:00
Ilya Lavrenov
86b175534a Docs: complete migration guide (#10652)
* Updated glossary

* Removed references to OpenVX

* Moved migration_ov_2_0 to OpenVINO User guide

* Replaced IE with OV runtime

* Complete migration guide

* Migration 2.0

* Self-review

* Added property migration guide

* Fixed table

* Added preprocessing migration

* Update docs/OV_Runtime_UG/migration_ov_2_0/preprocessing.md

Co-authored-by: Mikhail Nosov <mikhail.nosov@intel.com>

* Update docs/OV_Runtime_UG/migration_ov_2_0/preprocessing.md

Co-authored-by: Mikhail Nosov <mikhail.nosov@intel.com>

* Update docs/snippets/ov_preprocessing_migration.cpp

Co-authored-by: Mikhail Nosov <mikhail.nosov@intel.com>

* reivew fixes

* Preprocessing intro updated

* Updated config migration guide

* Updates

* Fixes

Co-authored-by: Mikhail Nosov <mikhail.nosov@intel.com>
2022-03-02 12:16:58 +03:00
Yuan Xu
d1bcb6d0fc CVS-80445 (#10723)
* Add Overview page

* Revert "Add Overview page"

* fix format

* test formatting

* test formatting

* update

* test formatting

* minor changes
2022-03-02 11:10:58 +03:00
Pavel Zamelin
9cd3bff7df Fix install failures for static libs with EXCLUDE_FROM_ALL (#10706)
* Remove EXCLUDE_FROM_ALL for some static targets

* Add install check for static libs
2022-03-02 03:39:30 +03:00
Vladislav Golubev
e75ee60bec [CPU] Disabled sequences decomposition for dynamic case (#10710) 2022-03-01 22:33:42 +03:00
Nikolay Tyukaev
81cd9d86d1 sphinxdirective: allow commented blocks (#10720)
* sphinxdirective: allow commented blocks

* minor correction
2022-03-01 22:11:37 +03:00
Mikhail Nosov
5e023ebdd9 Fix issue with default arguments in preprocessing python bindings (#10702)
* Fix in Preprocessing python bindings - add correct default arguments for:
    - PreProcessSteps::convert_element_type
    - PostProcessSteps::convert_element_type
    - InputTensorInfo::set_color_format

Otherwise, python users must always specify optional params

E.g. instead of writing `tensor().set_color_format(ColorFormat.RGB)` python users will have to write `tensor().set_color_format(ColorFormat.RGB, [])`

* Corrected 'help' output

* Exposing 'openvino.runtime.Type.undefined' and use it in 'convert_element_type' documentation
2022-03-01 17:32:36 +03:00
Ilya Lavrenov
6b067bc0ed Fixed install on Apple (#8302)
* Fixed Apple install

* Update path to libs in setupvars.sh

* Fix IE_CPACK_RUNTIME_PATH for Apple

* Fix wheels packaging

Co-authored-by: Alexey Suhov <alexey.suhov@intel.com>
2022-03-01 16:56:15 +03:00
David Nam
18035209a0 Add op impl checkt tests (#10414)
* Add op impl checkt tests

* Add op impl check tests

* Add op impl check tests

* Add op impl check test

* Add op impl check tests

* Add op impl check tests

* Fix usage of makeConstant()

* Fix build error in ubuntu18_i386

* Fix error in linux-macos

Co-authored-by: PVA-CI <pva-ci@intel.com>
2022-03-01 16:27:11 +03:00
Anastasia Kuporosova
0f409ccea9 [Python API] Fix typo in method name (#10707) 2022-03-01 16:11:57 +03:00
Anastasia Popova
3f941e3c5f Corrected layout parsing error message. (#10651)
* Corrected error message.

* Corrected message.

* Small correction

* Corrected error message for source and target layout.
2022-03-01 16:03:09 +03:00
Irina Efode
9eca8515b8 [IE TESTS] Extend EvaluatorMaps by Greater, If, Equal (#10026)
* [IE TESTS] Extend EvaluatesMap

* fix code style
2022-03-01 16:01:30 +03:00
Sergey Shlyapnikov
6c6aa8fa95 [GPU] Fix RemoteBlob lock() and ulock() behaviour in case of multiple threads (#10685)
* [GPU] Fix RemoteBlob lock() and ulock() behaviour in case of multiple threads and add tests
2022-03-01 15:15:04 +03:00
Karol Blaszczak
1d469a2b87 [DOCS] hddl update (#10616)
* [DOCS] hddl update

include info on hddl and myriad working at the same time

* Update docs/OV_Runtime_UG/supported_plugins/MYRIAD.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update HDDL.md

* Update MYRIAD.md

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-03-01 15:00:38 +03:00
Maxim Andronov
8e0978818c [CPU] Prevent internalBlobs cleanup for dynamic deconv node (#10697) 2022-03-01 14:31:21 +03:00
Nikita Semaev
64fca57af4 Fix NMS Conformance tests for Template plugin (#9273)
* Added inputs argument to all compare() function overloads

* Rewritten compare() function for NMS

* Implemented sorting by name of expected outputs

* Implemented sorting by name of actual outputs

* Added accounting for simultaneous dynamism and the need to convert outputs in Template plugin

* Added a separate case to the GetBlob function for correct dimensions

* Rewritten Expected outputs sorting to work correctly on cpuFuncTests

* Fixing code style problems

* Implemented sorting by name of actual outputs for functional tests

* Debug prints removed

* Replacing a raw pointer with a vector

* Fixing code style problems

* Shifting the sorting place Expected outputs

* Added sorting of Expected exits in one more place

* Quality transition to SLT2.0

* Removing unnecessary code after SLT2.0

* Fix soft_nms_sigma argument

* Removing unnecessary parts after SLT2.0

* Remove unnecessary outputs sorting

* Removing parts from the code for debugging

* Fix for NMS

* Trying to make CI green

* Checking test passage without adding convert precision

* Checking CI

* There is an algorithm that adds Convert only if there is f16, fp16 in inputs

* Add Convert Op in cases where inputs are not already installed f32

* Check that the CI will go away if you put everything back

* Revert changes, validate f32 change on ci

* Adding Convert f16-f32 only if there is a function parameter of type f16

* The presence of f16/bf16 as a parameter type is now mandatory to add Convert

* Added prints for params, inputs, outputs

* Logic checking the absence of Convert

* Cosmetic fixes

* Setting the correct value for selected_scores_type NMS-5

* Fix bf

* Increased readability

* Missing parts added

* Removed the static for the vector
2022-03-01 12:14:45 +03:00
Ilya Lavrenov
5f40ba9a23 Fixed onecoreuap.toolchain.cmake (#10646)
* Fixed onecoreuap.toolchain.cmake

* Updated mt.runtime.win32.toolchain.cmake
2022-03-01 11:12:12 +03:00
Roman Kazantsev
6c78715749 [MO] Clean up Model Optimizer options, help, and documentation (#10653)
* [MO] Clean-up MO cmd-line options

Remove the following Model Optimizer deprecated options that are no longer used for several releases: disable_fusing, disable_gfusing, generate_deprecated_IR_V7,
legacy_ir_generation, keep_shape_ops, move_to_preprocess
Deprecate through CLI the following options for which functionality triggered from POT or automatically: disable_weights_compression, disable_nhwc_to_nchw,
disable_resnet_optimization, finegrain_fusing.
Correct and extend description of each MO option to be printed during model conversion.

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Correct documentation about input shapes

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Perform final corrections in documentation

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Remove legacy_ir_generation overall

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Clean-up tests from deprecated options

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Recover disable_fusing option as deprecated

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Fix keys for static_shape and extensions

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Remove extension key that does not work

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback: remove disable_gfusing, correct docs

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Recover disable_fusing option for unit-tests

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback for documentation

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback about parameters use_legacy_frontend and use_new_frontend

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* DO minor fixes for indentation of MO logs

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Revert log.error for fallback message

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Revert disable_weights_compression parameter for tests

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-03-01 10:57:24 +03:00
Ilya Churaev
9da124544a Transformation guide (#10628)
* Fixed some comments about transformations

* Changed transformation guide

* Fixed typo

* Moved transformation doc to extensibility

* Moved images to Extensibility_UG

* Added separate document for each pass

* Added see also section

* Fixed comments
2022-03-01 09:03:59 +03:00
Andrei Kochin
4b29eed013 Update MO requirements to allow TF1.15 if already installed (#10673)
* Update MO requirements to allow TF1.15 if already installed

* Removing pyhton version check as redundant

* Updating requirements.txt as well
2022-02-28 18:55:44 +03:00
Mikhail Nosov
173f328c53 Checking compatibility between 'pyopenvino' and 'libopenvino' (#10668)
* Checking compatibility between 'pyopenvino' and 'libopenvino' on 'import phase'

This fix is to prevent undefined behavior when user loads OpenVINO from python, but pyopenvino loads different version of 'libopenvino'
This may happen if user has several releases installed and played around PATH/PYTHONPATH environment variables.

In such case, user may have undefined behavior - application may crash in the middle of the usage or use incorrect release.

Fix checks build versions for pyopenvino and ov::get_openvino_version. If mismatch occurs, exception is thrown.

This logic is disabled if user has built OpenVINO locally, experienced developers probably know what they're doing, so if version has 'custom_'  prefix - this logic is disabled

* Removed custom logic for CI_BUILD_NUMBER, it is reused from already included version.cmake

* Use addVersionDefines macro
2022-02-28 17:04:59 +03:00
Maxim Andronov
b319acc672 [CPU] Prohibit to load model with dynamic output shapes (#10643) 2022-02-28 17:01:18 +03:00
Mateusz Tabaka
4a8b142fef [PYTHON] fix importing lstm_sequence for opsets >= 5 (#10637)
* [PYTHON] fix importing lstm_sequence for opsets >= 5

* update compat opsets
2022-02-28 17:00:51 +03:00
Nikita Malinin
33ad1b96d4 [POT] Update samples and samplers with the new DataLoader format (#10595)
* Update samples and samplers with the new DataLoader format

* Update with utils

* Pylint updates

* Update metric with the exception

* Pylint

* Update with the exception

* Pylint

* Revert index sampler changes

* Update ImageLoader & SimplifiedEngine

* Update with the different solution

* Remove utils

* Pylint

* Remove list wrapping

* Remove list from meta_data
2022-02-28 16:26:07 +03:00
Maxim Vafin
7d0d950b9a Add pytorch Resnext101 from fb into documentation (#10665) 2022-02-28 15:30:33 +03:00
Irina Efode
f6fbef1f66 Allow to specify conformance by shape_type (#10667)
* Init

* the solution

* Remove extra

* Update CMakeLists.txt

* Readme

* fix build

* dd
2022-02-28 15:06:03 +03:00
Maxim Shevtsov
bed0adf5ef creating remote ocl buffer/tensor per request, to avoid simulteneous locking of the same ocl buffer when auto-batching is used (#10607) 2022-02-28 15:04:03 +03:00
Vladislav Golubev
1ceb9729e9 [CPU] friendly name duplication fixed for the TypeRelaxed case (#10486) 2022-02-28 14:06:17 +03:00
Maxim Gordeev
b9ef57112e [IE Samples] Fixed memory allocation problem for speech sample (#10671) 2022-02-28 12:31:01 +03:00
Vitaliy Urusovskij
d4f77f1d3e Mute 'maybe-uninitialized' error for RELWITHDEBINFO in intel_gpu (#10682) 2022-02-28 12:30:21 +03:00
Fedor Zharinov
f55e69d656 Legacy benchmark_app is added (#10239)
* Legacy benchmark_app is added

* apply fix for supporting multiple -i arguments

* new CMakeLists.txt with OpenCV auto detection

* fixes

* docs

* docs2

* Docs changes

* docs

* CMakeLists.txt modification

* Update tools/legacy/benchmark_app/README.md

Co-authored-by: ivikhrev <ivan.vikhrev@intel.com>
Co-authored-by: Vladimir Dudnik <vladimir.dudnik@intel.com>
2022-02-28 12:26:41 +03:00
Andrey Zaytsev
5724c5ac44 Image added (#10674) 2022-02-25 20:42:00 +00:00
Denis Orlov
52b450a5fb [GNA] Update documentation (#10570) 2022-02-25 18:55:15 +03:00
Tatiana Savina
7b58f931b5 [DOCS] Add wb images for nightly docs fix (#10663)
* add img

* wb img for input

* dataset added

* add img

* wb img for input

* dataset added

* ov_fix
2022-02-25 18:22:13 +03:00
Egor Duplensky
18ff8afe63 [IE TESTS] Avoid extra checks for test skipping (#10609)
Avoid double iteration over skip patterns
Skip test after first pattern match
2022-02-25 16:11:16 +03:00
Ilya Znamenskiy
94cbbe063b [GPU] Cum sum int32/64 support (#10629) 2022-02-25 15:48:17 +03:00
Ilya Lavrenov
e9e59cb954 Moved ngraphConfig.cmake to root (#10618) 2022-02-25 15:47:21 +03:00
Jan Iwaszkiewicz
54f39294de [PYTHON] Fix style in python doc strings (#10606)
* Fix style in python doc strings

* New line quotes
2022-02-25 13:02:04 +03:00
Yury Gaydaychuk
14d11a8998 [CPU] Fix of invalid read in DefConv (#10481) 2022-02-25 12:57:03 +03:00
Anuj Mittal
bdee939fe0 installing-openvino-yocto: fix documentation links (#10546)
* installing-openvino-yocto: fix documentation links

Point to the new Yocto docs website.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>

* Update installing-openvino-yocto.md

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-02-25 12:31:32 +03:00
Anton Pankratov
38d87dd9de Removed stream enum (#10645)
* Removed stream enum

* Fixed build

* fixed build

* Fixed test
2022-02-25 11:57:23 +03:00
Ilya Churaev
a32ed5a07a Fixed build for CI (#10659) 2022-02-25 11:41:23 +03:00
Dmitry Pigasin
bacf597516 [CPP Speech Sample] Improve -o and -oname flags (#10321)
* Improve `-o` and `-oname` flags

* Apply clang-format tool

* fix saving output files

* Apply clang-format

* Fix error when `-oname` not specified

* apply clang format

* Fix error `-oname`

* Use output name with port to find model output

* fix comment line breaking

* fix comparison with reference for multiple outputs

* Fix output name printing  error

* try to fix clang format

* fix problem with bs > 1

* minimal change to rerun test pipeline

* clang format

* Revert "Fix error `-oname`"

This reverts commit c33d5f16e8.
2022-02-25 11:25:35 +03:00
Maksim Kutakov
9e3610c028 [CPU] Fix for subnormal numbers nullifying routine (#10622) 2022-02-25 10:55:59 +03:00
Nikolay Tyukaev
6062e3d4b7 DOCS: benchmarks ovino vs tf (#10654)
* benchmarks-ovino-vs-tf

* minor fixes
2022-02-25 10:34:11 +03:00
Ilya Lavrenov
53d3ef8eab Removed ngraph mentions (#10647) 2022-02-25 07:02:09 +03:00
Ilya Lavrenov
ffd63f9758 Replaced IE with OV runtime: docs (#10642)
* Updated glossary

* Removed references to OpenVX

* Moved migration_ov_2_0 to OpenVINO User guide

* Replaced IE with OV runtime
2022-02-25 00:44:48 +03:00
Ilya Churaev
806ce96899 Remove onnx_custom_op doc (#10638)
* Remove onnx_custom_op doc

* Remove test

* Fixed tests
2022-02-24 19:41:47 +03:00
Anastasia Kazantaeva
f2bbd5bbb8 Add original contribution guide to root (#10644) 2022-02-24 16:13:21 +00:00
Sergey Shlyapnikov
e906b3581f [GPU] Replace handle_permute optimization pass with proper Reorder adding instead of Permute primitive (#10569) 2022-02-24 16:41:43 +03:00
Paul Youngsoo Ahn
163a79b232 [GPU] Fix activation fusing issue(#10636) (#10636) 2022-02-24 16:07:33 +03:00
Ilya Churaev
1c18733ade Changed location of extensibility guide (#10433)
* Changed location of extensibility guide

* Removed hardware kernels legacy documentation

* Changed all extension guild to new API

* Removed Custom_Layers_Guide

* Fixed build

* Fixed some moments

* Update docs/Extensibility_UG/Intro.md

* Fixed build

* Added more examples

* Fixed typo

* Fixed comments

* Extend library topic

* Fixed typo
2022-02-24 15:50:31 +03:00
Maksim Derbasov
a2f9963045 Fix warnings from builders.hpp (#10568) 2022-02-24 15:33:30 +03:00
Ilya Churaev
85707198b3 Revert "Disable reshape for new API (#10064)" (#10634)
This reverts commit 3f4e384d5d.
2022-02-24 15:22:08 +03:00
Evgenya Stepyreva
3de428c713 Auto-batch ConvertLike enabled (#10631) 2022-02-24 14:37:03 +03:00
Alina Kladieva
4c01d6c50c Skip canRun3SyncRequestsConsistentlyFromThreads sporadic on Myriad (#10598) 2022-02-24 12:03:36 +03:00
Ivan Novoselov
506303cc79 [Snippets][CPU] Fix empty shapes handling in canonicalization (#10632) 2022-02-24 11:54:15 +03:00
Vladimir Dudnik
23b74840c1 renamed streams property (#10620) 2022-02-24 10:49:38 +03:00
Evgenya Stepyreva
e544f5e66f Enable einsum shape inferenxe test (#10603) 2022-02-23 15:29:12 +00:00
Anton Pankratov
9dec8db964 Common OV configuration tests (#10286)
* Used new config for streams and threads

* Fixed review coments in ba

* format fix

* fixed hello_query_device

* Added STL string io

* fixed tests

* Fixed test

* Fixed build

* fixed format

* Fixed build

* try fix win

* other any io specialization

* Fixed after merge

* renamed streams

* build fixed

* fixed build

* fixed format

* fix for old mac build

* Fixed type of exception

* test fix

* Added ov configuration test

* Added common OV properties tests

* fix mklnn

* fixed foramat

* merge conflicts

* Remoed compile_model tests

* removed duplicated test
2022-02-23 13:03:37 +03:00
Karol Blaszczak
c1919a0f1d update documents for Paddle inclusion (#10613)
Introduce PaddlePaddle articles and include PP references in other articles
2022-02-23 12:53:37 +03:00
Ilya Churaev
7ff8ada805 Fixed API for transformations (#10584)
* Fixed API for transformations

* Fixed code style

* Fixed build

* Fixed typo
2022-02-23 06:29:03 +03:00
Fedor Zharinov
75cca1e9e9 [benchamrk_app] error if -b is set but there's no batch info (#10592)
* Added code showing error message if -b is provided, but got no batch info for inputs

* stylefix / batch>1 case
2022-02-23 01:30:08 +03:00
Vladimir Dudnik
817550fa0a [OMZ] update OMZ submodule, docs updated (#10594)
* update OMZ submodule, docs updated

* rebase to master
2022-02-22 23:37:55 +03:00
Ilya Churaev
3f4e384d5d Disable reshape for new API (#10064)
* Disable reshape for new API

* Update cnn_network_ngraph_impl.cpp

Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
2022-02-22 23:05:23 +03:00
Ilya Lavrenov
5b3b48aa17 samples overview & model protection: docs (#10596)
* Renamed hetero md

* Renamed some guides

* Updated OpenVINO_Runtime_User_Guide.md

* Updated plugin's page

* More updates

* Fixed links

* Updated link names

* Fixed links

* Fixed docs build

* Self-review

* Fixed issues in doc snippets

* Updated Samples_Overview.md

* Updated model protection guide

* Renamed ngraph_function creation samples
2022-02-22 20:11:42 +03:00
Liubov Talamanova
37923a9183 [POT] Remove DataFreeEngine (#10600) 2022-02-22 18:38:08 +03:00
hyunback kim
14d31d59af [GPU] Enable deconv with oneDNN (#10580)
* [GPU] Enable deconv with oneDNN

remove post-op data_type into oneDNN.

Signed-off-by: hyunback <hyunback.kim@intel.com>

* Update to use data_type in conv sum post-op.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-02-23 00:25:26 +09:00
Ivan Novoselov
b12c3389ee [Sinppets] Add virt destructors to Emitter and TargetMachine (#10588) 2022-02-22 18:18:49 +03:00
Indira Salyahova
e2df6d149b [POT] Update face detection sample (#10471)
* support cascade model for sw api

* update mtcnnengine

* delete empty line
2022-02-22 17:46:08 +03:00
Maxim Shevtsov
dab1a34aa2 checking the network batch-ability (internal helper func on top of bat… (#10446)
* checking the network batchability (internal helper func on top of batch tracking) before doing hetero

* more general logic with respect to batch-ability of the network

* a dynamism check that I've owed from the PR-10560

* using the DO-detached mechanism for early hetero exit, also fixed this flag in the Batching plugin (although minor, as the DO is removed by HETERO)

* adding the dimension tracking logic depending on whether implicitly/expicitly the auto-batching is enabled

* changed the DetectionOutput affinity markup to go over results, also accomodate Convert, so only 2 subgraphs are made by the HETERO
2022-02-22 17:19:23 +03:00
Nikolay Shchegolev
e59739ce88 [CPU] RNN node enforce bf16 mode does not work. (#9859) 2022-02-22 16:57:26 +03:00
Mikhail Ryzhov
71a0a6d261 [GNA] Klocwork fixes 2022-02-22 16:54:56 +03:00
Roman Kazantsev
bc0a84a1c1 [MO] Print information about new API 2.0 (#10567)
* [MO] Print information about new API 2.0

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Apply feedback

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-02-22 16:54:20 +03:00
Indira Salyahova
aced89a655 fix: don't pass parametr inplace_statistic for weights (#10593) 2022-02-22 16:53:53 +03:00
Anastasia Kuporosova
5bb8f77c3f [Python API] Remove get/set_config methods from the PyOV (#10587) 2022-02-22 16:51:41 +03:00
Maxim Vafin
435584bb91 Support dynamic Broadcast and new pattern for TI condition (#9735)
* Support dynamic Broadcast and new pattern for TI condition

* Apply review feedback

* Fix broadcast if statement
2022-02-22 16:46:48 +03:00
Min, Byungil
487bb67995 Resolve onednn fc issue to enable bert-base (#10177)
+ Enabled bert-base-ber model
+ Resolve failure of onednn fc

Signed-off-by: Min, Byungil <byungil.min@intel.com>
2022-02-22 22:23:45 +09:00
Maksim Kutakov
850f93f21b [CPU] INT8 tests for convolution sum fusing (#10359)
* int8 tests

* Sum second term port selection fix

* Fix after rebase
2022-02-22 15:42:26 +03:00
Tingqian Li
51ef938385 [CPU] fix crash in resnet binary model (#9761) 2022-02-22 15:23:20 +03:00
Tatiana Savina
6dc8b8b047 add note (#10566) 2022-02-22 14:50:37 +03:00
Anton Romanov
c80a872f73 Fix Coverity in samples (#10583)
* Fix coverity samples

* Fixed coverity issue in speech sample
2022-02-22 14:49:35 +03:00
Alexey Lebedev
a3004e7d80 [PYTHON API] reshape helper (#10402)
* Add reshape helper

* add dimension(range)

* Add partial_shape helper

* Fix code style

* fix comments

* Split reshape on several overloads

* Fix code style

* correct exception

* remove range support

* fix code style

* Add exception

* Dimension from str, PartialShape from str, reshape(str) support

* Apply review comments

* Add default init for shape

* Add PS syntax examples

* Remove pshape parsing from benchmark_app

* Update src/bindings/python/src/pyopenvino/graph/model.cpp

Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>

* Update src/bindings/python/src/pyopenvino/graph/model.cpp

Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>

* Apply suggestions from code review

Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>

Co-authored-by: Sergey Lyalin <sergey.lyalin@intel.com>
2022-02-22 14:48:55 +03:00
Ilya Lavrenov
991c9db1c1 Config api docs (#10563)
* Renamed hetero md

* Renamed some guides

* Updated OpenVINO_Runtime_User_Guide.md

* Updated plugin's page

* More updates

* Fixed links

* Updated link names

* Fixed links

* Fixed docs build

* Self-review

* Fixed issues in doc snippets
2022-02-22 14:32:57 +03:00
Sofya Balandina
3f15afb926 [IE TEST] Continue run after crash (#10037) 2022-02-22 13:55:51 +03:00
Pavel Esir
3d223ebc2a [MO] update error message when reverse infer was not successful (#10576)
* update error message when reverse infer was not successful

* corrected message when there are several undefined Parameters
2022-02-22 13:51:10 +03:00
Andrey Zaytsev
efd3c119fa Update Yocto documentation (#10547) (#10591)
* installing-openvino-yocto: fix documentation links

Point to the new Yocto docs website.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>

* Update installing-openvino-yocto.md

* installing-openvino-yocto: add step to checkout specific branch

Request users to checkout specific branch of meta-intel where this
version of OpenVINO is available.

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>

Co-authored-by: Yuan Xu <yuan1.xu@intel.com>

Co-authored-by: Anuj Mittal <anuj.mittal@intel.com>
Co-authored-by: Yuan Xu <yuan1.xu@intel.com>
2022-02-22 13:33:44 +03:00
Ivan Novoselov
6500ec775d [Snippets] Check for cyclic dependencies during ternary merge. (#10374) 2022-02-22 13:30:15 +03:00
Alexey Varyzgin
a3887f3328 [CPU] Transpose node optimized with Reorder (#10551) 2022-02-22 13:05:19 +03:00
Irina Efode
b7ead46943 [IE TESTS] Functional tests Review. Part 2 (#10476)
* [IE TESTS] Functional tests Review. Part 2

* tmp

* revert set_blob changes
2022-02-22 13:02:05 +03:00
Irina Efode
d57fb75ba6 migration to OV2.0 (#10562) 2022-02-22 12:58:07 +03:00
Mikhail Letavin
171ad9536f [GPU] Disable unrolling by default for LSTMsequence and TensorIterator having length>=16 (#10406) 2022-02-22 12:45:32 +03:00
Egor Duplensky
3f56438d06 [CPU] Align return types handling for all the new API parameters (#10363) 2022-02-22 12:42:24 +03:00
Ivan Tikhonov
472ebc0cd9 [TF FE] Add translators for ScatterND, Conv3DBackpropInputV2 ops (#10550)
* Add translators for ScatterND, ConvBackpropInputV2 ops

* add a new line
2022-02-22 12:20:32 +03:00
Maxim Shevtsov
5247fdfcaf avoiding layouts (#10560) 2022-02-22 12:15:19 +03:00
Nikolay Tyukaev
100fff83bf dynamic title tag (#10575)
* dynamic title tag

* dynamic title tag
2022-02-22 12:05:55 +03:00
Evgenya Stepyreva
4afd8667cf DO detachment (#10577) 2022-02-22 12:05:18 +03:00
Egor Duplensky
4075f8ed51 [CPU] Fix ScaleShift and FQ merge optimization (#9244) 2022-02-22 11:38:02 +03:00
Taylor Yeonbok Lee
746b77c74a [GPU] Revised unique ID setting scheme. (#10548)
* Revised unique ID setting scheme. Previously it was using program id to distinguish the loop body networks' id.
However, it results in cl cache miss for same network loaded multiple time, because program ids are differnt.
Now revised it to use parent primitive id instead of program_id for unique id of nodes in body networks.

* Revised adding unique_id to entry points to have a temporal number as unique id

* Revert the canceld change

* Added test to check whether two networks loaded from same function creates same cl cache
2022-02-22 09:34:46 +03:00
Liubov Talamanova
1891967ad3 [POT] Add quantization templates to wheel (#10557) 2022-02-22 09:11:43 +03:00
Andrew Kwangwoong Park
33062bef7a [GPU] Fix permute performance degradation (#10559)
* [GPU] Fix permute performance degradation

Signed-off-by: Andrew Kwangwoong Park <andrew.kwangwoong.park@intel.com>

* add description for update

Signed-off-by: Andrew Kwangwoong Park <andrew.kwangwoong.park@intel.com>
2022-02-22 11:35:04 +09:00
Andrey Zaytsev
aea0532d76 Fixed POT docs (#10574) 2022-02-22 02:15:58 +03:00
Edward Shogulin
5be402750a [LPT] FuseConvert transformation extension (#10558)
* [LPT] FuseConvert transformation extension

* [LPT] Tests

* [LPT] Cleanup & tests refactoring
2022-02-22 02:02:11 +03:00
Mikhail Letavin
d7ad1bd9cd [GPU] Extra graph transformation passes in case of Dynamic Batch for correct optimization behavior (#10561) 2022-02-22 00:40:26 +03:00
Maxim Gordeev
e7145bd343 [IE Samples] Changed input's tensor preprocessing for speech sample (#10552)
* Changed input's tensor preprocessing

* improved processing
2022-02-21 23:29:38 +03:00
Ilya Lavrenov
d26fd3aa22 Ability to fully override OUTPUT_DIR (#10524) 2022-02-21 22:39:26 +03:00
Mikhail Nosov
f82533005b [OV2.0] Preprocessing documentation (#10451)
* [OV2.0] Preprocessing documentation - first draft

* Small update

* Added ov::Layout overview

* Fix code style

* Preprocessing details - ~50% done

* Corrected links

* Fixed comments, added more docs

* Minor updates

* Couple more links

* Fixed comments

* Remove 'future' link
2022-02-21 19:20:23 +03:00
Nikolay Tyukaev
65d1575642 DOCS: ovms integration (#10528)
* ignore model server pages

* merge

* fixed link to ovms docs

* workbench fix

Co-authored-by: azaytsev <andrey.zaytsev@intel.com>
2022-02-21 18:48:29 +03:00
Vladislav Volkov
1d33c37970 [CPU] Issue in opset name determining (#10479) 2022-02-21 18:47:24 +03:00
Egor Duplensky
b7fede89c8 [CPU] Fix uninitialized reorder implementation type (valgrind, asan) (#10520) 2022-02-21 18:26:20 +03:00
Mateusz Tabaka
6bb8701651 Add MatMulConstTransposesExtraction transformation (#10412)
Transformation insert Transpose for MatMul's weights and
sets its transpose_b attribute to true.
If executed by MO, it helps to reduce LoadNetwork time on CPU plugin,
since ConvertMatMulToFC doesn't have to insert Transpose by itself.

Ticket: 78635
2022-02-21 16:08:28 +01:00
Fedor Zharinov
4decf16927 Set Latency performance mode in case of sync mode. (#10516) 2022-02-21 18:08:05 +03:00
Yuan Hu
09379dca86 [AUTOPLUGIN] add device priority if set ov::device::priorities (#10296)
* support config key device priority

for example:
if AUTO:CPU,GPU
the priority of CPU will be higher than GPU

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* add test and fix compile and test error

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* add an info for device priority and add lost [AUTOPLUGIN] on log

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* parseMetaDevice return all DEVICE of GPU, when use AUTO:GPU

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix compile issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* modify test and add test case, fix code issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix a bug and mutli with HETERO test failed

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix mock test faild issue

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix misprint

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* Disable AUTO:MYRIAD case

MYRIAD/CoreThreadingTests.smoke_QueryNetwork/targetDevice=MULTI_config=MULTI_DEVICE_PRIORITIES:MYRIAD_
faild on windows
the error is
myriadFuncTests-0 INFO: [E:] [BSL] found 0 ioexpander device

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* use ov::device::priorities key in this PR

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>

* fix a logic bug in key_network_priority after enable device priority

add test case cover it

Signed-off-by: Hu, Yuan2 <yuan2.hu@intel.com>
2022-02-21 23:06:51 +08:00
Irina Efode
ae42bf1e86 [IE TESTS] Functional test review. Part1 (#10328)
* [IE TESTS] Move Preprocess&Chacing tests to plugin. Add Cachinf tests for OV2.0

* Conformance

* Fix

* Apply Ilya's comments

* Update caching_tests.cpp

* Fixes

* Update mkldnn_plugin.cpp

* try to skip

* try to fix

* Fix cpu

* tmp
2022-02-21 16:22:01 +03:00
Gorokhov Dmitriy
f53f09f020 [CPU] Fixed legacy post ops behavior (#10542) 2022-02-21 16:09:29 +03:00
Ilya Lavrenov
68e873c6c8 Config and hetero (#10555)
* Updated properties documentation

* Fixed doc refernce

* merged snipet files

* fixed build

* Updated Hetero docs

* Self-review

Co-authored-by: Anton Pankratv <anton.pankratov@intel.com>
2022-02-21 16:01:47 +03:00
Alexey Lebedev
0ce255e56a [tools][benchmark_app] update readme (#10518)
* Save work

* update readme

* Name refactoring

* Remove duplicated readme

* Add note about default hint
2022-02-21 15:35:07 +03:00
Maksim Derbasov
11bf540018 Simple patch for fix random bool vector generation (#10493)
* Dirty patch for fix bool generation

* Bernoulli distribution for bool
2022-02-21 14:24:27 +03:00
Mikhail Ryzhov
5dbf2f7088 [GNA] Compact mode ordering fix (#10408)
* Compact mode ordering fix

* Fixed comment
2022-02-21 14:05:36 +03:00
Jan Iwaszkiewicz
206442fb19 [PYTHON] Add OV Types support to parameter and constant from opsets (#10489)
* Add OV Types to parameter and constant node factory, refactor tests and error handling

* Fix name mismatch in docstring

* Fix docs and hints
2022-02-21 12:45:55 +03:00
Yuan Xu
828d9d810a updating apt, yum, conda installation for 22/1 (#10219)
* Add Overview page

* update yum installation

* update apt installation

* update conda installation

* Revert "Add Overview page"

* Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* update Ubuntu version format

* update as per review comments

* integrate comments

* update version format

* add a configurations chapter

* update

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-conda.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* update comments

* Update docs/install_guides/installing-openvino-apt.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-yum.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* update references to OpenVINO Runtime User Guide

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-02-21 12:15:15 +03:00
Yuan Xu
cd77b33f3a docker installation updates for 22/1 (#10341)
* Add Overview page

* Revert "Add Overview page"

* update

* update install flows

* update

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* update structure

* small changes

* improve structure

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* integrate comments

* remove outdated note

* Update docs/install_guides/installing-openvino-docker-windows.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* Update installing-openvino-docker-windows.md

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* Update docs/install_guides/installing-openvino-docker-linux.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* integrate comments

* adding an issue: Permission Errors for `/dev/shm`

* Update docs/install_guides/troubleshooting.md

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>

* update comments

* fix mistake

* fix mistake

* fix a link

Co-authored-by: Ilya Naumov <ilya.naumov@intel.com>
2022-02-21 12:11:08 +03:00
Mateusz Tabaka
430e898c33 Add bf16, f64, i4, u4, i16, u16 types to Equal's evaluate (#10508)
* Add f64 type to Equal's evaluate

Required by t2t-vit models.

Ticket: 79610.

* add also i16 u16 because prior_box tests fail with "Check eval_status failed at"

* code style

* add i4, u4, bf16 to equal's evaluate
2022-02-21 11:37:17 +03:00
Maxim Andronov
1fa5d44769 [CPU] WA for MergeTransposeAndReorder after conv + sum (#10466) 2022-02-21 11:30:24 +03:00
Ivan Tikhonov
33ab7f9063 remove redundant node_context.hpp files, fix handling nodes with several output ports (#10484) 2022-02-21 10:27:11 +03:00
Maxim Andronov
31f517a3b4 [CPU] Fix error message for shape infer (#10522) 2022-02-21 10:16:29 +03:00
Ivan Tikhonov
e5d6f18366 [TF FE] Fix BatchToSpace op translator (#10511)
* use shape value, not rank in batch_to_space conversion

* codestyle

* resolve review comment
2022-02-21 10:14:08 +03:00
Tingqian Li
2cc6629624 [CPU] Avoid using xmm0 for input to store_emitter (#6566) 2022-02-21 10:02:31 +03:00
Nikita Demashov
f7a85c59fe [LPT] Disable Move Fake Quantize on shuffle channels pattern (#10389)
* added shuffle channels check

* refactoring
2022-02-21 10:01:37 +03:00
Ivan Tikhonov
e89c7ed8e5 Describe MakeStateful transformation in MO help (#10536)
* Update --transform help for MakeStateful transformation

* add quotes
2022-02-21 09:55:26 +03:00
Taylor Yeonbok Lee
73a6d50dbc [GPU] Fixed batch size again to 8 as a workaround of compiler restriction. (#10502) 2022-02-21 09:42:08 +03:00
Roman Lyamin
0ee6959537 [GPU] Replacing get_shape() with get_partial_shape() (#10525) 2022-02-21 09:41:24 +03:00
Andrew Kwangwoong Park
a7fff7447c Fix to extract scores for each class in consideration of background label's id (#10500)
Signed-off-by: Andrew Kwangwoong Park <andrew.kwangwoong.park@intel.com>
2022-02-21 15:35:44 +09:00
Andrei Molotkov
575ded54a9 [GPU] Move adding biases to the end convolution_bfyx_to_bfyx_f16 kernel (#10533) 2022-02-21 09:30:00 +03:00
Xuejun Zhai
ea3bd087c4 [CVS-78727][python version] bug fix for -d AUTO:CPU,GPU the return device should be AUTO only (#10506)
Signed-off-by: xuejun <xuejun.zhai@intel.com>
2022-02-21 03:21:52 +00:00
Ilya Znamenskiy
7c93902dac [GPU] Fix issues with floating point fusings support for cldnn / onednn fully connected kernels (#10519)
* [GPU] Fix of floating point fusings inside fc kernels

* [GPU] Fix for related tests
2022-02-21 12:03:23 +09:00
Maxim Shevtsov
a52c755d21 refactor the perf counters to get really on-demand (rather than on every inference) (#10526)
* refactor the perf counters to get really on-demand (rather than on every inference)

* removed the (now) un-needed needPerfCounters flag
2022-02-20 20:56:15 +03:00
Maxim Vafin
982942fa5d Fix typo in CropAndResize translator (#10541) 2022-02-20 12:39:52 +03:00
Nikita Malinin
a312dd4a9f [POT] IEEngine output data order (#10527)
* IEEngine fix for multiply-output nets

* Update docstrings and docs

* Codestyle changes

* Update docs

* Update docstring

* Pylint
2022-02-20 09:44:04 +03:00
Alexander Kozlov
5c7be85435 [POT] Documentation update (#10068)
* Updated main README

* Added saturation fix desciption

* Changed Low-precision model representation document

* Added Simplified mode desciption. Updated DefaultQuantization, AccuracyAware, API descriptions.

* Added Data-free model description. Adjusted other Readmes accordingly

* Revised Configuration file description

* Revised AA method description

* Changed Quantization readme

* Cross-links in quantization methods

* Fixed reference

* Fixed the structure

* Removed data-free

* Update tools/pot/docs/CLI.md

Co-authored-by: Nikita Malinin <nikita.malinin@intel.com>

* Update tools/pot/openvino/tools/pot/api/README.md

Co-authored-by: Nikita Malinin <nikita.malinin@intel.com>

* Applied comments

* Fixed comments

* Applied more comment

* Applied comments

* Fixed build errors

* Fixed build errors

* Small changes

* Fixed a typo

Co-authored-by: Nikita Malinin <nikita.malinin@intel.com>
2022-02-20 09:43:14 +03:00
Alexey Lebedev
5671ca2cf5 add test (#10531) 2022-02-19 20:19:28 +03:00
Mingyu Kim
af62ff22b1 [GPU] Mixed precision fix for mask rcnn (#10467) (#10535)
* Select proper layout for fp16-int8 mixed precision network
* Set proper layout in layout propagation for mixed precision
2022-02-19 21:55:15 +09:00
Alexey Lebedev
661002689f latency mode is default for sync (#10521) 2022-02-19 05:58:51 +03:00
Maxim Vafin
71fdcdf899 Fix Unpack translator in TF FE (#10494)
* Fix Unpack translator in TF FE

* Apply review feedback
2022-02-19 02:52:48 +03:00
Anastasia Popova
2e164b4ddc AvgPool3D translator, fix of MaxPool translator in TF FE (#10530)
* Fixed MaxPool translator, added AvgPool3D translator.

* Update src/frontends/tensorflow/src/op/avg_pool.cpp

Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>

* Code style.

Co-authored-by: Maxim Vafin <maxim.vafin@intel.com>
2022-02-19 02:47:01 +03:00
Pavel Esir
fb6359586d fix ConvertGroupedStridedSlice.py for XLNet (#10496) 2022-02-18 22:40:28 +03:00
Ilya Lavrenov
6b22d0d109 Revert "repair TF FE tests after build (#10432)" (#10523)
This reverts commit 306b7611d9.
2022-02-18 19:48:35 +03:00
Yuan Xu
c9bfd3bf8b Updating installation guide structure for 22/1 (#10343)
* Add Overview page

* update overview

* update install dev tools page

* Revert "Add Overview page"

* create overview page

* update movidius setup guide

* split the configurations for linux part to a separate topi

* split the general configurations for linux to a separate topic

* create a separate topic for configurations for vpu on windows

* create a separate topic on configurating gpu

* create a separate topic for configurations for ncs2

* update structure

* update structure

* update structure

* restructure

* update overview

* update

* update according to comments

* update structure

* update the structure

* correct naming

* correct naming

* update trademark symbol

* remove .bak file

* update

* test formatting

* update

* update

* fix errors

* add a leading sentence for GPU configurations

* update structure

* delete redundant files

* Update docs/install_guides/configurations-for-intel-gpu.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/configurations-for-ncs2.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* Update docs/install_guides/installing-openvino-config-ivad-vpu.md

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>

* fix formatting

* fix errors

* fix errors

* fix errors

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>
2022-02-18 19:47:00 +03:00
Svetlana Dolinina
d2177cf177 remove old protobuf eggs (#10473) 2022-02-18 18:12:23 +03:00
Gleb Kazantaev
b22585a696 Fix Coverity issue (#10510) 2022-02-18 18:00:40 +03:00
Alina Kladieva
7985c92095 Revert "[GPU] Mixed precision fix for mask rcnn (#10467)" (#10515)
This reverts commit 10ac5b280b.
2022-02-18 16:38:49 +03:00
Anton Voronov
d9b1f10074 [CPU] [OneDNN] disabled unused amx primitives and conv primitives (#10326) 2022-02-18 16:36:49 +03:00
Katarzyna Mitrus
f52f129ed8 [Python API] Improvement of dynamic reshape error message in compatibility ie (#10495)
* Add test_reshape_dynamic to tests compatibility

* Catch OverflowError on dynamic dimension reshape
2022-02-18 14:23:10 +03:00
Zhang Yi
ba9d18f181 [CPU] Parallel copy for output in case data doesn't fit L2 cache capacity (#10340) 2022-02-18 13:16:51 +03:00
Ilya Churaev
a18c8076cc Removed obsolete documentation (#10504)
* Removed obsolete documentation

* Fixed documentation

* Additional fix
2022-02-18 13:02:55 +03:00
Ekaterina Aidova
e8ff31f4fb [OMZ]: update submodule (#10490) 2022-02-18 12:58:38 +03:00
Roman Kazantsev
20266dd0c3 [MO] Upgrade TensorFlow version dependency due to SNYK hits (#10487)
* [MO] Upgrade TensorFlow version dependency due to SNYK hits

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>

* Still use 2.5.0 TensorFlow for Python 3.6 and older

Signed-off-by: Roman Kazantsev <roman.kazantsev@intel.com>
2022-02-18 12:29:58 +03:00
Anton Voronov
7a82bb2acb [CPU] fixed including <cpuid.h> on android (#10482) 2022-02-18 11:50:38 +03:00
Andrey Somsikov
dea35b8e6e Upgrade protobuf to 3.18.2 (#10435)
* Upgrade protobuf to 3.19.4

* Upgdate precompiled protoc version

* Update protobuf to v3.18.2

Updating further peding this fix to be released
https://github.com/protocolbuffers/protobuf/pull/9437

* Disable warnings for protobuf
2022-02-18 11:43:19 +03:00
Nikita Semaev
03862e780f Fixing SetUp for SLT tests of ShapeOF (#10323)
* Fixing SetUp for SLT tests of ShapeOF

* Attempting to pass outputPrecision into the test

* Correcting deficiencies, taking into account in the name of the test of the output precision
2022-02-18 10:37:39 +03:00
Jacek Skowron
3a89c87f52 [DOCS] update install guides gifs (#10444) 2022-02-18 10:31:42 +03:00
Maxim Shevtsov
dcd6e3e961 removed unsed var and fixed mixup from code shuffling (#10492) 2022-02-18 10:05:23 +03:00
Xuejun Zhai
2ac15eae3d [CVS-78727] bug fix for -d AUTO:CPU,GPU the return device should be AUTO only (#10417)
Signed-off-by: xuejun <xuejun.zhai@intel.com>
2022-02-18 09:56:56 +03:00
Edward Shogulin
17311c46b3 [LPT] checkElementwise extending for 1D tensor (#10498) 2022-02-18 09:41:17 +03:00
Anton Romanov
b8ac041da9 Fixed coverity issues in samples (#10421)
* Fixed coverity issues

* Fixed coverity isuues samples part 2

* Fixed code style

* Delete goto

* update after comments
2022-02-18 08:08:09 +03:00
Vitaliy Urusovskij
76ade7a7d0 Update docstrings with information about static build (#10488) 2022-02-18 07:48:58 +03:00
Xuejun Zhai
9b36daf23b Modify for CVS-69023(python version): hint configuration (#10312)
Signed-off-by: xuejun <xuejun.zhai@intel.com>
2022-02-18 09:40:27 +08:00
guozhong wang
2d88e67616 Guozhong/remove format time (#9923)
* remove formatTimeMilli from time_utils.cpp

* add traceCallStacks test case

* add traceCallStacks test case in format_test.cpp

* add param:"test" to function TraceCallStacks()

* rollback file in master branch

* add traceCallStacks test case in format_test.cpp

* remove formatTimeMilli from time_utils.cpp and add traceCallStacks test case in format_test.cpp
2022-02-18 09:36:01 +08:00
Mingyu Kim
10ac5b280b [GPU] Mixed precision fix for mask rcnn (#10467)
* Select proper layout for fp16-int8 mixed precision network
* Set proper layout in layout propagation for mixed precision
2022-02-18 10:27:54 +09:00
hyunback kim
215db2dad8 [GPU] Enable shuffle and fsv32 in implicit concat (#9888)
[GPU] Enable shuffle and fsv32 in implicit concat

* Support shuffle fsv32
* Check feature depths in first input depedency.
* Add to select onednn convolution in case block format in get_preferred_impl_type func.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-02-18 09:40:14 +09:00
Vladislav Volkov
b6a75d7d91 CPU plugin namespaces and files renaming (#10248) 2022-02-17 23:48:26 +03:00
Nikolay Tyukaev
7fa9d07a1f ignore api/reference.rst warnings (#10491) 2022-02-17 23:13:09 +03:00
Maxim Vafin
f482f9765e Fix values reading from protobuf (#10391)
* Fix values reading from protobuf

* Remove exception

* Small fix
2022-02-17 21:42:49 +03:00
Maxim Vafin
ac880f601c Fix getting attribute in TF FE (#10458)
* if attribute is not present and default value provided it should return default value
2022-02-17 20:30:04 +03:00
Anton Grishin
b8bbe056b1 Improve l-capturing (#10468) 2022-02-17 19:17:07 +03:00
Artur Kulikowski
73caba0f67 Fix ONNX boolean tests (#10404) 2022-02-17 15:31:11 +00:00
Nikita Malinin
a090abbc92 Update remove_converts pass with shape inference (#10474) 2022-02-17 18:17:07 +03:00
Yegor Kruglov
6e5eb87340 Add note to YOLO-v3 conversion instructions (#10428)
* added note to yolo v3 conversion instructions

* fix typo

* Update docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_YOLO_From_Tensorflow.md

style fix

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-02-17 18:00:38 +03:00
Ivan Tikhonov
ade4c6c7f9 OpExtension: fix framework attributes handling (#10445)
* Fix attribute handling in OpExtension, add unit tests

* add missed file

* fix warning

* fix warning

* rename convert_from_py_object method to py_object_to_any, fix PEP8

* fix PEP8

* delete redundant include dir, fix includes
2022-02-17 17:42:12 +03:00
Anton Pankratov
61f657795c Streams property with special values (#10411)
* Streams  property with special values

* Fixed clang
2022-02-17 16:39:06 +03:00
Fedor Zharinov
198f44fdc7 Fix for missing throughput in case of Multi device (#10407)
* Fix for missing throughput in case of Multi device

* stylefix
2022-02-17 16:32:19 +03:00
Ilya Lavrenov
306b7611d9 repair TF FE tests after build (#10432)
* repair TF FE tests after build

* Small improvements

* Fixed static build
2022-02-17 16:28:24 +03:00
Maxim Gordeev
3144c5fab8 Added processing of layout for speech sample (#10254)
* Added processing of layout for speech sample

* fixed notes

* some improvements

* Code style format

* changed NCC value for NullStatement

* improved batch processing

* added loading batch for imported model

* fixed notes

* fixed notes

* added layout parameter to azure tests
2022-02-17 16:11:57 +03:00
Irina Efode
ccd7104108 [IE TESTS][CONFORMANCE] Add support of dynamic shapes in SubgraphDumper (#10380)
* Initial commit. Need to remove debug code

* Remove extra flags. Fix comparation in the matchers

* Fix small issue with the default args

* Update eltwise.hpp

* Update ov_subgraph.cpp
2022-02-17 15:52:37 +03:00
Nikolay Tyukaev
fc1157cf68 add api folder if enable python (#10477) 2022-02-17 15:24:29 +03:00
Egor Shulman
8ae4bc95fd [CPU] Coverity fixes (#10392) 2022-02-17 15:11:18 +03:00
Anton Pankratov
0882f863d6 Any compilation time optimization (#10335)
* Optimized any compilation time

* Fixed Any  compilation time

* any::addressof

* reverted

* Fixed read write

* format fix

* Fixed build

* format fix

* Moved any tests back

* removed inline

* fix format

* used static inline

* format fix

* removed inline static

* fixed merge confkicts
2022-02-17 14:55:37 +03:00
Anton Pankratov
7ce9801ec3 Added mkldnn ov properties test for compile_model (#10442)
* Added mkldnn ov properties test

* fixed  macos build
2022-02-17 13:54:02 +03:00
Anton Pankratov
d1378d94b8 Fixed default inference precision in benchmark app (#10443) 2022-02-17 13:53:50 +03:00
Vladislav Golubev
ff4e97ab09 [LPT] Security fixes (#10465) 2022-02-17 13:47:27 +03:00
Anton Chetverikov
e444715c8d [MO] Restore inputs order in IR Reader (#10403)
* Restore inputs order in IR Reader

* Add saving of outputs order
2022-02-17 13:07:34 +03:00
Tomasz Dołbniak
83a8ac800c ONNX model validator enhancements (#10456) 2022-02-17 11:01:47 +01:00
Anton Voronov
61f915b4f6 [CPU] changed checks with_cpu_x86...() to mayiuse() (#9911) 2022-02-17 12:56:55 +03:00
Pavel Esir
43784e2cec fix convert_nms_gather_path_to_unsigned: added opset8::Slice into patter_list (#10439) 2022-02-17 12:47:25 +03:00
Aleksandr Korolev
8abb949af9 [VPU] Coverity fixes (#10396)
Tickets:
-79244
-78866
2022-02-17 12:29:28 +03:00
Aleksandr Korolev
5ace7bb96f [MYX] Added missing supported properties in GetMetric method (#10440) 2022-02-17 12:23:41 +03:00
Anton Pankratov
a7b28953e2 Added Import export device capability into hetero plugin (#10455) 2022-02-17 12:15:45 +03:00
hyunback kim
8148921fa7 [GPU] Fix deconv b32 onednn regression in onednn (#10462)
After enabling deconv b32 onednn, colorization-siggraph f16 b32 has regresison,
Fix it. Add to check sum post ops in case deconv onednn.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-02-17 18:09:51 +09:00
Irina Efode
68f523010e [IE TESTS][CONFORMANCE] Support dynamic shapes in Operation Conformance (#10400)
* emove namespeca unity

* [IE TESTS][IE CONFORMANCE] Suppot dynamic shapes in Operation Conformance runner

* Update CMakeLists.txt

* Fix dim generation
2022-02-17 11:27:45 +03:00
hyunback kim
ed323afc93 [GPU] Remove default bfyx quantize in get_preferred_format (#9654)
* [GPU] Remove default bfyx quantize in get_preferred_format

Default bfyx occurs redundant reorder in fsv-format network.
And remove onednn concat limitation for depdendency input should be
onednn impl.

Signed-off-by: hyunback <hyunback.kim@intel.com>
2022-02-17 17:25:55 +09:00
Taylor Yeonbok Lee
d35335193a [GPU] Adjust build batch size to 9 from 10 due to the compiler limitation w.r.t the entire module size (#10450) 2022-02-17 11:01:31 +03:00
Anastasia Kuporosova
861d43e06d [Python API] Fix benchmark hanging (#10457) 2022-02-17 10:59:55 +03:00
Liubov Talamanova
be6a3c34f1 [POT] Throw exception for IRv10 (#10345)
* [POT] Throw exception for IRv10

* Update reference models

* Updated AC framework name from dldt to openvino
2022-02-17 10:54:08 +03:00
Vladimir Dudnik
29883a152a fix 79520 (#10449) 2022-02-17 10:52:30 +03:00
Egor Shulman
ff293f5560 [CPU] Disable display of constant layers in PerfMap (#10307) 2022-02-17 10:51:07 +03:00
Egor Duplensky
541627d319 [CPU] [SANITIZER] Avoid possible stack-use-after-scope (#10377) 2022-02-17 10:27:58 +03:00
Ivan Tikhonov
3597ae61f9 Fix increased build time and memory consumption caused by multiple ov::Any instantiation (#10452)
* Fix increased build time and memory consumption caused by multiple instansion of ov::Any.

* delete unused method, correct exception message

* codestyle

* Resolve review comment

* fix exception: throw it in else branch
2022-02-17 09:08:55 +03:00
Gleb Kazantaev
926460e603 Fix Coverity issues (#10427) 2022-02-17 08:54:57 +03:00
Mateusz Tabaka
ab4a11b3bd Remove unnecessary AutoBroadcastSpec parameter in MatMulMultiplyFusion (#10005) 2022-02-17 08:51:32 +03:00
Julia Kamelina
1fc61299c8 update omz submodule (#10441) 2022-02-17 00:50:21 +03:00
Tomasz Dołbniak
90a100d5f6 Default opset bump in ONNX FE (#10437) 2022-02-17 00:47:07 +03:00
Fedor Zharinov
00abcbacc4 Fix for Layout and image_info related issues (#10258)
* bugfix78627

* stylefix

* fix
2022-02-17 00:42:51 +03:00
Maxim Vafin
5cadee20eb Fix issue with constants having inputs in TF FE (#10393) 2022-02-16 20:40:23 +03:00
Andrey Zaytsev
abeb910ce2 Removing the old Intel logo from docs (#10429)
* Added info on DockerHub CI Framework

* Feature/azaytsev/change layout (#3295)

* Changes according to feedback comments

* Replaced @ref's with html links

* Fixed links, added a title page for installing from repos and images, fixed formatting issues

* Added links

* minor fix

* Added DL Streamer to the list of components installed by default

* Link fixes

* Link fixes

* ovms doc fix (#2988)

* added OpenVINO Model Server

* ovms doc fixes

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>

* Updated openvino_docs.xml

* Updated the link to software license agreements

* Revert "Updated the link to software license agreements"

This reverts commit 706dac500e.

* Removed the Intel logo

Co-authored-by: Trawinski, Dariusz <dariusz.trawinski@intel.com>
2022-02-16 17:26:26 +03:00
Yuan Xu
4f000b780d update pypi installation (#10217)
* Add Overview page

* update pypi installation

* Revert "Add Overview page"

* integrate review comments

* update formatting

* Update docs/install_guides/installing-openvino-pip.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-pip.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

* Update docs/install_guides/installing-openvino-pip.md

Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>

Co-authored-by: Adrian Boguszewski <adekboguszewski@gmail.com>
Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com>
2022-02-16 17:09:56 +03:00
Egor Shulman
5bf9631073 Fixed ProfilingInfo layer status (#10342) 2022-02-16 16:10:19 +03:00
Anton Grishin
05650551b7 [GNA] Fix static analyzer issues (#10379)
* fix incorrect braces

* move pointer check

* add pointer check to VerifyConcat

* Prevent iterator invalidation
2022-02-16 15:46:32 +03:00
Ilya Churaev
434d7bbecc Fixed 4458 warning for Windows (#10418) 2022-02-16 11:39:43 +00:00
Anton Pankratov
5b8b698f88 Fixed ICore GetSupportedProperties (#10394)
* Added ICore::get_property

* Added tests

* Format fix

* All properties
2022-02-16 14:36:01 +03:00
Andrey Noskov
7a24f53b57 [GNA] Moved am_intel_dnn tests (#10294)
* [GNA] am_intel_dnn tests moved from deprecated tests

* fixed code style

* [GNA]fixed copyright date
2022-02-16 14:21:12 +03:00
Andrey Noskov
e2948a807c [GNA] Moved cpp_wrapper test (#10297)
* [GNA] Moved cpp_wrapper test

* [GNA] fixed copyright data
2022-02-16 14:19:29 +03:00
Nadezhda Ageeva
fc5a416423 [SAMPLES][GNA] Update C++ speech sample with new config API (#10357)
* [SAMPLES][GNA] Update speech sample with new cofig API

* Review comments

* Some additional checks
2022-02-16 13:23:50 +03:00
Alexander Zhogov
2e71fccd82 Azure CI: Disable tests on Mac due to long building 2022-02-16 13:12:06 +03:00
Anton Dudchenko
483b3828ca [VPU] Enable CheckTensorPrecision tests (#10390)
Enable CheckTensorPrecision tests for the myriad plugin.
-75944
2022-02-16 13:06:13 +03:00
Artyom Anokhov
ba69bae055 [Scripts] Remove MacOS install dependencies (#10397)
* OpenVINO scripts: Removed legacy install install_guide.html. Removed installation of scripts for MacOS

* scripts/CMakeLists: optimized if case
2022-02-16 12:52:57 +03:00
Chen Xu
4d954d0c13 [CPU] Fix the unnecessary calculation of blk_stride for dynamic shape (#10385) 2022-02-16 12:20:01 +03:00
Andrew Kwangwoong Park
2a1d8d7e99 [GPU] Minor fix for dump layer (#10291)
- Replace find with compare func to avoid dumping all layers that contain layer name

Signed-off-by: Andrew Kwangwoong Park <andrew.kwangwoong.park@intel.com>
2022-02-16 12:02:28 +03:00
Nikolay Tyukaev
0c4d50239a update requirements to fix tabs (#10409) 2022-02-16 11:47:11 +03:00
Gleb Kazantaev
709084888a Remove deprecated classes from openvino headers (#10371)
* Remove deprecated classes from openvino headers

* Fix tests
2022-02-16 11:41:16 +03:00
Ilya Churaev
0b27fb80b1 Fix for new coverity issues (#10378)
* Fix for new coverity issues

* Fixed cc coverity

* Fixed code style

* Revert some changes

* Fixed build
2022-02-16 11:12:24 +03:00
Nikita Malinin
c8ce93290e [POT] Sync mode only for gna_sample (#10355)
* Sync mode only for gna_sample

* Disable test
2022-02-16 11:00:13 +03:00
Vladimir Zinoviev
e22a2b3076 [CommonTransformations] Fix default output take from Split/VariadicSplit (#10395) 2022-02-16 10:59:11 +03:00
Mateusz Bencer
0a056857c5 fix handling stride_y (#10398) 2022-02-16 07:57:56 +00:00
Mingyu Kim
c0d54e48bb [GPU] Bugfix for onednn post op optimization (#10416)
When post-op has pattern like below, binary_mul was ignored previously.
1. binary_add
2. eltwise_linear
3. binary_mul
4. binary_add

It happens when prev_post_op_idx == 2, cur_post_op_idx == 4.
prev_post_op_idx was supposed to proceed to idx 3, but it did not.
2022-02-16 10:44:42 +03:00
Vladislav Golubev
fa4246d531 [LPT] Security fixes (#10381) 2022-02-16 10:31:17 +03:00
Taylor Yeonbok Lee
cbb5dff9c1 Fix coverity errors (#10384) 2022-02-16 10:10:10 +03:00
Ivan Tikhonov
06eb74b77f Fix MakeStateful transformation: use tensor names instead of friendly names (#8997)
* Use tensor names instead of friendly names, handle one output tensor to several Result ops case

* fix python tests

* fix python test

* fix incorrect merge

* remove redundant files

* fix variable names generation, fix python test

* Apply review comments

* fix python test
2022-02-16 09:26:31 +03:00
Jan Iwaszkiewicz
e71f23fc7e [PYTHON] Add __repr__ to main objects (#10365) 2022-02-15 21:30:33 +00:00
Evgenya Stepyreva
d14f1e54a5 MatMul Shape Inference (#10348)
* Proper dynamic dimension broadcasting

* make shape infer race condition reproducer

* Use ngraph only

* MatMul shape inference

* Style

* Dynamic rank case covered

* Build fix

Co-authored-by: Maksim Kutakov <maksim.kutakov@intel.com>
2022-02-16 00:22:46 +03:00
Vladimir Dudnik
eda4cbf30e [OMZ] rest of public models with layout (#10293)
* update OMZ submodule, rest of public models with layout

* sync with PR-10150

* ac fixes for WB

* fix CVS-78616
2022-02-15 23:42:41 +03:00
Maxim Shevtsov
317b956d2e fixed possible situation when auto-batching returns zero requests (#10388) 2022-02-15 15:13:25 +00:00
Mikhail Nosov
d5e8e0fb88 Fix coverity findings - add nullptr check before dereferencing (#10375)
Even though it is not possible to hit into this situation using existing plugins - there is theoretical possibility that some plugin may return 'nullptr' as it is allowed.
So this check shall remain in generic part which should not rely on plugin-specific behavior
2022-02-15 18:01:05 +03:00
Maxim Andronov
dc905f972a [CPU] AdaptivePooling child edges number check fix (#10372) 2022-02-15 17:59:51 +03:00
Ivan Novoselov
fa6865d569 [CPU] Disable MatMul+FQ(I8 out) if MatMul cant execute in I8 (#10316) 2022-02-15 17:59:06 +03:00
Maxim Vafin
0793a56260 Fix Conv3D translator in TF FE (#10387) 2022-02-15 17:53:13 +03:00
Mikhail Letavin
f150e2ad09 [GPU] Remove debug suffix from OpenCL.dll on Windows (#10361) 2022-02-15 16:43:40 +03:00
Sergey Lyubimtsev
498d865ea6 Correction for install guides: (#10373)
- OpenVINO installer path for macOS
- Default install pathnon macOS
- Red Hat Enterprise Linux 8.x, 64-bit is not part of IRC installer
2022-02-15 16:22:26 +03:00
Gleb Kazantaev
b837b7e32c Fix Coverity Isues (#10376) 2022-02-15 15:26:04 +03:00
4600 changed files with 192918 additions and 71766 deletions

View File

@@ -13,6 +13,7 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
jobs:
- job: android_arm64

View File

@@ -13,11 +13,13 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
- repository: testdata
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/testdata
ref: master
jobs:
- job: Lin
@@ -109,7 +111,8 @@ jobs:
set -e
$(REPO_DIR)/install_build_dependencies.sh
# Move jdk into contrib
sudo apt --assume-yes install openjdk-11-jdk
# 'clang' compiler is to check that samples can be built using it
sudo apt --assume-yes install openjdk-11-jdk clang
# For opencv-python: python3-setuptools and pip upgrade
python3 -m pip install --upgrade pip
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/src/compatibility/openvino/requirements.txt
@@ -223,6 +226,14 @@ jobs:
displayName: 'Build cpp samples'
continueOnError: false
- script: |
export CC=clang
export CXX=clang++
$(INSTALL_DIR)/samples/cpp/build_samples.sh -i $(INSTALL_DIR)
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build cpp samples - clang'
continueOnError: false
- script: $(INSTALL_DIR)/samples/c/build_samples.sh -i $(INSTALL_DIR)
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build c samples'
@@ -244,7 +255,7 @@ jobs:
- script: |
export DATA_PATH=$(MODELS_PATH)
export MODELS_PATH=$(MODELS_PATH)
. $(SETUPVARS) -pyver 3.8 && python3 -m pytest -s $(INSTALL_TEST_DIR)/pyopenvino $(PYTHON_STATIC_ARGS) --junitxml=TEST-Pyngraph.xml --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_utils/test_utils.py --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_onnx/test_zoo_models.py --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_onnx/test_backend.py
. $(SETUPVARS) -pyver 3.8 && python3 -m pytest -s $(INSTALL_TEST_DIR)/pyopenvino $(PYTHON_STATIC_ARGS) --junitxml=TEST-Pyngraph.xml --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_utils/test_utils.py --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_onnx/test_zoo_models.py --ignore=$(INSTALL_TEST_DIR)/pyopenvino/tests/test_onnx/test_backend.py -v
displayName: 'Python API 2.0 Tests'
continueOnError: false
@@ -259,10 +270,20 @@ jobs:
displayName: 'OV Core UT'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/onnx_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* --gtest_output=xml:TEST-ONNXImportUT.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'ONNX Frontend UT'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/paddle_tests --gtest_print_time=1 --gtest_output=xml:TEST-Paddle.xml
displayName: 'Paddle Frontend UT'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/onnx_frontend_tests --gtest_print_time=1 --gtest_output=xml:TEST-Paddle.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'ONNX Frontend UT'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/tensorflow_tests --gtest_print_time=1 --gtest_output=xml:TEST-Tensorflow.xml
displayName: 'Tensorflow Frontend UT'
continueOnError: false
@@ -288,6 +309,10 @@ jobs:
displayName: 'VPU UT'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/XLinkTests --gtest_output=xml:TEST-XLinkTests.xml
displayName: 'XLink Tests'
continueOnError: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ieMultiPluginUnitTests --gtest_output=xml:TEST-ieMultiPluginUnitTests.xml
displayName: 'MULTI UT'
continueOnError: false
@@ -316,6 +341,13 @@ jobs:
displayName: 'IE CAPITests'
continueOnError: false
- script: |
export DATA_PATH=$(MODELS_PATH)
export MODELS_PATH=$(MODELS_PATH)
. $(SETUPVARS) && $(INSTALL_TEST_DIR)/OpenVinoCAPITests --gtest_output=xml:TEST-OpenVinoCAPITests.xml
displayName: 'OV CAPITests'
continueOnError: false
- task: CMake@1
inputs:
cmakeArgs: >
@@ -336,6 +368,7 @@ jobs:
- script: |
export PATH=$HOME/.local/bin:$PATH
export IE_APP_PATH=$(INSTALL_DIR)/samples_bin
export LD_LIBRARY_PATH=$IE_APP_PATH:$LD_LIBRARY_PATH
export IE_APP_PYTHON_PATH=$(INSTALL_DIR)/samples/python/
export SHARE=$(INSTALL_DIR)/tests/smoke_tests/samples_smoke_tests_data/
export WORKSPACE=$(INSTALL_DIR)

View File

@@ -13,6 +13,7 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
jobs:
- job: linux_arm64
@@ -26,16 +27,28 @@ jobs:
system.debug: true
VSTS_HTTP_RETRY: 5
VSTS_HTTP_TIMEOUT: 200
PYTHON_ARM_VERSION: "3.8.12"
PYTHON_EXEC: "python3.8"
OPENVINO_ARCH: 'aarch64'
NUM_PROC: 1
BUILD_TYPE: Release
OPENVINO_REPO_DIR: $(Build.Repository.LocalPath)
OPENVINO_CONTRIB_REPO_DIR: $(OPENVINO_REPO_DIR)/../openvino_contrib
OPENCV_REPO_DIR: $(OPENVINO_REPO_DIR)/../opencv
BUILD_PYTHON: $(WORK_DIR)/build_python
BUILD_OPENCV: $(WORK_DIR)/build_opencv
BUILD_OPENVINO: $(WORK_DIR)/build
BUILD_OPENVINO_PYTHON: $(WORK_DIR)/build_python
BUILD_OPEN_MODEL_ZOO: $(WORK_DIR)/build_open_model_zoo
INSTALL_OPENVINO: $(WORK_DIR)/install_openvino
INSTALL_PYTHON: $(INSTALL_OPENVINO)/extras/python
INSTALL_OPENCV: $(INSTALL_OPENVINO)/extras/opencv
INSTALL_OPEN_MODEL_ZOO: $(INSTALL_OPENVINO)/extras/open_model_zoo
WORK_DIR: $(Pipeline.Workspace)/_w
BUILD_DIR: $(WORK_DIR)/build
BUILD_DIR_OPENCV: $(WORK_DIR)/build_opencv
TMP_DIR: /mnt/tmp
SHARE_DIR: /mount/cinfsshare/onnxtestdata
CCACHE_DIR: $(SHARE_DIR)/ccache/master/linux_arm64
TMP_DIR: /mnt/tmp
OPENVINO_CCACHE_DIR: $(SHARE_DIR)/ccache/master/linux_arm64
OPENCV_CCACHE_DIR: $(SHARE_DIR)/ccache/master/linux_arm64_opencv
steps:
- script: |
@@ -56,17 +69,21 @@ jobs:
df
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
free -h
echo "##vso[task.setvariable variable=NUM_PROC]$(nproc --all)"
echo "NUM_PROC=$(NUM_PROC)"
displayName: 'System information'
- script: |
rm -rf $(WORK_DIR) ; mkdir $(WORK_DIR)
rm -rf $(BUILD_DIR) ; mkdir $(BUILD_DIR)
mkdir -p $(BUILD_OPENCV) $(BUILD_OPENVINO) $(BUILD_OPENVINO_PYTHON) $(BUILD_PYTHON) $(BUILD_OPEN_MODEL_ZOO)
mkdir -p $(INSTALL_OPENVINO) $(INSTALL_PYTHON) $(INSTALL_OPENCV) $(INSTALL_OPEN_MODEL_ZOO)
sudo rm -rf $(TMP_DIR) ; sudo mkdir $(TMP_DIR) ; sudo chmod 777 -R $(TMP_DIR)
sudo mkdir -p $(SHARE_DIR)
sudo apt --assume-yes update && sudo apt --assume-yes install nfs-common
sudo mount -vvv -t nfs cinfsshare.file.core.windows.net:/cinfsshare/onnxtestdata $(SHARE_DIR) -o vers=4,minorversion=1,sec=sys
mkdir -p $(CCACHE_DIR)
displayName: 'Make directory'
mkdir -p $(OPENVINO_CCACHE_DIR)
mkdir -p $(OPENCV_CCACHE_DIR)
displayName: 'Make directories'
- checkout: self
clean: true
@@ -83,16 +100,25 @@ jobs:
- script: |
set -e
$(OPENVINO_REPO_DIR)/install_build_dependencies.sh
# Move into contrib install_build_dependencies.sh
sudo apt --assume-yes install scons crossbuild-essential-arm64 libprotoc-dev protobuf-compiler
# OpenCV should provide install_build_dependencies.sh as well
# Move into resources
git clone https://github.com/opencv/opencv.git --depth 1 $(OPENCV_REPO_DIR)
# Speed up build
wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip
unzip ninja-linux.zip
sudo cp -v ninja /usr/local/bin/
workingDirectory: $(WORK_DIR)
export CCACHE_DIR=$(OPENCV_CCACHE_DIR)
export CCACHE_TEMPDIR=$(TMP_DIR)/ccache
export CCACHE_BASEDIR=$(Pipeline.Workspace)
export CCACHE_MAXSIZE=50G
export USE_CCACHE=1
export PYTHON_ARM_VERSION=$(PYTHON_ARM_VERSION)
export NUM_PROC=$(NUM_PROC)
export BUILD_PYTHON=$(BUILD_PYTHON)
export WORK_DIR=$(WORK_DIR)
export INSTALL_PYTHON=$(INSTALL_PYTHON)
export BUILD_TYPE=$(BUILD_TYPE)
export OPENVINO_REPO_DIR=$(OPENVINO_REPO_DIR)
export INSTALL_OPENCV=$(INSTALL_OPENCV)
export PYTHON_EXEC=$(PYTHON_EXEC)
export OPENCV_REPO_DIR=$(OPENCV_REPO_DIR)
export BUILD_OPENCV=$(BUILD_OPENCV)
export INSTALL_OPENVINO=$(INSTALL_OPENVINO)
$(OPENVINO_CONTRIB_REPO_DIR)/modules/arm_plugin/scripts/install_build_dependencies.sh
workingDirectory: $(BUILD_OPENVINO)
displayName: 'Install dependencies'
- task: CMake@1
@@ -100,30 +126,21 @@ jobs:
cmakeArgs: >
-GNinja
-DVERBOSE_BUILD=ON
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
-DBUILD_LIST=imgcodecs,videoio,highgui
-DCMAKE_TOOLCHAIN_FILE=$(OPENCV_REPO_DIR)/platforms/linux/aarch64-gnu.toolchain.cmake
$(OPENCV_REPO_DIR)
workingDirectory: $(BUILD_DIR_OPENCV)
- script: ninja
workingDirectory: $(BUILD_DIR_OPENCV)
displayName: 'Build OpenCV Linux ARM64'
- script: ninja install
workingDirectory: $(BUILD_DIR_OPENCV)
displayName: 'Install OpenCV Linux ARM64'
- task: CMake@1
inputs:
cmakeArgs: >
-GNinja
-DVERBOSE_BUILD=ON
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
-DCMAKE_TOOLCHAIN_FILE=$(OPENVINO_REPO_DIR)/cmake/arm64.toolchain.cmake
-DOpenCV_DIR=$(BUILD_DIR_OPENCV)/install/lib/cmake/opencv4
-DOpenCV_DIR=$(INSTALL_OPENCV)/cmake
-DENABLE_OPENCV=OFF
-DPYTHON_INCLUDE_DIRS=$(INSTALL_PYTHON)/include/python3.8
-DPYTHON_LIBRARY=$(INSTALL_PYTHON)/lib/libpython3.8.so
-DENABLE_PYTHON=ON
-DPYTHON_MODULE_EXTENSION=".so"
-DENABLE_TESTS=ON
-DENABLE_FUNCTIONAL_TESTS=ON
-DENABLE_GAPI_TESTS=OFF
-DENABLE_GAPI_PREPROCESSING=OFF
-DENABLE_DATA=OFF
-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath-link,$(INSTALL_OPENCV)/lib
-DTHREADING=SEQ -DENABLE_LTO=ON
-DCMAKE_TOOLCHAIN_FILE=$(OPENVINO_REPO_DIR)/cmake/arm64.toolchain.cmake
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
-DENABLE_SAMPLES=ON
-DBUILD_java_api=OFF
-DENABLE_INTEL_MYRIAD=OFF
@@ -131,26 +148,102 @@ jobs:
-DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)/modules
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DARM_COMPUTE_SCONS_JOBS=$(NUM_PROC)
-DOUTPUT_ROOT=$(INSTALL_OPENVINO)
-DCMAKE_INSTALL_PREFIX=$(INSTALL_OPENVINO)
$(OPENVINO_REPO_DIR)
workingDirectory: $(BUILD_DIR)
- script: ls -alR $(OPENVINO_REPO_DIR)/temp/
displayName: 'List temp SDKs'
- script: ccache --zero-stats --max-size=50G --show-config
displayName: 'Clean ccache stats'
workingDirectory: $(BUILD_OPENVINO)
displayName: 'CMake OpenVINO ARM plugin'
- script: |
export CCACHE_DIR=$(CCACHE_DIR)
export CCACHE_DIR=$(OPENVINO_CCACHE_DIR)
export CCACHE_TEMPDIR=$(TMP_DIR)/ccache
export CCACHE_BASEDIR=$(Pipeline.Workspace)
export CCACHE_MAXSIZE=50G
export USE_CCACHE=1
ninja
workingDirectory: $(BUILD_DIR)
displayName: 'Build Linux ARM64'
workingDirectory: $(BUILD_OPENVINO)
displayName: 'Build OpenVINO ARM plugin'
- script: ccache --show-stats
displayName: 'Show ccache stats'
- script: ninja install
workingDirectory: $(BUILD_OPENVINO)
displayName: 'Install OpenVINO ARM plugin'
- script: ls -alR $(OPENVINO_REPO_DIR)/bin/
displayName: 'List binary files'
- task: CMake@1
inputs:
cmakeArgs: >
-GNinja
-DInferenceEngineDeveloperPackage_DIR=$(BUILD_OPENVINO)
-DENABLE_PYTHON=ON
-DPYTHON_EXECUTABLE=$(INSTALL_PYTHON)/bin/python3.8
-DPYTHON_INCLUDE_DIRS=$(INSTALL_PYTHON)/include/python3.8
-DPYTHON_LIBRARIES=$(INSTALL_PYTHON)/lib
-DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.8/site-packages/numpy/core/include
-DPYTHON_MODULE_EXTENSION=".so"
-DPYBIND11_FINDPYTHON=OFF
-DPYBIND11_NOPYTHON=OFF
-DPYTHONLIBS_FOUND=TRUE
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
-DENABLE_DATA=OFF
-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath-link,$(INSTALL_OPENCV)/lib
-DCMAKE_TOOLCHAIN_FILE=$(OPENVINO_REPO_DIR)/cmake/arm64.toolchain.cmake
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_INSTALL_PREFIX=$(INSTALL_OPENVINO)
$(OPENVINO_REPO_DIR)/src/bindings/python
workingDirectory: $(BUILD_OPENVINO_PYTHON)
displayName: 'CMake OpenVINO python binding'
- script: |
export CCACHE_DIR=$(OPENVINO_CCACHE_DIR)
export CCACHE_TEMPDIR=$(TMP_DIR)/ccache
export CCACHE_BASEDIR=$(Pipeline.Workspace)
export CCACHE_MAXSIZE=50G
export USE_CCACHE=1
ninja
workingDirectory: $(BUILD_OPENVINO_PYTHON)
displayName: 'Build OpenVINO python binding'
- script: ninja install
workingDirectory: $(BUILD_OPENVINO_PYTHON)
displayName: 'Install OpenVINO python binding'
- task: CMake@1
inputs:
cmakeArgs: >
-GNinja
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
-DENABLE_PYTHON=ON
-DPYTHON_EXECUTABLE=/usr/local/bin/python3.8
-DPYTHON_INCLUDE_DIR=$(INSTALL_PYTHON)/include/python3.8
-DPYTHON_LIBRARY=$(INSTALL_PYTHON)/lib
-DCMAKE_TOOLCHAIN_FILE=$(OPENVINO_REPO_DIR)/cmake/arm64.toolchain.cmake
-DOpenVINO_DIR=$(BUILD_OPENVINO)
-DInferenceEngine_DIR=$(BUILD_OPENVINO)
-DOpenCV_DIR=$(INSTALL_OPENCV)/cmake
-Dngraph_DIR=$(BUILD_OPENVINO)
-DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)/modules
-DCMAKE_INSTALL_PREFIX=$(INSTALL_OPEN_MODEL_ZOO)
$(OPENVINO_REPO_DIR)/thirdparty/open_model_zoo/demos
workingDirectory: $(BUILD_OPEN_MODEL_ZOO)
displayName: 'CMake Open Model Zoo demos'
- script: ninja
workingDirectory: $(BUILD_OPEN_MODEL_ZOO)
displayName: 'Build Open Model Zoo demos'
- script: ninja install
workingDirectory: $(BUILD_OPEN_MODEL_ZOO)
displayName: 'Install Open Model Zoo demos'
- script: |
cp -r $(BUILD_OPEN_MODEL_ZOO)/$(OPENVINO_ARCH)/$(BUILD_TYPE)/* $(INSTALL_OPEN_MODEL_ZOO)/
zip -9 -r $(Build.ArtifactStagingDirectory)/openvino_$(OPENVINO_ARCH)_linux.zip ./*
workingDirectory: $(INSTALL_OPENVINO)
displayName: 'Create OpenVINO ARM64 linux package'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: 'openvino_aarch64_linux'
displayName: 'Publish OpenVINO AArch64 linux package'

View File

@@ -4,6 +4,7 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
jobs:
- job: Lin

View File

@@ -4,6 +4,7 @@
# type: github
# endpoint: openvinotoolkit
# name: openvinotoolkit/testdata
# ref: master
jobs:
- job: Lin_lohika

View File

@@ -13,11 +13,13 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
- repository: testdata
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/testdata
ref: master
jobs:
- job: Mac
@@ -99,7 +101,7 @@ jobs:
export PATH="/usr/local/opt/cython/bin:$PATH"
export CC=gcc
export CXX=g++
cmake -GNinja -DVERBOSE_BUILD=ON -DENABLE_REQUIREMENTS_INSTALL=OFF -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_PYTHON=ON -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)/modules -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache $(REPO_DIR)
cmake -GNinja -DVERBOSE_BUILD=ON -DENABLE_REQUIREMENTS_INSTALL=OFF -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_PYTHON=ON -DENABLE_TESTS=OFF -DENABLE_STRICT_DEPENDENCIES=OFF -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)/modules -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache $(REPO_DIR)
workingDirectory: $(BUILD_DIR)
displayName: 'CMake'
@@ -150,39 +152,52 @@ jobs:
- script: ls -alR $(INSTALL_DIR)
displayName: 'List install files'
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-backend_api.config_unsupported:*IE_GPU*:IE_CPU.onnx_model_sigmoid:IE_CPU/GRUSequenceOp.onnx_model_gru* --gtest_output=xml:TEST-NGraphUT.xml
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-backend_api.config_unsupported:*IE_GPU* --gtest_output=xml:TEST-NGraphUT.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'OV Core UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/onnx_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:IE_CPU.onnx_model_sigmoid:IE_CPU/GRUSequenceOp.onnx_model_gru* --gtest_output=xml:TEST-ONNXImportUT.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'ONNX Frontend UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/InferenceEngineUnitTests --gtest_print_time=1 --gtest_filter=-MKLDNNGraphStructureTests.TestNoRedundantReordersBeforeDWConvolution:TestConvolution/MKLDNNGraphConvolutionTests.TestsConvolution/0:TestConvolutionDefaultPrimitivesPriority/MKLDNNGraphConvolutionTests.TestsConvolution/0 --gtest_output=xml:TEST-InferenceEngineUnitTests.xml
displayName: 'IE UT old'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ieUnitTests --gtest_output=xml:TEST-ieUnitTests.xml
displayName: 'IE UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/cpuUnitTests --gtest_output=xml:TEST-cpuUnitTests.xml
displayName: 'CPU UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/vpuUnitTests --gtest_output=xml:TEST-vpuUnitTests.xml
displayName: 'VPU UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/onnxImporterUnitTests --gtest_output=xml:TEST-onnxImporterUnitTests.xml
displayName: 'ONNX Importer UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ieMultiPluginUnitTests --gtest_output=xml:TEST-ieMultiPluginUnitTests.xml
displayName: 'MULTI UT'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/ieFuncTests --gtest_output=xml:TEST-ieFuncTests.xml
displayName: 'IE FuncTests'
continueOnError: false
enabled: false
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/cpuFuncTests --gtest_filter=*smoke*:-smoke_LPT/ReduceMinTransformation.CompareWithRefImpl/f32_Shape* --gtest_print_time=1 --gtest_output=xml:TEST-cpuFuncTests.xml
displayName: 'CPU FuncTests'
@@ -195,6 +210,15 @@ jobs:
. $(SETUPVARS) && $(INSTALL_TEST_DIR)/InferenceEngineCAPITests --gtest_output=xml:TEST-InferenceEngineCAPITests.xml
displayName: 'IE CAPITests'
continueOnError: false
enabled: false
- script: |
export DATA_PATH=$(MODELS_PATH)
export MODELS_PATH=$(MODELS_PATH)
. $(SETUPVARS) && $(INSTALL_TEST_DIR)/OpenVinoCAPITests --gtest_output=xml:TEST-OpenVinoCAPITests.xml
displayName: 'IE CAPITests'
continueOnError: false
enabled: false
- task: PublishTestResults@2
condition: always()

View File

@@ -13,11 +13,13 @@ resources:
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/openvino_contrib
ref: master
- repository: testdata
type: github
endpoint: openvinotoolkit
name: openvinotoolkit/testdata
ref: master
jobs:
- job: Win
@@ -30,7 +32,7 @@ jobs:
maxParallel: 2
# About 150% of total time
timeoutInMinutes: 150
timeoutInMinutes: 270 #Temporary change
pool:
name: WIN_VMSS_VENV_D8S_WU2
@@ -133,7 +135,7 @@ jobs:
- script: |
set PATH=$(WORK_DIR)\ninja-win;%PATH%
call "$(MSVS_VARS_PATH)" && $(CMAKE_CMD) -G "Ninja Multi-Config" -DENABLE_WHEEL=ON -DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GAPI_PREPROCESSING=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DPYTHON_INCLUDE_DIR="C:\hostedtoolcache\windows\Python\3.7.6\x64\include" -DPYTHON_LIBRARY="C:\hostedtoolcache\windows\Python\3.7.6\x64\libs\python37.lib" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
call "$(MSVS_VARS_PATH)" && $(CMAKE_CMD) -G "Ninja Multi-Config" -DENABLE_WHEEL=ON -DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DPYTHON_INCLUDE_DIR="C:\hostedtoolcache\windows\Python\3.7.6\x64\include" -DPYTHON_LIBRARY="C:\hostedtoolcache\windows\Python\3.7.6\x64\libs\python37.lib" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
workingDirectory: $(BUILD_DIR)
displayName: 'CMake'
@@ -167,13 +169,6 @@ jobs:
workingDirectory: $(BUILD_SAMPLES_TESTS_DIR)
displayName: 'Install Samples Tests'
- script: $(CMAKE_CMD) -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCOMPONENT=tests -P cmake_install.cmake && xcopy $(REPO_DIR)\temp\opencv_4.5.2\opencv\* $(INSTALL_DIR)\opencv\ /e /h /y
workingDirectory: $(BUILD_DIR)
displayName: 'Install tests'
- script: dir $(INSTALL_DIR) /s
displayName: 'List install files'
- script: $(INSTALL_DIR)\samples\cpp\build_samples_msvc.bat -i $(INSTALL_DIR)
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build cpp samples'
@@ -198,9 +193,15 @@ jobs:
python -m pytest $(INSTALL_DIR)\tests\smoke_tests\ --env_conf $(INSTALL_DIR)\tests\smoke_tests\env_config.yml -s --junitxml=TEST-SamplesSmokeTests.xml
workingDirectory: $(INSTALL_DIR)
displayName: 'Samples Smoke Tests'
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
continueOnError: false
- script: $(CMAKE_CMD) -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCOMPONENT=tests -P cmake_install.cmake && xcopy $(REPO_DIR)\temp\opencv_4.5.2\opencv\* $(INSTALL_DIR)\opencv\ /e /h /y
workingDirectory: $(BUILD_DIR)
displayName: 'Install tests'
- script: dir $(INSTALL_DIR) /s
displayName: 'List install files'
- script: rd /Q /S $(BUILD_DIR)
displayName: 'Clean build dir'
continueOnError: false
@@ -210,10 +211,20 @@ jobs:
displayName: 'OV Core UT'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\onnx_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* --gtest_output=xml:TEST-ONNXImportUT.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'ONNX Frontend UT'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\paddle_tests --gtest_print_time=1 --gtest_output=xml:TEST-Paddle.xml
displayName: 'Paddle Frontend UT'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\onnx_frontend_tests --gtest_print_time=1 --gtest_output=xml:TEST-ONNX.xml
workingDirectory: $(INSTALL_TEST_DIR)
displayName: 'ONNX Frontend UT'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\tensorflow_tests --gtest_print_time=1 --gtest_output=xml:TEST-Tensorflow.xml
displayName: 'Tensorflow Frontend UT'
continueOnError: false
@@ -240,6 +251,10 @@ jobs:
displayName: 'VPU UT'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\XLinkTests --gtest_output=xml:TEST-XLinkTests.xml
displayName: 'XLink Tests'
continueOnError: false
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\onnxImporterUnitTests --gtest_output=xml:TEST-onnxImporterUnitTests.xml
displayName: 'ONNX Importer UT'
continueOnError: false
@@ -270,6 +285,13 @@ jobs:
displayName: 'IE CAPITests'
continueOnError: false
- script: |
set DATA_PATH=$(MODELS_PATH)
set MODELS_PATH=$(MODELS_PATH)
call $(SETUPVARS) && $(INSTALL_TEST_DIR)\OpenVinoCAPITests --gtest_output=xml:TEST-OpenVinoCAPITests.xml
displayName: 'OV CAPITests'
continueOnError: false
- task: PublishTestResults@2
condition: always()
inputs:

View File

@@ -1,213 +0,0 @@
// Copyright (C) 2018-2020 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
DOCKER_CONTAINER_NAME= "openvino-onnx-ci-container"
DOCKER_IMAGE_TAG = "openvino-onnx-ci-image"
ONNX_MODEL_ZOO_SHA = "d58213534f2a4d1c4b19ba62b3bb5f544353256e"
BACKEND_CONFIGURATIONS = [
[ name: "Release", build_type: "Release" ],
[ name: "Debug", build_type: "Debug" ],
]
// workaround for aborting previous builds on PR update
@NonCPS
def stopPreviousRunningBuilds() {
def jobname = env.JOB_NAME
if (jobname.startsWith("onnx-ci/openvino onnx ci/openvino/PR")){
def buildnum = env.BUILD_NUMBER.toInteger()
def job = Jenkins.instance.getItemByFullName(jobname)
def job_newest = job.builds.first()
for (build in job.builds.reverse()[0..<-1]) {
if (build.isBuilding()){
echo "Stop task = ${build} because newest #${job_newest} is on the way"
build.doStop();
continue;
}
}
}
}
def getGitPrInfo(String project, String workdir) {
def gitPrInfo = [
prAuthorEmail : "",
commitAuthorEmail : "",
commitHash : "",
commitSubject : ""
]
try {
dir ("${workdir}/${project}") {
gitPrInfo.prAuthorEmail = sh (script: 'git log -1 --pretty="format:%ae" ', returnStdout: true).trim()
gitPrInfo.commitAuthorEmail = sh (script: 'git log -1 --pretty="format:%ce" ', returnStdout: true).trim()
gitPrInfo.commitSubject = sh (script: 'git log -1 --pretty="format:%H" ', returnStdout: true).trim()
gitPrInfo.commitHash = sh (script: 'git log -1 --pretty="format:%s" ', returnStdout: true).trim()
}
}
catch(e) {
echo "Failed to retrieve ${project} git repository information!"
echo "ERROR: ${e}"
}
return gitPrInfo
}
def notifyByEmail(def gitPrInfo) {
stage('Notify') {
String notifyPeople = "${gitPrInfo.prAuthorEmail}, ${gitPrInfo.commitAuthorEmail}"
emailext (
subject: "OpenVino CI: PR ${CHANGE_ID} ${currentBuild.result}!",
body: """
Status: ${currentBuild.result}
Pull Request Title: ${CHANGE_TITLE}
Pull Request: ${CHANGE_URL}
Branch: ${CHANGE_BRANCH}
Commit Hash: ${gitPrInfo.commitSubject}
Commit Subject: ${gitPrInfo.commitHash}
Jenkins Build: ${RUN_DISPLAY_URL}
""",
to: "${notifyPeople}"
)
}
}
def gitSubmoduleUpdate(String repository_name, String workdir) {
dir ("${workdir}/${repository_name}") {
sh label: "Init ${repository_name} submodules",
script:
"""
git submodule init && git submodule update \
--init \
--no-fetch \
--recursive
"""
}
}
def prepare_repository(String workdir) {
dir("${workdir}") {
println "Preparing repository in directory: ${workdir}"
checkout scm
gitSubmoduleUpdate(PROJECT_NAME, workdir)
}
}
def updateModels() {
sh """
./src/bindings/python/tests/test_onnx/model_zoo_preprocess.sh -d ${HOME}/ONNX_CI/models_data -o -s ${ONNX_MODEL_ZOO_SHA}
"""
}
def get_docker_container_name(Map configuration){
println "RUN get_docker_container_name for ${configuration.name}"
String docker_container_name = "${DOCKER_CONTAINER_NAME}_${BUILD_NUMBER}_${env.CHANGE_ID}_${configuration.name}"
return docker_container_name
}
def buildDockerImage(Map configuration, String workdir) {
String docker_image_tag = "${DOCKER_IMAGE_TAG}_${BUILD_NUMBER}_${env.CHANGE_ID}_${configuration.name}".toLowerCase()
println "docker_image_tag: ${docker_image_tag}"
updateModels()
sh """
docker build --tag=${docker_image_tag} \
--build-arg BUILD_TYPE=${configuration.build_type} \
--file=.ci/openvino-onnx/Dockerfile \
--build-arg http_proxy=${HTTP_PROXY} \
--build-arg https_proxy=${HTTPS_PROXY} .
"""
}
def runTests(Map configuration, String workdir) {
println "Run tests for ${configuration.name}"
String docker_image_tag = "${DOCKER_IMAGE_TAG}_${BUILD_NUMBER}_${env.CHANGE_ID}_${configuration.name}".toLowerCase()
String docker_container_name = get_docker_container_name(configuration)
// Run only basic unit tests in Debug configuration
if (configuration.build_type == "Debug") {
sh """
docker run --name ${docker_container_name} ${docker_image_tag}
"""
}
// Run unit-tests AND large model tests by default
else {
sh """
docker run --name ${docker_container_name} \
--volume ${HOME}/ONNX_CI/models_data/model_zoo/onnx_model_zoo_${ONNX_MODEL_ZOO_SHA}:/root/.onnx/model_zoo/onnx_model_zoo \
--volume ${HOME}/ONNX_CI/data/model_zoo/MSFT:/root/.onnx/model_zoo/MSFT \
${docker_image_tag} /bin/bash -c "tox && tox -e zoo_models"
"""
}
}
def getConfigurationsMap() {
def configurationsMap = [:]
for (backend in BACKEND_CONFIGURATIONS) {
def configuration = backend.clone()
configurationsMap[configuration.name] = {
stage(configuration.name) { CONFIGURATION_WORKFLOW(configuration) }
}
}
return configurationsMap
}
CONFIGURATION_WORKFLOW = { configuration ->
node("OpenVINO") {
String workdir = "${HOME}/workspace/${BUILD_NUMBER}_${env.CHANGE_ID}_${configuration.name}"
try {
PROJECT_NAME = "openvino"
stage("Clone repository") {
prepare_repository(workdir)
}
stage("Prepare Docker environment") {
dir("${workdir}") {
buildDockerImage(configuration, workdir)
}
}
stage("Run tests") {
timeout(time: 60, unit: 'MINUTES') {
runTests(configuration, workdir)
}
}
}
catch(e) {
// Set result to ABORTED if exception contains exit code of a process interrupted by SIGTERM
if ("$e".contains("143")) {
currentBuild.result = "ABORTED"
} else {
currentBuild.result = "FAILURE"
}
def gitPrInfo = getGitPrInfo(PROJECT_NAME, workdir)
notifyByEmail(gitPrInfo)
}
finally {
stage("Cleanup") {
String docker_container_name = get_docker_container_name(configuration)
sh """
docker rm -f ${docker_container_name}
rm -rf ${workdir}
"""
}
}
}
}
pipeline {
agent none
options {
skipDefaultCheckout true
timeout(activity: true, time: 120, unit: 'MINUTES')
}
stages {
stage('Parallel CI') {
steps {
stopPreviousRunningBuilds()
script {
parallelStagesMap = getConfigurationsMap()
parallel parallelStagesMap
}
}
}
}
}

View File

@@ -1,65 +0,0 @@
// Copyright (C) 2018-2020 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
timeout(30)
{
node(LABEL) {
BUILD_WORKSPACE = "$WORKSPACE/$BUILD_NUMBER"
WATCHDOG_ROOT = "$BUILD_WORKSPACE/.ci/openvino-onnx/watchdog"
VENV_PATH = "${BUILD_WORKSPACE}/.wdvenv"
try {
stage("Clone repository") {
dir ("$BUILD_WORKSPACE") {
checkout([$class: 'GitSCM', branches: [[name: "*/$BRANCH"]],
doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', timeout: 30]], submoduleCfg: [],
userRemoteConfigs: [[credentialsId: "${GITHUB_KEY}", url: "${OPEN_VINO_URL}"]]])
}
}
stage("Prepare environment") {
sh """#!/bin/bash
if [ ! -d ${VENV_PATH} ]; then
python3 -m venv ${VENV_PATH}
source ${VENV_PATH}/bin/activate
pip install -r ${WATCHDOG_ROOT}/requirements.txt
fi
"""
}
stage("Run script") {
withCredentials([
usernamePassword(credentialsId: '7157091e-bc04-42f0-99fd-dc4da2922a55',
usernameVariable: 'username',
passwordVariable: 'password')])
{
dir ("$BUILD_WORKSPACE") {
sh """#!/bin/bash
source ${VENV_PATH}/bin/activate
export PYTHONHTTPSVERIFY=0
python ${WATCHDOG_ROOT}/src/main.py \
--msteams-url=${MSTEAMS_URL_FILE} \
--github-credentials '${username}' '${password}' \
--github-org=${GITHUB_ORG} \
--github-project=${GITHUB_PROJECT} \
--jenkins-token=${JENKINS_TOKEN_FILE} \
--jenkins-server=${JENKINS_SERVER} \
--jenkins-user=${JENKINS_USER} \
--ci-job=${CI_JOB_NAME} \
--watchdog-job=${WATCHDOG_JOB_NAME}
"""
}
}
}
} catch (e) {
echo "$e"
currentBuild.result = "FAILURE"
} finally {
stage("Cleanup") {
sh """
cd $BUILD_WORKSPACE
rm -rf ..?* .[!.]* *
"""
}
}
}
}

View File

@@ -1,6 +0,0 @@
python-jenkins==1.7.0
retrying==1.3.3
pygithub==1.51
timeout-decorator==0.4.1
requests==2.23.0
wheel

View File

@@ -1,108 +0,0 @@
#!/usr/bin/python3
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import logging
import timeout_decorator
from datetime import datetime
from retrying import retry
from github import Github, GithubException
# Logging
logging.basicConfig(format='%(name)s - %(levelname)s - %(message)s')
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
_RETRY_LIMIT = 3
_RETRY_COOLDOWN_MS = 2000
_REQUEST_TIMEOUT_S = 10
class GitWrapper:
"""Class wrapping PyGithub API.
The purpose of this class is to wrap methods from PyGithub API used in Watchdog, for less error-prone and
more convenient use. Docs for used API, including wrapped methods can be found at:
https://pygithub.readthedocs.io/en/latest/introduction.html
:param github_credentials: Credentials used for GitHub
:param repository: GitHub repository name
:param project: GitHub project name
:type github_credentials: String
:type repository: String
:type project: String
"""
def __init__(self, github_credentials, repository, project):
self.git = Github(*github_credentials)
self.repository = repository
self.project = project
self.github_credentials = github_credentials
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_git_time(self):
"""Retrieve time from GitHub.
Used to reliably determine time during Watchdog run.
:return: Datetime object describing current time
:rtype: datetime
"""
try:
datetime_object = self._get_git_time()
except ValueError as e:
raise GitWrapperError(str(e))
except GithubException as e:
message = 'GitHub Exception during API status retrieval. Exception: {}'.format(str(e))
raise GitWrapperError(message)
except timeout_decorator.TimeoutError:
message = 'GitHub Exception during API status retrieval. Timeout during API request.'
raise GitWrapperError(message)
return datetime_object
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_pull_requests(self):
"""Retrieve paginated list of pull requests from GitHub.
:return: Paginated list of Pull Requests in GitHub repo
:rtype: github.PaginatedList.PaginatedList of github.PullRequest.PullRequest
"""
try:
prs = self._get_pull_requests()
except GithubException as e:
message = 'GitHub Exception during API status retrieval. Exception: {}'.format(str(e))
raise GitWrapperError(message)
return prs
@timeout_decorator.timeout(_REQUEST_TIMEOUT_S)
def _get_git_time(self):
"""Private method retrieving time from GitHub.
:return: Datetime object describing current time
:rtype: datetime
"""
datetime_string = self.git.get_api_status().raw_headers.get('date', '')
datetime_format = '%a, %d %b %Y %H:%M:%S %Z'
datetime_object = datetime.strptime(datetime_string, datetime_format)
return datetime_object
@timeout_decorator.timeout(_REQUEST_TIMEOUT_S)
def _get_pull_requests(self):
"""Private method retrieving pull requests from GitHub.
:return: Paginated list of Pull Requests in GitHub repo
:rtype: github.PaginatedList.PaginatedList of github.PullRequest.PullRequest
"""
return self.git.get_organization(self.repository).get_repo(self.project).get_pulls()
class GitWrapperError(Exception):
"""Base class for exceptions raised in GitWrapper.
:param message Explanation of the error
"""
def __init__(self, message):
self.message = message
log.exception(message)

View File

@@ -1,91 +0,0 @@
#!/usr/bin/python3
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import requests
import jenkins
import logging
from retrying import retry
# Logging
logging.basicConfig(format='%(name)s - %(levelname)s - %(message)s')
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
_RETRY_LIMIT = 3
_RETRY_COOLDOWN_MS = 5000
class JenkinsWrapper:
"""Class wrapping Python-Jenkins API.
The purpose of this class is to wrap methods from Python-Jenkins API used in Watchdog, for less error-prone and
more convenient use. Docs for used API, including wrapped methods can be found at:
https://python-jenkins.readthedocs.io/en/latest/
:param jenkins_token: Token used for Jenkins
:param jenkins_user: Username used to connect to Jenkins
:param jenkins_server: Jenkins server address
:type jenkins_token: String
:type jenkins_user: String
:type jenkins_server: String
"""
def __init__(self, jenkins_token, jenkins_user, jenkins_server):
self.jenkins_server = jenkins_server
self.jenkins = jenkins.Jenkins(jenkins_server, username=jenkins_user,
password=jenkins_token)
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_build_console_output(self, job_name, build_number):
return self.jenkins.get_build_console_output(job_name, build_number)
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_job_info(self, job_name):
return self.jenkins.get_job_info(job_name)
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_build_info(self, job_name, build_number):
return self.jenkins.get_build_info(job_name, build_number)
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_queue_item(self, queue_id):
"""Attempt to retrieve Jenkins job queue item.
Exception communicating queue doesn't exist is expected,
in that case method returns empty dict.
:param queue_id: Jenkins job queue ID number
:type queue_id: int
:return: Dictionary representing Jenkins job queue item
:rtype: dict
"""
try:
return self.jenkins.get_queue_item(queue_id)
except Exception as e:
# Exception 'queue does not exist' is expected behaviour when job is running
if 'queue' in str(e) and 'does not exist' in str(e):
return {}
else:
raise
@retry(stop_max_attempt_number=_RETRY_LIMIT, wait_fixed=_RETRY_COOLDOWN_MS)
def get_idle_ci_hosts(self):
"""Query Jenkins for idle servers.
Send GET request to Jenkins server, querying for idle servers labeled
for OpenVino-ONNX CI job.
:return: Number of idle hosts delegated to OpenVino-ONNX CI
:rtype: int
"""
jenkins_request_url = self.jenkins_server + 'label/ci&&onnx/api/json?pretty=true'
try:
log.info('Sending request to Jenkins: %s', jenkins_request_url)
r = requests.Request(method='GET', url=jenkins_request_url, verify=False)
response = self.jenkins.jenkins_request(r).json()
return int(response['totalExecutors']) - int(response['busyExecutors'])
except Exception as e:
log.exception('Failed to send request to Jenkins!\nException message: %s', str(e))
raise

View File

@@ -1,89 +0,0 @@
#!/usr/bin/python3
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import argparse
import sys
from watchdog import Watchdog
DEFAULT_MSTEAMS_URL_FILE = '/home/lab_nerval/tokens/msteams_url'
DEFAULT_GITHUB_ORGANIZATION = 'openvinotoolkit'
DEFAULT_GITHUB_PROJECT = 'openvino'
DEFAULT_JENKINS_TOKEN_FILE = '/home/lab_nerval/tokens/crackerjack'
DEFAULT_JENKINS_SERVER = 'https://crackerjack.intel.com/'
DEFAULT_JENKINS_USER = 'lab_nerval'
DEFAULT_CI_JOB_NAME = 'onnx/OpenVino_CI'
DEFAULT_WATCHDOG_JOB_NAME = 'onnx/ci_watchdog'
def main(args):
"""
Read args passed to script, load tokens and run watchdog.
Keyword arguments:
:param args: arguments parsed by argparse ArgumentParser
:return: returns status code 0 on successful completion
"""
jenkins_server = args.jenkins_server.strip()
jenkins_user = args.jenkins_user.strip()
jenkins_token = open(args.jenkins_token).read().replace('\n', '').strip()
msteams_url = open(args.msteams_url).read().replace('\n', '').strip()
github_credentials = args.github_credentials
github_org = args.github_org
github_project = args.github_project
ci_job = args.ci_job.strip()
watchdog_job = args.watchdog_job.strip()
quiet = args.quiet
wd = Watchdog(jenkins_token=jenkins_token,
jenkins_server=jenkins_server,
jenkins_user=jenkins_user,
github_credentials=github_credentials,
git_org=github_org,
git_project=github_project,
msteams_url=msteams_url,
ci_job_name=ci_job,
watchdog_job_name=watchdog_job)
wd.run(quiet=quiet)
return 0
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--msteams-url', help='Path to MS Teams channel url to communicate messages.',
default=DEFAULT_MSTEAMS_URL_FILE, action='store', required=False)
parser.add_argument('--github-credentials', help='GitHub user credentials to access repo.',
nargs="+", required=True)
parser.add_argument('--github-org', help='Name of organization on GitHub.',
default=DEFAULT_GITHUB_ORGANIZATION, action='store', required=False)
parser.add_argument('--github-project', help='Name of project on GitHub.',
default=DEFAULT_GITHUB_PROJECT, action='store', required=False)
parser.add_argument('--jenkins-token', help='Path to Jenkins user token to access build info.',
default=DEFAULT_JENKINS_TOKEN_FILE, action='store', required=False)
parser.add_argument('--jenkins-server', help='Jenkins server address.',
default=DEFAULT_JENKINS_SERVER, action='store', required=False)
parser.add_argument('--jenkins-user', help='Jenkins user used to log in.',
default=DEFAULT_JENKINS_USER, action='store', required=False)
parser.add_argument('--ci-job', help='Jenkins CI job name.',
default=DEFAULT_CI_JOB_NAME, action='store', required=False)
parser.add_argument('--watchdog-job', help='Jenkins CI Watchdog job name.',
default=DEFAULT_WATCHDOG_JOB_NAME, action='store', required=False)
parser.add_argument('--quiet', help="Quiet mode - doesn\'t send message to communicator.",
action='store_true', required=False)
args = parser.parse_args()
sys.exit(main(args))

View File

@@ -1,128 +0,0 @@
#!/usr/bin/python3
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import requests
class MSTeamsCommunicator:
"""Class communicating with MSTeams using Incoming Webhook.
The purpose of this class is to use MSTeams API to send message.
Docs for used API, including wrapped methods can be found at:
https://docs.microsoft.com/en-us/outlook/actionable-messages/send-via-connectors
"""
def __init__(self, _ci_alerts_channel_url):
self._ci_alerts_channel_url = _ci_alerts_channel_url
self._queued_messages = {
self._ci_alerts_channel_url: [],
}
@property
def messages(self):
"""
Get list of queued messages.
:return: List of queued messages
:return type: List[String]
"""
return self._queued_messages.values()
def queue_message(self, message):
"""
Queue message to be sent later.
:param message: Message content
:type message: String
"""
self._queued_messages[self._ci_alerts_channel_url].append(message)
def _parse_text(self, watchdog_log, message):
"""
Parse text to display as alert.
:param watchdog_log: Watchdog log content
:param message: Unparsed message content
:type watchdog_log: String
:type message: String
"""
message_split = message.split('\n')
log_url = None
if len(message_split) == 3:
log_url = message_split[-1]
title = message_split[0]
text = message_split[1]
header = watchdog_log.split(' - ')
header_formatted = '{} - [Watchdog Log]({})'.format(header[0], header[1])
return title, log_url, '{}\n\n{}'.format(header_formatted, text)
def _json_request_content(self, title, log_url, text_formatted):
"""
Create final json request to send message to MS Teams channel.
:param title: Title of alert
:param log_url: URL to PR
:param text_formatted: General content of alert - finally formatted
:type title: String
:type title: String
:type title: String
"""
data = {
'@context': 'https://schema.org/extensions',
'@type': 'MessageCard',
'themeColor': '0072C6',
'title': title,
'text': text_formatted,
'potentialAction':
[
{
'@type': 'OpenUri',
'name': 'Open PR',
'targets':
[
{
'os': 'default',
'uri': log_url,
},
],
},
],
}
return data
def _send_to_channel(self, watchdog_log, message_queue, channel_url):
"""
Send MSTeams message to specified channel.
:param watchdog_log: Watchdog log content
:param message_queue: Queued messages to send
:param channel_url: Channel url
:type watchdog_log: String
:type message_queue: String
:type channel_url: String
"""
for message in message_queue:
title, log_url, text_formatted = self._parse_text(watchdog_log, message)
data = self._json_request_content(title, log_url, text_formatted)
try:
requests.post(url=channel_url, json=data)
except Exception as ex:
raise Exception('!!CRITICAL!! MSTeamsCommunicator: Could not send message '
'due to {}'.format(ex))
def send_message(self, watchdog_log, quiet=False):
"""
Send queued messages as single communication.
:param watchdog_log: Watchdog log content
:param quiet: Flag for disabling sending report through MS Teams
:type watchdog_log: String
:type quiet: Boolean
"""
for channel, message_queue in self._queued_messages.items():
if not quiet and message_queue:
self._send_to_channel(watchdog_log, message_queue, channel)

View File

@@ -1,505 +0,0 @@
#!/usr/bin/python3
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
import datetime
import time
import re
import logging
import requests
from ms_teams_communicator import MSTeamsCommunicator
from jenkins_wrapper import JenkinsWrapper
from jenkins import NotFoundException
from git_wrapper import GitWrapper, GitWrapperError
import os
import json
# Logging
logging.basicConfig(format='%(name)s - %(levelname)s - %(message)s')
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
# Watchdog static constant variables
_SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
_BUILD_DURATION_THRESHOLD = datetime.timedelta(minutes=60)
_CI_START_THRESHOLD = datetime.timedelta(minutes=30)
_AWAITING_JENKINS_THRESHOLD = datetime.timedelta(minutes=5)
_WATCHDOG_DIR = os.path.expanduser('~')
_PR_REPORTS_CONFIG_KEY = 'pr_reports'
_CI_BUILD_FAIL_MESSAGE = 'ERROR: py3: commands failed'
_CI_BUILD_SUCCESS_MESSAGE = 'py3: commands succeeded'
_GITHUB_CI_CHECK_NAME = 'OpenVINO-ONNX'
INTERNAL_ERROR_MESSAGE_HEADER = '!!! --- !!! INTERNAL WATCHDOG ERROR !!! --- !!!'
ERROR_MESSAGE_HEADER = '!!! OpenVino-ONNX CI Error !!!'
WARNING_MESSAGE_HEADER = 'OpenVino-ONNX CI WARNING'
INFO_MESSAGE_HEADER = 'OpenVino-ONNX CI INFO'
class Watchdog:
"""Class describing OpenVino-ONNX-CI Watchdog.
Watchdog connects to GitHub and retrieves the list of current pull requests (PRs) in
OpenVino repository. Then it connects to specified Jenkins server to
check CI jobs associated with every PR. Watchdog verifies time durations for Jenkins
initial response, job queue and execution against time treshold constants. Every fail
is logged and reported through MS Teams communicators.
:param jenkins_token: Token used for Jenkins
:param jenkins_server: Jenkins server address
:param jenkins_user: Username used to connect to Jenkins
:param github_credentials: Credentials used to connect to GitHub
:param msteams_url: URL used to connect to MS Teams channel
:param ci_job_name: OpenVino-ONNX CI job name used in Jenkins
:param watchdog_job_name: Watchdog job name used in Jenkins
:type jenkins_token: String
:type jenkins_server: String
:type jenkins_user: String
:type github_credentials: String
:type msteams_url: String
:type ci_job_name: String
:type watchdog_job_name: String
.. note::
Watchdog and OpenVino-ONNX CI job must be placed on the same Jenkins server.
"""
def __init__(self, jenkins_token, jenkins_server, jenkins_user, github_credentials, git_org,
git_project, msteams_url, ci_job_name, watchdog_job_name):
self._config_path = os.path.join(_WATCHDOG_DIR, '{}/.{}_ci_watchdog.json'.format(_WATCHDOG_DIR, git_project))
# Jenkins Wrapper object for CI job
self._jenkins = JenkinsWrapper(jenkins_token,
jenkins_user=jenkins_user,
jenkins_server=jenkins_server)
# Load GitHub token and log in, retrieve pull requests
self._git = GitWrapper(github_credentials, repository=git_org, project=git_project)
# Create MS Teams api object
self._msteams_hook = MSTeamsCommunicator(msteams_url)
self._ci_job_name = ci_job_name.lower()
self._watchdog_job_name = watchdog_job_name
# Read config file
self._config = self._read_config_file()
# Time at Watchdog initiation
self._now_time = datetime.datetime.now()
self._current_prs = {}
self._ms_teams_enabled = True
def run(self, quiet=False):
"""Run main watchdog logic.
Retrieve list of pull requests and pass it to the method responsible for checking them.
:param quiet: Flag for disabling sending report through communicator
:type quiet: Boolean
"""
try:
pull_requests = self._git.get_pull_requests()
except GitWrapperError:
message = 'Failed to retrieve Pull Requests!'
log.exception(message)
self._queue_message(message, message_severity='internal')
# Check all pull requests
for pr in pull_requests:
try:
self._check_pr(pr)
except Exception as e:
log.exception(str(e))
self._queue_message(str(e), message_severity='internal', pr=pr)
self._update_config()
self._send_message(quiet=quiet)
def _read_config_file(self):
"""Read Watchdog config file stored on the system.
The file stores every fail already reported along with timestamp. This
mechanism is used to prevent Watchdog from reporting same failure
multiple times. In case there's no config under the expected path,
appropriate data structure is created and returned.
:return: Returns dict of dicts with reported fails with their timestamps
:rtype: dict of dicts
"""
if os.path.isfile(self._config_path):
log.info('Reading config file in: {}'.format(self._config_path))
file = open(self._config_path, 'r')
data = json.load(file)
else:
log.info('No config file found in: {}'.format(self._config_path))
data = {_PR_REPORTS_CONFIG_KEY: {}}
return data
def _check_pr(self, pr):
"""Check pull request (if there's no reason to skip).
Retrieve list of statuses for every PR's last commit and interpret them. Filters out statuses
unrelated to OpenVino-ONNX Jenkins CI and passes relevant statuses to method that interprets them.
If no commit statuses related to Jenkins are available after time defined by
**_AWAITING_JENKINS_THRESHOLD** calls appropriate method to check for builds waiting in queue.
:param pr: GitHub Pull Requests
:type pr: github.PullRequest.PullRequest
"""
log.info('===============================================')
log.info('Checking PR#{}'.format(pr.number))
# Get last Jenkins status
last_status = self._get_last_status(pr)
# Append PR checked in current run for Watchdog config
self._current_prs[str(pr.number)] = self._get_pr_timestamps(pr, last_status)
if self._should_ignore(pr) or self._updated_since_last_run(pr):
log.info('Ignoring PR#{}'.format(pr.number))
return
# Calculate time passed since PR update (any commit, merge or comment)
pr_time_delta = self._now_time - pr.updated_at
if last_status:
# Interpret found CI statuses
log.info('Last status: {} at {}'.format(last_status.description, last_status.updated_at))
self._interpret_status(last_status, pr)
elif pr_time_delta > _CI_START_THRESHOLD:
# If there's no status after assumed time - check if build is waiting in queue
log.info('CI for PR {}: NO JENKINS STATUS YET'.format(pr.number))
self._check_missing_status(pr)
@staticmethod
def _get_pr_timestamps(pr, last_status):
"""Get dict containing PR timestamp and last status timestamp.
:param pr: Single PR being currently checked
:type pr: github.PullRequest.PullRequest
:return: Dictionary with PR and last status update timestamps
:rtype: dict
"""
pr_timestamp = time.mktime(pr.updated_at.timetuple())
if last_status:
status_timestamp = time.mktime(last_status.updated_at.timetuple())
else:
status_timestamp = None
pr_dict = {'pr_timestamp': pr_timestamp,
'status_timestamp': status_timestamp}
return pr_dict
@staticmethod
def _get_last_status(pr):
"""Get last commit status posted from Jenkins.
:param pr: Single PR being currently checked
:type pr: github.PullRequest.PullRequest
:return: Either last PR status posted from Jenkins or None
:rtype: github.CommitStatus.CommitStatus
"""
# Find last commit in PR
last_commit = pr.get_commits().reversed[0]
# Get statuses and filter them to contain only those related to Jenkins CI
# and check if CI in Jenkins started
statuses = last_commit.get_statuses()
jenk_statuses = [stat for stat in statuses if
_GITHUB_CI_CHECK_NAME in stat.context]
try:
last_status = jenk_statuses[0]
except IndexError:
last_status = None
return last_status
@staticmethod
def _should_ignore(pr):
"""Determine if PR should be ignored.
:param pr: Single PR being currently checked
:type pr: github.PullRequest.PullRequest
:return: Returns True if PR should be ignored
:rtype: Bool
"""
# Ignore PR if it has WIP label or WIP in title
if 'WIP' in pr.title:
log.info('PR#{} should be ignored. WIP tag in title.'.format(pr.number))
return True
label_names = [label.name for label in pr.labels]
if 'WIP' in label_names:
log.info('PR#{} should be ignored. WIP label present.'.format(pr.number))
return True
# Ignore PR if base ref is not master
if 'master' not in pr.base.ref:
log.info('PR#{} should be ignored. Base ref is not master'.format(pr.number))
return True
# Ignore PR if mergeable state is 'dirty' or 'behind'.
# Practically this ignores PR in case of merge conflicts
ignored_mergeable_states = ['behind', 'dirty', 'draft']
if pr.mergeable_state in ignored_mergeable_states:
log.info('PR#{} should be ignored. Mergeable state is {}. '.format(pr.number, pr.mergeable_state))
return True
# If no criteria for ignoring PR are met - return false
return False
def _updated_since_last_run(self, pr):
# Ignore if PR was already checked and there was no update in meantime
pr_number = str(pr.number)
current_pr_timestamps = self._current_prs.get(pr_number)
last_pr_timestamps = self._config[_PR_REPORTS_CONFIG_KEY].get(pr_number)
if current_pr_timestamps == last_pr_timestamps:
log.info('PR#{} - No update since last check'.format(pr.number))
return True
else:
return False
def _check_missing_status(self, pr):
"""Verify if missing status is expected.
This method checks if CI build for last was scheduled and still waits in queue for
executor.
:param pr: Single PR being currently checked
:type pr: github.PullRequest.PullRequest
"""
pr_time_delta = self._now_time - pr.updated_at
try:
build_number = self._build_scheduled(pr)
if self._build_in_queue(pr, build_number):
message = ('PR# {}: build waiting in queue after {} minutes.'
.format(pr.number, pr_time_delta.seconds / 60))
severity = 'warning'
else:
message = ('PR# {}: missing status on GitHub after {} minutes.'
.format(pr.number, pr_time_delta.seconds / 60))
severity = 'error'
self._queue_message(message, message_severity=severity, pr=pr)
except TypeError:
log.info('Committer outside of OpenVino organization')
def _build_scheduled(self, pr):
"""Check if Jenkins build corresponding to PR was scheduled.
This method takes last Jenkins build for given PR and compares hash from Jenkins console output
and sha from PR object to determine if CI build for appropriate commit was scheduled.
:param pr: Single PR being currently checked
:type pr: github.PullRequest.PullRequest
:return: Returns build number or -1 if no build found
:rtype: int
"""
pr_number = str(pr.number)
project_name_full = self._ci_job_name + '/PR-' + pr_number
try:
# Retrieve console output from last Jenkins build for job corresponding to this PR
last_build_number = self._jenkins.get_job_info(project_name_full)['lastBuild']['number']
console_output = self._jenkins.get_build_console_output(project_name_full, last_build_number)
# Check if CI build was scheduled - commit hash on GH must match hash in last Jenkins build console output
# Retrieve hash from Jenkins output
match_string = '(?:Obtained .ci/[a-zA-Z/]+Jenkinsfile from ([a-z0-9]{40}))'
retrieved_sha = re.search(match_string, console_output).group(1)
if retrieved_sha == pr.get_commits().reversed[0].sha:
return last_build_number
else:
return -1
except (NotFoundException, AttributeError, requests.exceptions.HTTPError):
message = ('PR #{}: Jenkins build corresponding to commit {} not found!'
.format(pr_number, pr.get_commits().reversed[0].sha))
self._queue_message(message, message_severity='error', pr=pr)
return -1
def _build_in_queue(self, pr, build_number):
"""Check if Jenkins build waits in queue.
This method verifies if CI build is waiting in queue based on console output.
:param pr: Single PR being currently checked
:param build_number: Jenkins build number to retrieve console output from
:type pr: github.PullRequest.PullRequest
:type build_number: int
:return: Returns True if CI build is waiting in queue
:rtype: Bool
"""
pr_number = str(pr.number)
project_name_full = self._ci_job_name + '/PR-' + pr_number
# Retrieve console output
try:
console_output = self._jenkins.get_build_console_output(project_name_full, build_number)
except NotFoundException:
return False
# Check if build is waiting in queue (and not already running on an executor)
if 'Waiting for next available executor on' in console_output \
and 'Running on' not in console_output:
log.info('CI for PR %s: WAITING IN QUEUE', pr_number)
return True
else:
return False
def _interpret_status(self, status, pr):
"""
Verify GitHub status passed to the method.
This method verifies last commit status for given PR, calling appropriate methods
to further validate the status.
:param status: GitHub commit status
:param pr: Single PR being currently checked
:type status: github.CommitStatus.CommitStatus
:type pr: github.PullRequest.PullRequest
"""
try:
# Retrieve build number for Jenkins build related to this PR
build_number = self._retrieve_build_number(status.target_url)
# CI build finished - verify if expected output is present
finished_statuses = ['Build finished', 'This commit cannot be built', 'This commit looks good']
pending_statuses = ['This commit is being built', 'Testing in progress',
'This commit is scheduled to be built']
if any(phrase in status.description for phrase in finished_statuses):
self._check_finished(pr, build_number)
# CI build in progress - verify timeouts for build queue and duration
elif any(phrase in status.description for phrase in pending_statuses):
self._check_in_progress(pr, build_number)
else:
message = 'ONNX CI job for PR# {}: unrecognized status: {}'.format(pr.number, status.description)
self._queue_message(message, message_severity='error', pr=pr)
except Exception:
# Log Watchdog internal error in case any status can't be properly verified
message = 'Failed to verify status "{}" for PR# {}'.format(status.description, pr.number)
log.exception(message)
self._queue_message(message, message_severity='internal', pr=pr)
def _retrieve_build_number(self, url):
"""Retrieve Jenkins CI job build number from URL address coming from GitHub commit status.
:param url: URL address from GitHub commit status
:type url: String
:return: Returns build number
:rtype: int
"""
# Retrieve the build number from url string
match_obj = re.search('(?:/PR-[0-9]+/)([0-9]+)', url)
try:
number = int(match_obj.group(1))
return number
except Exception:
log.exception('Failed to retrieve build number from url link: %s', url)
raise
def _queue_message(self, message, message_severity='info', pr=None):
"""Add a message to message queue in communicator object.
The queued message is constructed based on message string passed as
a method argument and message header. Message header is mapped to message severity
also passed as an argument.
:param message: Message content
:param message_severity: Message severity level
:type message: String
:type message_severity: int
"""
log.info(message)
internal = False
if 'internal' in message_severity:
message_header = INTERNAL_ERROR_MESSAGE_HEADER
internal = True
elif 'error' in message_severity:
message_header = ERROR_MESSAGE_HEADER
elif 'warning' in message_severity:
message_header = WARNING_MESSAGE_HEADER
else:
message_header = INFO_MESSAGE_HEADER
# If message is related to PR attatch url
if pr:
message = message + '\n' + pr.html_url
send = message_header + '\n' + message
if self._ms_teams_enabled:
self._msteams_hook.queue_message(send)
def _check_finished(self, pr, build_number):
"""Verify if finished build output contains expected string for either fail or success.
:param pr: Single PR being currently checked
:param build_number: Jenkins CI job build number
:type pr: github.PullRequest.PullRequest
:type build_number: int
"""
pr_number = str(pr.number)
log.info('CI for PR %s: FINISHED', pr_number)
# Check if FINISH was valid FAIL / SUCCESS
project_name_full = self._ci_job_name + '/PR-' + pr_number
build_output = self._jenkins.get_build_console_output(project_name_full, build_number)
if _CI_BUILD_FAIL_MESSAGE not in build_output \
and _CI_BUILD_SUCCESS_MESSAGE not in build_output:
message = ('ONNX CI job for PR #{}: finished but no tests success or fail '
'confirmation is present in console output!'.format(pr_number))
self._queue_message(message, message_severity='error', pr=pr)
def _send_message(self, quiet=False):
"""Send messages queued in MS Teams objects to designated channel.
Queued messages are being sent as a single communication.
:param quiet: Flag for disabling sending report through communicator
:type quiet: Boolean
"""
if any(messages for messages in self._msteams_hook.messages):
try:
watchdog_build = self._jenkins.get_job_info(self._watchdog_job_name)['lastBuild']
watchdog_build_number = watchdog_build['number']
watchdog_build_link = watchdog_build['url']
except Exception:
watchdog_build_number = 'UNKNOWN'
watchdog_build_link = self._jenkins.jenkins_server
send = self._watchdog_job_name + '- build ' + str(
watchdog_build_number) + ' - ' + watchdog_build_link
if self._ms_teams_enabled:
self._msteams_hook.send_message(send, quiet=quiet)
else:
log.info('Nothing to report.')
def _check_in_progress(self, pr, build_number):
"""Check if CI build succesfully started.
Checks if build started within designated time threshold, and job is
currently running - it didn't cross the time threshold.
:param pr: Single PR being currently checked
:param build_number: Jenkins CI job build number
:type pr: github.PullRequest.PullRequest
:type build_number: int
"""
pr_number = str(pr.number)
log.info('CI for PR %s: TESTING IN PROGRESS', pr_number)
project_name_full = self._ci_job_name + '/PR-' + pr_number
build_info = self._jenkins.get_build_info(project_name_full, build_number)
build_datetime = datetime.datetime.fromtimestamp(build_info['timestamp'] / 1000.0)
build_delta = self._now_time - build_datetime
log.info('Build %s: IN PROGRESS, started: %s minutes ago', str(build_number),
str(build_delta))
# If build still waiting in queue
if build_delta > _CI_START_THRESHOLD and self._build_in_queue(pr, build_number):
message = ('ONNX CI job build #{}, for PR #{} waiting in queue after {} '
'minutes'.format(build_number, pr_number, str(build_delta.seconds / 60)))
self._queue_message(message, message_severity='warning', pr=pr)
elif build_delta > _BUILD_DURATION_THRESHOLD:
# CI job take too long, possibly froze - communicate failure
message = ('ONNX CI job build #{}, for PR #{} started, '
'but did not finish in designated time of {} '
'minutes!'.format(build_number, pr_number,
str(_BUILD_DURATION_THRESHOLD.seconds / 60)))
self._queue_message(message, message_severity='error', pr=pr)
def _update_config(self):
"""Update Watchdog config file with PRs checked in current Watchdog run, remove old entries.
:param current_prs: List of PR numbers checked during current Watchdog run
:type current_prs: list of ints
"""
# Cleanup config of old reports
log.info('Writing to config file at: {}'.format(self._config_path))
new_config = {_PR_REPORTS_CONFIG_KEY: self._current_prs}
file = open(self._config_path, 'w+')
json.dump(new_config, file)

View File

@@ -7,7 +7,7 @@ updates:
directory: "/src/bindings/python"
schedule:
interval: weekly
day: monday
day: sunday
time: "13:00"
open-pull-requests-limit: 0
reviewers:
@@ -15,4 +15,3 @@ updates:
- akuporos
labels:
- "category: dependencies"

View File

@@ -5,11 +5,10 @@
"IGNORE_LOGINS": [
"openvino-ci",
"openvino-pushbot",
"lab-nerval",
"lab-nerval-onnx-ci",
"onnx-watchdog-agent",
"workbench-ci-bot",
"openvino-pot-ci"
"openvino-pot-ci",
"sysicvvpux",
"ote-ci-bot"
],
"MAX_MEMBERS_TO_REMOVE": 15,
"EMAILS_FILE_PATH": "dev_emails-test.txt",
@@ -28,7 +27,7 @@
"openvino-ie-gna-maintainers": "category: GNA",
"openvino-ie-gpu-maintainers": "category: GPU",
"openvino-ie-lpt-maintainers": "category: LP transformations",
"openvino-ie-multi-maintainers": "category: MULTI",
"openvino-ie-auto-multi-maintainers": "category: MULTI",
"openvino-ie-python-api-maintainers": "category: python api",
"openvino-ie-template-maintainers": "category: TEMPLATE",
"openvino-ie-tests-maintainers": "category: IE Tests",

View File

@@ -157,7 +157,7 @@ class GithubOrgApi:
self.github_users_by_email[email] = org_member
if not is_valid_name(org_member.name):
self.members_to_fix_name.add(org_member)
elif not is_user_ignored(org_member):
else:
self.members_to_remove.add(org_member)
print("\nOrg members - no Intel emails:")

View File

@@ -1,4 +1,4 @@
name: IE Python Checks
name: Python API Checks
on:
workflow_dispatch:
@@ -23,8 +23,9 @@ jobs:
with:
python-version: '3.6'
- name: Install dependencies
run: python -m pip install -r src/bindings/python/src/compatibility/openvino/requirements_dev.txt
- name: Run Flake on samples
run: python -m pip install -r src/bindings/python/requirements_test.txt
# samples code-style
- name: Run flake8 on samples
run: python -m flake8 ./ --config=setup.cfg
working-directory: samples/python
- name: Create code style diff for samples
@@ -38,21 +39,53 @@ jobs:
with:
name: samples_diff
path: samples_diff.diff
- name: Run Flake on src
# IE Python API Flake code-style
- name: Run flake8 on IE Python API
run: python -m flake8 ./ --config=setup.cfg
working-directory: src/bindings/python/src/compatibility/openvino
- name: Create code style diff for Python src
- name: Create code style diff for IE Python API
if: failure()
run: |
python -m black -l 160 -S ./
git diff > src_diff.diff
git diff > ie_python_diff.diff
working-directory: src/bindings/python/src/compatibility/openvino
- uses: actions/upload-artifact@v2
if: failure()
with:
name: src_diff
path: src_diff.diff
- name: Run Flake on wheel
name: ie_python_diff
path: ie_python_diff.diff
# nGraph Python API Flake code-style
- name: Run flake8 on nGraph Python API
run: python -m flake8 ./src/compatibility/ngraph --config=setup.cfg
working-directory: src/bindings/python
- name: Create code style diff for nGraph Python API
if: failure()
run: |
python -m black -l 160 -S ./
git diff > pyngraph_diff.diff
working-directory: src/bindings/python/src/compatibility/ngraph
- uses: actions/upload-artifact@v2
if: failure()
with:
name: pyngraph_diff
path: pyngraph_diff.diff
# Python API 2.0 Flake code-style
- name: Run flake8 on Python API 2.0
run: python -m flake8 ./src/openvino --config=setup.cfg
working-directory: src/bindings/python
- name: Create code style diff for Python API 2.0
if: failure()
run: |
python -m black -l 160 -S ./
git diff > pyopenvino_diff.diff
working-directory: src/bindings/python/src/openvino
- uses: actions/upload-artifact@v2
if: failure()
with:
name: pyopenvino_diff
path: pyopenvino_diff.diff
# wheel Flake code-style
- name: Run flake8 on wheel
run: python -m flake8 ./ --config=../setup.cfg
working-directory: src/bindings/python/wheel
- name: Create code style diff for wheel
@@ -66,10 +99,24 @@ jobs:
with:
name: wheel_diff
path: wheel_diff.diff
- name: Run MyPy
# Python API 2.0 tests Flake code-style
- name: Run flake8 on python tests
# ignore lack of docs in tests
run: python -m flake8 tests/ --config=setup.cfg
working-directory: src/bindings/python
# IE Python API mypy check
- name: Run mypy on IE Python API
run: python -m mypy ./ --config-file ./setup.cfg
working-directory: src/bindings/python/src/compatibility/openvino
# nGraph Python API mypy check
- name: Run mypy on nGraph Python API
run: python -m mypy ./src/compatibility/ngraph --config-file ./setup.cfg
working-directory: src/bindings/python
# Python API 2.0 mypy check
- name: Run mypy on Python API 2.0
run: python -m mypy ./src/openvino --config-file ./setup.cfg
working-directory: src/bindings/python
- name: Run Bandit
run: python -m bandit -r ./ -f screen
working-directory: src/bindings/python/src/compatibility/openvino

10
.gitignore vendored
View File

@@ -1,5 +1,8 @@
# build/artifact dirs
_*
[Bb]uild*/
cmake-build*
# but ensure we don't skip __init__.py and __main__.py
!__init__.py
!__main__.py
@@ -9,12 +12,10 @@ _*
# developer tools
*.idea
.vscode
cmake-build-*
.DS_Store
**/tags
compile_commands.json
bin/
build/
.local_vimrc
.gdb_history
.vimspector.json
@@ -34,14 +35,13 @@ docs/IE_PLUGIN_DG/html/
*.pydevproject
*.settings
*/gen/
__pycache__
*.swp
/config.xml
# Python-specific
*.env3
*.?env*
*.pyc
__pycache__
# Tests-specific
*.coverage
*htmlcov

4
.gitmodules vendored
View File

@@ -1,5 +1,5 @@
[submodule "src/plugins/intel_cpu/thirdparty/mkl-dnn"]
path = src/plugins/intel_cpu/thirdparty/mkl-dnn
[submodule "src/plugins/intel_cpu/thirdparty/onednn"]
path = src/plugins/intel_cpu/thirdparty/onednn
url = https://github.com/openvinotoolkit/oneDNN.git
ignore = dirty
[submodule "thirdparty/xbyak"]

View File

@@ -4,7 +4,7 @@
if(DEFINED BUILD_SHARED_LIBS AND NOT BUILD_SHARED_LIBS)
# 'target_link_libraries' does not work correctly when called from
# different directly where 'add_library' is called: CMake generates
# different directory where 'add_library' is called: CMake generates
# incorrect OpenVINOConfig.cmake in this case
cmake_minimum_required(VERSION 3.17)
else()
@@ -13,7 +13,13 @@ endif()
project(OpenVINO DESCRIPTION "OpenVINO toolkit")
set(IE_MAIN_SOURCE_DIR ${OpenVINO_SOURCE_DIR}/inference-engine)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type" FORCE)
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_compile_options(-fno-strict-overflow -fno-delete-null-pointer-checks -fwrapv)
endif()
find_package(IEDevScripts REQUIRED
PATHS "${OpenVINO_SOURCE_DIR}/cmake/developer_package"
@@ -34,7 +40,9 @@ endif()
message (STATUS "PROJECT ............................... " ${PROJECT_NAME})
message (STATUS "CMAKE_VERSION ......................... " ${CMAKE_VERSION})
message (STATUS "CMAKE_BINARY_DIR ...................... " ${CMAKE_BINARY_DIR})
message (STATUS "CMAKE_SOURCE_DIR ...................... " ${CMAKE_SOURCE_DIR})
message (STATUS "OpenVINO_SOURCE_DIR ................... " ${OpenVINO_SOURCE_DIR})
message (STATUS "OpenVINO_BINARY_DIR ................... " ${OpenVINO_BINARY_DIR})
message (STATUS "CMAKE_GENERATOR ....................... " ${CMAKE_GENERATOR})
message (STATUS "CMAKE_C_COMPILER_ID ................... " ${CMAKE_C_COMPILER_ID})
message (STATUS "CMAKE_CXX_COMPILER_ID ................. " ${CMAKE_CXX_COMPILER_ID})
@@ -42,11 +50,12 @@ message (STATUS "CMAKE_BUILD_TYPE ...................... " ${CMAKE_BUILD_TYPE})
message (STATUS "CMAKE_TOOLCHAIN_FILE .................. " ${CMAKE_TOOLCHAIN_FILE})
# remove file with exported developer targets to force its regeneration
file(REMOVE "${CMAKE_BINARY_DIR}/ngraph/ngraphTargets.cmake")
file(REMOVE "${CMAKE_BINARY_DIR}/ngraphTargets.cmake")
file(REMOVE "${CMAKE_BINARY_DIR}/InferenceEngineTargets.cmake")
file(REMOVE "${CMAKE_BINARY_DIR}/OpenVINOTargets.cmake")
foreach(component IN LISTS openvino_export_components)
file(REMOVE "${CMAKE_BINARY_DIR}/${component}_dev_targets.cmake")
file(REMOVE "${CMAKE_BINARY_DIR}/ov_${component}_dev_targets.cmake")
unset(${component} CACHE)
endforeach()
unset(openvino_export_components CACHE)

View File

@@ -30,7 +30,7 @@ Jenkinsfile @openvinotoolkit/openvino-admins
# IE Core:
/inference-engine/ @openvinotoolkit/openvino-ie-maintainers
/src/bindings/python/ @openvinotoolkit/openvino-ie-python-api-maintainers
/src/common/transformations/ @GlebKazantaev @ilyachur
/src/common/transformations/ @openvinotoolkit/openvino-ie-transformations-maintainers
/src/common/legacy/ @openvinotoolkit/openvino-ngraph-maintainers
/src/common/ @openvinotoolkit/openvino-ie-maintainers
/src/core/ @openvinotoolkit/openvino-ngraph-maintainers
@@ -39,14 +39,19 @@ Jenkinsfile @openvinotoolkit/openvino-admins
# IE CPU:
/src/plugins/intel_cpu/ @openvinotoolkit/openvino-ie-cpu-maintainers @openvinotoolkit/openvino-ie-cpu-developers
/src/common/low_precision_transformations/ @openvinotoolkit/openvino-ie-cpu-maintainers @openvinotoolkit/openvino-ie-cpu-developers
/src/plugins/intel_cpu/thirdparty/mkl-dnn/ @openvinotoolkit/openvino-ie-cpu-maintainers @openvinotoolkit/openvino-ie-cpu-developers
/src/plugins/intel_cpu/thirdparty/onednn/ @openvinotoolkit/openvino-ie-cpu-maintainers @openvinotoolkit/openvino-ie-cpu-developers
#IE LPT
/src/common/low_precision_transformations/ @openvinotoolkit/openvino-ie-lpt-maintainers
# IE GPU:
/src/inference/include/ie/gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/src/inference/include/ie/cldnn/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/src/inference/include/openvino/runtime/intel_gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/src/plugins/intel_gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/docs/snippets/gpu/ @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/docs/OV_Runtime_UG/supported_plugins/GPU.md @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
/docs/OV_Runtime_UG/supported_plugins/GPU_RemoteTensor_API.md @openvinotoolkit/openvino-ie-gpu-maintainers @openvinotoolkit/openvino-ie-gpu-developers
# IE VPU:
/src/plugins/intel_myriad @openvinotoolkit/openvino-ie-vpu-maintainers
@@ -63,6 +68,9 @@ Jenkinsfile @openvinotoolkit/openvino-admins
/src/plugins/intel_gna/ @openvinotoolkit/openvino-ie-gna-maintainers
/src/inference/include/ie/gna/ @openvinotoolkit/openvino-ie-gna-maintainers
# IE ARM CPU:
/docs/OV_Runtime_UG/supported_plugins/ARM_CPU.md @openvinotoolkit/openvino_contrib-arm_plugin-maintainers
# IE Auto (MULTI) plugin:
/src/plugins/auto/ @openvinotoolkit/openvino-ie-auto-multi-maintainers
/src/inference/include/ie/multi-device/ @openvinotoolkit/openvino-ie-auto-multi-maintainers
@@ -71,8 +79,8 @@ Jenkinsfile @openvinotoolkit/openvino-admins
/src/frontends/paddle/ @openvinotoolkit/openvino-ie-paddle-maintainers
# IE Tests:
/src/tests/ @openvinotoolkit/openvino-ie-tests-maintainers
/src/tests_deprecated/ @openvinotoolkit/openvino-ie-tests-maintainers
/src/tests/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ie-test-developers
/src/tests_deprecated/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ie-test-developers
/src/tests/functional/inference_engine/ngraph_reader/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers
/src/tests/functional/inference_engine/transformations/ @openvinotoolkit/openvino-ie-tests-maintainers @openvinotoolkit/openvino-ngraph-maintainers
@@ -82,6 +90,6 @@ Jenkinsfile @openvinotoolkit/openvino-admins
*.md @openvinotoolkit/openvino-docs-maintainers
# Control 3d party dependencies
**/*requirements*.* @openvino-configuration-mgmt
**/setup.py @openvino-configuration-mgmt
/scripts/install_dependencies/ @openvino-configuration-mgmt
**/*requirements*.* @openvinotoolkit/openvino-configuration-mgmt
**/setup.py @openvinotoolkit/openvino-configuration-mgmt
/scripts/install_dependencies/ @openvinotoolkit/openvino-configuration-mgmt

55
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,55 @@
# How to contribute to the OpenVINO repository
We welcome community contributions to OpenVINO™. Please read the following guide to learn how to find ideas for contribution, practices for good pull requests, checking your changes with our tests and more.
## Before you start contributing you should
- Make sure you agree to contribute your code under [OpenVINO™ (Apache 2.0)](https://github.com/openvinotoolkit/openvino/blob/master/LICENSE) license.
- Figure out what youre going to contribute. If you dont know what you are going to work on, navigate to the [Github "Issues" tab](https://github.com/openvinotoolkit/openvino/issues). Make sure that there isn't someone working on it. In the latter case you might provide support or suggestion in the issue or in the linked pull request.
- If you are going to fix a bug, check that it's still exists in the latest release. This can be done by building the latest master branch, and make sure that the error is still reproducible there. We do not fix bugs that only affect older non-LTS releases like 2020.2 for example (more details about [branching strategy](https://github.com/openvinotoolkit/openvino/wiki/Branches)).
## "Fork & Pull Request model" for code contribution
### [](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING.md#the-instruction-in-brief)The instruction in brief
- Register at GitHub. Create your fork of OpenVINO™ repository [https://github.com/openvinotoolkit/openvino](https://github.com/openvinotoolkit/openvino) (see [https://help.github.com/articles/fork-a-repo](https://help.github.com/articles/fork-a-repo) for details).
- Install Git.
- Set your user name and email address in a Git configuration according to GitHub account (see [https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) for details).
- Choose a task for yourself. It could be a bugfix or some new code.
- Choose a base branch for your work. More details about branches and policies are here: [Branches](https://github.com/openvinotoolkit/openvino/wiki/Branches)
- Clone your fork to your computer.
- Create a new branch (with a meaningful name) from the base branch you chose.
- Modify / add the code following our [Coding Style Guide](https://github.com/openvinotoolkit/openvino/wiki/CodingStyleGuideLines).
- If you want to add a new sample, please look at this [Guide for contributing to C++/C/Python IE samples](https://github.com/openvinotoolkit/openvino/wiki/SampleContribute)
- If you want to contribute to the documentation and want to add a new guide, follow that instruction [Documentation guidelines](https://github.com/openvinotoolkit/openvino/wiki/CodingStyleGuideLinesDocumentation)
- Run testsuite locally:
- execute each test binary from the artifacts directory, e.g. `<source dir>/bin/intel64/Release/ieFuncTests`
- When you are done, make sure that your branch is to date with latest state of the branch you want to contribute to (e.g. `git fetch upstream && git merge upstream/master`), push your branch to your GitHub fork; then create a pull request from your branch to the base branch (see [https://help.github.com/articles/using-pull-requests](https://help.github.com/articles/using-pull-requests) for details).
## Making a good pull request
Following these guidelines will increase the likelihood of your pull request being accepted:
- One PR one issue.
- Build perfectly on your local system.
- Choose the right base branch [Branches](https://github.com/openvinotoolkit/openvino/wiki/Branches).
- Follow the [Coding Style Guide](https://github.com/openvinotoolkit/openvino/wiki/CodingStyleGuideLines) for your code.
- Update documentation using [Documentation guidelines](https://github.com/openvinotoolkit/openvino/wiki/CodingStyleGuideLinesDocumentation) if needed.
- Cover your changes with test.
- Add license at the top of new files [C++ example](https://github.com/openvinotoolkit/openvino/blob/master/samples/cpp/classification_sample_async/main.cpp#L1-L2), [Python example](https://github.com/openvinotoolkit/openvino/blob/master/samples/python/hello_classification/hello_classification.py#L3-L4).
- Add enough information: a meaningful title, the reason why you made the commit and a link to the issue page if exists.
- Remove unrelated to PR changes.
- If it is still WIP and you want to check CI test results early then use _Draft_ PR.
- Submit your PR and become an OpenVINO™ contributor!
## Testing and merging pull requests
Your pull request will be automatically tested by OpenVINO™'s precommit (testing status are automatically reported as "green" or "red" circles in precommit steps on PR's page). If any builders have failed, you need fix the issue. To rerun the automatic builds just push changes to your branch on GitHub. No need to close pull request and open a new one!
## Merging PR
As soon as the reviewer is fine with the pull request and precommit shows "green" status, the "Approved" review status is put, which signals OpenVINO™ maintainers that they can merge your pull request.

210
README.md
View File

@@ -1,50 +1,208 @@
# OpenVINO™ Toolkit
[![Stable release](https://img.shields.io/badge/version-2021.4.2-green.svg)](https://github.com/openvinotoolkit/openvino/releases/tag/2021.4.2)
<div align="center">
<img src="docs/img/openvino-logo-purple-black.png" width="400px">
[![Stable release](https://img.shields.io/badge/version-2022.1-green.svg)](https://github.com/openvinotoolkit/openvino/releases/tag/2022.1)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
![GitHub branch checks state](https://img.shields.io/github/checks-status/openvinotoolkit/openvino/master?label=GitHub%20checks)
![Azure DevOps builds (branch)](https://img.shields.io/azure-devops/build/openvinoci/b2bab62f-ab2f-4871-a538-86ea1be7d20f/13?label=Public%20CI)
[![PyPI Status](https://badge.fury.io/py/openvino.svg)](https://badge.fury.io/py/openvino)
[![PyPI Downloads](https://pepy.tech/badge/openvino)](https://pepy.tech/project/openvino)
</div>
This toolkit allows developers to deploy pre-trained deep learning models
through a high-level OpenVINO™ Runtime C++ and Python APIs integrated with application logic.
## Contents:
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.
- [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 [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.
## Repository components
* [OpenVINO™ Runtime]
* [Model Optimizer]
* [Post-Training Optimization Tool]
### 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](https://github.com/openvinotoolkit/openvino/tree/master/src/core) - provides the base API for model representation and modification.
* [inference](https://github.com/openvinotoolkit/openvino/tree/master/src/inference) - provides an API to infer models on device.
* [transformations](https://github.com/openvinotoolkit/openvino/tree/master/src/common/transformations) - contains the set of common transformations which are used in OpenVINO plugins.
* [low precision transformations](https://github.com/openvinotoolkit/openvino/tree/master/src/common/low_precision_transformations) - contains the set of transformations which are used in low precision models
* [bindings](https://github.com/openvinotoolkit/openvino/tree/master/src/bindings) - contains all awailable OpenVINO bindings which are maintained by OpenVINO team.
* [c](https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/c) - provides C API for OpenVINO™ Runtime
* [python](https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/python) - Python API for OpenVINO™ Runtime
* [Plugins](https://github.com/openvinotoolkit/openvino/tree/master/src/plugins) - contains OpenVINO plugins which are maintained in open-source by OpenVINO team. For more information please taje a look to the [list of supported devices](#supported-hardware-matrix).
* [Frontends](https://github.com/openvinotoolkit/openvino/tree/master/src/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.
<table>
<thead>
<tr>
<th>Device</th>
<th>Plugin</th>
<th>Library</th>
<th>ShortDescription</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan=2>CPU</td>
<td> <a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_supported_plugins_CPU.html#doxid-openvino-docs-o-v-u-g-supported-plugins-c-p-u">Intel CPU</a></tb>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/intel_cpu">openvino_intel_cpu_plugin</a></i></b></td>
<td>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)</td>
</tr>
<tr>
<td> <a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_supported_plugins_ARM_CPU.html">ARM CPU</a></tb>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino_contrib/tree/master/modules/arm_plugin">openvino_arm_cpu_plugin</a></i></b></td>
<td>Raspberry Pi™ 4 Model B, Apple® Mac mini with M1 chip, NVIDIA® Jetson Nano™, Android™ devices
</tr>
<tr>
<td>GPU</td>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_supported_plugins_GPU.html#doxid-openvino-docs-o-v-u-g-supported-plugins-g-p-u">Intel GPU</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/intel_gpu">openvino_intel_gpu_plugin</a></i></b></td>
<td>Intel Processor Graphics, including Intel HD Graphics and Intel Iris Graphics</td>
</tr>
<tr>
<td>GNA</td>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_supported_plugins_GNA.html#doxid-openvino-docs-o-v-u-g-supported-plugins-g-n-a">Intel GNA</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/intel_gna">openvino_intel_gna_plugin</a></i></b></td>
<td>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</td>
</tr>
<tr>
<td>VPU</td>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_IE_DG_supported_plugins_VPU.html#doxid-openvino-docs-i-e-d-g-supported-plugins-v-p-u">Myriad plugin</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/intel_myriad">openvino_intel_myriad_plugin</a></i></b></td>
<td>Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X</td>
</tr>
</tbody>
</table>
Also OpenVINO™ Toolkit contains several plugins which should simplify to load model on several hardware devices:
<table>
<thead>
<tr>
<th>Plugin</th>
<th>Library</th>
<th>ShortDescription</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_IE_DG_supported_plugins_AUTO.html#doxid-openvino-docs-i-e-d-g-supported-plugins-a-u-t-o">Auto</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/auto">openvino_auto_plugin</a></i></b></td>
<td>Auto plugin enables selecting Intel device for inference automatically</td>
</tr>
<tr>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_Automatic_Batching.html">Auto Batch</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/auto_batch">openvino_auto_batch_plugin</a></i></b></td>
<td>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</td>
</tr>
<tr>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_Hetero_execution.html#doxid-openvino-docs-o-v-u-g-hetero-execution">Hetero</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/hetero">openvino_hetero_plugin</a></i></b></td>
<td>Heterogeneous execution enables automatic inference splitting between several devices</td>
</tr>
<tr>
<td><a href="https://docs.openvino.ai/nightly/openvino_docs_OV_UG_Running_on_multiple_devices.html#doxid-openvino-docs-o-v-u-g-running-on-multiple-devices">Multi</a></td>
<td><b><i><a href="https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/auto">openvino_auto_plugin</a></i></b></td>
<td>Multi plugin enables simultaneous inference of the same model on several devices in parallel</td>
</tr>
</tbody>
</table>
## License
Deep Learning Deployment 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.
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.
## Resources
* Docs: https://docs.openvino.ai/
* Wiki: https://github.com/openvinotoolkit/openvino/wiki
* Issue tracking: https://github.com/openvinotoolkit/openvino/issues
* Storage: https://storage.openvinotoolkit.org/
* Additional OpenVINO™ toolkit modules: 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)
## Documentation
### User documentation
The latest documentation for OpenVINO™ Toolkit is availabe [here](https://docs.openvino.ai/). 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](#todo-add) 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.
## Tutorials
The list of OpenVINO tutorials:
- [Jupiter notebooks](https://github.com/openvinotoolkit/openvino_notebooks)
## Products which use OpenVINO
- [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)
## System requirements
The full information about system requirements depends on platform and is available on dedicated pages:
- [Linux](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_linux_header.html)
- [Windows](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_windows_header.html)
- [macOS](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_macos_header.html)
- [Raspbian](https://docs.openvino.ai/latest/openvino_docs_install_guides_installing_openvino_raspbian.html)
## How to build
Please take a look to [OpenVINO Wiki](https://github.com/openvinotoolkit/openvino/wiki#how-to-build) to get more information about OpenVINO build process.
## How to contribute
See [CONTRIBUTING](./CONTRIBUTING.md) for details. Thank you!
## Get a support
## Support
Please report questions, issues and suggestions using:
* The [`openvino`](https://stackoverflow.com/questions/tagged/openvino) tag on StackOverflow\*
* [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)
## See also
* [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
* [DL Workbench](https://docs.openvino.ai/nightly/workbench_docs_Workbench_DG_Introduction.html) - An alternative, web-based version of OpenVINO designed to make production of pretrained deep learning models significantly easier.
* [Computer Vision Annotation Tool (CVAT)](https://github.com/openvinotoolkit/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.
---
\* 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/latest/openvino_docs_IE_DG_Deep_Learning_Inference_Engine_DevGuide.html
[OpenVINO™ Runtime]:https://docs.openvino.ai/latest/openvino_docs_OV_UG_OV_Runtime_User_Guide.html
[Model Optimizer]:https://docs.openvino.ai/latest/openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html
[Post-Training Optimization Tool]:https://docs.openvino.ai/latest/pot_README.html
[tag on StackOverflow]:https://stackoverflow.com/search?q=%23openvino
[Post-Training Optimization Tool]:https://docs.openvino.ai/latest/pot_introduction.html
[Samples]:https://github.com/openvinotoolkit/openvino/tree/master/samples

View File

@@ -7,6 +7,7 @@ set(CMAKE_SYSTEM_PROCESSOR armv7l)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(PKG_CONFIG_EXECUTABLE arm-linux-gnueabihf-pkg-config CACHE PATH "Path to ARM pkg-config")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View File

@@ -7,6 +7,7 @@ set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
set(PKG_CONFIG_EXECUTABLE aarch64-linux-gnu-pkg-config CACHE PATH "Path to ARM64 pkg-config")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View File

@@ -23,17 +23,15 @@ message(STATUS "MODELS_PATH=" ${MODELS_PATH})
fetch_models_and_validation_set()
if(COMMAND get_linux_name)
get_linux_name(LINUX_OS_NAME)
endif()
get_linux_name(LINUX_OS_NAME)
if(CMAKE_CROSSCOMPILING AND CMAKE_HOST_SYSTEM_NAME MATCHES Linux AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
set(protoc_version "3.9.2")
set(protoc_version "3.18.2")
RESOLVE_DEPENDENCY(SYSTEM_PROTOC_ROOT
ARCHIVE_LIN "protoc-${protoc_version}-linux-x86_64.tar.gz"
TARGET_PATH "${TEMP}/protoc-${protoc_version}-linux-x86_64"
SHA256 "1d6da1d97d0cbfcd333558afe24533eb3cb48dc1e0ab5e971aa1e50ede8bcf45"
SHA256 "42fde2b6044c1f74c7e86d4e03b43aac87128ddf57ac6ed8c4eab7a1e21bbf21"
)
debug_message(STATUS "host protoc-${protoc_version} root path = " ${SYSTEM_PROTOC_ROOT})
@@ -93,7 +91,19 @@ if(THREADING STREQUAL "OMP")
endif()
## TBB package
if(THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
unset(_ov_download_tbb_done CACHE)
#
# The function downloads prebuilt TBB package
# NOTE: the function should be used if system TBB is not found
# or ENABLE_SYSTEM_TBB is OFF
#
function(ov_download_tbb)
if(_ov_download_tbb_done OR NOT THREADING MATCHES "^(TBB|TBB_AUTO)$")
return()
endif()
set(_ov_download_tbb_done ON CACHE BOOL "Whether prebuilt TBB is already downloaded")
reset_deps_cache(TBBROOT TBB_DIR)
if(DEFINED ENV{THIRDPARTY_SERVER_PATH})
@@ -109,16 +119,6 @@ if(THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
TARGET_PATH "${TEMP}/tbb"
ENVIRONMENT "TBBROOT"
SHA256 "f1c9b9e2861efdaa01552bd25312ccbc5feeb45551e5f91ae61e29221c5c1479")
if(ENABLE_TBBBIND_2_5)
RESOLVE_DEPENDENCY(TBBBIND_2_5
ARCHIVE_WIN "tbbbind_2_5_static_win_v1.zip"
TARGET_PATH "${TEMP}/tbbbind_2_5"
ENVIRONMENT "TBBBIND_2_5_ROOT"
SHA256 "a67afeea8cf194f97968c800dab5b5459972908295242e282045d6b8953573c1")
else()
message(WARNING "prebuilt TBBBIND_2_5 is not available.
Build oneTBB from sources and set TBBROOT environment var before OpenVINO cmake configure")
endif()
elseif(ANDROID) # Should be before LINUX due LINUX is detected as well
RESOLVE_DEPENDENCY(TBB
ARCHIVE_ANDROID "tbb2020_20200404_android.tgz"
@@ -131,16 +131,6 @@ if(THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
TARGET_PATH "${TEMP}/tbb"
ENVIRONMENT "TBBROOT"
SHA256 "95b2f3b0b70c7376a0c7de351a355c2c514b42c4966e77e3e34271a599501008")
if(ENABLE_TBBBIND_2_5)
RESOLVE_DEPENDENCY(TBBBIND_2_5
ARCHIVE_LIN "tbbbind_2_5_static_lin_v2.tgz"
TARGET_PATH "${TEMP}/tbbbind_2_5"
ENVIRONMENT "TBBBIND_2_5_ROOT"
SHA256 "865e7894c58402233caf0d1b288056e0e6ab2bf7c9d00c9dc60561c484bc90f4")
else()
message(WARNING "prebuilt TBBBIND_2_5 is not available.
Build oneTBB from sources and set TBBROOT environment var before OpenVINO cmake configure")
endif()
elseif(LINUX AND AARCH64)
RESOLVE_DEPENDENCY(TBB
ARCHIVE_LIN "keembay/tbb2020_38404_kmb_lic.tgz"
@@ -160,18 +150,68 @@ if(THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
update_deps_cache(TBBROOT "${TBB}" "Path to TBB root folder")
if(EXISTS "${TBBROOT}/lib/cmake/TBB/TBBConfig.cmake")
# oneTBB case
update_deps_cache(TBB_DIR "${TBB}/lib/cmake/TBB" "Path to TBB cmake folder")
update_deps_cache(TBB_DIR "${TBBROOT}/lib/cmake/TBB" "Path to TBB cmake folder")
elseif(EXISTS "${TBBROOT}/lib64/cmake/TBB/TBBConfig.cmake")
# 64-bits oneTBB case
update_deps_cache(TBB_DIR "${TBBROOT}/lib64/cmake/TBB" "Path to TBB cmake folder")
elseif(EXISTS "${TBBROOT}/cmake/TBBConfig.cmake")
# custom downloaded or user provided TBB
update_deps_cache(TBB_DIR "${TBBROOT}/cmake" "Path to TBB cmake folder")
else()
update_deps_cache(TBB_DIR "${TBB}/cmake" "Path to TBB cmake folder")
message(WARNING "Failed to find TBBConfig.cmake in ${TBBROOT} tree. Custom TBBConfig.cmake will be used")
endif()
debug_message(STATUS "tbb=" ${TBB})
debug_message(STATUS "tbb_dir=" ${TBB_DIR})
debug_message(STATUS "tbbroot=" ${TBBROOT})
set(TBB "${TBB}" PARENT_SCOPE)
endfunction()
## TBBBind_2_5 package
unset(_ov_download_tbbbind_2_5_done CACHE)
#
# The function downloads static prebuilt TBBBind_2_5 package
# NOTE: the function should be called only we have TBB with version less 2021
#
function(ov_download_tbbbind_2_5)
if(_ov_download_tbbbind_2_5_done OR NOT ENABLE_TBBBIND_2_5)
return()
endif()
set(_ov_download_tbbbind_2_5_done ON CACHE BOOL "Whether prebuilt TBBBind_2_5 is already downloaded")
reset_deps_cache(TBBBIND_2_5_DIR)
if(DEFINED ENV{THIRDPARTY_SERVER_PATH})
set(IE_PATH_TO_DEPS "$ENV{THIRDPARTY_SERVER_PATH}")
elseif(DEFINED THIRDPARTY_SERVER_PATH)
set(IE_PATH_TO_DEPS "${THIRDPARTY_SERVER_PATH}")
endif()
if(WIN32 AND X86_64)
RESOLVE_DEPENDENCY(TBBBIND_2_5
ARCHIVE_WIN "tbbbind_2_5_static_win_v1.zip"
TARGET_PATH "${TEMP}/tbbbind_2_5"
ENVIRONMENT "TBBBIND_2_5_ROOT"
SHA256 "a67afeea8cf194f97968c800dab5b5459972908295242e282045d6b8953573c1")
elseif(ANDROID)
# don't have TBBBIND_2_5
elseif(LINUX AND X86_64)
RESOLVE_DEPENDENCY(TBBBIND_2_5
ARCHIVE_LIN "tbbbind_2_5_static_lin_v2.tgz"
TARGET_PATH "${TEMP}/tbbbind_2_5"
ENVIRONMENT "TBBBIND_2_5_ROOT"
SHA256 "865e7894c58402233caf0d1b288056e0e6ab2bf7c9d00c9dc60561c484bc90f4")
else()
message(WARNING "prebuilt TBBBIND_2_5 is not available.
Build oneTBB from sources and set TBBROOT environment var before OpenVINO cmake configure")
endif()
update_deps_cache(TBBBIND_2_5_DIR "${TBBBIND_2_5}/cmake" "Path to TBBBIND_2_5 cmake folder")
debug_message(STATUS "tbb=" ${TBB})
if(DEFINED IE_PATH_TO_DEPS)
unset(IE_PATH_TO_DEPS)
endif()
endif()
set(TBBBIND_2_5 "${TBBBIND_2_5}" PARENT_SCOPE)
endfunction()
## OpenCV
if(ENABLE_OPENCV)
@@ -265,8 +305,6 @@ else()
reset_deps_cache(OpenCV_DIR)
endif()
include(${OpenVINO_SOURCE_DIR}/src/cmake/ie_parallel.cmake)
if(ENABLE_INTEL_GNA)
reset_deps_cache(
GNA_EXT_DIR
@@ -276,8 +314,8 @@ if(ENABLE_INTEL_GNA)
GNA_LIB_DIR
libGNA_INCLUDE_DIRS
libGNA_LIBRARIES_BASE_PATH)
set(GNA_VERSION "03.00.00.1455.0")
set(GNA_HASH "99891696269d8fa10116c96e6b7bda4362736881f0df8df8b56c751ee18e5820")
set(GNA_VERSION "03.00.00.1455.2")
set(GNA_HASH "e52785d3f730fefb4e794bb7ab40c8676537ef2f7c69c5b4bb89a5d3cc0bbe60")
set(FILES_TO_EXTRACT_LIST gna_${GNA_VERSION}/include)
if(WIN32)

View File

@@ -14,8 +14,8 @@ set(CMAKE_MODULE_PATH "${IEDevScripts_DIR}")
function(set_ci_build_number)
set(repo_root "${CMAKE_SOURCE_DIR}")
include(version)
foreach(var CI_BUILD_NUMBER IE_VERSION IE_VERSION_BUILD
IE_VERSION_MAJOR IE_VERSION_MINOR IE_VERSION_PATCH)
foreach(var CI_BUILD_NUMBER OpenVINO_VERSION OpenVINO_VERSION_BUILD
OpenVINO_VERSION_MAJOR OpenVINO_VERSION_MINOR OpenVINO_VERSION_PATCH)
if(NOT DEFINED ${var})
message(FATAL_ERROR "${var} version component is not defined")
endif()
@@ -158,16 +158,22 @@ else ()
endif()
add_definitions(-DIE_BUILD_POSTFIX=\"${IE_BUILD_POSTFIX}\")
macro(ov_set_if_not_defined var value)
if(NOT DEFINED ${var})
set(${var} ${value})
endif()
endmacro()
if(NOT UNIX)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
else()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
endif()
set(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
set(CMAKE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
if(APPLE)
set(CMAKE_MACOSX_RPATH ON)
@@ -180,6 +186,8 @@ endif()
# Use solution folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# cmake_dependent_option() supports full Condition Syntax
set(CMAKE_POLICY_DEFAULT_CMP0127 NEW)
# Enable CMAKE_<LANG>_COMPILER_ID AppleClang
set(CMAKE_POLICY_DEFAULT_CMP0025 NEW)
@@ -206,6 +214,10 @@ endif()
macro(ov_install_static_lib target comp)
if(NOT BUILD_SHARED_LIBS)
get_target_property(target_type ${target} TYPE)
if(${target_type} STREQUAL "STATIC_LIBRARY")
set_target_properties(${target} PROPERTIES EXCLUDE_FROM_ALL FALSE)
endif()
install(TARGETS ${target} EXPORT OpenVINOTargets
ARCHIVE DESTINATION ${IE_CPACK_ARCHIVE_PATH} COMPONENT ${comp} ${ARGN})
endif()

View File

@@ -23,13 +23,13 @@ else()
unset(IE_OWN_TBB_CONFIG)
endif()
unset(TBB_DIR)
unset(TBB_DIR CACHE)
find_package(TBB
CONFIG
PATHS ${TBBROOT}/cmake
${TBBROOT}/lib/cmake/TBB # oneTBB case
${IEDevScripts_DIR}/${IE_OWN_TBB_CONFIG}
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH
)
NO_DEFAULT_PATH)
find_package_handle_standard_args(TBB CONFIG_MODE)

View File

@@ -76,8 +76,8 @@ function(addIeTarget)
# remove unnecessary directories
foreach(excludedDir ${ARG_EXCLUDED_SOURCE_PATHS})
list(FILTER includes EXCLUDE REGEX "${excludedDir}*")
list(FILTER sources EXCLUDE REGEX "${excludedDir}*")
list(FILTER includes EXCLUDE REGEX "${excludedDir}.*")
list(FILTER sources EXCLUDE REGEX "${excludedDir}.*")
endforeach()
source_group("include" FILES ${includes})

View File

@@ -51,12 +51,6 @@ endfunction()
set(VALIDATED_LIBRARIES "" CACHE INTERNAL "")
function(_ov_add_api_validator_post_build_step)
if(NOT BUILD_SHARED_LIBS)
# since _ov_add_api_validator_post_build_step
# is currently run only on shared libraries, we have nothing to test
return()
endif()
set(UWP_API_VALIDATOR_APIS "${PROGRAMFILES}/Windows Kits/10/build/universalDDIs/x64/UniversalDDIs.xml")
set(UWP_API_VALIDATOR_EXCLUSION "${UWP_SDK_PATH}/BinaryExclusionlist.xml")

View File

@@ -3592,7 +3592,7 @@ def CheckOperatorSpacing(filename, clean_lines, linenum, error):
elif not Match(r'#.*include', line):
# Look for < that is not surrounded by spaces. This is only
# triggered if both sides are missing spaces, even though
# technically should should flag if at least one side is missing a
# technically should flag if at least one side is missing a
# space. This is done to avoid some false positives with shifts.
match = Match(r'^(.*[^\s<])<[^\s=<,]', line)
if match:

View File

@@ -146,8 +146,6 @@ function (DownloadOrExtractInternal URL archive_path unpacked_path folder fattal
endfunction(DownloadOrExtractInternal)
file(REMOVE ${CMAKE_BINARY_DIR}/dependencies_64.txt)
function (CheckOrDownloadAndExtract component RELATIVE_URL archive_name unpacked_path result_path folder fattal resultExt use_alternatives sha256 files_to_extract)
set (archive_path ${TEMP}/download/${archive_name})
set (status "ON")
@@ -164,7 +162,6 @@ function (CheckOrDownloadAndExtract component RELATIVE_URL archive_name unpacked
if (${use_alternatives})
set(DEP_INFO "${component}=${URL}")
debug_message (STATUS "DEPENDENCY_URL: ${DEP_INFO}")
file(APPEND ${CMAKE_BINARY_DIR}/dependencies_64.txt "${DEP_INFO}\n")
endif()
debug_message ("checking that unpacked directory exist: ${unpacked_path}")

View File

@@ -7,7 +7,7 @@ include(target_flags)
# FIXME: there are compiler failures with LTO and Cross-Compile toolchains. Disabling for now, but
# this must be addressed in a proper way
ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF "LINUX;NOT CMAKE_CROSSCOMPILING; CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9" OFF)
ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF "LINUX;NOT CMAKE_CROSSCOMPILING;CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9" OFF)
ie_option (OS_FOLDER "create OS dedicated folder in output" OFF)
@@ -79,6 +79,4 @@ if(ENABLE_AVX512F)
endif()
endif()
if (VERBOSE_BUILD)
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "" FORCE)
endif()
set(CMAKE_VERBOSE_MAKEFILE ${VERBOSE_BUILD} CACHE BOOL "" FORCE)

View File

@@ -82,10 +82,11 @@ unset(protobuf_installed CACHE)
#
# ov_add_frontend(NAME <IR|ONNX|...>
# FILEDESCRIPTION <description>
# [LINKABLE_FRONTEND]
# [SKIP_INSTALL]
# [PROTOBUF_LITE]
# FILEDESCRIPTION <description> # used on Windows to describe DLL file
# [LINKABLE_FRONTEND] # whether we can use FE API directly or via FEM only
# [SKIP_INSTALL] # private frontend, not for end users
# [PROTOBUF_LITE] # requires only libprotobuf-lite
# [SKIP_NCC_STYLE] # use custom NCC rules
# [LINK_LIBRARIES <lib1 lib2 ...>])
#
macro(ov_add_frontend)
@@ -106,6 +107,17 @@ macro(ov_add_frontend)
set(FRONTEND_NAMES "${FRONTEND_NAMES}" CACHE INTERNAL "" FORCE)
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
if (WIN32)
# Remove linux specific files
file(GLOB_RECURSE LIN_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.hpp)
list(REMOVE_ITEM LIBRARY_SRC "${LIN_FILES}")
else()
# Remove windows specific files
file(GLOB_RECURSE WIN_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/os/win/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/os/win/*.hpp)
list(REMOVE_ITEM LIBRARY_SRC "${WIN_FILES}")
endif()
file(GLOB_RECURSE LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp)
file(GLOB_RECURSE LIBRARY_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp)
@@ -231,7 +243,7 @@ macro(ov_add_frontend)
endif()
if(OV_FRONTEND_LINKABLE_FRONTEND)
# install -dev part
# install library development files
install(DIRECTORY ${${TARGET_NAME}_INCLUDE_DIR}/openvino
DESTINATION ${FRONTEND_INSTALL_INCLUDE}/
COMPONENT core_dev

View File

@@ -31,4 +31,8 @@ if (LINUX)
set(${res_var} NOTFOUND PARENT_SCOPE)
endif ()
endfunction()
else()
function(get_linux_name res_var)
set(${res_var} NOTFOUND PARENT_SCOPE)
endfunction()
endif ()

View File

@@ -23,7 +23,7 @@ execute_process(
ERROR_VARIABLE error_var)
if(NOT clang_find_result EQUAL "0")
message(WARNING "Please, install libclang-[N]-dev package (required for ncc naming style check)")
message(WARNING "Please, install clang-[N] libclang-[N]-dev package (required for ncc naming style check)")
message(WARNING "find_package(Clang) output: ${output_var}")
message(WARNING "find_package(Clang) error: ${error_var}")
set(ENABLE_NCC_STYLE OFF)
@@ -106,9 +106,11 @@ function(ov_ncc_naming_style)
"${NCC_STYLE_SOURCE_DIRECTORY}/*.cpp")
list(APPEND NCC_STYLE_ADDITIONAL_INCLUDE_DIRECTORIES "${NCC_STYLE_SOURCE_DIRECTORY}")
# without it sources with same name from different directories will map to same .ncc_style target
file(RELATIVE_PATH source_dir_rel ${CMAKE_SOURCE_DIR} ${NCC_STYLE_SOURCE_DIRECTORY})
foreach(source IN LISTS sources)
set(output_file "${ncc_style_bin_dir}/${source}.ncc_style")
set(output_file "${ncc_style_bin_dir}/${source_dir_rel}/${source}.ncc_style")
set(full_source_path "${NCC_STYLE_SOURCE_DIRECTORY}/${source}")
add_custom_command(

View File

@@ -99,7 +99,7 @@ CxxCatchStatement: '^.*$'
CxxTryStatement: '^.*$'
CxxForRangeStatement: '^.*$'
MsAsmStatement: 'XXXX'
NullStatement: 'XXXX'
NullStatement: '^.*$'
DeclarationStatement: '^.*$'
TranslationUnit: 'XXXX'
UnexposedAttribute: '^.*$'

View File

@@ -11,6 +11,11 @@ macro (ie_option variable description value)
list(APPEND IE_OPTIONS ${variable})
endmacro()
# Usage: ov_option(<option_variable> "description" <initial value or boolean expression> [IF <condition>])
macro (ov_option variable description value)
ie_option(${variable} "${description}" ${value})
endmacro()
macro (ie_dependent_option variable description def_value condition fallback_value)
cmake_dependent_option(${variable} "${description}" ${def_value} "${condition}" ${fallback_value})
list(APPEND IE_OPTIONS ${variable})

View File

@@ -15,6 +15,10 @@ function(ie_cpack_set_library_dir)
set(IE_CPACK_LIBRARY_PATH runtime/lib/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
set(IE_CPACK_RUNTIME_PATH runtime/bin/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
set(IE_CPACK_ARCHIVE_PATH runtime/lib/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
elseif(APPLE)
set(IE_CPACK_LIBRARY_PATH runtime/lib/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
set(IE_CPACK_RUNTIME_PATH runtime/lib/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
set(IE_CPACK_ARCHIVE_PATH runtime/lib/${ARCH_FOLDER}/$<CONFIG> PARENT_SCOPE)
else()
set(IE_CPACK_LIBRARY_PATH runtime/lib/${ARCH_FOLDER} PARENT_SCOPE)
set(IE_CPACK_RUNTIME_PATH runtime/lib/${ARCH_FOLDER} PARENT_SCOPE)
@@ -65,8 +69,8 @@ macro(ie_cpack)
endif()
foreach(ver IN LISTS MAJOR MINOR PATCH)
if(DEFINED IE_VERSION_${ver})
set(CPACK_PACKAGE_VERSION_${ver} ${IE_VERSION_${ver}})
if(DEFINED OpenVINO_VERSION_${ver})
set(CPACK_PACKAGE_VERSION_${ver} ${OpenVINO_VERSION_${ver}})
endif()
endforeach()

View File

@@ -13,8 +13,8 @@ function(ie_plugin_get_file_name target_name library_name)
set("${library_name}" "${LIB_PREFIX}${target_name}${LIB_SUFFIX}" PARENT_SCOPE)
endfunction()
if(NOT TARGET ie_plugins)
add_custom_target(ie_plugins)
if(NOT TARGET ov_plugins)
add_custom_target(ov_plugins)
endif()
#
@@ -27,11 +27,12 @@ endif()
# [OBJECT_LIBRARIES <object_libs>]
# [VERSION_DEFINES_FOR <source>]
# [SKIP_INSTALL]
# [SKIP_REGISTRATION] Skip creation of <device>.xml
# [ADD_CLANG_FORMAT]
# )
#
function(ie_add_plugin)
set(options SKIP_INSTALL ADD_CLANG_FORMAT AS_EXTENSION)
set(options SKIP_INSTALL ADD_CLANG_FORMAT AS_EXTENSION SKIP_REGISTRATION)
set(oneValueArgs NAME DEVICE_NAME VERSION_DEFINES_FOR PSEUDO_PLUGIN_FOR)
set(multiValueArgs DEFAULT_CONFIG SOURCES OBJECT_LIBRARIES CPPLINT_FILTERS)
cmake_parse_arguments(IE_PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -101,7 +102,7 @@ function(ie_add_plugin)
add_cpplint_target(${IE_PLUGIN_NAME}_cpplint FOR_TARGETS ${IE_PLUGIN_NAME} CUSTOM_FILTERS ${custom_filter})
endif()
add_dependencies(ie_plugins ${IE_PLUGIN_NAME})
add_dependencies(ov_plugins ${IE_PLUGIN_NAME})
if(TARGET openvino_gapi_preproc)
if(BUILD_SHARED_LIBS)
add_dependencies(${IE_PLUGIN_NAME} openvino_gapi_preproc)
@@ -146,25 +147,27 @@ function(ie_add_plugin)
endif()
endif()
# check that plugin with such name is not registered
# Enable for static build to generate correct plugins.hpp
if(NOT IE_PLUGIN_SKIP_REGISTRATION OR NOT BUILD_SHARED_LIBS)
# check that plugin with such name is not registered
foreach(plugin_entry IN LISTS PLUGIN_FILES)
string(REPLACE ":" ";" plugin_entry "${plugin_entry}")
list(GET plugin_entry -1 library_name)
list(GET plugin_entry 0 plugin_name)
if(plugin_name STREQUAL "${IE_PLUGIN_DEVICE_NAME}" AND
NOT library_name STREQUAL ${IE_PLUGIN_NAME})
message(FATAL_ERROR "${IE_PLUGIN_NAME} and ${library_name} are both registered as ${plugin_name}")
endif()
endforeach()
foreach(plugin_entry IN LISTS PLUGIN_FILES)
string(REPLACE ":" ";" plugin_entry "${plugin_entry}")
list(GET plugin_entry -1 library_name)
list(GET plugin_entry 0 plugin_name)
if(plugin_name STREQUAL "${IE_PLUGIN_DEVICE_NAME}" AND
NOT library_name STREQUAL ${IE_PLUGIN_NAME})
message(FATAL_ERROR "${IE_PLUGIN_NAME} and ${library_name} are both registered as ${plugin_name}")
endif()
endforeach()
# append plugin to the list to register
# append plugin to the list to register
list(APPEND PLUGIN_FILES "${IE_PLUGIN_DEVICE_NAME}:${IE_PLUGIN_NAME}")
set(PLUGIN_FILES "${PLUGIN_FILES}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_CONFIG "${IE_PLUGIN_DEFAULT_CONFIG}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_PSEUDO_PLUGIN_FOR "${IE_PLUGIN_PSEUDO_PLUGIN_FOR}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_AS_EXTENSION "${IE_PLUGIN_AS_EXTENSION}" CACHE INTERNAL "" FORCE)
list(APPEND PLUGIN_FILES "${IE_PLUGIN_DEVICE_NAME}:${IE_PLUGIN_NAME}")
set(PLUGIN_FILES "${PLUGIN_FILES}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_CONFIG "${IE_PLUGIN_DEFAULT_CONFIG}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_PSEUDO_PLUGIN_FOR "${IE_PLUGIN_PSEUDO_PLUGIN_FOR}" CACHE INTERNAL "" FORCE)
set(${IE_PLUGIN_DEVICE_NAME}_AS_EXTENSION "${IE_PLUGIN_AS_EXTENSION}" CACHE INTERNAL "" FORCE)
endif()
endfunction()
function(ov_add_plugin)
@@ -172,13 +175,12 @@ function(ov_add_plugin)
endfunction()
#
# ie_register_plugins_dynamic(MAIN_TARGET <main target name>
# POSSIBLE_PLUGINS <list of plugins which can be build by this repo>)
# ie_register_plugins_dynamic(MAIN_TARGET <main target name>)
#
macro(ie_register_plugins_dynamic)
set(options)
set(oneValueArgs MAIN_TARGET)
set(multiValueArgs POSSIBLE_PLUGINS)
set(multiValueArgs)
cmake_parse_arguments(IE_REGISTER "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(NOT IE_REGISTER_MAIN_TARGET)
@@ -261,6 +263,15 @@ macro(ie_register_plugins)
endif()
endmacro()
#
# ov_register_plugins()
#
macro(ov_register_plugins)
if(BUILD_SHARED_LIBS)
ie_register_plugins_dynamic(${ARGN})
endif()
endmacro()
#
# ie_target_link_plugins(<TARGET_NAME>)
#
@@ -347,7 +358,7 @@ function(ie_generate_plugins_hpp)
# for some reason dependency on source files does not work
# so, we have to use explicit target and make it dependency for inference_engine
add_custom_target(_ie_plugins_hpp DEPENDS ${ie_plugins_hpp})
add_dependencies(inference_engine _ie_plugins_hpp)
add_dependencies(inference_engine_obj _ie_plugins_hpp)
# add dependency for object files
get_target_property(sources inference_engine_obj SOURCES)

View File

@@ -26,20 +26,22 @@ function (commitHash VAR)
set (${VAR} ${GIT_COMMIT_HASH} PARENT_SCOPE)
endfunction()
macro(ie_parse_ci_build_number)
set(IE_VERSION_BUILD 000)
macro(ov_parse_ci_build_number)
set(OpenVINO_VERSION_BUILD 000)
set(IE_VERSION_BUILD ${OpenVINO_VERSION_BUILD})
if(CI_BUILD_NUMBER MATCHES "^([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+)\-.*")
set(IE_VERSION_MAJOR ${CMAKE_MATCH_1})
set(IE_VERSION_MINOR ${CMAKE_MATCH_2})
set(IE_VERSION_PATCH ${CMAKE_MATCH_3})
set(IE_VERSION_BUILD ${CMAKE_MATCH_4})
set(OpenVINO_VERSION_MAJOR ${CMAKE_MATCH_1})
set(OpenVINO_VERSION_MINOR ${CMAKE_MATCH_2})
set(OpenVINO_VERSION_PATCH ${CMAKE_MATCH_3})
set(OpenVINO_VERSION_BUILD ${CMAKE_MATCH_4})
endif()
if(NOT DEFINED repo_root)
message(FATAL_ERROR "repo_root is not defined")
endif()
macro(ie_get_hpp_version)
macro(ov_get_hpp_version)
if(NOT DEFINED OpenVINO_SOURCE_DIR)
return()
endif()
@@ -59,11 +61,12 @@ macro(ie_parse_ci_build_number)
foreach(suffix MAJOR MINOR PATCH)
set(ie_version_name "IE_VERSION_${suffix}")
set(ov_version_name "OPENVINO_VERSION_${suffix}")
set(ov_version_name "OpenVINO_VERSION_${suffix}")
set(ov_version_name_hpp "OPENVINO_VERSION_${suffix}")
string(REGEX REPLACE ".+${ie_version_name}[ ]+([0-9]+).*" "\\1"
${ie_version_name}_HPP "${IE_VERSION_PARTS}")
string(REGEX REPLACE ".+${ov_version_name}[ ]+([0-9]+).*" "\\1"
string(REGEX REPLACE ".+${ov_version_name_hpp}[ ]+([0-9]+).*" "\\1"
${ov_version_name}_HPP "${OV_VERSION_PARTS}")
if(NOT ${ie_version_name}_HPP EQUAL ${ov_version_name}_HPP)
@@ -72,26 +75,26 @@ macro(ie_parse_ci_build_number)
endif()
endforeach()
set(ie_hpp_version_is_found ON)
set(ov_hpp_version_is_found ON)
endmacro()
# detect OpenVINO version via ie_version.hpp
ie_get_hpp_version()
# detect OpenVINO version via openvino/core/version.hpp and ie_version.hpp
ov_get_hpp_version()
if(ie_hpp_version_is_found)
foreach(var IE_VERSION_MAJOR IE_VERSION_MINOR IE_VERSION_PATCH)
if(ov_hpp_version_is_found)
foreach(var OpenVINO_VERSION_MAJOR OpenVINO_VERSION_MINOR OpenVINO_VERSION_PATCH)
if(DEFINED ${var} AND NOT ${var} EQUAL ${var}_HPP)
message(FATAL_ERROR "${var} parsed from CI_BUILD_NUMBER (${${var}}) \
and from ie_version.hpp (${${var}_HPP}) are different")
and from openvino/core/version.hpp (${${var}_HPP}) are different")
else()
# CI_BUILD_NUMBER is not defined well, take info from ie_verison.hpp as a baseline
# CI_BUILD_NUMBER is not defined well, take info from openvino/core/version.hpp as a baseline
set(${var} ${${var}_HPP})
endif()
endforeach()
endif()
set(IE_VERSION "${IE_VERSION_MAJOR}.${IE_VERSION_MINOR}.${IE_VERSION_PATCH}")
message(STATUS "OpenVINO version is ${IE_VERSION}")
set(OpenVINO_VERSION "${OpenVINO_VERSION_MAJOR}.${OpenVINO_VERSION_MINOR}.${OpenVINO_VERSION_PATCH}")
message(STATUS "OpenVINO version is ${OpenVINO_VERSION} (Build ${OpenVINO_VERSION_BUILD})")
endmacro()
if (DEFINED ENV{CI_BUILD_NUMBER})
@@ -104,10 +107,10 @@ else()
set(CI_BUILD_NUMBER "${custom_build}")
endif()
# provides Inference Engine version
# provides OpenVINO version
# 1. If CI_BUILD_NUMBER is defined, parses this information
# 2. Otherwise, parses ie_version.hpp
ie_parse_ci_build_number()
# 2. Otherwise, parses openvino/core/version.hpp
ov_parse_ci_build_number()
macro (addVersionDefines FILE)
set(__version_file ${FILE})

View File

@@ -2,9 +2,9 @@
# SPDX-License-Identifier: Apache-2.0
#
set(IE_VS_VER_FILEVERSION_QUAD "${IE_VERSION_MAJOR},${IE_VERSION_MINOR},${IE_VERSION_PATCH},0")
set(IE_VS_VER_PRODUCTVERSION_QUAD "${IE_VERSION_MAJOR},${IE_VERSION_MINOR},${IE_VERSION_PATCH},0")
set(IE_VS_VER_FILEVERSION_STR "${IE_VERSION_MAJOR}.${IE_VERSION_MINOR}.${IE_VERSION_PATCH}.0")
set(IE_VS_VER_FILEVERSION_QUAD "${OpenVINO_VERSION_MAJOR},${OpenVINO_VERSION_MINOR},${OpenVINO_VERSION_PATCH},${OpenVINO_VERSION_BUILD}")
set(IE_VS_VER_PRODUCTVERSION_QUAD "${OpenVINO_VERSION_MAJOR},${OpenVINO_VERSION_MINOR},${OpenVINO_VERSION_PATCH},${OpenVINO_VERSION_BUILD}")
set(IE_VS_VER_FILEVERSION_STR "${OpenVINO_VERSION_MAJOR}.${OpenVINO_VERSION_MINOR}.${OpenVINO_VERSION_PATCH}.${OpenVINO_VERSION_BUILD}")
set(IE_VS_VER_COMPANY_NAME_STR "Intel Corporation")
set(IE_VS_VER_PRODUCTVERSION_STR "${CI_BUILD_NUMBER}")

View File

@@ -6,15 +6,19 @@ function(ie_generate_dev_package_config)
# dummy check that OpenCV is here
find_package(OpenCV QUIET)
set(all_dev_targets gflags ov_runtime_libraries)
foreach(component IN LISTS openvino_export_components)
# export all targets with prefix and use them during extra modules build
export(TARGETS ${${component}} NAMESPACE IE::
APPEND FILE "${CMAKE_BINARY_DIR}/${component}_dev_targets.cmake")
APPEND FILE "${CMAKE_BINARY_DIR}/${component}_dev_targets.cmake")
list(APPEND all_dev_targets ${${component}})
endforeach()
add_custom_target(ie_dev_targets DEPENDS ${all_dev_targets})
# if we've found system gflags
if(gflags_DIR)
set(gflags_BINARY_DIR "${gflags_DIR}")
endif()
configure_package_config_file("${OpenVINO_SOURCE_DIR}/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in"
"${CMAKE_BINARY_DIR}/InferenceEngineDeveloperPackageConfig.cmake"
INSTALL_DESTINATION share # not used
@@ -30,18 +34,22 @@ function(ov_generate_dev_package_config)
# dummy check that OpenCV is here
find_package(OpenCV QUIET)
set(all_dev_targets gflags ov_runtime_libraries)
foreach(component IN LISTS openvino_export_components)
string(FIND "${component}" "_legacy" index)
if (index EQUAL -1)
if(index EQUAL -1)
# export all targets with prefix and use them during extra modules build
export(TARGETS ${${component}} NAMESPACE openvino::
APPEND FILE "${CMAKE_BINARY_DIR}/ov_${component}_dev_targets.cmake")
APPEND FILE "${CMAKE_BINARY_DIR}/ov_${component}_dev_targets.cmake")
list(APPEND all_dev_targets ${${component}})
endif()
endforeach()
add_custom_target(ov_dev_targets DEPENDS ${all_dev_targets})
# if we've found system gflags
if(gflags_DIR)
set(gflags_BINARY_DIR "${gflags_DIR}")
endif()
configure_package_config_file("${OpenVINO_SOURCE_DIR}/cmake/templates/OpenVINODeveloperPackageConfig.cmake.in"
"${CMAKE_BINARY_DIR}/OpenVINODeveloperPackageConfig.cmake"
INSTALL_DESTINATION share # not used
@@ -59,14 +67,14 @@ endfunction()
function(register_extra_modules)
# post export
openvino_developer_export_targets(COMPONENT core TARGETS inference_engine)
openvino_developer_export_targets(COMPONENT core TARGETS ngraph)
openvino_developer_export_targets(COMPONENT core_legacy TARGETS inference_engine)
openvino_developer_export_targets(COMPONENT core_legacy TARGETS ngraph)
set(InferenceEngineDeveloperPackage_DIR "${CMAKE_CURRENT_BINARY_DIR}/runtime")
set(OpenVINODeveloperPackage_DIR "${CMAKE_BINARY_DIR}/runtime")
function(generate_fake_dev_package NS)
if (NS STREQUAL "openvino")
if(NS STREQUAL "openvino")
set(devconfig_file "${OpenVINODeveloperPackage_DIR}/OpenVINODeveloperPackageConfig.cmake")
else()
set(devconfig_file "${InferenceEngineDeveloperPackage_DIR}/InferenceEngineDeveloperPackageConfig.cmake")
@@ -81,10 +89,6 @@ function(register_extra_modules)
file(APPEND "${devconfig_file}" "add_library(${NS}::${target} ALIAS ${target})\n")
endif()
endforeach()
if ("${NS}" STREQUAL "openvino")
file(APPEND "${devconfig_file}" "add_library(${NS}::runtime ALIAS openvino)\n")
file(APPEND "${devconfig_file}" "add_library(${NS}::runtime::dev ALIAS openvino_dev)\n")
endif()
endfunction()
generate_fake_dev_package("openvino")
@@ -137,7 +141,7 @@ ie_generate_dev_package_config()
ov_generate_dev_package_config()
# extra modules must be registered after inference_engine library
# and all other IE common libraries (ov_runtime_libraries) are creared
# and all other OpenVINO Core libraries are creared
# because 'register_extra_modules' creates fake InferenceEngineDeveloperPackageConfig.cmake
# with all imported developer targets
register_extra_modules()

View File

@@ -59,7 +59,7 @@ cmake_dependent_option (ENABLE_WHEEL "Build wheel packages for PyPi" OFF
# Inference Engine specific options
#
# "MKL-DNN library based on OMP or TBB or Sequential implementation: TBB|OMP|SEQ"
# "OneDNN library based on OMP or TBB or Sequential implementation: TBB|OMP|SEQ"
if(X86 OR ARM OR (MSVC AND (ARM OR AARCH64)) )
set(THREADING_DEFAULT "SEQ")
else()
@@ -82,7 +82,7 @@ else()
set(ENABLE_TBBBIND_2_5_DEFAULT OFF)
endif()
ie_dependent_option (ENABLE_TBBBIND_2_5 "Enable TBBBind_2_5 static usage in OpenVINO runtime" ON "ENABLE_TBBBIND_2_5_DEFAULT" OFF)
ie_dependent_option (ENABLE_TBBBIND_2_5 "Enable TBBBind_2_5 static usage in OpenVINO runtime" ${ENABLE_TBBBIND_2_5_DEFAULT} "THREADING MATCHES TBB" OFF)
ie_dependent_option (ENABLE_INTEL_GNA "GNA support for inference engine" ON
"NOT APPLE;NOT ANDROID;X86_64;CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.4" OFF)
@@ -136,6 +136,17 @@ ie_dependent_option(ENABLE_TBB_RELEASE_ONLY "Only Release TBB libraries are link
ie_dependent_option (ENABLE_SYSTEM_PUGIXML "use the system copy of pugixml" OFF "BUILD_SHARED_LIBS" OFF)
get_linux_name(LINUX_OS_NAME)
if(LINUX_OS_NAME MATCHES "^Ubuntu [0-9]+\.[0-9]+$" AND NOT DEFINED ENV{TBBROOT})
# Debian packages are enabled on Ubuntu systems
# so, system TBB can be tried for usage
set(ENABLE_SYSTEM_TBB_DEFAULT ON)
else()
set(ENABLE_SYSTEM_TBB_DEFAULT OFF)
endif()
ie_dependent_option (ENABLE_SYSTEM_TBB "use the system version of TBB" ${ENABLE_SYSTEM_TBB_DEFAULT} "THREADING MATCHES TBB;LINUX" OFF)
ie_option (ENABLE_DEBUG_CAPS "enable OpenVINO debug capabilities at runtime" OFF)
ie_dependent_option (ENABLE_GPU_DEBUG_CAPS "enable GPU debug capabilities at runtime" ON "ENABLE_DEBUG_CAPS" OFF)

View File

@@ -2,9 +2,9 @@
# SPDX-License-Identifier: Apache-2.0
#
set(PACKAGE_VERSION_MAJOR @IE_VERSION_MAJOR@)
set(PACKAGE_VERSION_MINOR @IE_VERSION_MINOR@)
set(PACKAGE_VERSION_PATCH @IE_VERSION_PATCH@)
set(PACKAGE_VERSION_MAJOR @OpenVINO_VERSION_MAJOR@)
set(PACKAGE_VERSION_MINOR @OpenVINO_VERSION_MINOR@)
set(PACKAGE_VERSION_PATCH @OpenVINO_VERSION_PATCH@)
set(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
set(PACKAGE_VERSION_EXACT False)

View File

@@ -12,19 +12,20 @@ set_and_check(OpenVINO_MAIN_SOURCE_DIR "@OpenVINO_SOURCE_DIR@") # KMB
# Variables to export in plugin's projects
set(ie_options "@IE_OPTIONS@;CMAKE_BUILD_TYPE;CMAKE_SKIP_RPATH")
list(APPEND ie_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER)
set(ie_options "@IE_OPTIONS@")
list(APPEND ie_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER
CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX)
file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path)
message(STATUS "The following CMake options are exported from Inference Engine Developer package")
message("")
message(" ")
foreach(option IN LISTS ie_options)
if(NOT DEFINED "${option}")
load_cache("${cache_path}" READ_WITH_PREFIX "" ${option})
endif()
message(" ${option}: ${${option}}")
endforeach()
message("")
message(" ")
# for samples in 3rd party projects
set_and_check(gflags_DIR "@gflags_BINARY_DIR@")
@@ -44,11 +45,6 @@ find_dependency(InferenceEngine
NO_DEFAULT_PATH)
find_dependency(ngraph
PATHS "${CMAKE_CURRENT_LIST_DIR}/src/core"
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
find_dependency(OpenVINODeveloperPackage
PATHS "${CMAKE_CURRENT_LIST_DIR}"
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
@@ -70,6 +66,18 @@ foreach(component @openvino_export_components@)
include("${CMAKE_CURRENT_LIST_DIR}/${component}_dev_targets.cmake")
endforeach()
if(TARGET IE::ov_core_dev AND NOT TARGET openvino::core::dev)
add_library(openvino::core::dev INTERFACE IMPORTED)
set_target_properties(openvino::core::dev PROPERTIES
INTERFACE_LINK_LIBRARIES IE::ov_core_dev)
endif()
if(TARGET IE::runtime::dev AND NOT TARGET openvino::runtime::dev)
add_library(openvino::runtime::dev INTERFACE IMPORTED)
set_target_properties(openvino::runtime::dev PROPERTIES
INTERFACE_LINK_LIBRARIES IE::runtime::dev)
endif()
if(ENABLE_SYSTEM_PUGIXML)
find_dependency(PugiXML)
set_property(TARGET pugixml PROPERTY IMPORTED_GLOBAL TRUE)
@@ -86,13 +94,11 @@ endif()
# Extra Compile Flags
#
if(NOT MSVC)
if(CMAKE_COMPILER_IS_GNUCXX)
ie_add_compiler_flags(-Wno-error=unused-variable)
if(CMAKE_COMPILER_IS_GNUCXX)
ie_add_compiler_flags(-Wno-error=unused-but-set-variable)
if(SUGGEST_OVERRIDE_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
endif()
ie_add_compiler_flags(-Wno-error=unused-but-set-variable)
if(SUGGEST_OVERRIDE_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
endif()
endif()

View File

@@ -2,9 +2,9 @@
# SPDX-License-Identifier: Apache-2.0
#
set(PACKAGE_VERSION_MAJOR @IE_VERSION_MAJOR@)
set(PACKAGE_VERSION_MINOR @IE_VERSION_MINOR@)
set(PACKAGE_VERSION_PATCH @IE_VERSION_PATCH@)
set(PACKAGE_VERSION_MAJOR @OpenVINO_VERSION_MAJOR@)
set(PACKAGE_VERSION_MINOR @OpenVINO_VERSION_MINOR@)
set(PACKAGE_VERSION_PATCH @OpenVINO_VERSION_PATCH@)
set(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")
set(PACKAGE_VERSION_EXACT False)

View File

@@ -12,6 +12,7 @@
# * `Runtime`: OpenVINO C++ and C Core & Inference Runtime, frontend common
# * `ONNX`: OpenVINO ONNX frontend
# * `Paddle`: OpenVINO Paddle frontend
# * `TensorFlow`: OpenVINO TensorFlow frontend
#
# If no components are specified, `Runtime` component is provided:
#
@@ -146,14 +147,29 @@ set(_ov_package_prefix_dir "${PACKAGE_PREFIX_DIR}")
set(THREADING "@THREADING@")
if((THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO") AND NOT TBB_FOUND)
set_and_check(_tbb_dir "@PACKAGE_IE_TBB_DIR@")
set(enable_system_tbb "@ENABLE_SYSTEM_TBB@")
if(NOT enable_system_tbb)
set_and_check(_tbb_dir "@PACKAGE_IE_TBB_DIR@")
set(find_package_tbb_extra_args
CONFIG
PATHS
# oneTBB case exposed via export TBBROOT=<custom TBB root>
"$ENV{TBBROOT}/lib64/cmake/TBB"
"$ENV{TBBROOT}/lib/cmake/TBB"
# "$ENV{TBB_DIR}"
# for custom TBB exposed via cmake -DTBBROOT=<custom TBB root>
"${TBBROOT}/cmake"
# _tbb_dir points to TBB_DIR (custom | temp | system) used to build OpenVINO
${_tbb_dir}
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
unset(_tbb_dir)
endif()
unset(enable_system_tbb)
_ov_find_dependency(TBB
COMPONENTS tbb tbbmalloc
CONFIG
PATHS ${TBBROOT}/cmake
${_tbb_dir}
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
${find_package_tbb_extra_args})
set(install_tbbbind "@install_tbbbind@")
if(install_tbbbind)
@@ -164,6 +180,7 @@ if((THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO") AND NOT TBB_FOUND
NO_DEFAULT_PATH)
set_target_properties(${TBBBIND_2_5_IMPORTED_TARGETS} PROPERTIES IMPORTED_GLOBAL ON)
endif()
unset(install_tbbbind)
endif()
_ov_find_dependency(Threads)
@@ -175,7 +192,7 @@ if(ENABLE_INTEL_GNA AND NOT ENABLE_INTEL_GNA_SHARED AND NOT libGNA_FOUND)
_ov_find_dependency(libGNA
COMPONENTS KERNEL
CONFIG
PATHS ${CMAKE_CURRENT_LIST_DIR}
PATHS "${CMAKE_CURRENT_LIST_DIR}"
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
endif()
@@ -184,7 +201,8 @@ if(NOT TARGET openvino)
set(_ov_as_external_package ON)
include("${CMAKE_CURRENT_LIST_DIR}/OpenVINOTargets.cmake")
# TODO: WA for cmake version < 3.16
# WA for cmake version < 3.16 which does not export
# IMPORTED_LINK_DEPENDENT_LIBRARIES_** properties if no PUBLIC dependencies for the library
if((THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO") AND TBB_FOUND)
foreach (type RELEASE DEBUG RELWITHDEBINFO MINSIZEREL)
set_property(TARGET openvino::runtime APPEND PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES_${type} "TBB::tbb;TBB::tbbmalloc")

View File

@@ -10,19 +10,20 @@ set_and_check(OpenVINO_SOURCE_DIR "@OpenVINO_SOURCE_DIR@")
# Variables to export in plugin's projects
set(ie_options "@IE_OPTIONS@;CMAKE_BUILD_TYPE;CMAKE_SKIP_RPATH")
list(APPEND ie_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER)
set(ov_options "@IE_OPTIONS@")
list(APPEND ov_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER
CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX)
file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path)
message(STATUS "The following CMake options are exported from OpenVINO Developer package")
message("")
foreach(option IN LISTS ie_options)
message(" ")
foreach(option IN LISTS ov_options)
if(NOT DEFINED "${option}")
load_cache("${cache_path}" READ_WITH_PREFIX "" ${option})
endif()
message(" ${option}: ${${option}}")
endforeach()
message("")
message(" ")
# for samples in 3rd party projects
set_and_check(gflags_DIR "@gflags_BINARY_DIR@")
@@ -51,10 +52,10 @@ endforeach()
if(ENABLE_SYSTEM_PUGIXML)
find_dependency(PugiXML)
set_property(TARGET pugixml PROPERTY IMPORTED_GLOBAL TRUE)
add_library(IE::pugixml ALIAS pugixml)
add_library(openvino::pugixml ALIAS pugixml)
endif()
# inherit OpenCV from main IE project if enabled
# inherit OpenCV from main OpenVINO project if enabled
if ("@OpenCV_FOUND@")
load_cache("${cache_path}" READ_WITH_PREFIX "" OpenCV_DIR)
find_dependency(OpenCV)
@@ -64,13 +65,11 @@ endif()
# Extra Compile Flags
#
if(NOT MSVC)
if(CMAKE_COMPILER_IS_GNUCXX)
ie_add_compiler_flags(-Wno-error=unused-variable)
if(CMAKE_COMPILER_IS_GNUCXX)
ie_add_compiler_flags(-Wno-error=unused-but-set-variable)
if(SUGGEST_OVERRIDE_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
endif()
ie_add_compiler_flags(-Wno-error=unused-but-set-variable)
if(SUGGEST_OVERRIDE_SUPPORTED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-suggest-override")
endif()
endif()

View File

@@ -86,11 +86,6 @@ ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/onnx_import"
ie_onnx_import_out_files)
set(rel_path "docs/onnx_custom_op")
ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo/docs/models"
docs_onnx_out_files)
if(ENABLE_TESTS)
if(ENABLE_OV_ONNX_FRONTEND AND ENABLE_REQUIREMENTS_INSTALL)
find_package(PythonInterp 3 REQUIRED)
@@ -113,7 +108,7 @@ if(ENABLE_TESTS)
message(STATUS "pip version is ${pip3_version}")
set(args --quiet)
if(pip3_version VERSION_GREATER 20.2.2)
if(pip3_version VERSION_GREATER 20.2.2 AND pip3_version VERSION_LESS 20.3.0)
list(APPEND args --use-feature=2020-resolver)
endif()

View File

@@ -25,7 +25,7 @@ endif()
if(use_static_runtime)
foreach(lang C CXX)
foreach(build_type "" "_DEBUG" "_MINSIZEREL" "_RELEASE" "_RELWITHDEBINFO")
set(flag_var "CMAKE_${lang}_FLAGS${build_type}")
set(flag_var "CMAKE_${lang}_FLAGS${build_type}_INIT")
string(REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endforeach()
endforeach()

View File

@@ -1,41 +0,0 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
if(DEFINED OECORE_BASE_DIR)
# OECORE_BASE_DIR was passed via CMake command line, nothing to do
elseif(DEFINED ENV{OECORE_BASE_DIR})
# User sets OECORE_BASE_DIR environment variable
set(OECORE_BASE_DIR $ENV{OECORE_BASE_DIR})
elseif(DEFINED ENV{OECORE_NATIVE_SYSROOT})
# OECORE_NATIVE_SYSROOT is a default environment variable for the OECore toolchain
set(OECORE_BASE_DIR "$ENV{OECORE_NATIVE_SYSROOT}/../..")
else()
# Use default value
set(OECORE_BASE_DIR "/usr/local/oecore-x86_64")
endif()
set(OECORE_TARGET_NAME "aarch64-ese-linux")
set(OECORE_TARGET_SYSROOT "${OECORE_BASE_DIR}/sysroots/${OECORE_TARGET_NAME}")
set(OECORE_HOST_SYSROOT "${OECORE_BASE_DIR}/sysroots/x86_64-esesdk-linux")
set(OECORE_HOST_COMPILER_BIN_DIR "${OECORE_HOST_SYSROOT}/usr/bin/${OECORE_TARGET_NAME}")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
set(CMAKE_SYSROOT "${OECORE_TARGET_SYSROOT}")
set(CMAKE_C_COMPILER "${OECORE_HOST_COMPILER_BIN_DIR}/aarch64-ese-linux-gcc")
set(CMAKE_CXX_COMPILER "${OECORE_HOST_COMPILER_BIN_DIR}/aarch64-ese-linux-g++")
set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-a53 -mtune=cortex-a53 --sysroot=${OECORE_TARGET_SYSROOT}")
set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-a53 -mtune=cortex-a53 --sysroot=${OECORE_TARGET_SYSROOT}")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=${OECORE_TARGET_SYSROOT}")
set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=${OECORE_TARGET_SYSROOT}")
set(CMAKE_MODULE_LINKER_FLAGS_INIT "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=${OECORE_TARGET_SYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

View File

@@ -35,14 +35,14 @@ if(_onecoreuap_arch STREQUAL "x64")
# Forcefull make VS search for C++ libraries in these folders prior to other c++ standard libraries localizations.
add_link_options("/LIBPATH:\"\$\(VC_LibraryPath_VC_x64_OneCore\)\"")
set(CMAKE_C_STANDARD_LIBRARIES "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/\$\(Platform\)/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/\$\(Platform\)/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_C_STANDARD_LIBRARIES_INIT "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/\$\(Platform\)/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/\$\(Platform\)/OneCoreUap.lib" CACHE STRING "" FORCE)
elseif(_onecoreuap_arch STREQUAL "X86")
add_link_options("/LIBPATH:\"\$\(VCInstallDir\)lib/onecore\"")
add_link_options("/LIBPATH:\"\$\(VC_LibraryPath_VC_x86_OneCore\)\"")
set(CMAKE_C_STANDARD_LIBRARIES "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/x86/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/x86/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_C_STANDARD_LIBRARIES_INIT "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/x86/OneCoreUap.lib" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "\$\(UCRTContentRoot\)lib/\$\(TargetUniversalCRTVersion\)/um/x86/OneCoreUap.lib" CACHE STRING "" FORCE)
else()
message(FATAL_ERROR "Unsupported architecture ${_onecoreuap_arch}. Only X86 or X86_64 are supported")
endif()
@@ -52,8 +52,8 @@ unset(_onecoreuap_arch)
# compile flags
set(includes "/I\"\$\(UniversalCRT_IncludePath\)\"")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${includes}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${includes}")
set(CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} ${includes}")
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} ${includes}")
unset(includes)
# linker flags
@@ -62,9 +62,9 @@ foreach(lib kernel32 user32 advapi32 ole32 mscoree combase)
set(linker_flags "/NODEFAULTLIB:${lib}.lib ${linker_flags}")
endforeach()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${linker_flags}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${linker_flags}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${linker_flags}")
set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} ${linker_flags}")
set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_MODULE_LINKER_FLAGS_INIT} ${linker_flags}")
set(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT} ${linker_flags}")
unset(linker_flags)
#

View File

@@ -7,8 +7,6 @@ if(NOT ENABLE_DOCKER)
ie_add_compiler_flags(-Wall)
endif()
add_subdirectory(snippets)
# Detect OpenVINO
find_package(OpenVINO QUIET
PATHS "${CMAKE_BINARY_DIR}"
@@ -17,9 +15,8 @@ if(NOT ENABLE_DOCKER)
set(OpenVINO_DIR ${CMAKE_BINARY_DIR})
endif()
if(ENABLE_OV_ONNX_FRONTEND)
add_subdirectory(onnx_custom_op)
endif()
add_subdirectory(snippets)
add_subdirectory(template_extension)
set(all_docs_targets
@@ -49,6 +46,7 @@ endif()
set(LINKCHECKER_PY "" CACHE FILEPATH "Path to linkchecker.py for documentation check dir.")
set(ENABLE_OPENVINO_NOTEBOOKS OFF CACHE BOOL "Build with openvino notebooks")
set(OMZ_DOCS_DIR "" CACHE PATH "Path to open_model_zoo documentation dir.")
set(OTE_DOCS_DIR "" CACHE PATH "Path to training_extensions documentation dir.")
set(WORKBENCH_DOCS_DIR "" CACHE PATH "Path to workbench documentation dir.")
set(OVMS_DOCS_DIR "" CACHE PATH "Path to model server documentation dir.")
set(GRAPH_CSV_DIR "" CACHE PATH "Path to the folder containing csv data for rendering graphs.")
@@ -133,6 +131,16 @@ function(build_docs)
)
endif()
list(APPEND commands
COMMAND ${CMAKE_COMMAND} -E copy ${API_DOCS_IN}/api_reference.rst ${API_DOCS_OUT}/api_reference.rst
)
if(ENABLE_PYTHON)
list(APPEND commands
COMMAND ${CMAKE_COMMAND} -E copy_directory ${API_DOCS_IN}/ie_python_api ${API_DOCS_OUT}/ie_python_api
)
endif()
# omz doc files
if(EXISTS "${OMZ_DOCS_DIR}")
get_filename_component(OMZ_DOCS_DIR "${OMZ_DOCS_DIR}" ABSOLUTE)
@@ -152,6 +160,15 @@ function(build_docs)
--output_dir=${DOCS_BUILD_DIR}/workbench)
endif()
# ote doc files
if(EXISTS "${OTE_DOCS_DIR}")
get_filename_component(WORKBENCH_DOCS_DIR "${OTE_DOCS_DIR}" ABSOLUTE)
list(APPEND commands COMMAND ${PYTHON_EXECUTABLE} ${DOXY_MD_FILTER}
--input_dir=${OTE_DOCS_DIR}
--output_dir=${DOCS_BUILD_DIR}/ote)
endif()
# ovms doc files
if(EXISTS "${OVMS_DOCS_DIR}")
get_filename_component(OVMS_DOCS_DIR "${OVMS_DOCS_DIR}" ABSOLUTE)
@@ -190,7 +207,6 @@ function(build_docs)
COMMAND ${PYTHON_EXECUTABLE} ${COPY_IMAGES_SCRIPT} ${XML_OUTPUT} ${RST_OUTPUT}
COMMAND ${PYTHON_EXECUTABLE} ${DOXYGEN_MAPPING_SCRIPT} ${XML_OUTPUT} ${DOCS_BUILD_DIR} ${OpenVINO_SOURCE_DIR}/../
COMMAND ${CMAKE_COMMAND} -E copy ${SPHINX_INDEX_IN} ${SPHINX_INDEX_OUT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${API_DOCS_IN} ${API_DOCS_OUT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SPHINX_TEMPLATES_IN} ${SPHINX_TEMPLATES_OUT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${DOXYREST_IN} ${DOXYREST_OUT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${DOXYREST_SPHINX_IN} ${DOXYREST_SPHINX_OUT}

View File

@@ -0,0 +1,8 @@
# Introduction to OpenVINO™ Deployment {#openvino_docs_deployment_guide_introduction}
Once you have a model that meets both OpenVINO™ and your requirements, you can choose among several ways of deploying it with your application:
* [Run inference and develop your app with OpenVINO™ Runtime](../OV_Runtime_UG/openvino_intro.md).
* [Deploy your application locally](../OV_Runtime_UG/deployment/deployment_intro.md).
* [Deploy your model online with the OpenVINO Model Server](@ref ovms_what_is_openvino_model_server).

View File

@@ -0,0 +1,111 @@
# OpenVINO™ Deep Learning Workbench Overview {#workbench_docs_Workbench_DG_Introduction}
@sphinxdirective
.. toctree::
:maxdepth: 1
:hidden:
workbench_docs_Workbench_DG_Install
workbench_docs_Workbench_DG_Work_with_Models_and_Sample_Datasets
Tutorials <workbench_docs_Workbench_DG_Tutorials>
User Guide <workbench_docs_Workbench_DG_User_Guide>
workbench_docs_Workbench_DG_Troubleshooting
@endsphinxdirective
Deep Learning Workbench (DL Workbench) is an official OpenVINO™ graphical interface designed to make the production of pretrained deep learning Computer Vision and Natural Language Processing models significantly easier.
Minimize the inference-to-deployment workflow timing for neural models right in your browser: import a model, analyze its performance and accuracy, visualize the outputs, optimize and make the final model deployment-ready in a matter of minutes. DL Workbench takes you through the full OpenVINO™ workflow, providing the opportunity to learn about various toolkit components.
![](../img/openvino_dl_wb.png)
@sphinxdirective
.. link-button:: workbench_docs_Workbench_DG_Start_DL_Workbench_in_DevCloud
:type: ref
:text: Run DL Workbench in Intel® DevCloud
:classes: btn-primary btn-block
@endsphinxdirective
DL Workbench enables you to get a detailed performance assessment, explore inference configurations, and obtain an optimized model ready to be deployed on various Intel® configurations, such as client and server CPU, Intel® Processor Graphics (GPU), Intel® Movidius™ Neural Compute Stick 2 (NCS 2), and Intel® Vision Accelerator Design with Intel® Movidius™ VPUs.
DL Workbench also provides the [JupyterLab environment](https://docs.openvino.ai/latest/workbench_docs_Workbench_DG_Jupyter_Notebooks.html#doxid-workbench-docs-workbench-d-g-jupyter-notebooks) that helps you quick start with OpenVINO™ API and command-line interface (CLI). Follow the full OpenVINO workflow created for your model and learn about different toolkit components.
## Video
@sphinxdirective
.. list-table::
* - .. raw:: html
<iframe allowfullscreen mozallowfullscreen msallowfullscreen oallowfullscreen webkitallowfullscreen height="315" width="560"
src="https://www.youtube.com/embed/on8xSSTKCt8">
</iframe>
* - **DL Workbench Introduction**. Duration: 1:31
@endsphinxdirective
## User Goals
DL Workbench helps achieve your goals depending on the stage of your deep learning journey.
If you are a beginner in the deep learning field, the DL Workbench provides you with
learning opportunities:
* Learn what neural networks are, how they work, and how to examine their architectures.
* Learn the basics of neural network analysis and optimization before production.
* Get familiar with the OpenVINO™ ecosystem and its main components without installing it on your system.
If you have enough experience with neural networks, DL Workbench provides you with a
convenient web interface to optimize your model and prepare it for production:
* Measure and interpret model performance.
* Tune the model for enhanced performance.
* Analyze the quality of your model and visualize output.
## General Workflow
The diagram below illustrates the typical DL Workbench workflow. Click to see the full-size image:
![](../img/openvino_dl_wb_diagram_overview.svg)
Get a quick overview of the workflow in the DL Workbench User Interface:
![](../img/openvino_dl_wb_workflow.gif)
## OpenVINO™ Toolkit Components
The intuitive web-based interface of the DL Workbench enables you to easily use various
OpenVINO™ toolkit components:
Component | Description
|------------------|------------------|
| [Open Model Zoo](https://docs.openvinotoolkit.org/latest/omz_tools_downloader.html)| Get access to the collection of high-quality pre-trained deep learning [public](https://docs.openvinotoolkit.org/latest/omz_models_group_public.html) and [Intel-trained](https://docs.openvinotoolkit.org/latest/omz_models_group_intel.html) models trained to resolve a variety of different tasks.
| [Model Optimizer](https://docs.openvinotoolkit.org/latest/openvino_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html) |Optimize and transform models trained in supported frameworks to the IR format. <br>Supported frameworks include TensorFlow\*, Caffe\*, Kaldi\*, MXNet\*, and ONNX\* format.
| [Benchmark Tool](https://docs.openvinotoolkit.org/latest/openvino_inference_engine_tools_benchmark_tool_README.html)| Estimate deep learning model inference performance on supported devices.
| [Accuracy Checker](https://docs.openvinotoolkit.org/latest/omz_tools_accuracy_checker.html)| Evaluate the accuracy of a model by collecting one or several metric values.
| [Post-Training Optimization Tool](https://docs.openvinotoolkit.org/latest/pot_README.html)| Optimize pretrained models with lowering the precision of a model from floating-point precision(FP32 or FP16) to integer precision (INT8), without the need to retrain or fine-tune models. |
@sphinxdirective
.. link-button:: workbench_docs_Workbench_DG_Start_DL_Workbench_in_DevCloud
:type: ref
:text: Run DL Workbench in Intel® DevCloud
:classes: btn-outline-primary
@endsphinxdirective
## Contact Us
* [DL Workbench GitHub Repository](https://github.com/openvinotoolkit/workbench)
* [DL Workbench on Intel Community Forum](https://community.intel.com/t5/Intel-Distribution-of-OpenVINO/bd-p/distribution-openvino-toolkit)
* [DL Workbench Gitter Chat](https://gitter.im/dl-workbench/general?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&content=body)

View File

@@ -0,0 +1,12 @@
# Introduction to Model Processing {#openvino_docs_model_processing_introduction}
Every deep learning workflow begins with obtaining a model. You can choose to prepare a custom one, use a ready-made solution and adjust it to your needs, or even download and run a pre-trained network from an online database, such as OpenVINO's [Open Model Zoo](../model_zoo.md).
This section describes how to obtain and prepare your model for work with OpenVINO to get the best inference results:
* [Browse a database of models for use in your projects](../model_zoo.md).
* [Convert different model formats to the OpenVINO IR format](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
* [Automate model-related tasks with Model Downloader and additional OMZ Tools](https://docs.openvino.ai/latest/omz_tools_downloader.html).

View File

@@ -0,0 +1,76 @@
# OpenVINO™ Ecosystem Overview {#openvino_ecosystem}
OpenVINO™ is not just one tool. It is an expansive ecosystem of utilities, providing a comprehensive workflow for deep learning solution development. Learn more about each of them to reach the full potential of OpenVINO™ Toolkit.
### OpenVINO™ Model Server (OVMS)
OpenVINO Model Server is a scalable, high-performance solution for serving deep learning models optimized for Intel® architectures. The server uses Inference Engine libraries as a backend and exposes gRPC and HTTP/REST interfaces for inference that are fully compatible with TensorFlow Serving.
More resources:
* [OpenVINO documentation](https://docs.openvino.ai/latest/openvino_docs_ovms.html)
* [Docker Hub](https://hub.docker.com/r/openvino/model_server)
* [GitHub](https://github.com/openvinotoolkit/model_server)
* [Red Hat Ecosystem Catalog](https://catalog.redhat.com/software/container-stacks/detail/60649e41ccfb383fe395a167)
### Neural Network Compression Framework (NNCF)
A suite of advanced algorithms for Neural Network inference optimization with minimal accuracy drop. NNCF applies quantization, filter pruning, binarization and sparsity algorithms to PyTorch and TensorFlow models during training.
More resources:
* [Documentation](@ref docs_nncf_introduction)
* [GitHub](https://github.com/openvinotoolkit/nncf)
* [PyPI](https://pypi.org/project/nncf/)
### OpenVINO™ Security Add-on
A solution for Model Developers and Independent Software Vendors to use secure packaging and secure model execution.
More resources:
* [documentation](https://docs.openvino.ai/latest/ovsa_get_started.html)
* [GitHub]https://github.com/openvinotoolkit/security_addon)
### OpenVINO™ integration with TensorFlow (OVTF)
A solution empowering TensorFlow developers with OpenVINO's optimization capabilities. With just two lines of code in your application, you can offload inference to OpenVINO, while keeping the TensorFlow API.
More resources:
* [documentation](https://github.com/openvinotoolkit/openvino_tensorflow)
* [PyPI](https://pypi.org/project/openvino-tensorflow/)
* [GitHub](https://github.com/openvinotoolkit/openvino_tensorflow)
### DL Streamer
A streaming media analytics framework, based on the GStreamer multimedia framework, for creating complex media analytics pipelines.
More resources:
* [documentation on GitHub](https://openvinotoolkit.github.io/dlstreamer_gst/)
* [installation Guide on GitHub](https://github.com/openvinotoolkit/dlstreamer_gst/wiki/Install-Guide)
### DL Workbench
A web-based tool for deploying deep learning models. Built on the core of OpenVINO and equipped with a graphics user interface, DL Workbench is a great way to explore the possibilities of the OpenVINO workflow, import, analyze, optimize, and build your pre-trained models. You can do all that by visiting [Intel® DevCloud for the Edge](https://software.intel.com/content/www/us/en/develop/tools/devcloud.html) and launching DL Workbench on-line.
More resources:
* [documentation](dl_workbench_overview.md)
* [Docker Hub](https://hub.docker.com/r/openvino/workbench)
* [PyPI](https://pypi.org/project/openvino-workbench/)
### OpenVINO™ Training Extensions (OTE)
A convenient environment to train Deep Learning models and convert them using the OpenVINO™ toolkit for optimized inference.
More resources:
* [GitHub](https://github.com/openvinotoolkit/training_extensions)
### Computer Vision Annotation Tool (CVAT)
An online, interactive video and image annotation tool for computer vision purposes.
More resources:
* [documentation on GitHub](https://openvinotoolkit.github.io/cvat/docs/)
* [web application](https://cvat.org/)
* [Docker Hub](https://hub.docker.com/r/openvino/cvat_server)
* [GitHub](https://github.com/openvinotoolkit/cvat)
### Dataset Management Framework (Datumaro)
A framework and CLI tool to build, transform, and analyze datasets.
More resources:
* [documentation on GitHub](https://openvinotoolkit.github.io/datumaro/docs/)
* [PyPI](https://pypi.org/project/datumaro/)
* [GitHub](https://github.com/openvinotoolkit/datumaro)

View File

@@ -0,0 +1,44 @@
# OpenVINO™ integration with TensorFlow {#ovtf_integration}
**OpenVINO™ integration with TensorFlow** is a solution for TensorFlow developers who want to get started with OpenVINO™ in their inferencing applications. By adding just two lines of code you can now take advantage of OpenVINO™ toolkit optimizations with TensorFlow inference applications across a range of Intel® computation devices.
This is all you need:
```bash
import openvino_tensorflow
openvino_tensorflow.set_backend('<backend_name>')
```
**OpenVINO™ integration with TensorFlow** accelerates inference across many AI models on a variety of Intel® technologies, such as:
- Intel® CPUs
- Intel® integrated GPUs
- Intel® Movidius™ Vision Processing Units - referred to as VPU
- Intel® Vision Accelerator Design with 8 Intel Movidius™ MyriadX VPUs - referred to as VAD-M or HDDL
> **NOTE**: For maximum performance, efficiency, tooling customization, and hardware control, we recommend developers to adopt native OpenVINO™ solutions.
To find out more about the product itself, as well as learn how to use it in your project, check its dedicated [GitHub repository](https://github.com/openvinotoolkit/openvino_tensorflow/tree/master/docs).
To see what you can do with **OpenVINO™ integration with TensorFlow**, explore the demos located in the [examples folder](https://github.com/openvinotoolkit/openvino_tensorflow/tree/master/examples) in our GitHub repository.
Sample tutorials are also hosted on [Intel® DevCloud](https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/build/ovtfoverview.html). The demo applications are implemented using Jupyter Notebooks. You can interactively execute them on Intel® DevCloud nodes, compare the results of **OpenVINO™ integration with TensorFlow**, native TensorFlow, and OpenVINO™.
## License
**OpenVINO™ integration with TensorFlow** is licensed under [Apache License Version 2.0](https://github.com/openvinotoolkit/openvino_tensorflow/blob/master/LICENSE).
By contributing to the project, you agree to the license and copyright terms therein
and release your contribution under these terms.
## Support
Submit your questions, feature requests and bug reports via [GitHub issues](https://github.com/openvinotoolkit/openvino_tensorflow/issues).
## How to Contribute
We welcome community contributions to **OpenVINO™ integration with TensorFlow**. If you have an idea for improvement:
* Share your proposal via [GitHub issues](https://github.com/openvinotoolkit/openvino_tensorflow/issues).
* Submit a [pull request](https://github.com/openvinotoolkit/openvino_tensorflow/pulls).
We will review your contribution as soon as possible. If any additional fixes or modifications are necessary, we will guide you and provide feedback. Before you make your contribution, make sure you can build **OpenVINO™ integration with TensorFlow** and run all the examples with your fix/patch. If you want to introduce a large feature, create test cases for your feature. Upon our verification of your pull request, we will merge it to the repository provided that the pull request has met the above mentioned requirements and proved acceptable.
---
\* Other names and brands may be claimed as the property of others.

View File

@@ -264,6 +264,10 @@ TAB_SIZE = 4
ALIASES = "ref_ie{1}=@ref InferenceEngine::\1 \"\1\""
ALIASES += sphinxdirective="\n\xmlonly<sphinxdirective>"
ALIASES += endsphinxdirective="</sphinxdirective>\endxmlonly"
ALIASES += sphinxtabset="\n\xmlonly<sphinxtabset></sphinxtabset>\endxmlonly\n"
ALIASES += endsphinxtabset="\n\xmlonly<endsphinxtabset></endsphinxtabset>\endxmlonly\n"
ALIASES += sphinxtab{1}="\n\xmlonly<sphinxtab>\1</sphinxtab>\endxmlonly\n"
ALIASES += endsphinxtab="\n\xmlonly<endsphinxtab></endsphinxtab>\endxmlonly\n"
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
@@ -719,7 +723,7 @@ SHOW_NAMESPACES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command command input-file, where command is the value of the
# popen()) the command input-file, where command is the value of the
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
# by doxygen. Whatever the program writes to standard output is used as the file
# version. For an example see the documentation.
@@ -843,16 +847,6 @@ INPUT = "@MARKDOWN_INPUT@" \
"@OpenVINO_SOURCE_DIR@/src/common/transformations/include/" \
"@OpenVINO_SOURCE_DIR@/src/common/util/include/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/descriptor" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/op/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/op/util" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/opsets/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/pass/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/pattern/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/pattern/op/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/runtime/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/ngraph/type/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/openvino/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/openvino/core/" \
"@OpenVINO_SOURCE_DIR@/src/core/include/openvino/core/descriptor/" \
@@ -917,7 +911,9 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE =
EXCLUDE = "@OpenVINO_SOURCE_DIR@/thirdparty" \
"@OpenVINO_SOURCE_DIR@/temp" \
"@OpenVINO_SOURCE_DIR@/bin"
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -936,7 +932,6 @@ EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */temp/* \
*/bin/* \
*/tests/* \
*/openvx/* \
*/thirdparty/* \
"@DOXYREST_OUT@" \
"@XML_OUTPUT@" \
@@ -1045,7 +1040,6 @@ EXCLUDE_SYMBOLS = InferenceEngine::details \
EXAMPLE_PATH = "@OpenVINO_SOURCE_DIR@" \
"@OpenVINO_SOURCE_DIR@/docs/HOWTO/" \
"@OpenVINO_SOURCE_DIR@/docs/" \
"@OpenVINO_SOURCE_DIR@/docs/onnx_custom_op/" \
"@OpenVINO_SOURCE_DIR@/docs/template_extension/" \
"@OpenVINO_SOURCE_DIR@/docs/template_extension/old/" \
"@OpenVINO_SOURCE_DIR@/docs/template_extension/new/" \

View File

@@ -1,17 +1,27 @@
# How to Implement Custom GPU Operations {#openvino_docs_IE_DG_Extensibility_DG_GPU_Kernel}
# How to Implement Custom GPU Operations {#openvino_docs_Extensibility_UG_GPU}
To enable operations not supported by OpenVINO out of the box, you need a custom extension for Model Optimizer, a custom nGraph operation set, and a custom kernel for the device you will target. This page describes custom kernel support for the GPU device.
To enable operations not supported by OpenVINO out of the box, you may need an extension for an OpenVINO operation set, and a custom kernel for the device you will target. This page describes custom kernel support for the GPU device.
The GPU codepath abstracts many details about OpenCL\*. You need to provide the kernel code in OpenCL C and an XML configuration file that connects the kernel and its parameters to the parameters of the operation.
The GPU codepath abstracts many details about OpenCL. You need to provide the kernel code in OpenCL C and an XML configuration file that connects the kernel and its parameters to the parameters of the operation.
There are two options for using the custom operation configuration file:
* Include a section with your kernels into the global automatically-loaded `cldnn_global_custom_kernels/cldnn_global_custom_kernels.xml` file, which is hosted in the `<INSTALL_DIR>/runtime/bin` folder
* Call the `InferenceEngine::Core::SetConfig()` method from your application with the `InferenceEngine::PluginConfigParams::KEY_CONFIG_FILE` key and the configuration file name as a value before loading the network that uses custom operations to the plugin:
* Include a section with your kernels into the automatically-loaded `<lib_path>/cldnn_global_custom_kernels/cldnn_global_custom_kernels.xml` file.
* Call the `ov::Core::set_property()` method from your application with the `"CONFIG_FILE"` key and the configuration file name as a value before loading the network that uses custom operations to the plugin:
@snippet snippets/GPU_Kernel.cpp part0
@sphinxtabset
All Inference Engine samples, except the trivial `hello_classification`, and most Open Model Zoo demos
@sphinxtab{C++}
@snippet docs/snippets/gpu/custom_kernels_api.cpp part0
@endsphinxtab
@sphinxtab{Python}
@snippet docs/snippets/gpu/custom_kernels_api.py part0
@endsphinxtab
@endsphinxtabset
All OpenVINO samples, except the trivial `hello_classification`, and most Open Model Zoo demos
feature a dedicated command-line option `-c` to load custom kernels. For example, to load custom operations for the classification sample, run the command below:
```sh
$ ./classification_sample -m <path_to_model>/bvlc_alexnet_fp16.xml -i ./validation_set/daily/227x227/apron.bmp -d GPU
@@ -21,7 +31,7 @@ $ ./classification_sample -m <path_to_model>/bvlc_alexnet_fp16.xml -i ./validati
## Configuration File Format <a name="config-file-format"></a>
The configuration file is expected to follow the `.xml` file structure
with a node of the type `CustomLayer` for every custom operation you provide.
with a node of the `CustomLayer` type for every custom operation you provide.
The definitions described in the sections below use the following notations:
@@ -47,8 +57,7 @@ Notation | Description
### Kernel Node and Sub-Node Structure
`Kernel` node contains all kernel source code configuration. No kernel
node structure exists.
`Kernel` node contains all kernel source code configuration.
**Sub-nodes**: `Source` (1+), `Define` (0+)
@@ -134,7 +143,7 @@ queuing an OpenCL program for execution.
## Example Configuration File
The following code sample provides an example configuration file in XML
The following code sample provides an example configuration file in XML
format. For information on the configuration file structure, see
[Configuration File Format](#config-file-format).
```xml
@@ -155,8 +164,7 @@ format. For information on the configuration file structure, see
## Built-In Definitions for Custom Layers
The following table includes definitions that are attached before
user sources, where `<TENSOR>` is the actual input and output, for
example, `INPUT0` or `OUTPUT0`.
user sources.
For an example, see [Example Kernel](#example-kernel).
@@ -170,19 +178,20 @@ For an example, see [Example Kernel](#example-kernel).
| `<TENSOR>_DIMS`| An array of the tensor dimension sizes. Always ordered as `BFYX` |
| `<TENSOR>_DIMS_SIZE`| The size of the `<TENSOR>_DIMS` array.|
| `<TENSOR>_TYPE`| The datatype of the tensor: `float`, `half`, or `char`|
| `<TENSOR>_FORMAT_` | The format of the tensor, BFYX, BYXF, YXFB , FYXB, or ANY. The format is concatenated to the defined name. You can use the tensor format to define codepaths in your code with `#&zwj;ifdef/#&zwj;endif`. |
| `<TENSOR>_FORMAT_<TENSOR_FORMAT>` | The format of the tensor, BFYX, BYXF, YXFB , FYXB, or ANY. The format is concatenated to the defined name. You can use the tensor format to define codepaths in your code with `#&zwj;ifdef/#&zwj;endif`. |
| `<TENSOR>_LOWER_PADDING` | An array of padding elements used for the tensor dimensions before they start. Always ordered as BFYX.|
| `<TENSOR>_ LOWER_PADDING_SIZE` | The size of the `<TENSOR>_LOWER_PADDING` array |
| `<TENSOR>_LOWER_PADDING_SIZE` | The size of the `<TENSOR>_LOWER_PADDING` array |
| `<TENSOR>_UPPER_PADDING` | An array of padding elements used for the tensor dimensions after they end. Always ordered as BFYX. |
| `<TENSOR>_UPPER_PADDING_SIZE` | The size of the `<TENSOR>_UPPER_PADDING` array |
| `<TENSOR>_PITCHES` | The number of elements between adjacent elements in each dimension. Always ordered as BFYX.|
| `<TENSOR>_PITCHES` | The offset (in elements) between adjacent elements in each dimension. Always ordered as BFYX.|
| `<TENSOR>_PITCHES_SIZE`| The size of the `<TENSOR>_PITCHES` array |
| `<TENSOR>_OFFSET`| The number of elements from the start of the tensor to the first valid element, bypassing the lower padding. |
All `<TENSOR>` values are automatically defined for every tensor
bound to this operation, such as `INPUT0`, `INPUT1`, and `OUTPUT0`, as shown
in the following example:
```sh
```c
#define INPUT0_DIMS_SIZE 4
#define INPUT0_DIMS (int []){ 1,96,55,55, }
```
@@ -197,28 +206,25 @@ __kernel void example_relu_kernel(
{
const uint idx = get_global_id(0);
const uint idy = get_global_id(1);
const uint idbf = get_global_id(2);//batches*features, as OpenCL supports 3D nd-ranges only
const uint feature = idbf%OUTPUT0_DIMS[1];
const uint batch = idbf/OUTPUT0_DIMS[1];
const uint idbf = get_global_id(2); // batches*features, as OpenCL supports 3D nd-ranges only
const uint feature = idbf % OUTPUT0_DIMS[1];
const uint batch = idbf / OUTPUT0_DIMS[1];
//notice that pitches are in elements, not in bytes!
const uint in_id = batch*INPUT0_PITCHES[0] + feature*INPUT0_PITCHES[1] + idy*INPUT0_PITCHES[2] + idx*INPUT0_PITCHES[3] + INPUT0_OFFSET;
const uint out_id = batch*OUTPUT0_PITCHES[0] + feature*OUTPUT0_PITCHES[1] + idy*OUTPUT0_PITCHES[2] + idx*OUTPUT0_PITCHES[3] + OUTPUT0_OFFSET;
INPUT0_TYPE value = input0[in_id];
//neg_slope (which is non-zero for leaky ReLU) is put automatically as #define, refer to the config xml
// neg_slope (which is non-zero for leaky ReLU) is put automatically as #define, refer to the config xml
output[out_id] = value < 0 ? value * neg_slope : value;
}
```
> **NOTE**: As described in the previous section, all items like
> `INPUT0_TYPE` are actually defined as OpenCL (pre-)compiler inputs by
> the Inference Engine for efficiency reasons. See [Debugging
> OpenVINO for efficiency reasons. See [Debugging
> Tips](#debugging-tips) for information on debugging the results.
> **NOTE**: Several GPU-targeted kernels are also added to the binaries upon compilation of samples
> so that the sample application can easy load them.
> Refer to the `cldnn_global_custom_kernels` folder in the GPU plugin installation directory.
## Debugging Tips<a name="debugging-tips"></a>
* **Using `printf` in the OpenCL™ Kernels**.

View File

@@ -0,0 +1,171 @@
# OpenVINO Extensibility Mechanism {#openvino_docs_Extensibility_UG_Intro}
@sphinxdirective
.. toctree::
:maxdepth: 1
:hidden:
openvino_docs_Extensibility_UG_add_openvino_ops
openvino_docs_Extensibility_UG_Frontend_Extensions
openvino_docs_Extensibility_UG_GPU
openvino_docs_Extensibility_UG_VPU_Kernel
openvino_docs_MO_DG_prepare_model_customize_model_optimizer_Customize_Model_Optimizer
@endsphinxdirective
The Intel® Distribution of OpenVINO™ toolkit supports neural network models trained with various frameworks, including
TensorFlow, PyTorch, ONNX, PaddlePaddle, Apache MXNet, Caffe, and Kaldi. The list of supported operations is different for
each of the supported frameworks. To see the operations supported by your framework, refer to
[Supported Framework Operations](../MO_DG/prepare_model/Supported_Frameworks_Layers.md).
Custom operations, that is those not included in the list, are not recognized by OpenVINO™ out-of-the-box. The need for a custom operation may appear in two main cases:
1. A regular framework operation that is new or rarely used, which is why it hasnt been implemented in OpenVINO yet.
2. A new user operation that was created for some specific model topology by a model author using framework extension capabilities.
Importing models with such operations requires additional steps. This guide illustrates the workflow for running inference on models featuring custom operations, allowing you to plug in your own implementation for them. OpenVINO™ Extensibility API lets you add support for those custom operations and use one implementation for Model Optimizer and OpenVINO™ Runtime.
Defining a new custom operation basically consist of two parts:
1. Definition of operation semantics in OpenVINO, the code that describes how this operation should be inferred consuming input tensor(s) and producing output tensor(s). How to implement execution kernels for [GPU](./GPU_Extensibility.md) and [VPU](./VPU_Extensibility.md) is described in separate guides.
2. Mapping rule that facilitates conversion of framework operation representation to OpenVINO defined operation semantics.
The first part is required for inference, the second part is required for successful import of a model containing such operations from the original framework model format. There are several options to implement each part, the next sections will describe them in detail.
## Definition of Operation Semantics
If the custom operation can be mathematically represented as a combination of exiting OpenVINO operations and such decomposition gives desired performance, then low-level operation implementation is not required. When deciding feasibility of such decomposition refer to the latest OpenVINO operation set. You can use any valid combination of exiting operations. How to map a custom operation is described in the next section of this document.
If such decomposition is not possible or appears too bulky with lots of consisting operations that are not performing well, then a new class for the custom operation should be implemented as described in the [Custom Operation Guide](add_openvino_ops.md).
Prefer implementing a custom operation class if you already have a generic C++ implementation of operation kernel. Otherwise try to decompose the operation first as described above and then after verifying correctness of inference and resulting performance, optionally invest to implementing bare metal C++ implementation.
## Mapping from Framework Operation
Depending on model format used for import, mapping of custom operation is implemented differently, choose one of:
1. If model is represented in ONNX (including models exported from Pytorch in ONNX) or PaddlePaddle formats, then one of the classes from [Frontend Extension API](frontend_extensions.md) should be used. It consists of several classes available in C++ which can be used with Model Optimizer `--extensions` option or when model is imported directly to OpenVINO run-time using read_model method. Python API is also available for run-time model importing.
2. If model is represented in TensorFlow, Caffe, Kaldi or MXNet formats, then [Model Optimizer Extensions](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) should be used. This approach is available for model conversion in Model Optimizer only.
Existing of two approaches simultaneously is explained by two different types of frontends used for model conversion in OpenVINO: new frontends (ONNX, PaddlePaddle) and legacy frontends (TensorFlow, Caffe, Kaldi and Apache MXNet). Model Optimizer can use both front-ends in contrast to the direct import of model with `read_model` method which can use new frontends only. Follow one of the appropriate guides referenced above to implement mappings depending on framework frontend.
If you are implementing extensions for ONNX or PaddlePaddle new frontends and plan to use Model Optimizer `--extension` option for model conversion, then the extensions should be
1. Implemented in C++ only
2. Compiled as a separate shared library (see details how to do that later in this guide).
You cannot write new frontend extensions using Python API if you plan to use them with Model Optimizer.
Remaining part of this guide uses Frontend Extension API applicable for new frontends.
## Registering Extensions
A custom operation class and a new mapping frontend extension class object should be registered to be usable in OpenVINO runtime.
> **NOTE**: This documentation is written based on the [Template extension](https://github.com/openvinotoolkit/openvino/tree/master/docs/template_extension/new), which demonstrates extension development details based on minimalistic `Identity` operation that is a placeholder for your real custom operation. You can review the complete code, which is fully compliable, to see how it works.
To load the extensions to the `ov::Core` object, use the `ov::Core::add_extension` method, this method allows to load library with extensions or extensions from the code.
### Load extensions to core
Extensions can be loaded from code with `ov::Core::add_extension` method:
@sphinxtabset
@sphinxtab{C++}
@snippet docs/snippets/ov_extensions.cpp add_extension
@endsphinxtab
@sphinxtab{Python}
@snippet docs/snippets/ov_extensions.py add_extension
@endsphinxtab
@endsphinxtabset
`Identity` is custom operation class defined in [Custom Operation Guide](add_openvino_ops.md). This is enough to enable reading IR which uses `Identity` extension operation emitted by Model Optimizer. To be able to load original model directly to the runtime, you need to add also a mapping extension:
@sphinxdirective
.. tab:: C++
.. doxygensnippet:: docs/snippets/ov_extensions.cpp
:language: cpp
:fragment: add_frontend_extension
.. tab:: Python
.. doxygensnippet:: docs/snippets/ov_extensions.py
:language: python
:fragment: add_frontend_extension
@endsphinxdirective
When Python API is used there is no way to implement a custom OpenVINO operation. Also, even if custom OpenVINO operation is implemented in C++ and loaded to the runtime through a shared library, there is still no way to add a frontend mapping extension that refers to this custom operation. Use C++ shared library approach to implement both operations semantics and framework mapping in this case.
You still can use Python for operation mapping and decomposition in case if operations from the standard OpenVINO operation set is used only.
### Create library with extensions
You need to create extension library in the following cases:
- Convert model with custom operations in Model Optimizer
- Load model with custom operations in Python application. It is applicable for both framework model and IR.
- Loading models with custom operations in tools that support loading extensions from a library, for example `benchmark_app`.
If you want to create an extension library, for example in order to load these extensions to the Model Optimizer, you need to do next steps:
Create an entry point for extension library. OpenVINO™ provides an `OPENVINO_CREATE_EXTENSIONS()` macro, which allows to define an entry point to a library with OpenVINO™ Extensions.
This macro should have a vector of all OpenVINO™ Extensions as an argument.
Based on that, the declaration of an extension class can look as follows:
@snippet template_extension/new/ov_extension.cpp ov_extension:entry_point
To configure the build of your extension library, use the following CMake script:
@snippet template_extension/new/CMakeLists.txt cmake:extension
This CMake script finds the OpenVINO™ using the `find_package` CMake command.
To build the extension library, run the commands below:
```sh
$ cd docs/template_extension/new
$ mkdir build
$ cd build
$ cmake -DOpenVINO_DIR=<OpenVINO_DIR> ../
$ cmake --build .
```
After the build you can use path to your extension library to load your extensions to OpenVINO™ Runtime:
@sphinxtabset
@sphinxtab{C++}
@snippet docs/snippets/ov_extensions.cpp add_extension_lib
@endsphinxtab
@sphinxtab{Python}
@snippet docs/snippets/ov_extensions.py add_extension_lib
@endsphinxtab
@endsphinxtabset
## See Also
* [OpenVINO Transformations](./ov_transformations.md)
* [Using OpenVINO Runtime Samples](../OV_Runtime_UG/Samples_Overview.md)
* [Hello Shape Infer SSD sample](../../samples/cpp/hello_reshape_ssd/README.md)

View File

@@ -1,32 +1,29 @@
# How to Implement Custom Layers for VPU (Intel® Neural Compute Stick 2) {#openvino_docs_IE_DG_Extensibility_DG_VPU_Kernel}
# How to Implement Custom Layers for VPU (Intel® Neural Compute Stick 2) {#openvino_docs_Extensibility_UG_VPU_Kernel}
To enable operations not supported by OpenVINO™ out of the box, you need a custom extension for Model Optimizer, a custom nGraph operation set, and a custom kernel for the device you will target. This page describes custom kernel support for one the VPU, the Intel® Neural Compute Stick 2 device, which uses the MYRIAD device plugin.
> **NOTES:**
> * OpenCL\* custom layer support is available in the preview mode.
> * This section assumes you are familiar with developing kernels using OpenCL.
To customize your topology with an OpenCL layer, carry out the tasks described on this page:
1. Write and compile your OpenCL code with the standalone offline OpenCL compiler (`clc`).
2. Write a configuration file to bind the OpenCL kernel to the topology file (`.xml`) of the model IR.
3. Pass the configuration file to the Inference Engine with the model IR.
3. Pass the configuration file to the OpenVINO™ Runtime with the model IR.
## Compile OpenCL code for VPU (Intel® Neural Compute Stick 2)
> **NOTE**: OpenCL compiler, targeting Intel® Neural Compute Stick 2 for the SHAVE* processor only, is redistributed with OpenVINO.
OpenCL support is provided by ComputeAorta* and is distributed under a license agreement between Intel® and Codeplay* Software Ltd.
The OpenCL toolchain for the Intel® Neural Compute Stick 2 supports offline compilation only, so first compile OpenCL C code using the standalone `clc` compiler. You can find the compiler binary at `<INSTALL_DIR>/tools/cl_compiler`.
> **NOTE**: By design, custom OpenCL layers support any OpenCL kernels written assuming OpenCL version 1.2. It also supports half float extension and is optimized for this type, because it is a native type for Intel® Movidius™ VPUs.
1. Prior to running a compilation, make sure that the following variables are set:
* `SHAVE_MA2X8XLIBS_DIR=<INSTALL_DIR>/tools/cl_compiler/lib/`
* `SHAVE_LDSCRIPT_DIR=<INSTALL_DIR>/tools/cl_compiler/ldscripts/`
* `SHAVE_MYRIAD_LD_DIR=<INSTALL_DIR>/tools/cl_compiler/bin/`
* `SHAVE_MOVIASM_DIR=<INSTALL_DIR>/tools/cl_compiler/bin/`
2. Run the compilation with the command below. You should use `--strip-binary-header` to make an OpenCL runtime-agnostic binary runnable with the Inference Engine.
2. Run the compilation with the command below. You should use `--strip-binary-header` to make an OpenCL runtime-agnostic binary runnable with the OpenVINO™ Runtime.
```bash
cd <INSTALL_DIR>/tools/cl_compiler/bin
./clc --strip-binary-header custom_layer.cl -o custom_layer.bin
@@ -34,7 +31,7 @@ The OpenCL toolchain for the Intel® Neural Compute Stick 2 supports offline com
## Write a Configuration File
To tie the topology IR for a layer you customize, prepare a configuration file, so that the Inference Engine can find parameters for your kernel and the execution work grid is described.
To tie the topology IR for a layer you customize, prepare a configuration file, so that the OpenVINO™ Runtime can find parameters for your kernel and the execution work grid is described.
For example, consider the following OpenCL kernel signature:
```cpp
__kernel void reorg_nhwc(__global const half *src, __global half *out, int w, int h, int c, int stride);
@@ -58,7 +55,7 @@ A configuration file for this kernel might be the following:
```
Each custom layer is described with the `CustomLayer` node. It has the following nodes and attributes:
- Root node `CustomLayer` contains the following attributes:
- `name` (Required) The name of the Inference Engine layer to bind the kernel with.
- `name` (Required) The name of the OpenVINO™ Runtime layer to bind the kernel with.
- `type` and `version` (Required) Reserved for future use. Set them to `MVCL` and `1` respectively.
- `max-shaves` (Optional) The maximum number of SHAVE cores that should be dedicated for the layer. It is useful for debugging concurrency issues or for resource saving that memory bound kernel does not scale well with the number of cores, so more resources can be left for the rest of a topology.
- Sub-node `Kernel` must contain the following attributes:
@@ -158,25 +155,12 @@ Each custom layer is described with the `CustomLayer` node. It has the following
</CustomLayer>
```
## Pass Configuration File to Inference Runtime
## Pass Configuration File to OpenVINO™ Runtime
> **NOTE**: If both native and custom layer implementations are present, the custom kernel has a priority over the native one.
Before loading the network that features the custom layers, provide a separate configuration file and load it using the ov::Core::set_property() method with the "CONFIG_KEY" key and the configuration file name as a value before loading the network that uses custom operations to the plugin:
Before loading the network that features the custom layers, provide a separate configuration file and load it using the InferenceEngine::Core::SetConfig() method with the PluginConfigParams::KEY_CONFIG_FILE key and the configuration file name as a value:
```cpp
InferenceEngine::Core core;
// Load custom layers
core.SetConfig({ { InferenceEngine::PluginConfigParams::KEY_CONFIG_FILE, "<path to the xml file>" } }, "MYRIAD");
```
Optionally, set a path to a custom layers description with a pair of `VPU_CUSTOM_LAYERS` and `/path/to/your/customLayers.xml`
as a network configuration:
```cpp
InferenceEngine::Core core;
std::map<std::string, std::string> networkConfig;
config["VPU_CUSTOM_LAYERS"] = "/path/to/your/customLayers.xml";
// Load custom layers in network config
auto exeNetwork = core.LoadNetwork(cnnNetwork, "MYRIAD", networkConfig);
```
@snippet docs/snippets/vpu/custom_op.cpp part0
## Optimizing Kernels with OpenCL for VPU (Intel® Neural Compute Stick 2)
@@ -233,15 +217,11 @@ __kernel void ocl_grn(__global const half* restrict src_data, __global half* res
int W = get_global_size(0);
int y = get_global_id(1);
int H = get_global_size(1);
float variance = bias + 1e-9f;
#pragma unroll 4
for (int c = 0; c < C; c++)
variance += (float)(src_data[c*H*W + y*W + x] * src_data[c*H*W + y*W + x]);
variance = 1.f / native_sqrt(variance);
#pragma unroll 4
for (int c = 0; c < C; c++)
dst_data[c*H*W + y*W + x] = (half)((float)src_data[c*H*W + y*W + x] * variance);
@@ -253,11 +233,9 @@ __kernel void ocl_grn_line(__global const half* restrict src_data, __global hal
{
int y = get_global_id(1);
int H = get_global_size(1);
for (int x = 0; x < W/8; x++)
{
float8 variance = (float8)(bias+1e-9f);
#pragma unroll 4
for (int c = 0; c < C; c++)
{
@@ -265,15 +243,12 @@ __kernel void ocl_grn_line(__global const half* restrict src_data, __global hal
half8 sh = src_line[x];
variance += convert_float8(sh*sh);
}
variance = 1.f/native_sqrt(variance);
#pragma unroll 4
for (int c = 0; c < C; c++)
{
__global const half8* restrict src_line = ((__global const half8 * restrict)(src_data + c*H*W + y*W));
__global half8* restrict dst_line = ((__global half8 * restrict)(dst_data + c*H*W + y*W));
dst_line[x] = convert_half8(convert_float8(src_line[x])*variance);
}
}
@@ -283,9 +258,7 @@ __kernel void ocl_grn_line(__global const half* restrict src_data, __global hal
#pragma unroll 4
for (int c = 0; c < C; c++)
variance += (float)(src_data[c*H*W + y*W + x]*src_data[c*H*W + y*W + x]);
variance = 1.f/native_sqrt(variance);
#pragma unroll 4
for (int c = 0; c < C; c++)
dst_data[c*H*W + y*W + x] = (float)src_data[c*H*W + y*W + x]*variance;
@@ -314,23 +287,17 @@ The kernel example below demonstrates the impact of early exits on kernel perfor
{
int w = get_global_id(0);
int W = get_global_size(0);
int h = get_global_id(1);
int H = get_global_size(1);
int c = get_global_id(2);
int C = get_global_size(2);
int C2 = C/(stride*stride);
int offset = c / C2;
int c2 = c - C2 * offset;
int H2 = H*stride;
int W2 = W*stride;
int h2 = h*stride + offset / stride;
int w2 = w*stride + offset - stride * (offset / stride);
out[W*H*c + W*h + w] = src[W2*H2*c2 + W2*h2 + w2];
}
```
@@ -343,23 +310,17 @@ Since the auto-vectorized version is faster, it makes sense to enable it for the
{
int w = get_global_id(0);
w = min(w, W-1);
int h = get_global_id(1);
int H = get_global_size(1);
int c = get_global_id(2);
int C = get_global_size(2);
int C2 = C/(stride*stride);
int offset = c / C2;
int c2 = c - C2 * offset;
int H2 = H*stride;
int W2 = W*stride;
int h2 = h*stride + offset / stride;
int w2 = w*stride + offset - stride * (offset / stride);
out[W*H*c + W*h + w] = src[W2*H2*c2 + W2*h2 + w2];
}
```
@@ -370,21 +331,17 @@ If branching is inevitable for your element-based kernel, it is recommended to c
__kernel void reorg(const __global half* restrict src, __global half* restrict out, int H, int W, int stride)
{
int h = min((int)get_global_id(0), H-1);
int c = get_global_id(1);
int C = get_global_size(1);
int C2 = C/(stride*stride);
int offset = c / C2;
int c2 = c - C2 * offset;
int H2 = H*stride;
int W2 = W*stride;
for (int w = 0; w < W; ++w)
{
int h2 = h*stride + offset / stride;
int w2 = w*stride + offset - stride * (offset / stride);
out[W*H*c + W*h + w] = src[W2*H2*c2 + W2*h2 + w2];
}
}
@@ -398,14 +355,11 @@ This decreases the execution time up to 40% against the best performing vectoriz
int H, int W, int stride)
{
int h = min((int)get_global_id(0), H-1);
int c2 = get_global_id(1);
int C2 = get_global_size(1);
int C = C2*stride*stride;
int H2 = H*stride;
int W2 = W*stride;
for (int stride_y = 0; stride_y < stride; stride_y++)
for (int stride_x = 0; stride_x < stride; stride_x++)
for (int w2 = 0, w = 0; w < W; w2 += stride, w++)
@@ -428,16 +382,13 @@ from/to a `__blobal` pointer since work-group copying could be done in a vector
float bias)
{
float variance = bias + 1e-9f;
#pragma unroll 4
for (int c = 0; c < C; c++)
{
float val = (float) src_data[c*get_global_size(1)*get_global_size(0) + get_global_id(1)*get_global_size(0) + get_global_id(0)];
variance += val*val;
}
half hvariance = (half)(native_rsqrt((half)(variance/16.f))*0.25f);
#pragma unroll 4
for (int c = 0; c < C; c++)
{
@@ -446,7 +397,7 @@ from/to a `__blobal` pointer since work-group copying could be done in a vector
}
}
```
This kernel can be rewritten to introduce special data binding `__dma_preload` and `__dma_postwrite intrinsics`. This means that instead of one kernel, a group of three kernels should be implemented: `kernelName`, `__dma_preload_kernelName`, and `__dma_postwrite_kernelName`. `__dma_preload_kernelName` for a particular work group `n` is guaranteed to be executed before the `n`-th work group itself, while `__dma_postwrite_kernelName` is guaranteed to be executed after a corresponding work group. You can define one of those functions that are intended to be used to copy data from-to `__global` and `__local` memory. The syntactics requires exact functional signature match. The example below illustrates how to prepare your kernel for manual-DMA.
```cpp
@@ -498,8 +449,6 @@ event_t WorkGroupDmaCreateStrideTransaction(
size_t dst_stride, // stride between corresponding 2 consecutive lines of destination in bytes
size_t size, // total number of bytes loaded for all lines from source to destination
event_t event) __OVERLOAD;
event_t WorkGroupDmaCreateStrideTransaction(
const global T *src,
local T *dst,
@@ -509,7 +458,6 @@ event_t WorkGroupDmaCreateStrideTransaction(
size_t dst_stride, // stride between corresponding 2 consecutive lines of destination in bytes
size_t size, // total number of bytes loaded for all lines from source to destination
event_t event) __OVERLOAD;
// 3D sub-tensor copy
event_t WorkGroupDmaCreate3DTransaction(
const local T *src,
@@ -523,7 +471,6 @@ event_t WorkGroupDmaCreate3DTransaction(
size_t dst_plane_stride, // stride between corresponding 2 consecutive planes of destination in bytes
size_t size, // size of the loaded plane in bytes, analogues to the size in 2D case
event_t event) __OVERLOAD;
event_t WorkGroupDmaCreate3DTransaction(
const global T *src,
local T *dst,
@@ -563,7 +510,6 @@ __kernel void __dma_preload_grn_NCHW(
get_local_size(0) * get_local_size(1) * sizeof(half), // plane size
0);
}
__kernel void __dma_postwrite_grn_NCHW(
__global const half* restrict src,
__global half* restrict dst,
@@ -586,7 +532,6 @@ __kernel void __dma_postwrite_grn_NCHW(
get_local_size(0) * get_local_size(1) * sizeof(half), // plane size
0);
}
__kernel void grn_NCHW(
__global const half* restrict src_data,
__global half* restrict dst_data,
@@ -596,16 +541,13 @@ __kernel void grn_NCHW(
float bias)
{
float variance = bias + 1e-9f;
#pragma unroll 8
for (int c = 0; c < C; c++)
{
float val = (float) src[c*get_local_size(1)*get_local_size(0) + get_local_id(1)*get_local_size(0) + get_local_id(0)];
variance += val*val;
}
half hvariance = (half)(native_rsqrt((half)(variance/16.f))*0.25f);
#pragma unroll 8
for (int c = 0; c < C; c++)
{
@@ -626,13 +568,11 @@ item_dma_event_t WorkItemDmaCreateTransaction(
private T *dst,
size_t size,
item_dma_event_t event) __OVERLOAD;
item_dma_event_t WorkItemDmaCreateTransaction(
const private T *src,
global T *dst,
size_t size,
item_dma_event_t event) __OVERLOAD;
item_dma_event_t WorkItemDmaCreateStrideTransaction(
const global T *src,
private T *dst,
@@ -642,7 +582,6 @@ item_dma_event_t WorkItemDmaCreateStrideTransaction(
size_t dst_stride,
size_t size,
item_dma_event_t event) __OVERLOAD;
item_dma_event_t WorkItemDmaCreateStrideTransaction(
const private T *src,
global T *dst,
@@ -652,7 +591,6 @@ item_dma_event_t WorkItemDmaCreateStrideTransaction(
size_t dst_stride,
size_t size,
item_dma_event_t event) __OVERLOAD;
item_dma_event_t WorkItemDmaCreate3DTransaction(
const global T *src,
private T *dst,
@@ -665,7 +603,6 @@ item_dma_event_t WorkItemDmaCreate3DTransaction(
size_t dst_plane_stride,
size_t size,
item_dma_event_t event) __OVERLOAD;
item_dma_event_t WorkItemDmaCreate3DTransaction(
const private T *src,
global T *dst,

View File

@@ -0,0 +1,59 @@
# Custom OpenVINO™ Operations {#openvino_docs_Extensibility_UG_add_openvino_ops}
OpenVINO™ Extension API allows you to register custom operations to support models with operations which OpenVINO™ does not support out-of-the-box.
## Operation Class
To add your custom operation, create a new class that extends `ov::Op`, which is in turn derived from `ov::Node`, the base class for all graph operations in OpenVINO™. To add `ov::Op` please include next file:
@snippet template_extension/new/identity.hpp op:common_include
Follow the steps below to add a custom operation:
1. Add the `OPENVINO_OP` macro which defines a `NodeTypeInfo` object that identifies the type of the operation to the graph users and helps with dynamic type resolution. The type info of an operation currently consists of a string operation identifier and a string for operation version.
2. Implement default constructor and constructors that optionally take the operation inputs and attributes as parameters.
3. Override the shape inference method `validate_and_infer_types`. This method is called multiple times during graph manipulations to determine the shapes and element types of the operations outputs. To access the input shapes and input element types, use the `get_input_partial_shape()` and `get_input_element_type()` methods of `ov::Node`. Set the inferred shape and element type of the output using `set_output_type`.
4. Override the `clone_with_new_inputs` method, which enables graph manipulation routines to create copies of this operation and connect it to different nodes during optimization.
5. Override the `visit_attributes` method, which enables serialization and deserialization of operation attributes. An `AttributeVisitor` is passed to the method, and the implementation is expected to walk over all the attributes in the op using the type-aware `on_attribute` helper. Helpers are already implemented for standard C++ types like `int64_t`, `float`, `bool`, `vector`, and for existing OpenVINO defined types.
6. Override `evaluate`, which is an optional method that enables fallback of some devices to this implementation and the application of constant folding if there is a custom operation on the constant branch. If your operation contains `evaluate` method you also need to override the `has_evaluate` method, this method allows to get information about availability of `evaluate` method for the operation.
Based on that, declaration of an operation class can look as follows:
### Operation Constructors
OpenVINO™ operation contains two constructors:
* Default constructor, which enables you to create an operation without attributes
* Constructor that creates and validates an operation with specified inputs and attributes
@snippet template_extension/new/identity.cpp op:ctor
### `validate_and_infer_types()`
`ov::Node::validate_and_infer_types` method validates operation attributes and calculates output shapes using attributes of the operation.
@snippet template_extension/new/identity.cpp op:validate
### `clone_with_new_inputs()`
`ov::Node::clone_with_new_inputs` method creates a copy of the operation with new inputs.
@snippet template_extension/new/identity.cpp op:copy
### `visit_attributes()`
`ov::Node::visit_attributes` method enables you to visit all operation attributes.
@snippet template_extension/new/identity.cpp op:visit_attributes
### evaluate() and has_evaluate()
`ov::Node::evaluate` method enables you to apply constant folding to an operation.
@snippet template_extension/new/identity.cpp op:evaluate

View File

@@ -0,0 +1,105 @@
# Frontend Extensions {#openvino_docs_Extensibility_UG_Frontend_Extensions}
The goal of this chapter is to explain how to use Frontend extension classes to facilitate mapping of custom operations from framework model representation to OpenVINO representation. Refer to [Introduction to OpenVINO Extension](Intro.md) to understand entire flow.
This API is applicable for new frontends only, which exist for ONNX and PaddlePaddle. If a different model format is used, follow legacy [Model Optimizer Extensions](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) guide.
> **NOTE**: This documentation is written based on the [Template extension](https://github.com/openvinotoolkit/openvino/tree/master/docs/template_extension/new), which demonstrates extension development details based on minimalistic `Identity` operation that is a placeholder for your real custom operation. You can review the complete code, which is fully compliable, to see how it works.
## Single Operation Mapping with OpExtension
This section covers the case when a single operation in framework representation is mapped to a single operation in OpenVINO representation. This is called *one-to-one mapping*. There is `OpExtension` class that works well if all the following conditions are satisfied:
1. Number of inputs to operation in the Framework representation is the same as in the OpenVINO representation.
2. Number of outputs is also the same in both representations.
3. Inputs can be indexed and are mapped in order correspondingly, e.g. input with index 0 in framework representation maps to input with index 0 in OpenVINO representation and so on.
4. The same for outputs.
5. Each attribute in OpenVINO operation can be initialized from one of the attributes of original operation or by some predefined constant value. Value of copied attributes cannot contain expressions, value is accepted as-is, so type of a value should be compatible.
> **NOTE**: `OpExtension` class is currently available for ONNX frontend only. PaddlePaddle frontend has named inputs and outputs for operation (not indexed) therefore OpExtension mapping is not applicable for this case.
The next example maps ONNX operation with type [“Identity”]( https://github.com/onnx/onnx/blob/main/docs/Operators.md#Identity) to OpenVINO template extension `Identity` class.
@snippet ov_extensions.cpp frontend_extension_Identity_header
@snippet ov_extensions.cpp frontend_extension_Identity
The mapping doesnt involve any attributes, as operation Identity doesnt have them.
Extension objects, like just constructed `extension` can be used to add to the OpenVINO runtime just before the loading a model that contains custom operations:
@snippet ov_extensions.cpp frontend_extension_read_model
Or extensions can be constructed in a separately compiled shared library. Separately compiled library can be used in Model Optimizer or `benchmark_app`. Read about how to build and load such library in chapter “Create library with extensions” in [Introduction to OpenVINO Extension](Intro.md).
If operation have multiple inputs and/or outputs they will be mapped in order. The type of elements in input/output tensors should match expected types in the surrounding operations. For example, if custom operation produces `f32` data type then operation that consumes this output should also support `f32`. Otherwise, model conversion fails with an error, there are no automatic type conversion happens.
### Converting to Standard OpenVINO Operation
`OpExtension` class can be used when mapping to one of the operations from standard OpenVINO operation set is what you need and there is no class like `TemplateExtension::Identity` implemented.
Here is an example for a custom framework operation “MyRelu”. Suppose it is mathematically equivalent to standard `Relu` that exists in OpenVINO operation set, but for some reason has type name “MyRelu”. In this case you can directly say that “MyRelu” -> `Relu` mapping should be used:
@snippet ov_extensions.cpp frontend_extension_MyRelu
In the resulting converted OpenVINO model, “MyRelu” operation will be replaced by the standard operation `Relu` from the latest available OpenVINO operation set. Notice that when standard operation is used, it can be specified using just a type string (“Relu”) instead of using a `ov::opset8::Relu` class name as a template parameter for `OpExtension`. This method is available for operations from the standard operation set only. For a user custom OpenVINO operation the corresponding class should be always specified as a template parameter as it was demonstrated with `TemplateExtension::Identity`.
### Attributes Mapping
As described above, `OpExtension` is useful when attributes can be mapped one by one or initialized by a constant. If the set of attributes in framework representation and OpenVINO representation completely match by their names and types, nothing should be specified in OpExtension constructor parameters. The attributes are discovered and mapped automatically based on `visit_attributes` method that should be defined for any OpenVINO operation.
Imagine you have CustomOperation class implementation that has two attributes with names `attr1` and `attr2`:
@snippet ov_extensions.cpp frontend_extension_CustomOperation
And original model in framework representation also has operation with name “CustomOperatoin” with the same `attr1` and `attr2` attributes. Then with the following code:
@snippet ov_extensions.cpp frontend_extension_CustomOperation_as_is
both `attr1` and `attr2` are copied from framework representation to OpenVINO representation automatically. If for some reason names of attributes are different but values still can be copied “as-is” you can pass attribute names mapping in `OpExtension` constructor:
@snippet ov_extensions.cpp frontend_extension_CustomOperation_rename
Where `fw_attr1` and `fw_attr2` are names for corresponding attributes in framework operation representation.
If copying of an attribute is not what you need, `OpExtension` also can set attribute to predefined constant value. For the same `CustomOperation`, imagine you want to set `attr2` to value 5 instead of copying from `fw_attr2`, to achieve that do the following:
@snippet ov_extensions.cpp frontend_extension_CustomOperation_rename_set
So the conclusion is that each attribute of target OpenVINO operation should be initialized either by
1. Setting automatically due to name matching
2. Mapped by attribute name
3. Set to a constant value
This is achieved by specifying maps as arguments for `OpExtension` constructor.
## Mapping to Multiple Operations with ConversionExtension
Previous sections cover the case when a single operation is mapped to a single operation with optional adjustment in names and attribute values. That is likely enough for your own custom operation with existing C++ kernel implementation. In this case your framework representation and OpenVINO representation for the operation are under your control and inputs/outpus/attributes can be aligned to make `OpExtension` usable.
In case if one-to-one mapping is not possible, *decomposition to multiple operations* should be considered. It is achieved by using more verbose and less automated `ConversionExtension` class. It enables writing arbitrary code to replace a single framework operation by multiple connected OpenVINO operations constructing dependency graph of any complexity.
`ConversionExtension` maps a single operation to a function which builds a graph using OpenVINO operation classes. Follow chapter [Build a Model in OpenVINO Runtime](@ref ov_ug_build_model) to learn how to use OpenVINO operation classes to build a fragment of model for replacement.
The next example illustrates using `ConversionExtension` for conversion of “ThresholdedRelu” from ONNX according to the formula: `ThresholdedRelu(x, alpha) -> Multiply(x, Convert(Greater(x, alpha), type=float))`.
> **NOTE**: `ThresholdedRelu` is one of the standard ONNX operators which is supported by ONNX frontend natively out-of-the-box. Here we are re-implementing it to illustrate how you can add a similar support for your custom operation instead of `ThresholdedRelu`.
@snippet ov_extensions.cpp frontend_extension_ThresholdedReLU_header
@snippet ov_extensions.cpp frontend_extension_ThresholdedReLU
To access original framework operation attribute value and connect to inputs, `node` object of type `NodeContext` is used. It has two main methods:
* `NodeContext::get_input` to get input with a given index,
* `NodeContext::get_attribute` to get attribute value with a given name.
The conversion function should return a vector of node outputs that are mapped to corresponding outputs of the original framework operation in the same order.

View File

@@ -0,0 +1,28 @@
# OpenVINO Graph Rewrite Pass {#openvino_docs_Extensibility_UG_graph_rewrite_pass}
`ov::pass::GraphRewrite` serves for running multiple matcher passes on `ov::Model` in a single graph traversal.
Example:
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:graph_rewrite
In addition, GraphRewrite handles nodes that were registered by MatcherPasses during their execution. This nodes will be added to the beginning of the sequence with nodes for pattern matching.
> **NOTE**: when using `ov::pass::Manager` temporary GraphRewrite is used to execute single MatcherPass.
GraphRewrite has two algorithms for MatcherPasses execution. First algorithm is straightforward. It applies each MatcherPass in registration order to current node.
![graph_rewrite_execution]
But it is not really efficient when you have a lot of registered passes. So first of all GraphRewrite checks that all MatcherPass patterns has type-based root node (it means that type of this node is not hidden into predicate).
And then creates map from registered MatcherPasses. That helps to avoid additional cost of applying each MatcherPass for each node.
![graph_rewrite_efficient_search]
> **NOTE**: GraphRewrite execution algorithm cannot be set manually and depends only on root nodes registered inside MatcherPasses.
## See Also
* [OpenVINO™ Transformations](./ov_transformations.md)
[graph_rewrite_execution]: ./img/graph_rewrite_execution.png
[graph_rewrite_efficient_search]: ./img/graph_rewrite_efficient_search.png

View File

@@ -0,0 +1,101 @@
# OpenVINO Matcher Pass {#openvino_docs_Extensibility_UG_matcher_pass}
`ov::pass::MatcherPass` is used for pattern-based transformations.
Template for MatcherPass transformation class
@snippet src/transformations/template_pattern_transformation.hpp graph_rewrite:template_transformation_hpp
@snippet src/transformations/template_pattern_transformation.cpp graph_rewrite:template_transformation_cpp
To use `ov::pass::MatcherPass`, you need to complete these steps:
1. Create a pattern
2. Implement a callback
3. Register the pattern and Matcher
4. Execute MatcherPass
So let's go through each of these steps.
## Create a pattern
Pattern is a single root `ov::Model`. But the only difference is that you do not need to create a model object, you just need to create and connect opset or special pattern operations.
Then you need to take the last created operation and put it as a root of the pattern. This root node will be used as a root node in pattern matching.
> **NOTE**: Any nodes in a pattern that have no consumers and are not registered as root will not be used in pattern matching.
@snippet ov_model_snippets.cpp pattern:simple_example
The `Parameter` operation in the example above has type and shape specified. These attributes are needed only to create Parameter operation class and will not be used in pattern matching.
For more pattern examples, refer to the [pattern matching](#pattern_matching) section.
## Implement callback
Callback is an action applied to every pattern entrance. In general, callback is the lambda function that takes Matcher object with detected subgraph.
@snippet ov_model_snippets.cpp pattern:callback_example
The example above shows the callback structure and how Matcher can be used for accessing nodes detected by pattern.
Callback return value is `true` if root node was replaced and another pattern cannot be applied to the same root node; otherwise, it is `false`.
> **NOTE**: It is not recommended to manipulate with nodes that are under root node. This may affect GraphRewrite execution as it is expected that all nodes that come after root node in topological order are valid and can be used in pattern matching.
MatcherPass also provides functionality that allows reporting of the newly created nodes that can be used in additional pattern matching.
If MatcherPass was registered in `ov::pass::Manager` or `ov::pass::GraphRewrite`, these registered nodes will be added for additional pattern matching.
That means that matcher passes registered in `ov::pass::GraphRewrite` will be applied to these nodes.
The example below shows how single MatcherPass can fuse sequence of operations using the `register_new_node` method.
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:relu_fusion
> **NOTE**: If you register multiple nodes, please add them in topological order. We do not topologically sort these nodes as it is a time-consuming operation.
## Register pattern and Matcher
The last step is to register Matcher and callback inside the MatcherPass pass. To do this, call the `register_matcher` method.
> **NOTE**: Only one matcher can be registered for a single MatcherPass class.
```cpp
// Register matcher and callback
register_matcher(m, callback);
```
## Execute MatcherPass
MatcherPass has multiple ways to be executed:
* Run on a single node - it can be useful if you want to run MatcherPass inside another transformation.
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:run_on_node
* Run on `ov::Model` using GraphRewrite - this approach gives ability to run MatcherPass on whole `ov::Model`. Moreover, multiple MatcherPass transformation can be registered in a single GraphRewite to be executed in a single graph traversal.
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:graph_rewrite
* Run on `ov::Model` using `ov::pass::Manager` - this approach helps you to register MatcherPass for execution on `ov::Model` as another transformation types.
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:manager
## Pattern Matching <a name="pattern_matching"></a>
Sometimes patterns cannot be expressed via regular operations or it is too complicated.
For example, if you want to detect **Convolution->Add** sub-graph without specifying particular input type for Convolution operation or you want to create a pattern where some of operations can have different types.
And for these cases OpenVINO™ provides additional helpers to construct patterns for GraphRewrite transformations.
There are two main helpers:
1. `ov::pass::pattern::any_input` - helps to express inputs if their types are undefined.
2. `ov::pass::pattern::wrap_type<T>` - helps to express nodes of pattern without specifying node attributes.
Let's go through the example to have better understanding of how it works:
> **NOTE**: Node attributes do not participate in pattern matching and are needed only for operations creation. Only operation types participate in pattern matching.
The example below shows basic usage of `ov::passpattern::any_input`.
Here we construct Multiply pattern with arbitrary first input and Constant as a second input.
Also as Multiply is commutative operation, it does not matter in which order we set inputs (any_input/Constant or Constant/any_input) because both cases will be matched.
@snippet ov_model_snippets.cpp pattern:label_example
This example shows how we can construct a pattern when operation has arbitrary number of inputs.
@snippet ov_model_snippets.cpp pattern:concat_example
This example shows how to use predicate to construct a pattern. Also it shows how to match pattern manually on given node.
@snippet ov_model_snippets.cpp pattern:predicate_example
> **NOTE**: Be careful with manual matching because Matcher object holds matched nodes. To clear a match, use the m->clear_state() method.
## See Also
* [OpenVINO™ Transformations](./ov_transformations.md)

View File

@@ -0,0 +1,17 @@
# OpenVINO Model Pass {#openvino_docs_Extensibility_UG_model_pass}
`ov::pass::ModelPass` is used for transformations that take entire `ov::Model` as an input and process it.
Template for ModelPass transformation class
@snippet src/transformations/template_model_transformation.hpp model_pass:template_transformation_hpp
@snippet src/transformations/template_model_transformation.cpp model_pass:template_transformation_cpp
Using `ov::pass::ModelPass`, you need to override the `run_on_model` method where you will write the transformation code.
Return value is `true` if the original model has changed during transformation (new operation was added, or operations replacement was made, or node attributes were changed); otherwise, it is `false`.
Also `ov::pass::ModelPass` based transformations can be executed via `ov::pass::Manager`.
## See Also
* [OpenVINO™ Transformations](./ov_transformations.md)

View File

@@ -0,0 +1,173 @@
# Overview of Transformations API {#openvino_docs_transformations}
@sphinxdirective
.. toctree::
:maxdepth: 1
:hidden:
openvino_docs_Extensibility_UG_model_pass
openvino_docs_Extensibility_UG_matcher_pass
openvino_docs_Extensibility_UG_graph_rewrite_pass
@endsphinxdirective
OpenVINO Transformation mechanism allows to develop transformation passes to modify `ov::Model`. You can use this mechanism to apply additional optimizations to the original Model or transform unsupported subgraphs and operations to new operations which are supported by the plugin.
This guide contains all necessary information that you need to start implementing OpenVINO™ transformations.
## Working with Model
Before the moving to transformation part it is needed to say several words about functions which allow to modify `ov::Model`.
This chapter extends the [model representation guide](../OV_Runtime_UG/model_representation.md) and shows an API that allows us to manipulate with `ov::Model`.
### Working with node input and output ports
First of all let's talk about `ov::Node` input/output ports. Each OpenVINO™ operation has input and output ports except cases when operation has `Parameter` or `Constant` type.
Every port belongs to its node, so using a port we can access parent node, get shape and type for particular input/output, get all consumers in case of output port, and get producer node in case of input port.
With output port we can set inputs for newly created operations.
Lets look at the code example.
@snippet ov_model_snippets.cpp ov:ports_example
### Node replacement
OpenVINO™ provides two ways for node replacement: via OpenVINO™ helper function and directly via port methods. We are going to review both of them.
Let's start with OpenVINO™ helper functions. The most popular function is `ov::replace_node(old_node, new_node)`.
We will review real replacement case where Negative operation is replaced with Multiply.
![ngraph_replace_node]
@snippet ov_model_snippets.cpp ov:replace_node
`ov::replace_node` has a constraint that number of output ports for both of ops must be the same; otherwise, it raises an exception.
The alternative way to do the same replacement is the following:
@snippet ov_model_snippets.cpp ov:manual_replace
Another transformation example is insertion.
![ngraph_insert_node]
@snippet ov_model_snippets.cpp ov:insert_node
The alternative way to the insert operation is to make a node copy and use `ov::replace_node()`:
@snippet ov_model_snippets.cpp ov:insert_node_with_copy
### Node elimination
Another type of node replacement is its elimination.
To eliminate operation, OpenVINO™ has special method that considers all limitations related to OpenVINO™ Runtime.
@snippet ov_model_snippets.cpp ov:eliminate_node
`ov::replace_output_update_name()` in case of successful replacement it automatically preserves friendly name and runtime info.
## Transformations types <a name="transformations_types"></a>
OpenVINO™ Runtime has three main transformation types:
* [Model pass](./model_pass.md) - straightforward way to work with `ov::Model` directly
* [Matcher pass](./matcher_pass.md) - pattern-based transformation approach
* [Graph rewrite pass](./graph_rewrite_pass.md) - container for matcher passes needed for efficient execution
![transformations_structure]
## Transformation conditional compilation
Transformation library has two internal macros to support conditional compilation feature.
* `MATCHER_SCOPE(region)` - allows to disable the MatcherPass if matcher isn't used. The region name should be unique. This macro creates a local variable `matcher_name` which you should use as a matcher name.
* `RUN_ON_MODEL_SCOPE(region)` - allows to disable run_on_model pass if it isn't used. The region name should be unique.
## Transformation writing essentials <a name="transformation_writing_essentials"></a>
When developing a transformation, you need to follow these transformation rules:
###1. Friendly Names
Each `ov::Node` has an unique name and a friendly name. In transformations we care only about friendly name because it represents the name from the model.
To avoid losing friendly name when replacing node with other node or subgraph, set the original friendly name to the latest node in replacing subgraph. See the example below.
@snippet ov_model_snippets.cpp ov:replace_friendly_name
In more advanced cases, when replaced operation has several outputs and we add additional consumers to its outputs, we make a decision how to set friendly name by arrangement.
###2. Runtime Info
Runtime info is a map `std::map<std::string, ov::Any>` located inside `ov::Node` class. It represents additional attributes in `ov::Node`.
These attributes can be set by users or by plugins and when executing transformation that changes `ov::Model` we need to preserve these attributes as they will not be automatically propagated.
In most cases, transformations have the following types: 1:1 (replace node with another node), 1:N (replace node with a sub-graph), N:1 (fuse sub-graph into a single node), N:M (any other transformation).
Currently, there is no mechanism that automatically detects transformation types, so we need to propagate this runtime information manually. See the examples below.
@snippet ov_model_snippets.cpp ov:copy_runtime_info
When transformation has multiple fusions or decompositions, `ov::copy_runtime_info` must be called multiple times for each case.
**Note**: copy_runtime_info removes rt_info from destination nodes. If you want to keep it, you need to specify them in source nodes like this: copy_runtime_info({a, b, c}, {a, b})
###3. Constant Folding
If your transformation inserts constant sub-graphs that need to be folded, do not forget to use `ov::pass::ConstantFolding()` after your transformation or call constant folding directly for operation.
The example below shows how constant subgraph can be constructed.
@snippet ov_model_snippets.cpp ov:constant_subgraph
Manual constant folding is more preferable than `ov::pass::ConstantFolding()` because it is much faster.
Below you can find an example of manual constant folding:
@snippet src/transformations/template_pattern_transformation.cpp manual_constant_folding
## Common mistakes in transformations <a name="common_mistakes"></a>
In transformation development process:
* Do not use deprecated OpenVINO™ API. Deprecated methods has the `OPENVINO_DEPRECATED` macros in its definition.
* Do not pass `shared_ptr<Node>` as an input for other node if type of node is unknown or it has multiple outputs. Use explicit output port.
* If you replace node with another node that produces different shape, remember that new shape will not be propagated until the first `validate_nodes_and_infer_types` call for `ov::Model`. If you are using `ov::pass::Manager`, it will automatically call this method after each transformation execution.
* Do not forget to call the `ov::pass::ConstantFolding` pass if your transformation creates constant subgraphs.
* Use latest OpSet if you are not developing downgrade transformation pass.
* When developing a callback for `ov::pass::MatcherPass`, do not change nodes that come after the root node in topological order.
## Using pass manager <a name="using_pass_manager"></a>
`ov::pass::Manager` is a container class that can store the list of transformations and execute them. The main idea of this class is to have high-level representation for grouped list of transformations.
It can register and apply any [transformation pass](#transformations_types) on model.
In addition, `ov::pass::Manager` has extended debug capabilities (find more information in the [how to debug transformations](#how_to_debug_transformations) section).
The example below shows basic usage of `ov::pass::Manager`
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:manager3
Another example shows how multiple matcher passes can be united into single GraphRewrite.
@snippet src/transformations/template_pattern_transformation.cpp matcher_pass:manager2
## How to debug transformations <a name="how_to_debug_transformations"></a>
If you are using `ngraph::pass::Manager` to run sequence of transformations, you can get additional debug capabilities by using the following environment variables:
```
OV_PROFILE_PASS_ENABLE=1 - enables performance measurement for each transformation and prints execution status
OV_ENABLE_VISUALIZE_TRACING=1 - enables visualization after each transformation. By default, it saves dot and svg files.
```
> **Note**: Make sure that you have dot installed on your machine; otherwise, it will silently save only dot file without svg file.
## See Also
* [OpenVINO™ Model Representation](../OV_Runtime_UG/model_representation.md)
* [OpenVINO™ Extensions](./Intro.md)
[ngraph_replace_node]: ./img/ngraph_replace_node.png
[ngraph_insert_node]: ./img/ngraph_insert_node.png
[transformations_structure]: ./img/transformations_structure.png
[register_new_node]: ./img/register_new_node.png

View File

@@ -1,349 +0,0 @@
# Custom Operations Guide {#openvino_docs_HOWTO_Custom_Layers_Guide}
The Intel® Distribution of OpenVINO™ toolkit supports neural network models trained with multiple frameworks including
TensorFlow*, Caffe*, MXNet*, Kaldi* and ONNX* file format. The list of supported operations (layers) is different for
each of the supported frameworks. To see the operations supported by your framework, refer to
[Supported Framework Layers](../MO_DG/prepare_model/Supported_Frameworks_Layers.md).
Custom operations, that is those not included in the list, are not recognized by Model Optimizer out-of-the-box. Therefore, creating Intermediate Representation (IR) for a model using them requires additional steps. This guide illustrates the workflow for running inference on topologies featuring custom operations, allowing you to plug in your own implementation for existing or completely new operations.
> **NOTE**: *Layer* is a legacy term for *operation* which came from Caffe\* framework. Currently it is not used.
> Refer to the [Deep Learning Network Intermediate Representation and Operation Sets in OpenVINO™](../MO_DG/IR_and_opsets.md)
> for more information on the topic.
## Terms Used in This Guide
- *Intermediate Representation (IR)* — OpenVINO's Neural Network format used by Inference Engine. It abstracts different frameworks and describs model topology, operations parameters, and weights.
- *Operation* — an abstract concept of a math function selected for a specific purpose. Operations supported by
OpenVINO™ are listed in the supported operation set provided in the [Available Operations Sets](../ops/opset.md).
Examples of the operations are: [ReLU](../ops/activation/ReLU_1.md), [Convolution](../ops/convolution/Convolution_1.md),
[Add](../ops/arithmetic/Add_1.md), etc.
- *Kernel* — The implementation of an operation function in the OpenVINO™ plugin, in this case, the math programmed (in
C++ and OpenCL) to perform the operation for a target hardware (CPU or GPU).
- *Inference Engine Extension* — Device-specific module implementing custom operations (a set of kernels).
## Custom Operation Support Overview
There are three steps to support inference of a model with custom operation(s):
1. Add support for a custom operation in the [Model Optimizer](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) so
the Model Optimizer can generate the IR with the operation.
2. Create an operation set and implement a custom nGraph operation in it as described in the
[Custom nGraph Operation](../OV_Runtime_UG/Extensibility_DG/AddingNGraphOps.md).
3. Implement a customer operation in one of the [Inference Engine](../OV_Runtime_UG/Deep_Learning_Inference_Engine_DevGuide.md)
plugins to support inference of this operation using a particular target hardware (CPU, GPU or VPU).
To see the operations that are supported by each device plugin for the Inference Engine, refer to the
[Supported Devices](../OV_Runtime_UG/supported_plugins/Supported_Devices.md).
> **NOTE**: If a device doesn't support a particular operation, an alternative to creating a new operation is to target
> an additional device using the HETERO plugin. The [Heterogeneous Plugin](../OV_Runtime_UG/supported_plugins/HETERO.md) may be
> used to run an inference model on multiple devices allowing the unsupported operations on one device to "fallback" to
> run on another device (e.g., CPU) that does support those operations.
### Custom Operation Support for the Model Optimizer
Model Optimizer model conversion pipeline is described in detail in "Model Conversion Pipeline" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md). It is best to read that article first for a better understanding of the following material.
Model Optimizer provides an extensions mechanism to support new operations and implement custom model transformations to generate optimized IR. This mechanism is described in the "Model Optimizer Extensions" section of
[Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md).
Two types of Model Optimizer extensions should be implemented to support custom operations, at a minimum:
1. Operation class for a new operation. This class stores information about the operation, its attributes, shape inference function, attributes to be saved to an IR and some others internally used attributes. Refer to the "Model Optimizer Operation" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for detailed instructions on how to implement it.
2. Operation attributes extractor. The extractor is responsible for parsing framework-specific representation of the
operation and uses corresponding operation class to update graph node attributes with necessary attributes of the
operation. Refer to the "Operation Extractor" section of
[Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for detailed instructions on how to implement it.
> **NOTE**: In some cases you may need to implement some transformation to support the operation. This topic is covered in the "Graph Transformation Extensions" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md).
## Custom Operations Extensions for the Inference Engine
Inference Engine provides an extension mechanism to support new operations. This mechanism is described in [Inference Engine Extensibility Mechanism](../OV_Runtime_UG/Extensibility_DG/Intro.md).
Each device plugin includes a library of optimized implementations to execute known operations which must be extended to execute a custom operation. The custom operation extension is implemented according to the target device:
- Custom Operation CPU Extension
- A compiled shared library (`.so` or `.dll`) needed by the CPU Plugin for executing the custom operation
on a CPU. Refer to the [How to Implement Custom CPU Operations](../OV_Runtime_UG/Extensibility_DG/CPU_Kernel.md) for more
details.
- Custom Operation GPU Extension
- OpenCL source code (.cl) for the custom operation kernel that will be compiled to execute on the GPU along with an operation description file (.xml) needed by the GPU Plugin for the custom operation kernel. Refer to the [How to Implement Custom GPU Operations](../OV_Runtime_UG/Extensibility_DG/GPU_Kernel.md) for more details.
- Custom Operation VPU Extension
- OpenCL source code (.cl) for the custom operation kernel that will be compiled to execute on the VPU along with an operation description file (.xml) needed by the VPU Plugin for the custom operation kernel. Refer to [How to Implement Custom Operations for VPU](../OV_Runtime_UG/Extensibility_DG/VPU_Kernel.md) for more details.
Also, it is necessary to implement nGraph custom operation according to [Custom nGraph Operation](../OV_Runtime_UG/Extensibility_DG/AddingNGraphOps.md) so the Inference Engine can read an IR with this
operation and correctly infer output tensor shape and type.
## Enabling Magnetic Resonance Image Reconstruction Model
This chapter provides step-by-step instructions on how to enable the magnetic resonance image reconstruction model implemented in the [repository](https://github.com/rmsouza01/Hybrid-CS-Model-MRI/) using a custom operation on CPU. The example is prepared for a model generated from the repository with hash `2ede2f96161ce70dcdc922371fe6b6b254aafcc8`.
### Download and Convert the Model to a Frozen TensorFlow\* Model Format
The original pre-trained model is provided in the hdf5 format which is not supported by OpenVINO directly and needs to be converted to TensorFlow\* frozen model format first.
1. Download repository `https://github.com/rmsouza01/Hybrid-CS-Model-MRI`:<br>
```bash
git clone https://github.com/rmsouza01/Hybrid-CS-Model-MRI
git checkout 2ede2f96161ce70dcdc922371fe6b6b254aafcc8
```
2. Convert pre-trained `.hdf5` to a frozen `.pb` graph using the following script (tested with TensorFlow==1.15.0 and
Keras==2.2.4) which should be executed from the root of the cloned repository:<br>
```py
import keras as K
import numpy as np
import Modules.frequency_spatial_network as fsnet
import tensorflow as tf
under_rate = '20'
stats = np.load("Data/stats_fs_unet_norm_" + under_rate + ".npy")
var_sampling_mask = np.load("Data/sampling_mask_" + under_rate + "perc.npy")
model = fsnet.wnet(stats[0], stats[1], stats[2], stats[3], kshape = (5,5), kshape2=(3,3))
model_name = "Models/wnet_" + under_rate + ".hdf5"
model.load_weights(model_name)
inp = np.random.standard_normal([1, 256, 256, 2]).astype(np.float32)
np.save('inp', inp)
sess = K.backend.get_session()
sess.as_default()
graph_def = sess.graph.as_graph_def()
graph_def = tf.graph_util.convert_variables_to_constants(sess, graph_def, ['conv2d_44/BiasAdd'])
with tf.gfile.FastGFile('wnet_20.pb', 'wb') as f:
f.write(graph_def.SerializeToString())
```
As a result the TensorFlow\* frozen model file "wnet_20.pb" is generated.
### Convert the Frozen TensorFlow\* Model to Intermediate Representation
Firstly, open the model in TensorBoard or other TensorFlow* model visualization tool. The model supports dynamic
batch dimension because the value for the batch dimension is not hardcoded in the model. Model Optimizer need to set all
dynamic dimensions to some specific value to create the IR, therefore specify the command line parameter `-b 1` to set
the batch dimension equal to 1. The actual batch size dimension can be changed at runtime using the Inference Engine API
described in the [Using Shape Inference](../OV_Runtime_UG/ShapeInference.md). Also refer to the General Conversion Parameters section in [Converting a Model to Intermediate Representation (IR)](../MO_DG/prepare_model/convert_model/Converting_Model.md) and [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
for more details and command line parameters used for the model conversion.
```sh
mo --input_model <PATH_TO_MODEL>/wnet_20.pb -b 1
```
> **NOTE**: This conversion guide is applicable for the 2021.3 release of OpenVINO and that starting from 2021.4
> the OpenVINO supports this model out of the box.
Model Optimizer produces the following error:
```bash
[ ERROR ] List of operations that cannot be converted to Inference Engine IR:
[ ERROR ] Complex (1)
[ ERROR ] lambda_2/Complex
[ ERROR ] IFFT2D (1)
[ ERROR ] lambda_2/IFFT2D
[ ERROR ] ComplexAbs (1)
[ ERROR ] lambda_2/Abs
[ ERROR ] Part of the nodes was not converted to IR. Stopped.
```
The error means that the Model Optimizer doesn't know how to handle 3 types of TensorFlow\* operations: "Complex",
"IFFT2D" and "ComplexAbs". In order to see more details about the conversion process run the model conversion with
additional parameter `--log_level DEBUG`. It is worth to mention the following lines from the detailed output:
```bash
[ INFO ] Called "tf_native_tf_node_infer" for node "lambda_2/Complex"
[ <TIMESTAMP> ] [ DEBUG ] [ tf:228 ] Added placeholder with name 'lambda_2/lambda_3/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:228 ] Added placeholder with name 'lambda_2/lambda_4/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:241 ] update_input_in_pbs: replace input 'lambda_2/lambda_3/strided_slice' with input 'lambda_2/lambda_3/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:249 ] Replacing input '0' of the node 'lambda_2/Complex' with placeholder 'lambda_2/lambda_3/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:241 ] update_input_in_pbs: replace input 'lambda_2/lambda_4/strided_slice' with input 'lambda_2/lambda_4/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:249 ] Replacing input '1' of the node 'lambda_2/Complex' with placeholder 'lambda_2/lambda_4/strided_slice_port_0_ie_placeholder'
[ <TIMESTAMP> ] [ DEBUG ] [ tf:148 ] Inferred shape of the output tensor with index '0' of the node 'lambda_2/Complex': '[ 1 256 256]'
[ <TIMESTAMP> ] [ DEBUG ] [ infer:145 ] Outputs:
[ <TIMESTAMP> ] [ DEBUG ] [ infer:32 ] output[0]: shape = [ 1 256 256], value = <UNKNOWN>
[ <TIMESTAMP> ] [ DEBUG ] [ infer:129 ] --------------------
[ <TIMESTAMP> ] [ DEBUG ] [ infer:130 ] Partial infer for lambda_2/IFFT2D
[ <TIMESTAMP> ] [ DEBUG ] [ infer:131 ] Op: IFFT2D
[ <TIMESTAMP> ] [ DEBUG ] [ infer:132 ] Inputs:
[ <TIMESTAMP> ] [ DEBUG ] [ infer:32 ] input[0]: shape = [ 1 256 256], value = <UNKNOWN>
```
This is a part of the log of the partial inference phase of the model conversion. See the "Partial Inference" section on
the [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for
more information about this phase. Model Optimizer inferred output shape for the unknown operation of type "Complex"
using a "fallback" to TensorFlow\*. However, it is not enough to generate the IR because Model Optimizer doesn't know
which attributes of the operation should be saved to IR. So it is necessary to implement Model Optimizer extensions to
support these operations.
Before going into the extension development it is necessary to understand what these unsupported operations do according
to the TensorFlow\* framework specification.
* "Complex" - returns a tensor of complex type constructed from two real input tensors specifying real and imaginary
part of a complex number.
* "IFFT2D" - returns a tensor with inverse 2-dimensional discrete Fourier transform over the inner-most 2 dimensions of
an input.
* "ComplexAbs" - returns a tensor with absolute values of input tensor with complex numbers.
The part of the model with all three unsupported operations is depicted below:
![Unsupported sub-graph](img/unsupported_subgraph.png)
This model uses complex numbers during the inference but Inference Engine does not support tensors of this data type. So
it is necessary to find a way how to avoid using tensors of such a type in the model. Fortunately, the complex tensor
appear as a result of "Complex" operation, is used as input in the "IFFT2D" operation then is passed to "ComplexAbs"
which produces real value tensor as output. So there are just 3 operations consuming/producing complex tensors in the
model.
Let's design an OpenVINO operation "FFT" which get a single real number tensor describing the complex number and
produces a single real number tensor describing output complex tensor. This way the fact that the model uses complex
numbers is hidden inside the "FFT" operation implementation. The operation gets a tensor of shape `[N, H, W, 2]` and
produces the output tensor with the same shape, where the innermost dimension contains pairs of real numbers describing
the complex number (its real and imaginary part). As we will see further this operation will allow us to support the
model. The implementation of the Model Optimizer operation should be saved to `mo_extensions/ops/FFT.py` file:
@snippet FFT.py fft:operation
The attribute `inverse` is a flag specifying type of the FFT to apply: forward or inverse.
See the "Model Optimizer Operation" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for detailed instructions on how to implement the operation.
Now it is necessary to implement extractor for the "IFFT2D" operation according to the
"Operation Extractor" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md). The
following snippet provides two extractors: one for "IFFT2D", another one for "FFT2D", however only on of them is used in this example. The implementation should be saved to the file `mo_extensions/front/tf/FFT_ext.py`.
@snippet FFT_ext.py fft_ext:extractor
> **NOTE**: The graph is in inconsistent state after extracting node attributes because according to original operation
> "IFFT2D" semantic it should have an input consuming a tensor of complex numbers, but the extractor instantiated an
> operation "FFT" which expects a real tensor with specific layout. But the inconsistency will be resolved during
> applying front phase transformations discussed below.
The output shape of the operation "AddV2" from the picture above is `[N, H, W, 2]`. Where the innermost dimension
contains pairs of real numbers describing the complex number (its real and imaginary part). The following "StridedSlice"
operations split the input tensor into 2 parts to get a tensor of real and a tensor of imaginary parts which are then
consumed with the "Complex" operation to produce a tensor of complex numbers. These "StridedSlice" and "Complex"
operations can be removed so the "FFT" operation will get a real value tensor encoding complex numbers. To achieve this
we implement the front phase transformation which searches for a pattern of two "StridedSlice" operations with specific
attributes producing data to "Complex" operation and removes it from the graph. Refer to the
"Pattern-Defined Front Phase Transformations" section of [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md) for more
information on how this type of transformation works. The code snippet should be saved to the file
`mo_extensions/front/tf/Complex.py`.
@snippet Complex.py complex:transformation
> **NOTE**: The graph is in inconsistent state because the "ComplexAbs" operation consumes complex value tensor but
> "FFT" produces real value tensor.
Now lets implement a transformation which replace a "ComplexAbs" operation with a sub-graph of primitive operations
which calculate the result using the following formulae: \f$module(z) = \sqrt{real(z) \cdot real(z) + imag(z) \cdot imag(z)}\f$.
Original "IFFT2D" operation produces tensor of complex values, but the "FFT" operation produces a real value tensor with
the same format and shape as the input for the operation. So the input shape for the "ComplexAbs" will be `[N, H, W, 2]`
with the innermost dimension containing tuple with real and imaginary part of a complex number. In order to calculate
absolute values for the complex tensor we do the following:
1. Raise all elements in the power of 2.
2. Calculate a reduced sum over the innermost dimension.
3. Calculate a square root.
The implementation should be saved to the file `mo_extensions/front/tf/ComplexAbs.py` and provided below:
@snippet ComplexAbs.py complex_abs:transformation
Now it is possible to convert the model using the following command line:
```sh
mo --input_model <PATH_TO_MODEL>/wnet_20.pb -b 1 --extensions mo_extensions/
```
The sub-graph corresponding to the originally non-supported one is depicted in the image below:
![Converted sub-graph](img/converted_subgraph.png)
> **NOTE**: Model Optimizer performed conversion of the model from NHWC to NCHW layout that is why the dimension with
> the value 2 moved to another position.
### Inference Engine Extension Implementation
Now it is necessary to implement the extension for the CPU plugin with operation "FFT" introduced previously. The code
below is based on the template extension described in [Inference Engine Extensibility Mechanism](../OV_Runtime_UG/Extensibility_DG/Intro.md).
#### CMake Build File
The first step is to create a CMake configuration file which builds the extension. The content of the "CMakeLists.txt"
file is the following:
@snippet template_extension/old/CMakeLists.txt cmake:extension
The CPU FFT kernel implementation uses OpenCV to perform the FFT that is why the extension library is linked with
`opencv_core` which comes with the OpenVINO.
#### Custom nGraph Operation "FFT" Implementation
The next step is to create the nGraph operation FFT. The header file "fft_op.hpp" has the following content:
@snippet template_extension/old/fft_op.hpp fft_op:header
The operation has just one boolean attribute `inverse`. Implementation of the necessary nGraph operation functions are
in the `fft_op.cpp` file with the following content:
@snippet template_extension/old/fft_op.cpp fft_op:implementation
Refer to the [Custom nGraph Operation](../OV_Runtime_UG/Extensibility_DG/AddingNGraphOps.md) for more details.
#### CPU FFT Kernel Implementation
The operation implementation for CPU plugin uses OpenCV to perform the FFT. The header file "fft_kernel.hpp" has the
following content:
@snippet template_extension/old/fft_kernel.hpp fft_kernel:header
The "fft_kernel.cpp" with the implementation of the CPU has the following content:
@snippet template_extension/old/fft_kernel.cpp fft_kernel:implementation
Refer to the [How to Implement Custom CPU Operations](../OV_Runtime_UG/Extensibility_DG/CPU_Kernel.md) for more details.
#### Extension Library Implementation
The last step is to create an extension library "extension.cpp" and "extension.hpp" which will include the FFT
operation for the CPU plugin. The code of the library is described in the [Extension Library](../OV_Runtime_UG/Extensibility_DG/Extension.md).
### Building and Running the Custom Extension
To build the extension, run the following:<br>
```bash
mkdir build && cd build
source /opt/intel/openvino_2022/setupvars.sh
cmake .. -DCMAKE_BUILD_TYPE=Release
make --jobs=$(nproc)
```
The result of this command is a compiled shared library (`.so` or `.dll`). It should be loaded in the
application using `Core` class instance method `AddExtension` like this
`core.AddExtension(std::make_shared<Extension>(compiled_library_file_name), "CPU");`.
To test that the extension is implemented correctly we can run the "mri_reconstruction_demo" with the following content:
@snippet mri_reconstruction_demo.py mri_demo:demo
The script can be executed using the following command line:
```bash
python3 mri_reconstruction_demo.py \
-m <PATH_TO_IR>/wnet_20.xml \
-i <PATH_TO_SAMPLE_MRI_IMAGE>.npy \
-p <Hybrid-CS-Model-MRI_repo>/Data/sampling_mask_20perc.npy \
-l <PATH_TO_BUILD_DIR>/libtemplate_extension.so \
-d CPU
```
## Additional Resources
- Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit)
- OpenVINO™ toolkit online documentation: [https://docs.openvino.ai](https://docs.openvino.ai)
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
- [Model Optimizer Extensibility](../MO_DG/prepare_model/customize_model_optimizer/Customize_Model_Optimizer.md)
- [Inference Engine Extensibility Mechanism](../OV_Runtime_UG/Extensibility_DG/Intro.md)
- [OpenVINO™ Toolkit Samples Overview](../OV_Runtime_UG/Samples_Overview.md)
- [Overview of OpenVINO™ Toolkit Pre-Trained Models](@ref omz_models_group_intel)
- For IoT Libraries and Code Samples see the [Intel® IoT Developer Kit](https://github.com/intel-iot-devkit).
## Converting Models:
- [Convert Your Caffe* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md)
- [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
- [Convert Your MXNet* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md)
- [Convert Your Kaldi* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Kaldi.md)
- [Convert Your ONNX* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_ONNX.md)

View File

@@ -1,7 +1,7 @@
# Asynchronous Inference Request {#openvino_docs_ie_plugin_dg_async_infer_request}
Asynchronous Inference Request runs an inference pipeline asynchronously in one or several task executors depending on a device pipeline structure.
Inference Engine Plugin API provides the base InferenceEngine::AsyncInferRequestThreadSafeDefault class:
OpenVINO Runtime Plugin API provides the base InferenceEngine::AsyncInferRequestThreadSafeDefault class:
- The class has the `_pipeline` field of `std::vector<std::pair<ITaskExecutor::Ptr, Task> >`, which contains pairs of an executor and executed task.
- All executors are passed as arguments to a class constructor and they are in the running state and ready to run tasks.
@@ -10,7 +10,7 @@ Inference Engine Plugin API provides the base InferenceEngine::AsyncInferRequest
`AsyncInferRequest` Class
------------------------
Inference Engine Plugin API provides the base InferenceEngine::AsyncInferRequestThreadSafeDefault class for a custom asynchronous inference request implementation:
OpenVINO Runtime Plugin API provides the base InferenceEngine::AsyncInferRequestThreadSafeDefault class for a custom asynchronous inference request implementation:
@snippet src/template_async_infer_request.hpp async_infer_request:header

View File

@@ -675,7 +675,7 @@ SHOW_NAMESPACES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command command input-file, where command is the value of the
# popen()) the command input-file, where command is the value of the
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
# by doxygen. Whatever the program writes to standard output is used as the file
# version. For an example see the documentation.

View File

@@ -37,8 +37,8 @@ The implementation `CompileNetwork` is fully device-specific.
The function accepts a const shared pointer to `ngraph::Function` object and performs the following steps:
1. Applies ngraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. To support low precision inference, the pipeline can include Low Precision Transformations. These transformations are usually hardware specific. You can find how to use and configure Low Precisions Transformations in [Low Precision Transformations](@ref openvino_docs_IE_DG_lpt) guide.
2. Maps the transformed graph to a backend specific graph representation (for example, to MKLDNN graph for Intel CPU).
1. Applies nGraph passes using `TransformNetwork` function, which defines plugin-specific conversion pipeline. To support low precision inference, the pipeline can include Low Precision Transformations. These transformations are usually hardware specific. You can find how to use and configure Low Precisions Transformations in [Low Precision Transformations](@ref openvino_docs_OV_UG_lpt) guide.
2. Maps the transformed graph to a backend specific graph representation (for example, to CPU plugin internal graph representation).
3. Allocates and fills memory for graph weights, backend specific memory handles and so on.
@snippet src/template_executable_network.cpp executable_network:map_graph

View File

@@ -54,7 +54,7 @@ Decrements a number of created inference requests:
#### 1. `inferPreprocess`
Below is the code of the the `inferPreprocess` method to demonstrate Inference Engine common preprocessing step handling:
Below is the code of the `inferPreprocess` method to demonstrate Inference Engine common preprocessing step handling:
@snippet src/template_infer_request.cpp infer_request:infer_preprocess

View File

@@ -9,11 +9,12 @@
Implement Plugin Functionality <openvino_docs_ie_plugin_dg_plugin>
Implement Executable Network Functionality <openvino_docs_ie_plugin_dg_executable_network>
openvino_docs_ie_plugin_dg_quantized_networks
Implement Synchronous Inference Request <openvino_docs_ie_plugin_dg_infer_request>
Implement Asynchronous Inference Request <openvino_docs_ie_plugin_dg_async_infer_request>
openvino_docs_ie_plugin_dg_plugin_build
openvino_docs_ie_plugin_dg_plugin_testing
openvino_docs_ie_plugin_detailed_guides
openvino_docs_ie_plugin_api_references
@endsphinxdirective
@@ -55,11 +56,11 @@ Detailed guides
* [Build](@ref openvino_docs_ie_plugin_dg_plugin_build) a plugin library using CMake\*
* Plugin and its components [testing](@ref openvino_docs_ie_plugin_dg_plugin_testing)
* [Quantized networks](@ref openvino_docs_ie_plugin_dg_quantized_networks)
* [Low precision transformations](@ref openvino_docs_IE_DG_lpt) guide
* [Writing nGraph transformations](@ref ngraph_transformation) guide
* [Low precision transformations](@ref openvino_docs_OV_UG_lpt) guide
* [Writing OpenVINO™ transformations](@ref openvino_docs_transformations) guide
API References
-----------------------
* [Inference Engine Plugin API](groupie_dev_api.html)
* [Inference Engine Transformation API](groupie_transformation_api.html)
* [Inference Engine Plugin API](@ref ie_dev_api)
* [Inference Engine Transformation API](@ref ie_transformation_api)

View File

@@ -2,7 +2,7 @@
Inference Engine Plugin usually represents a wrapper around a backend. Backends can be:
- OpenCL-like backend (e.g. clDNN library) for GPU devices.
- MKLDNN backend for Intel CPU devices.
- oneDNN backend for Intel CPU devices.
- NVIDIA cuDNN for NVIDIA GPUs.
The responsibility of Inference Engine Plugin:
@@ -30,7 +30,7 @@ Based on that, declaration of a plugin class can look as follows:
The provided plugin class also has several fields:
* `_backend` - a backend engine that is used to perform actual computations for network inference. For `Template` plugin `ngraph::runtime::Backend` is used which performs computations using ngraph reference implementations.
* `_backend` - a backend engine that is used to perform actual computations for network inference. For `Template` plugin `ngraph::runtime::Backend` is used which performs computations using OpenVINO™ reference implementations.
* `_waitExecutor` - a task executor that waits for a response from a device about device tasks completion.
* `_cfg` of type `Configuration`:
@@ -67,7 +67,7 @@ which holds a backend-dependent compiled graph in an internal representation:
Before a creation of an `ExecutableNetwork` instance via a constructor, a plugin may check if a provided
InferenceEngine::ICNNNetwork object is supported by a device. In the example above, the plugin checks precision information.
The very important part before creation of `ExecutableNetwork` instance is to call `TransformNetwork` method which applies ngraph transformation passes.
The very important part before creation of `ExecutableNetwork` instance is to call `TransformNetwork` method which applies OpenVINO™ transformation passes.
Actual graph compilation is done in the `ExecutableNetwork` constructor. Refer to the [ExecutableNetwork Implementation Guide](@ref openvino_docs_ie_plugin_dg_executable_network) for details.
@@ -77,27 +77,27 @@ Actual graph compilation is done in the `ExecutableNetwork` constructor. Refer t
### `TransformNetwork()`
The function accepts a const shared pointer to `ngraph::Function` object and performs the following steps:
The function accepts a const shared pointer to `ov::Model` object and performs the following steps:
1. Deep copies a const object to a local object, which can later be modified.
2. Applies common and plugin-specific transformations on a copied graph to make the graph more friendly to hardware operations. For details how to write custom plugin-specific transformation, please, refer to [Writing ngraph transformations](@ref ngraph_transformation) guide. See detailed topics about network representation:
2. Applies common and plugin-specific transformations on a copied graph to make the graph more friendly to hardware operations. For details how to write custom plugin-specific transformation, please, refer to [Writing OpenVINO™ transformations](@ref openvino_docs_transformations) guide. See detailed topics about network representation:
* [Intermediate Representation and Operation Sets](../_docs_MO_DG_IR_and_opsets.html)
* [Quantized networks](@ref openvino_docs_ie_plugin_dg_quantized_networks).
@snippet template_plugin/src/template_plugin.cpp plugin:transform_network
> **NOTE**: After all these transformations, a `ngraph::Function` object contains operations which can be perfectly mapped to backend kernels. E.g. if backend has kernel computing `A + B` operations at once, the `TransformNetwork` function should contain a pass which fuses operations `A` and `B` into a single custom operation `A + B` which fits backend kernels set.
> **NOTE**: After all these transformations, a `ov::Model` object contains operations which can be perfectly mapped to backend kernels. E.g. if backend has kernel computing `A + B` operations at once, the `TransformNetwork` function should contain a pass which fuses operations `A` and `B` into a single custom operation `A + B` which fits backend kernels set.
### `QueryNetwork()`
Use the method with the `HETERO` mode, which allows to distribute network execution between different
devices based on the `ngraph::Node::get_rt_info()` map, which can contain the `"affinity"` key.
devices based on the `ov::Node::get_rt_info()` map, which can contain the `"affinity"` key.
The `QueryNetwork` method analyzes operations of provided `network` and returns a list of supported
operations via the InferenceEngine::QueryNetworkResult structure. The `QueryNetwork` firstly applies `TransformNetwork` passes to input `ngraph::Function` argument. After this, the transformed network in ideal case contains only operations are 1:1 mapped to kernels in computational backend. In this case, it's very easy to analyze which operations is supposed (`_backend` has a kernel for such operation or extensions for the operation is provided) and not supported (kernel is missed in `_backend`):
operations via the InferenceEngine::QueryNetworkResult structure. The `QueryNetwork` firstly applies `TransformNetwork` passes to input `ov::Model` argument. After this, the transformed network in ideal case contains only operations are 1:1 mapped to kernels in computational backend. In this case, it's very easy to analyze which operations is supposed (`_backend` has a kernel for such operation or extensions for the operation is provided) and not supported (kernel is missed in `_backend`):
1. Store original names of all operations in input `ngraph::Function`
1. Store original names of all operations in input `ov::Model`
2. Apply `TransformNetwork` passes. Note, the names of operations in a transformed network can be different and we need to restore the mapping in the steps below.
3. Construct `supported` and `unsupported` maps which contains names of original operations. Note, that since the inference is performed using ngraph reference backend, the decision whether the operation is supported or not depends on whether the latest OpenVINO opset contains such operation.
3. Construct `supported` and `unsupported` maps which contains names of original operations. Note, that since the inference is performed using OpenVINO™ reference backend, the decision whether the operation is supported or not depends on whether the latest OpenVINO opset contains such operation.
4. `QueryNetworkResult.supportedLayersMap` contains only operations which are fully supported by `_backend`.
@snippet template_plugin/src/template_plugin.cpp plugin:query_network

View File

@@ -26,7 +26,7 @@ Engine concepts: plugin creation, multiple executable networks support, multiple
@snippet single_layer_tests/convolution.cpp test_convolution:instantiate
3. **Sub-graph tests** (`subgraph_tests` sub-folder). This group of tests is designed to tests small patterns or combination of layers. E.g. when a particular topology is being enabled in a plugin e.g. TF ResNet-50, there is no need to add the whole topology to test tests. In opposite way, a particular repetitive subgraph or pattern can be extracted from `ResNet-50` and added to the tests. The instantiation of the sub-graph tests is done in the same way as for single layer tests.
> **Note**, such sub-graphs or patterns for sub-graph tests should be added to `IE::ngraphFunctions` library first (this library is a pre-defined set of small `ngraph::Function`) and re-used in sub-graph tests after.
> **Note**, such sub-graphs or patterns for sub-graph tests should be added to `IE::ngraphFunctions` library first (this library is a pre-defined set of small `ov::Model`) and re-used in sub-graph tests after.
4. **HETERO tests** (`subgraph_tests` sub-folder) contains tests for `HETERO` scenario (manual or automatic affinities settings, tests for `QueryNetwork`).
@@ -41,18 +41,14 @@ To use these tests for your own plugin development, link the `IE::funcSharedTest
To build test binaries together with other build artifacts, use the `make all` command. For details, see
[Build Plugin Using CMake*](@ref openvino_docs_ie_plugin_dg_plugin_build).
### Tests for plugin-specific ngraph transformations
Please, refer to [Transformation testing](@ref ngraph_transformation) guide.
### How to Extend Inference Engine Plugin Tests
Inference Engine Plugin tests are open for contribution.
Add common test case definitions applicable for all plugins to the `IE::funcSharedTests` target within the DLDT repository. Then, any other plugin supporting corresponding functionality can instantiate the new test.
All Inference Engine per-layer tests check test layers functionality. They are developed using nGraph functions
All Inference Engine per-layer tests check test layers functionality. They are developed using ov::Model.
as input graphs used by tests. In this case, to test a new layer with layer tests, extend
the `IE::ngraphFunctions` library, which is also included in the Inference Engine Developer package, with a new nGraph function
the `IE::ngraphFunctions` library, which is also included in the Inference Engine Developer package, with a new model.
including the corresponding operation.
> **NOTE**: When implementing a new subgraph test, add new single-layer tests for each operation of the subgraph if such test does not exist.

View File

@@ -9,7 +9,7 @@ For more details about low-precision model representation please refer to this [
During the model load each plugin can interpret quantization rules expressed in *FakeQuantize* operations:
- Independently based on the definition of *FakeQuantize* operation.
- Using a special library of low-precision transformations (LPT) which applies common rules for generic operations,
such as Convolution, Fully-Connected, Eltwise, etc., and translates "fake-quantized" models into the models with low-precision operations. For more information about low-precision flow please refer to the following [document](@ref openvino_docs_IE_DG_Int8Inference).
such as Convolution, Fully-Connected, Eltwise, etc., and translates "fake-quantized" models into models with low-precision operations.
Here we provide only a high-level overview of the interpretation rules of FakeQuantize.
At runtime each FakeQuantize can be split into two independent operations: **Quantize** and **Dequantize**.

View File

@@ -0,0 +1,18 @@
# Advanced Topics {#openvino_docs_ie_plugin_detailed_guides}
@sphinxdirective
.. toctree::
:maxdepth: 1
:hidden:
openvino_docs_ie_plugin_dg_quantized_networks
openvino_docs_OV_UG_lpt
@endsphinxdirective
The guides below provides extra information about specific features of OpenVINO needed for understanding during OpenVINO plugin development:
* [Quantized networks](@ref openvino_docs_ie_plugin_dg_quantized_networks)
* [Low precision transformations](@ref openvino_docs_OV_UG_lpt) guide
* [Writing OpenVINO™ transformations](@ref openvino_docs_transformations) guide

View File

@@ -0,0 +1,17 @@
# Plugin API Reference {#openvino_docs_ie_plugin_api_references}
@sphinxdirective
.. toctree::
:maxdepth: 1
:hidden:
../groupie_dev_api
../groupie_transformation_api
@endsphinxdirective
The guides below provides extra API references needed for OpenVINO plugin development:
* [OpenVINO Plugin API](@ref ie_dev_api)
* [OpenVINO Transformation API](@ref ie_transformation_api)

View File

@@ -5,74 +5,74 @@
<tab type="usergroup" url="index.html" title="Developer Guide for Inference Engine Plugin Library">
<tab type="user" url="@ref plugin" visibile="yes" title="Implement Plugin Functionality"/>
<tab type="user" url="@ref executable_network" visibile="yes" title="Implement Executable Network Functionality">
<tab type="usergroup" title="Low Precision Transformations" url="@ref openvino_docs_IE_DG_lpt">
<tab type="user" title="Attributes" url="@ref openvino_docs_IE_DG_lpt_attributes">
<tab type="user" title="AvgPoolPrecisionPreserved" url="@ref openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved"/>
<tab type="user" title="IntervalsAlignment" url="@ref openvino_docs_IE_DG_lpt_IntervalsAlignment"/>
<tab type="user" title="PerTensorQuantization" url="@ref openvino_docs_IE_DG_lpt_PerTensorQuantization"/>
<tab type="user" title="PrecisionPreserved" url="@ref openvino_docs_IE_DG_lpt_PrecisionPreserved"/>
<tab type="user" title="Precisions" url="@ref openvino_docs_IE_DG_lpt_Precisions"/>
<tab type="user" title="QuantizationAlignment" url="@ref openvino_docs_IE_DG_lpt_QuantizationAlignment"/>
<tab type="usergroup" title="Low Precision Transformations" url="@ref openvino_docs_OV_UG_lpt">
<tab type="user" title="Attributes" url="@ref openvino_docs_OV_UG_lpt_attributes">
<tab type="user" title="AvgPoolPrecisionPreserved" url="@ref openvino_docs_OV_UG_lpt_AvgPoolPrecisionPreserved"/>
<tab type="user" title="IntervalsAlignment" url="@ref openvino_docs_OV_UG_lpt_IntervalsAlignment"/>
<tab type="user" title="PrecisionPreserved" url="@ref openvino_docs_OV_UG_lpt_PrecisionPreserved"/>
<tab type="user" title="Precisions" url="@ref openvino_docs_OV_UG_lpt_Precisions"/>
<tab type="user" title="QuantizationAlignment" url="@ref openvino_docs_OV_UG_lpt_QuantizationAlignment"/>
<tab type="user" title="QuantizationGranularity" url="@ref openvino_docs_OV_UG_lpt_QuantizationGranularity"/>
</tab>
<tab type="user" title="Step 1. Prerequisites transformations" url="@ref openvino_docs_IE_DG_lpt_step1_prerequisites">
<tab type="user" title="LinOpSequenceFusion" url="@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion"/>
<tab type="user" title="PullReshapeThroughDequantization" url="@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization"/>
<tab type="user" title="PullTransposeThroughDequantization" url="@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization"/>
<tab type="user" title="Step 1. Prerequisites transformations" url="@ref openvino_docs_OV_UG_lpt_step1_prerequisites">
<tab type="user" title="LinOpSequenceFusion" url="@ref openvino_docs_OV_UG_lpt_LinOpSequenceFusion"/>
<tab type="user" title="PullReshapeThroughDequantization" url="@ref openvino_docs_OV_UG_lpt_PullReshapeThroughDequantization"/>
<tab type="user" title="PullTransposeThroughDequantization" url="@ref openvino_docs_OV_UG_lpt_PullTransposeThroughDequantization"/>
</tab>
<tab type="user" title="Step 2. Markup transformations" url="@ref openvino_docs_IE_DG_lpt_step2_markup">
<tab type="user" title="AlignQuantizationIntervals" url="@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals"/>
<tab type="user" title="AlignQuantizationParameters" url="@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters"/>
<tab type="user" title="CreateAttribute" url="@ref openvino_docs_IE_DG_lpt_CreateAttribute"/>
<tab type="user" title="CreatePrecisionsDependentAttribute" url="@ref openvino_docs_IE_DG_lpt_CreatePrecisionsDependentAttribute"/>
<tab type="user" title="MarkupAvgPoolPrecisionPreserved" url="@ref openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved"/>
<tab type="user" title="MarkupCanBeQuantized" url="@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized"/>
<tab type="user" title="MarkupPerTensorQuantization" url="@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization"/>
<tab type="user" title="MarkupPrecisions" url="@ref openvino_docs_IE_DG_lpt_MarkupPrecisions"/>
<tab type="user" title="PropagatePrecisions" url="@ref openvino_docs_IE_DG_lpt_PropagatePrecisions"/>
<tab type="user" title="PropagateThroughPrecisionPreserved" url="@ref openvino_docs_IE_DG_lpt_PropagateThroughPrecisionPreserved"/>
<tab type="user" title="PropagateToInput" url="@ref openvino_docs_IE_DG_lpt_PropagateToInput"/>
<tab type="user" title="UpdateSharedPrecisionPreserved" url="@ref openvino_docs_IE_DG_lpt_UpdateSharedPrecisionPreserved"/>
<tab type="user" title="Step 2. Markup transformations" url="@ref openvino_docs_OV_UG_lpt_step2_markup">
<tab type="user" title="AlignQuantizationIntervals" url="@ref openvino_docs_OV_UG_lpt_AlignQuantizationIntervals"/>
<tab type="user" title="AlignQuantizationParameters" url="@ref openvino_docs_OV_UG_lpt_AlignQuantizationParameters"/>
<tab type="user" title="CreateAttribute" url="@ref openvino_docs_OV_UG_lpt_CreateAttribute"/>
<tab type="user" title="CreatePrecisionsDependentAttribute" url="@ref openvino_docs_OV_UG_lpt_CreatePrecisionsDependentAttribute"/>
<tab type="user" title="MarkupAvgPoolPrecisionPreserved" url="@ref openvino_docs_OV_UG_lpt_MarkupAvgPoolPrecisionPreserved"/>
<tab type="user" title="MarkupCanBeQuantized" url="@ref openvino_docs_OV_UG_lpt_MarkupCanBeQuantized"/>
<tab type="user" title="MarkupPerTensorQuantization" url="@ref openvino_docs_OV_UG_lpt_MarkupPerTensorQuantization"/>
<tab type="user" title="MarkupPrecisions" url="@ref openvino_docs_OV_UG_lpt_MarkupPrecisions"/>
<tab type="user" title="PropagatePrecisions" url="@ref openvino_docs_OV_UG_lpt_PropagatePrecisions"/>
<tab type="user" title="PropagateThroughPrecisionPreserved" url="@ref openvino_docs_OV_UG_lpt_PropagateThroughPrecisionPreserved"/>
<tab type="user" title="PropagateToInput" url="@ref openvino_docs_OV_UG_lpt_PropagateToInput"/>
<tab type="user" title="UpdateSharedPrecisionPreserved" url="@ref openvino_docs_OV_UG_lpt_UpdateSharedPrecisionPreserved"/>
</tab>
<tab type="user" title="Step 3. Main transformations" url="@ref openvino_docs_IE_DG_lpt_step3_main">
<tab type="user" title="AddTransformation" url="@ref openvino_docs_IE_DG_lpt_AddTransformation"/>
<tab type="user" title="AvgPoolTransformation" url="@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation"/>
<tab type="user" title="ClampTransformation" url="@ref openvino_docs_IE_DG_lpt_ClampTransformation"/>
<tab type="user" title="ConcatTransformation" url="@ref openvino_docs_IE_DG_lpt_ConcatTransformation"/>
<tab type="user" title="ConvolutionTransformation" url="@ref openvino_docs_IE_DG_lpt_ConvolutionTransformation"/>
<tab type="user" title="ConvolutionBackpropDataTransformation" url="@ref openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation"/>
<tab type="user" title="DepthToSpaceTransformation" url="@ref openvino_docs_IE_DG_lpt_DepthToSpaceTransformation"/>
<tab type="user" title="FakeQuantizeDecompositionTransformation" url="@ref openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation"/>
<tab type="user" title="FakeQuantizeTransformation" url="@ref openvino_docs_IE_DG_lpt_FakeQuantizeTransformation"/>
<tab type="user" title="InterpolateTransformation" url="@ref openvino_docs_IE_DG_lpt_InterpolateTransformation"/>
<tab type="user" title="GroupConvolutionTransformation" url="@ref openvino_docs_IE_DG_lpt_GroupConvolutionTransformation"/>
<tab type="user" title="MatMulTransformation" url="@ref openvino_docs_IE_DG_lpt_MatMulTransformation"/>
<tab type="user" title="MaxPoolTransformation" url="@ref openvino_docs_IE_DG_lpt_MaxPoolTransformation"/>
<tab type="user" title="MultiplyTransformation" url="@ref openvino_docs_IE_DG_lpt_MultiplyTransformation"/>
<tab type="user" title="MVNTransformation" url="@ref openvino_docs_IE_DG_lpt_MVNTransformation"/>
<tab type="user" title="NormalizeL2Transformation" url="@ref openvino_docs_IE_DG_lpt_NormalizeL2Transformation"/>
<tab type="user" title="PadTransformation" url="@ref openvino_docs_IE_DG_lpt_PadTransformation"/>
<tab type="user" title="PReluTransformation" url="@ref openvino_docs_IE_DG_lpt_PReluTransformation"/>
<tab type="user" title="ReduceMaxTransformation" url="@ref openvino_docs_IE_DG_lpt_ReduceMaxTransformation"/>
<tab type="user" title="ReduceMeanTransformation" url="@ref openvino_docs_IE_DG_lpt_ReduceMeanTransformation"/>
<tab type="user" title="ReduceMinTransformation" url="@ref openvino_docs_IE_DG_lpt_ReduceMinTransformation"/>
<tab type="user" title="ReduceSumTransformation" url="@ref openvino_docs_IE_DG_lpt_ReduceSumTransformation"/>
<tab type="user" title="ReluTransformation" url="@ref openvino_docs_IE_DG_lpt_ReluTransformation"/>
<tab type="user" title="ReshapeTransformation" url="@ref openvino_docs_IE_DG_lpt_ReshapeTransformation"/>
<tab type="user" title="SqueezeTransformation" url="@ref openvino_docs_IE_DG_lpt_SqueezeTransformation"/>
<tab type="user" title="ShuffleChannelsTransformation" url="@ref openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation"/>
<tab type="user" title="SplitTransformation" url="@ref openvino_docs_IE_DG_lpt_SplitTransformation"/>
<tab type="user" title="StridedSliceTransformation" url="@ref openvino_docs_IE_DG_lpt_StridedSliceTransformation"/>
<tab type="user" title="TransposeTransformation" url="@ref openvino_docs_IE_DG_lpt_TransposeTransformation"/>
<tab type="user" title="UnsqueezeTransformation" url="@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation"/>
<tab type="user" title="VariadicSplitTransformation" url="@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation"/>
<tab type="user" title="Step 3. Main transformations" url="@ref openvino_docs_OV_UG_lpt_step3_main">
<tab type="user" title="AddTransformation" url="@ref openvino_docs_OV_UG_lpt_AddTransformation"/>
<tab type="user" title="AvgPoolTransformation" url="@ref openvino_docs_OV_UG_lpt_AvgPoolTransformation"/>
<tab type="user" title="ClampTransformation" url="@ref openvino_docs_OV_UG_lpt_ClampTransformation"/>
<tab type="user" title="ConcatTransformation" url="@ref openvino_docs_OV_UG_lpt_ConcatTransformation"/>
<tab type="user" title="ConvolutionTransformation" url="@ref openvino_docs_OV_UG_lpt_ConvolutionTransformation"/>
<tab type="user" title="ConvolutionBackpropDataTransformation" url="@ref openvino_docs_OV_UG_lpt_ConvolutionBackpropDataTransformation"/>
<tab type="user" title="DepthToSpaceTransformation" url="@ref openvino_docs_OV_UG_lpt_DepthToSpaceTransformation"/>
<tab type="user" title="FakeQuantizeDecompositionTransformation" url="@ref openvino_docs_OV_UG_lpt_FakeQuantizeDecompositionTransformation"/>
<tab type="user" title="FakeQuantizeTransformation" url="@ref openvino_docs_OV_UG_lpt_FakeQuantizeTransformation"/>
<tab type="user" title="InterpolateTransformation" url="@ref openvino_docs_OV_UG_lpt_InterpolateTransformation"/>
<tab type="user" title="GroupConvolutionTransformation" url="@ref openvino_docs_OV_UG_lpt_GroupConvolutionTransformation"/>
<tab type="user" title="MatMulTransformation" url="@ref openvino_docs_OV_UG_lpt_MatMulTransformation"/>
<tab type="user" title="MaxPoolTransformation" url="@ref openvino_docs_OV_UG_lpt_MaxPoolTransformation"/>
<tab type="user" title="MultiplyTransformation" url="@ref openvino_docs_OV_UG_lpt_MultiplyTransformation"/>
<tab type="user" title="MVNTransformation" url="@ref openvino_docs_OV_UG_lpt_MVNTransformation"/>
<tab type="user" title="NormalizeL2Transformation" url="@ref openvino_docs_OV_UG_lpt_NormalizeL2Transformation"/>
<tab type="user" title="PadTransformation" url="@ref openvino_docs_OV_UG_lpt_PadTransformation"/>
<tab type="user" title="PReluTransformation" url="@ref openvino_docs_OV_UG_lpt_PReluTransformation"/>
<tab type="user" title="ReduceMaxTransformation" url="@ref openvino_docs_OV_UG_lpt_ReduceMaxTransformation"/>
<tab type="user" title="ReduceMeanTransformation" url="@ref openvino_docs_OV_UG_lpt_ReduceMeanTransformation"/>
<tab type="user" title="ReduceMinTransformation" url="@ref openvino_docs_OV_UG_lpt_ReduceMinTransformation"/>
<tab type="user" title="ReduceSumTransformation" url="@ref openvino_docs_OV_UG_lpt_ReduceSumTransformation"/>
<tab type="user" title="ReluTransformation" url="@ref openvino_docs_OV_UG_lpt_ReluTransformation"/>
<tab type="user" title="ReshapeTransformation" url="@ref openvino_docs_OV_UG_lpt_ReshapeTransformation"/>
<tab type="user" title="SqueezeTransformation" url="@ref openvino_docs_OV_UG_lpt_SqueezeTransformation"/>
<tab type="user" title="ShuffleChannelsTransformation" url="@ref openvino_docs_OV_UG_lpt_ShuffleChannelsTransformation"/>
<tab type="user" title="SplitTransformation" url="@ref openvino_docs_OV_UG_lpt_SplitTransformation"/>
<tab type="user" title="StridedSliceTransformation" url="@ref openvino_docs_OV_UG_lpt_StridedSliceTransformation"/>
<tab type="user" title="TransposeTransformation" url="@ref openvino_docs_OV_UG_lpt_TransposeTransformation"/>
<tab type="user" title="UnsqueezeTransformation" url="@ref openvino_docs_OV_UG_lpt_UnsqueezeTransformation"/>
<tab type="user" title="VariadicSplitTransformation" url="@ref openvino_docs_OV_UG_lpt_VariadicSplitTransformation"/>
</tab>
<tab type="user" title="Step 4. Cleanup transformations" url="@ref openvino_docs_IE_DG_lpt_step4_cleanup">
<tab type="user" title="FoldConvertTransformation" url="@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation"/>
<tab type="user" title="FoldFakeQuantizeTransformation" url="@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation"/>
<tab type="user" title="FuseConvertTransformation" url="@ref openvino_docs_IE_DG_lpt_FuseConvertTransformation"/>
<tab type="user" title="FuseMultiplyToFakeQuantizeTransformation" url="@ref openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation"/>
<tab type="user" title="FuseSubtractToFakeQuantizeTransformation" url="@ref openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation"/>
<tab type="user" title="MultiplyToGroupConvolutionTransformation" url="@ref openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation"/>
<tab type="user" title="Step 4. Cleanup transformations" url="@ref openvino_docs_OV_UG_lpt_step4_cleanup">
<tab type="user" title="FoldConvertTransformation" url="@ref openvino_docs_OV_UG_lpt_FoldConvertTransformation"/>
<tab type="user" title="FoldFakeQuantizeTransformation" url="@ref openvino_docs_OV_UG_lpt_FoldFakeQuantizeTransformation"/>
<tab type="user" title="FuseConvertTransformation" url="@ref openvino_docs_OV_UG_lpt_FuseConvertTransformation"/>
<tab type="user" title="FuseMultiplyToFakeQuantizeTransformation" url="@ref openvino_docs_OV_UG_lpt_FuseMultiplyToFakeQuantizeTransformation"/>
<tab type="user" title="FuseSubtractToFakeQuantizeTransformation" url="@ref openvino_docs_OV_UG_lpt_FuseSubtractToFakeQuantizeTransformation"/>
<tab type="user" title="MultiplyToGroupConvolutionTransformation" url="@ref openvino_docs_OV_UG_lpt_MultiplyToGroupConvolutionTransformation"/>
</tab>
</tab>
</tab>

View File

@@ -1,17 +0,0 @@
# Plugin Transformation Pipeline {#openvino_docs_IE_DG_plugin_transformation_pipeline}
@sphinxdirective
.. toctree::
:maxdepth: 1
:caption: Executable Network
:hidden:
Low Precision Transformations <openvino_docs_IE_DG_lpt>
@endsphinxdirective
Typical plugin transformation pipeline includes steps:
1. Common transformations
2. [Low precision transformations](@ref openvino_docs_IE_DG_lpt)
3. Plugin specific transformations

View File

@@ -1,4 +1,4 @@
# AvgPoolPrecisionPreserved attribute {#openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved}
# AvgPoolPrecisionPreserved attribute {#openvino_docs_OV_UG_lpt_AvgPoolPrecisionPreserved}
ngraph::AvgPoolPrecisionPreservedAttribute class represents the `AvgPoolPrecisionPreserved` attribute.

View File

@@ -1,4 +1,4 @@
# IntervalsAlignment attribute {#openvino_docs_IE_DG_lpt_IntervalsAlignment}
# IntervalsAlignment attribute {#openvino_docs_OV_UG_lpt_IntervalsAlignment}
ngraph::IntervalsAlignmentAttribute class represents the `IntervalsAlignment` attribute.

View File

@@ -1,11 +0,0 @@
# PerTensorQuantization attribute {#openvino_docs_IE_DG_lpt_PerTensorQuantization}
ngraph::PerTensorQuantizationAttribute class represents the `PerTensorQuantization` attribute.
The attribute defines if the operation input port requires per-tensor quantization.
| Property name | Values |
|---------------|----------------------------------------------|
| Required | Yes |
| Defined | Operation, input ports |
| Properties | |

View File

@@ -1,4 +1,4 @@
# PrecisionPreserved attribute {#openvino_docs_IE_DG_lpt_PrecisionPreserved}
# PrecisionPreserved attribute {#openvino_docs_OV_UG_lpt_PrecisionPreserved}
ngraph::PrecisionPreservedAttribute class represents the `PrecisionPreserved` attribute.

View File

@@ -1,4 +1,4 @@
# Precisions attribute {#openvino_docs_IE_DG_lpt_Precisions}
# Precisions attribute {#openvino_docs_OV_UG_lpt_Precisions}
ngraph::PrecisionsAttribute class represents the `Precisions` attribute.

View File

@@ -1,4 +1,4 @@
# QuantizationAlignment attribute {#openvino_docs_IE_DG_lpt_QuantizationAlignment}
# QuantizationAlignment attribute {#openvino_docs_OV_UG_lpt_QuantizationAlignment}
ngraph::QuantizationAlignmentAttribute class represents the `QuantizationAlignment` attribute.

View File

@@ -0,0 +1,11 @@
# QuantizationGranularity attribute {#openvino_docs_OV_UG_lpt_QuantizationGranularity}
ngraph::QuantizationAttribute class represents the `QuantizationGranularity` attribute.
The attribute defines quantization granularity of operation inputs.
| Property name | Values |
|---------------|----------------------------------------------|
| Required | No |
| Defined | Input ports |
| Properties | Quantization granularity |

View File

@@ -1,4 +1,4 @@
# OpenVINO™ Low Precision Transformations {#openvino_docs_IE_DG_lpt}
# OpenVINO™ Low Precision Transformations {#openvino_docs_OV_UG_lpt}
@sphinxdirective
@@ -7,13 +7,13 @@
:caption: Low Precision Transformations
:hidden:
Low Precision Transformations <openvino_docs_IE_DG_lpt>
Low Precision Transformations <openvino_docs_OV_UG_lpt>
Attributes <openvino_docs_IE_DG_lpt_attributes>
Step 1. Prerequisites transformations <openvino_docs_IE_DG_lpt_step1_prerequisites>
Step 2. Markup transformations <openvino_docs_IE_DG_lpt_step2_markup>
Step 3. Main transformations <openvino_docs_IE_DG_lpt_step3_main>
Step 4. Cleanup transformations <openvino_docs_IE_DG_lpt_step4_cleanup>
Attributes <openvino_docs_OV_UG_lpt_attributes>
Step 1. Prerequisites transformations <openvino_docs_OV_UG_lpt_step1_prerequisites>
Step 2. Markup transformations <openvino_docs_OV_UG_lpt_step2_markup>
Step 3. Main transformations <openvino_docs_OV_UG_lpt_step3_main>
Step 4. Cleanup transformations <openvino_docs_OV_UG_lpt_step4_cleanup>
@endsphinxdirective
@@ -72,11 +72,7 @@ For example, if you would like to infer a model with `Convolution` operation in
> There are several supported quantization approaches on activations and on weights. All supported approaches are described in [Quantization approaches](#quantization-approaches) section below. In demonstrated model [FakeQuantize operation quantization](#fakequantize-operation) approach is used.
### Low precision tools
There are two tools to quantize a model:
1. [Post-Training Optimization Toolkit](@ref pot_docs_LowPrecisionOptimizationGuide) (POT)
2. [Neural Network Compression Framework](https://github.com/openvinotoolkit/nncf) (NNCF)
Additionally, low precision transformations can handle ONNX quantized models.
For more details on how to get a quantized model, refer to [Model Optimization](@ref openvino_docs_model_optimization_guide) document.
## Quantization approaches
LPT transformations support two quantization approaches:
@@ -115,63 +111,63 @@ Inside each step LPT transformations handle input model operation by operation,
As result, usually all operations are inferred by plugin in low precision. If plugin doesn't support an operation inference in low precision, then corresponding LPT transformation can be disabled, and input tensor precisions for the operation will not be changed. In this case the operation is inferred in the original precision.
Low precision transformations pipeline includes four steps:
* [Step #1: Prerequisites](@ref openvino_docs_IE_DG_lpt_step1_prerequisites)
* [Step #2: Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup)
* [Step #3: Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main)
* [Step #4: Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup)
* [Step #1: Prerequisites](@ref openvino_docs_OV_UG_lpt_step1_prerequisites)
* [Step #2: Markup transformations](@ref openvino_docs_OV_UG_lpt_step2_markup)
* [Step #3: Main transformations](@ref openvino_docs_OV_UG_lpt_step3_main)
* [Step #4: Cleanup transformations](@ref openvino_docs_OV_UG_lpt_step4_cleanup)
### Step 1. Prerequisites
This step fuses and propagates some operations in the model to prepare for the next step. It is required for OpenVINO plugins. Transformations:
* [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization)
* [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization)
* [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion)
* [PullReshapeThroughDequantization](@ref openvino_docs_OV_UG_lpt_PullReshapeThroughDequantization)
* [PullTransposeThroughDequantization](@ref openvino_docs_OV_UG_lpt_PullTransposeThroughDequantization)
* [LinOpSequenceFusion](@ref openvino_docs_OV_UG_lpt_LinOpSequenceFusion)
The model on this step is changed. There are more details in developer guide [Prerequisites transformations](@ref openvino_docs_IE_DG_lpt_step1_prerequisites).
The model on this step is changed. There are more details in developer guide [Prerequisites transformations](@ref openvino_docs_OV_UG_lpt_step1_prerequisites).
### Step 2. Markup
This step creates runtime attributes for operations. These attributes will be used in next step. Transformations:
* [MarkupCanBeQuantized](@ref openvino_docs_IE_DG_lpt_MarkupCanBeQuantized)
* [MarkupPrecisions](@ref openvino_docs_IE_DG_lpt_MarkupPrecisions)
* [MarkupPerTensorQuantization](@ref openvino_docs_IE_DG_lpt_MarkupPerTensorQuantization)
* [MarkupAvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_MarkupAvgPoolPrecisionPreserved)
* [PropagatePrecisions](@ref openvino_docs_IE_DG_lpt_PropagatePrecisions)
* [AlignQuantizationIntervals](@ref openvino_docs_IE_DG_lpt_AlignQuantizationIntervals)
* [AlignQuantizationParameters](@ref openvino_docs_IE_DG_lpt_AlignQuantizationParameters)
* [MarkupCanBeQuantized](@ref openvino_docs_OV_UG_lpt_MarkupCanBeQuantized)
* [MarkupPrecisions](@ref openvino_docs_OV_UG_lpt_MarkupPrecisions)
* [MarkupPerTensorQuantization](@ref openvino_docs_OV_UG_lpt_MarkupPerTensorQuantization)
* [MarkupAvgPoolPrecisionPreserved](@ref openvino_docs_OV_UG_lpt_MarkupAvgPoolPrecisionPreserved)
* [PropagatePrecisions](@ref openvino_docs_OV_UG_lpt_PropagatePrecisions)
* [AlignQuantizationIntervals](@ref openvino_docs_OV_UG_lpt_AlignQuantizationIntervals)
* [AlignQuantizationParameters](@ref openvino_docs_OV_UG_lpt_AlignQuantizationParameters)
The model on this step is changed: only new attributes are added to some operations. There are more details in developer guide [Markup transformations](@ref openvino_docs_IE_DG_lpt_step2_markup).
The model on this step is changed: only new attributes are added to some operations. There are more details in developer guide [Markup transformations](@ref openvino_docs_OV_UG_lpt_step2_markup).
### Step 3. Main transformations, FakeQuantize decomposition and dequantization operations handling
This step has the most transformations. These transformations can be separated in two groups: decomposition transformation and dequantization operations handling. There are more details in developer guide [Main transformations](@ref openvino_docs_IE_DG_lpt_step3_main). Transformations:
* [AddTransformation](@ref openvino_docs_IE_DG_lpt_AddTransformation)
* [AvgPoolTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation)
* [ClampTransformation](@ref openvino_docs_IE_DG_lpt_AvgPoolTransformation)
* [ConcatTransformation](@ref openvino_docs_IE_DG_lpt_ConcatTransformation)
* [ConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionTransformation)
* [ConvolutionBackpropDataTransformation](@ref openvino_docs_IE_DG_lpt_ConvolutionBackpropDataTransformation)
* [DepthToSpaceTransformation](@ref openvino_docs_IE_DG_lpt_DepthToSpaceTransformation)
* [FakeQuantizeDecompositionTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeDecompositionTransformation)
* [FakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FakeQuantizeTransformation)
* [InterpolateTransformation](@ref openvino_docs_IE_DG_lpt_InterpolateTransformation)
* [GroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_GroupConvolutionTransformation)
* [MatMulTransformation](@ref openvino_docs_IE_DG_lpt_MatMulTransformation)
* [MaxPoolTransformation](@ref openvino_docs_IE_DG_lpt_MaxPoolTransformation)
* [MultiplyTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyTransformation)
* [MVNTransformation](@ref openvino_docs_IE_DG_lpt_MVNTransformation)
* [NormalizeL2Transformation](@ref openvino_docs_IE_DG_lpt_NormalizeL2Transformation)
* [PReluTransformation](@ref openvino_docs_IE_DG_lpt_PReluTransformation)
* [ReduceMaxTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMaxTransformation)
* [ReduceMeanTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMeanTransformation)
* [ReduceMinTransformation](@ref openvino_docs_IE_DG_lpt_ReduceMinTransformation)
* [ReduceSumTransformation](@ref openvino_docs_IE_DG_lpt_ReduceSumTransformation)
* [ReluTransformation](@ref openvino_docs_IE_DG_lpt_ReluTransformation)
* [ReshapeTransformation](@ref openvino_docs_IE_DG_lpt_ReshapeTransformation)
* [SqueezeTransformation](@ref openvino_docs_IE_DG_lpt_SqueezeTransformation)
* [ShuffleChannelsTransformation](@ref openvino_docs_IE_DG_lpt_ShuffleChannelsTransformation)
* [SplitTransformation](@ref openvino_docs_IE_DG_lpt_SplitTransformation)
* [StridedSliceTransformation](@ref openvino_docs_IE_DG_lpt_StridedSliceTransformation)
* [TransposeTransformation](@ref openvino_docs_IE_DG_lpt_TransposeTransformation)
* [UnsqueezeTransformation](@ref openvino_docs_IE_DG_lpt_UnsqueezeTransformation)
* [VariadicSplitTransformation](@ref openvino_docs_IE_DG_lpt_VariadicSplitTransformation)
This step has the most transformations. These transformations can be separated in two groups: decomposition transformation and dequantization operations handling. There are more details in developer guide [Main transformations](@ref openvino_docs_OV_UG_lpt_step3_main). Transformations:
* [AddTransformation](@ref openvino_docs_OV_UG_lpt_AddTransformation)
* [AvgPoolTransformation](@ref openvino_docs_OV_UG_lpt_AvgPoolTransformation)
* [ClampTransformation](@ref openvino_docs_OV_UG_lpt_AvgPoolTransformation)
* [ConcatTransformation](@ref openvino_docs_OV_UG_lpt_ConcatTransformation)
* [ConvolutionTransformation](@ref openvino_docs_OV_UG_lpt_ConvolutionTransformation)
* [ConvolutionBackpropDataTransformation](@ref openvino_docs_OV_UG_lpt_ConvolutionBackpropDataTransformation)
* [DepthToSpaceTransformation](@ref openvino_docs_OV_UG_lpt_DepthToSpaceTransformation)
* [FakeQuantizeDecompositionTransformation](@ref openvino_docs_OV_UG_lpt_FakeQuantizeDecompositionTransformation)
* [FakeQuantizeTransformation](@ref openvino_docs_OV_UG_lpt_FakeQuantizeTransformation)
* [InterpolateTransformation](@ref openvino_docs_OV_UG_lpt_InterpolateTransformation)
* [GroupConvolutionTransformation](@ref openvino_docs_OV_UG_lpt_GroupConvolutionTransformation)
* [MatMulTransformation](@ref openvino_docs_OV_UG_lpt_MatMulTransformation)
* [MaxPoolTransformation](@ref openvino_docs_OV_UG_lpt_MaxPoolTransformation)
* [MultiplyTransformation](@ref openvino_docs_OV_UG_lpt_MultiplyTransformation)
* [MVNTransformation](@ref openvino_docs_OV_UG_lpt_MVNTransformation)
* [NormalizeL2Transformation](@ref openvino_docs_OV_UG_lpt_NormalizeL2Transformation)
* [PReluTransformation](@ref openvino_docs_OV_UG_lpt_PReluTransformation)
* [ReduceMaxTransformation](@ref openvino_docs_OV_UG_lpt_ReduceMaxTransformation)
* [ReduceMeanTransformation](@ref openvino_docs_OV_UG_lpt_ReduceMeanTransformation)
* [ReduceMinTransformation](@ref openvino_docs_OV_UG_lpt_ReduceMinTransformation)
* [ReduceSumTransformation](@ref openvino_docs_OV_UG_lpt_ReduceSumTransformation)
* [ReluTransformation](@ref openvino_docs_OV_UG_lpt_ReluTransformation)
* [ReshapeTransformation](@ref openvino_docs_OV_UG_lpt_ReshapeTransformation)
* [SqueezeTransformation](@ref openvino_docs_OV_UG_lpt_SqueezeTransformation)
* [ShuffleChannelsTransformation](@ref openvino_docs_OV_UG_lpt_ShuffleChannelsTransformation)
* [SplitTransformation](@ref openvino_docs_OV_UG_lpt_SplitTransformation)
* [StridedSliceTransformation](@ref openvino_docs_OV_UG_lpt_StridedSliceTransformation)
* [TransposeTransformation](@ref openvino_docs_OV_UG_lpt_TransposeTransformation)
* [UnsqueezeTransformation](@ref openvino_docs_OV_UG_lpt_UnsqueezeTransformation)
* [VariadicSplitTransformation](@ref openvino_docs_OV_UG_lpt_VariadicSplitTransformation)
#### Decomposition transformations
Decomposition transformations decompose the `FakeQuantize` operation to: quantize (`FakeQuantize` with low precision output) and dequantization operations (opposite to quantize, with low precision input and the original precision output). For dequantization operations LPT uses three operations: `Convert`, `Subtract` and `Multiply`. Element-wise operations `Subtract` and `Multiply` have constants on the second branches. If dequantization operations are not handled at the end of LPT pipeline, then they will be fused back to the `FakeQuantize`.
@@ -197,14 +193,14 @@ Original `Convolution` operation in FP32 with dequantization operations before:
### Step 4: Cleanup of the result model
LPT cleanup transformations is final stage in LPT pipeline. In this step LPT transformations clean up the result model to avoid not handled dequantization operations: fuse dequantization operations if possible (fuse at least `Convert` operations if not) to other model operations to cleanup result model. Transformations:
* [FoldConvertTransformation](@ref openvino_docs_IE_DG_lpt_FoldConvertTransformation)
* [FoldFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FoldFakeQuantizeTransformation)
* [FuseConvertTransformation](@ref openvino_docs_IE_DG_lpt_FuseConvertTransformation)
* [FuseMultiplyToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseMultiplyToFakeQuantizeTransformation)
* [FuseSubtractToFakeQuantizeTransformation](@ref openvino_docs_IE_DG_lpt_FuseSubtractToFakeQuantizeTransformation)
* [MultiplyToGroupConvolutionTransformation](@ref openvino_docs_IE_DG_lpt_MultiplyToGroupConvolutionTransformation)
* [FoldConvertTransformation](@ref openvino_docs_OV_UG_lpt_FoldConvertTransformation)
* [FoldFakeQuantizeTransformation](@ref openvino_docs_OV_UG_lpt_FoldFakeQuantizeTransformation)
* [FuseConvertTransformation](@ref openvino_docs_OV_UG_lpt_FuseConvertTransformation)
* [FuseMultiplyToFakeQuantizeTransformation](@ref openvino_docs_OV_UG_lpt_FuseMultiplyToFakeQuantizeTransformation)
* [FuseSubtractToFakeQuantizeTransformation](@ref openvino_docs_OV_UG_lpt_FuseSubtractToFakeQuantizeTransformation)
* [MultiplyToGroupConvolutionTransformation](@ref openvino_docs_OV_UG_lpt_MultiplyToGroupConvolutionTransformation)
There are more details in developer guide [Cleanup transformations](@ref openvino_docs_IE_DG_lpt_step4_cleanup).
There are more details in developer guide [Cleanup transformations](@ref openvino_docs_OV_UG_lpt_step4_cleanup).
`FakeQuantize` operation with not handled dequantization operations:
![TODO: FakeQuantize operation with dequantization operations before LPT](quantization/img/fq.transformed.png)
@@ -220,27 +216,27 @@ Typical transformation pipeline described below.
### Step 1. Common optimizations
This step is optional for LPT but typically is presented in OpenVINO™ plugins. The step doesn't use any LPT transformation. Firstly, the step disables dequantization operations constant folding on constant subgraph on weights to prevent the lost of dequantization info on the next plugin transformations. After that, it optimizes nGraph function and convert operations to operation set 1. Typically, usage of this step is the simplest way to meet LPT requirements for the input quantized model. If plugin can guarantee that LPT input requirements are met, then this step can be skipped.
@snippet snippets/lpt_mkldnn_plugin.cpp lpt_common
@snippet snippets/lpt_intel_cpu_plugin.cpp lpt_common
### Step 2. Low precision transformations execution
This step is mandatory. It configures and runs LPT transformations.
@snippet snippets/lpt_mkldnn_plugin.cpp lpt_execution
@snippet snippets/lpt_intel_cpu_plugin.cpp lpt_execution
### Step 3. Plugin-specific transformations
This step is optional. It modifies the nGraph function to a device-specific operation set.
@snippet snippets/lpt_mkldnn_plugin.cpp lpt_device
@snippet snippets/lpt_intel_cpu_plugin.cpp lpt_device
## Result model overview
Let's explore quantized [TensorFlow* implementation of ResNet-50](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-tf) model. Use [Model Downloader](@ref omz_tools_downloader) tool to download the `fp16` model from [OpenVINO™ Toolkit - Open Model Zoo repository](https://github.com/openvinotoolkit/open_model_zoo):
```sh
./downloader.py --name resnet-50-tf --precisions FP16-INT8
omz_downloader --name resnet-50-tf --precisions FP16-INT8
```
After that you should quantize model by the [Model Quantizer](@ref omz_tools_downloader) tool.
```sh
./quantizer.py --model_dir public/resnet-50-tf --dataset_dir <DATASET_DIR> --precisions=FP16-INT8
omz_quantizer --model_dir public/resnet-50-tf --dataset_dir <DATASET_DIR> --precisions=FP16-INT8
```
### Inference
@@ -259,7 +255,7 @@ Result model depends on different factors:
Information about layer precision is stored in the performance counters that are
available from the Inference Engine API. For example, the part of performance counters table for quantized [TensorFlow* implementation of ResNet-50](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-tf) model inference on CPU Plugin looks as follows:
available from the OpenVINO Runtime API. For example, the part of performance counters table for quantized [TensorFlow* implementation of ResNet-50](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-tf) model inference on CPU Plugin looks as follows:
| layerName | execStatus | layerType | execType | realTime (ms) | cpuTime (ms) |
@@ -298,14 +294,14 @@ Low Precision Transformations can be customizable. Build-in customization option
### Operation precision restrictions
This option defines precisions which allowed for the operation input ports. The option value is passed as input argument for `LowPrecision` constructor. For example:
@snippet snippets/lpt_mkldnn_plugin.cpp lpt_supported_precisions
@snippet snippets/lpt_intel_cpu_plugin.cpp lpt_supported_precisions
In provided example in result model `Convolution` operation inputs must have specific precisions: `u8` (unsigned int8) precision on input 0 (on activations) and `i8` (signed int8) precision on input 1 (on weights).
### Operation per tensor quantization restrictions
This option defines if operation supports per-tensor quantization only. The option value is passed as input argument for `LowPrecision` constructor. For example:
@snippet snippets/lpt_mkldnn_plugin.cpp per_tensor_quantization
@snippet snippets/lpt_intel_cpu_plugin.cpp per_tensor_quantization
In provided example in result model `Convolution` operations must have per-tensor quantization on input 0 (on activations).
@@ -316,4 +312,4 @@ This option defines if each LPT transformation updates precision or not. The opt
Plugin specific customization can be implemented via nGraph transformation callbacks. For example: asymmetric quantization support can be easily customizable via `LayerTransformation::isAsymmetricQuantization` and `WeightableLayerTransformation::isAsymmetricOnWeights` methods usage in callbacks. For example:
@snippet snippets/lpt_mkldnn_plugin.cpp asymmetric_quantization
@snippet snippets/lpt_intel_cpu_plugin.cpp asymmetric_quantization

View File

@@ -1,4 +1,4 @@
# Attributes {#openvino_docs_IE_DG_lpt_attributes}
# Attributes {#openvino_docs_OV_UG_lpt_attributes}
@sphinxdirective
@@ -7,30 +7,31 @@
:caption: Attributes
:hidden:
AvgPoolPrecisionPreserved <openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved>
IntervalsAlignment <openvino_docs_IE_DG_lpt_IntervalsAlignment>
PerTensorQuantization <openvino_docs_IE_DG_lpt_PerTensorQuantization>
PrecisionPreserved <openvino_docs_IE_DG_lpt_PrecisionPreserved>
Precisions <openvino_docs_IE_DG_lpt_Precisions>
QuantizationAlignment <openvino_docs_IE_DG_lpt_QuantizationAlignment>
AvgPoolPrecisionPreserved <openvino_docs_OV_UG_lpt_AvgPoolPrecisionPreserved>
IntervalsAlignment <openvino_docs_OV_UG_lpt_IntervalsAlignment>
PrecisionPreserved <openvino_docs_OV_UG_lpt_PrecisionPreserved>
Precisions <openvino_docs_OV_UG_lpt_Precisions>
QuantizationAlignment <openvino_docs_OV_UG_lpt_QuantizationAlignment>
QuantizationGranularity <openvino_docs_OV_UG_lpt_QuantizationGranularity>
@endsphinxdirective
## Introduction
| Name | Target | Required | Mutable |
|-------------------------------------------------------------------------------------|------------------------|----------|---------|
| [AvgPoolPrecisionPreserved](@ref openvino_docs_IE_DG_lpt_AvgPoolPrecisionPreserved) | Precision | No | Yes |
| [IntervalsAlignment](@ref openvino_docs_IE_DG_lpt_IntervalsAlignment) | Quantization interval | Yes | Yes |
| [PerTensorQuantization](@ref openvino_docs_IE_DG_lpt_PerTensorQuantization) | Precision | Yes | No |
| [PrecisionPreserved](@ref openvino_docs_IE_DG_lpt_PrecisionPreserved) | Precision | Yes | Yes |
| [Precisions](@ref openvino_docs_IE_DG_lpt_Precisions) | Precision | Yes | Yes |
| [QuantizationAlignment](@ref openvino_docs_IE_DG_lpt_QuantizationAlignment) | Quantization alignment | Yes | Yes |
| Name | Target | Required | Mutable |
|-------------------------------------------------------------------------------------|--------------------------|----------|---------|
| [AvgPoolPrecisionPreserved](@ref openvino_docs_OV_UG_lpt_AvgPoolPrecisionPreserved) | Precision | No | Yes |
| [IntervalsAlignment](@ref openvino_docs_OV_UG_lpt_IntervalsAlignment) | Quantization interval | Yes | Yes |
| [PrecisionPreserved](@ref openvino_docs_OV_UG_lpt_PrecisionPreserved) | Precision | Yes | Yes |
| [Precisions](@ref openvino_docs_OV_UG_lpt_Precisions) | Precision | Yes | Yes |
| [QuantizationAlignment](@ref openvino_docs_OV_UG_lpt_QuantizationAlignment) | Quantization granularity | Yes | Yes |
| [QuantizationGranularity](@ref openvino_docs_OV_UG_lpt_QuantizationGranularity) | Quantization granularity | Yes | No |
> `Target` attribute group defines attribute usage during model transformation for the best performance:
> - `Precision` - the attribute defines the most optimal output port precision.
> - `Quantization interval` - the attribute defines quantization interval.
> - `Quantization alignment` - the attribute defines quantization alignment: per-channel or per-tensor quantization.
> - `Quantization alignment` - the attribute defines quantization granularity in runtime: per-channel or per-tensor quantization.
> - `Quantization granularity` - the attribute is set by plugin to define quantization granularity: per-channel or per-tensor quantization.
>
> `Required` attribute group defines if attribute usage is required to get an optimal model during transformation:
> - `Yes` - the attribute is used by all OpenVINO plugins for low-precision optimization.

View File

@@ -1,6 +1,6 @@
# Step 1. Prerequisites Transformations {#openvino_docs_IE_DG_lpt_step1_prerequisites}
# Step 1. Prerequisites Transformations {#openvino_docs_OV_UG_lpt_step1_prerequisites}
Prerequisites transformations are optional. The transformations prepare a model before running other low precision transformations. The transformations do not operate with dequantization operations or update precisions. Prerequisites transformations include:
* [PullReshapeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullReshapeThroughDequantization)
* [PullTransposeThroughDequantization](@ref openvino_docs_IE_DG_lpt_PullTransposeThroughDequantization)
* [LinOpSequenceFusion](@ref openvino_docs_IE_DG_lpt_LinOpSequenceFusion)
* [PullReshapeThroughDequantization](@ref openvino_docs_OV_UG_lpt_PullReshapeThroughDequantization)
* [PullTransposeThroughDequantization](@ref openvino_docs_OV_UG_lpt_PullTransposeThroughDequantization)
* [LinOpSequenceFusion](@ref openvino_docs_OV_UG_lpt_LinOpSequenceFusion)

Some files were not shown because too many files have changed in this diff Show More