I'm running the same exact OpenVino-based programs on two machines. One runs fine. Another one crashes while loading MKLDNNPlugin.dll.
Tracing both in Process Monitor, I see that both attempt and fail to find libmalloc.dll. However, in case of success, tbbmalloc.dll is loaded next. In case of failure, there never is an attempt to load it.
The failure case does run on an a bit older hardware. Is there a way to determine what's failing, and work around it? Best I can tell, hardware is the only difference in the two test cases.
The "broken" system is an older CPU -- i5 3470.
As an additional data point, our code based on OV 2019 works on that system. I suspect it has to do with CPU extensions being moved into the binary, rather than compiled from source. If this is the case, seems like a regression ...
I'd like to reiterate -- the breakage occurs in ie.AddExtension call. The error is
Cannot load library 'MKLDNNPlugin.dll': 1114 from cwd: [dirname]
I think it is critical that the error occurs immediately after a failed lookup for libmalloc.dll, while in case of success tbbmalloc.dll is searched for and used. What would be the difference allowing this lookup?
Also, where is libmalloc.dll supposed to come from? It doesn't seem to be a part of either OpenVino distribution, or Intel compiler redistributable package.
I believe the \inference_engine\bin\intel64\Release\MKLDNNPlugin.dll has BUG.
While \inference_engine\bin\intel64\Debug\MKLDNNPlugind.dll is working well.
I testing on the C++ smart class room demo and found out if i Compile it in DEBUG, the compiled program will work.
BUT if i compile it in RELEASE, it will show cannot find MKLDNNPlugin.dll error.