Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.

MKLDNN and clDNN plugins are not loading

RudyC
Beginner
1,390 Views

Greetings everyone,

I am developing a bit of code to enable an integration of OpenVINO with an existing shipping application using that application's extension mechanism in Windows 10 using OpenVINO R3 (3.343)

I am able to compile and link the above-mentioned extension with OpenVINO and thus far able to "twiddle" OpenVINO from within the app. However, when I attempt to load either MKLDNN or clDNN in the dispatcher I get exceptions to the effect that neither device plugin can be loaded. I followed the recipe in the samples for getting the dispatcher to load and have chosen an explicit path load from ... only to see that it fails.

The following is the bit of code I am using.

void FP_OpenVINO::start() {
	std::string deviceName("CPU");
	try {
		m_state.plugin = InferenceEngine::PluginDispatcher({
			"C:\\Intel\\computer_vision_sdk_2018.3.343\\deployment_tools\\inference_engine\\bin\\intel64\\Release",
			""}).getPluginByDevice(deviceName);
	}
	catch (std::exception &ex) {
		PrintToListener(const_cast<char*>(ex.what()));
	}
}

If anyone would be so kind as to highlighting what I might be doing wrong in this instance I would like to hear from you as soon as possible.

 

0 Kudos
8 Replies
nikos1
Valued Contributor I
1,390 Views

Had similar issues when I started integration into our applications. Make sure all OpenVino dlls are in your current directory. The debugger will tell you where the issue is if you step into getPluginByDevice.   In our case also had to copy the following dlls to project / product directory

inference_engine.dll
cpu_extension.dll
cpu_extension_avx2.dll
mkl_tiny.dll
MKLDNNPlugin.dll
myriadPlugin.dll
HeteroPlugin.dll
clDNNPlugin.dll
GNAPlugin.dll
gna.dll
clDNN64.dll
libiomp5md.dll
svml_dispmd.dll 

 

0 Kudos
RudyC
Beginner
1,390 Views

Hi Nikos - 

Per your recommendation I copied the DLLs in various directories - e.g. application dir, extension DLLs dir - as well as other directories in my %PATH% but to no avail.

The messages I receive consistently from the debugger when I walk into getPluginByDevice is that, for example, MKLDNNPlugin.dll cannot be loaded because it cannot be found.

If you or anyone might be able to shed some light on this please let me know.

Regards,

RudyC

0 Kudos
chen__ives
Beginner
1,390 Views

Hi RudyC,

Which kind of CPU you used to run the app?

I once had similar issue when I run sample on 2nd-gen Core i5 CPU, OpenVINO is only available for 6th-gen (or newer) CPUs. 

0 Kudos
RudyC
Beginner
1,390 Views

Hi Ives,

My cpu is a Intel Core i5-8350U CPU @ 1.70GHz.  I do not figure my cpu is an issue as on this same laptop I've been able to run other OpenVINO samples and tutorials.

Regards,

RudyC

0 Kudos
Shubha_R_Intel
Employee
1,390 Views

Rudy download Visual Studio 2017 Community Edition with all the requisite build tools first. I assume you have already done this ? Here is a link describing the steps:

https://software.intel.com/en-us/articles/OpenVINO-Install-Windows#VisualStudio-Application

Next, from a  DOS Shell run :<INSTALL_DIR>\computer_vision_sdk_2018.3.343\bin\setupvars.bat

Create the Visual Studio Project and Solution Files first by running create_msvc2017_solution.bat from within inference_engine/samples.

Pull up the generated Samples.sln from build_2017 into Visual Studio 2017 and select "Build Solution" - build all the samples at once.

Now running the samples from within Visual Studio won't work straight away.

You must ensure that Visual Studio 2017  sees the environment variables which are set via

<INSTALL_DIR>/computer_vision_sdk_2018.3.343\bin\setupvars.bat

How do you do this ?

Open up x64 Native Tools Command Prompt for VS 2017

Then cd into the above directory and run setupvars.bat.

Next you bring up Visual Studio from within the command prompt by typing devenv /UseEnv

If you follow the above steps, your app (as well as the OpenVino samples) should see any required DLLs from OpenVino. 

Hope these steps help you ! 

Thank you for using OpenVino,

Shubha

 

 

0 Kudos
Shubha_R_Intel
Employee
1,390 Views

I advised Rudy that in addition to following the previous steps for running a sample app from within Visual Studio 2017, also as opposed to building an OpenVino app from scratch, it's better to rather start from an OpenVino sample, make sure it runs from within Visual Studio,  and then incrementally add/delete functionality.

0 Kudos
nikos1
Valued Contributor I
1,390 Views

RudyC did you solve this? What was the issue?

I am getting a similar issue on Linux when I load by Device but I can load plug-in by Name 

 

InferenceEngine::PluginDispatcher({ "","./lib" }).getPluginByName("MKLDNNPlugin");

 

0 Kudos
stone__jesse
Beginner
1,390 Views

windows

//system environment variables in control panel
PATH add
C:\PROGRA~2\INTELS~1\OPENVI~1.275\INFERE~1\bin\intel64\Release;C:\PROGRA~2\INTELS~1\OPENVI~1.275\opencv\bin
PYTHONPATH add
C:\PROGRA~2\INTELS~1\OPENVI~1.275\python\python3.5;C:\PROGRA~2\INTELS~1\OPENVI~1.275\python\python3

linux

.so lib path
[Environment Variables]
add
LD_LIBRARY_PATH=/usr/local/lib/python3.5/dist-packages/cv2/.libs:/opt/intel/openvino_2019.2.275/inference_engine/lib/intel64:/opt/intel/openvino_2019.2.275/inference_engine/external/mkltiny_lnx/lib:/opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/external/tbb/lib

0 Kudos
Reply