Files
openvino/docs/IE_DG/Known_Issues_Limitations.md
Nikolay Tyukaev ef45b5da8d Doc Migration (master) (#1377)
* Doc Migration from Gitlab (#1289)

* doc migration

* fix

* Update FakeQuantize_1.md

* Update performance_benchmarks.md

* Updates graphs for FPGA

* Update performance_benchmarks.md

* Change DL Workbench structure (#1)

* Changed DL Workbench structure

* Fixed tags

* fixes

* Update ie_docs.xml

* Update performance_benchmarks_faq.md

* Fixes in DL Workbench layout

* Fixes for CVS-31290

* [DL Workbench] Minor correction

* Fix for CVS-30955

* Added nGraph deprecation notice as requested by Zoe

* fix broken links in api doxy layouts

* CVS-31131 fixes

* Additional fixes

* Fixed POT TOC

* Update PAC_Configure.md

PAC DCP 1.2.1 install guide.

* Update inference_engine_intro.md

* fix broken link

* Update opset.md

* fix

* added opset4 to layout

* added new opsets to layout, set labels for them

* Update VisionAcceleratorFPGA_Configure.md

Updated from 2020.3 to 2020.4

Co-authored-by: domi2000 <domi2000@users.noreply.github.com>
2020-07-20 17:36:08 +03:00

3.3 KiB

Known Issues and Limitations

Multiple OpenMP Loadings

If the application uses the Inference Engine with third-party components that depend on Intel OpenMP, multiple loadings of the libiomp library may occur and cause OpenMP runtime initialization conflicts. This may happen, for example, if the application uses Intel® Math Kernel Library (Intel® MKL) through the “Single Dynamic Library” (libmkl_rt.so) mechanism and calls Intel MKL after loading the Inference Engine plugin. The error log looks as follows:

OMP: Error #15: Initializing libiomp5.so, but found libiomp5.so already initialized.
OMP: Hint: This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

Possible workarounds:

  • Preload the OpenMP runtime using the LD_PRELOAD variable:
LD_PRELOAD=<path_to_libiomp5.so> <path_to your_executable>

This eliminates multiple loadings of libiomp, and makes all the components use this specific version of OpenMP.

  • Alternatively, you can set KMP_DUPLICATE_LIB_OK=TRUE. However, performance degradation or results incorrectness may occur in this case.

Old proto compiler breaks protobuf library

With python protobuf library version 3.5.1 the following incompatibility can happen. The known case is for Cent OS 7.4

The error log looks as follows:

File "../lib64/python3.5/site-packages/google/protobuf/descriptor.py", line 829, in _new_
return _message.default_pool.AddSerializedFile(serialized_pb)
TypeError: expected bytes, str found

Possible workaround is to upgrade default protobuf compiler (libprotoc 2.5.0) to newer version, for example libprotoc 2.6.1.

Dynamic batching

Refer to the Limitations section of Dynamic batching page

Static Shape Infer

Refer to the Limitations section of Static Shape Infer page

Image Pre-Processing Performance Optimization Issue

As described in documentation for new API, you can set an image blob of any size to an infer request using resizable input. Resize is executed during inference using configured resize algorithm.

But currently resize algorithms are not completely optimized. So expect performance degradation if resizable input is specified and an input blob (to be resized) is set (SetBlob() is used). Required performance is met for CPU plugin only (because enabled openMP* provides parallelism).

Another limitation is that currently, resize algorithms support NCHW layout only. So if you set NHWC layout for an input blob, NHWC is converted to NCHW before resize and back to NHWC after resize.