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.

Migrating from 2018 r3 to 2018 r5

wsla
Beginner
325 Views

Hello,

I have a Windows IoT application using inference engine 2018 r3. I built inference engine dlls on a different machine and installed Intel C++ redistributables (w_ccompxe_redist_intel64_2011.13.371.msi) as well as Visual C++ 2017 redistributables and it was working all fine using Movidius stick.

Now I updated the OpenVino version to 2018 r5, built inference engine dlls on the same machine as before following same procedure and I deployed the application to the target machine only to see that it crashes because it can't load inference_engine.dll correctly. Application runs correctly on a development machine. I then also tried running classification_sample.exe from 2018 r5 and it too fails (2018 r3 works correctly) on the target machine.

Are there any extra dependencies required for 2018 r5 in comparison to 2018 r3? I went though release notes but it doesn't seem to mention any.

Thanks

0 Kudos
3 Replies
wsla
Beginner
325 Views

I managed to find a workaround for this problem.

My target device (on-board computer) has Intel Atom E3827. As I said in the first post, when using OpenVINO 2018 r3 I have built the samples (and cpu_extension.dll) on my dev machine which has i7-8700, the dll has worked correctly on the target device (after installing w_ccompxe_redist_intel64_2011.13.371.msi on it). Now I have followed the same process but it was no longer working. As a workaround I have installed OpenVINO on the target device and generated the Visual Studio solution using it. The resulting set of pre-processor directives for samples and ie_cpu_extension was a lot different to the one generated on dev machine with i7-8700. After copying all pre-processor directives from target device to dev machine I was able to build the dlls on dev machine and run on target machine.

Now, as far I understand when dll is compiled against different set of cpu instructions that the target machine, the redistributable package should handle it. Why it doesn't work in this case? This is a regression of compatibility.

0 Kudos
Lee__Terry
Beginner
325 Views

Hello wsla,

Thanks for posting solution. I have spend a lot of time on converting exe to dll without success. It's good to know that you have it working. Could you take a quick look at the following steps to see if I missed anything? 

Step 1: Build a c# DLL project: I follow the procedure from https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2017

Step 2: Copy configure setting from a sample program to DLL.

Step 3: copy  pre-processor directives and codes from the sample program to a DLL function.

The issue is on the function:   findPlugin({ device }, result, &desc). The return on this function with corrupted results. 

Environment:

windows 10, vs2017, openvino R5.

Thanks,

Terry

0 Kudos
Stefano_M_
Beginner
325 Views

I had the same problem and I solved it in this way:

In the Sample solution of R5 I changed some options in Project Options of ie_cpu_extension:

Properties -> Configuration Properties -> C/C++ -> Code Generation

here I modified Enable Enhanced Istruction Set from AVX2 to "Not Set"

and I re-build the dll.

 

 

 

 

 

0 Kudos
Reply