Our project includes image processing function developped using IPP 7, and the project was packaged and then installed on a windows 7 x64 machine.
Now, when the application program starts, it says "No DLL found for waterfall procedure"; We have searched the IPP document, and according to what it says, the ippi-X.X.dll has been included in the same folder as the executable file, and ippi.h is the only head file we used.
3 dlls are in the application software folder: ippcore-7.0.dll, ippi-7.0.dll, and libiomp5md.dll, and I am certain that ippi-7.0.dll is the only dll file we used.
I am wondering what we did wrong to cause this problem? Any thoughts/comments/hint?
Thanks a lot.
Ying H (Intel) wrote:Hi Ying: You are absolutely right, and your explanation is very detail and clear. Thanks a lot!!
Besides the ippcore-7.0.dll, ippi-7.0.dll, and libiomp5md.dll, you also need to put cpu-optimization dll like ippiv8.dll in the path where exe can find.
Please see Understanding SIMD Optimization Layers and Dispatching in the Intel IPP 7.0 Library: http://software.intel.com/en-us/articles/understanding-simd-optimization...
The DLLs like ippi-7.0.dll are "dispatcher" DLLs. At run time they will detect the processor and load the correct processor-specific DLLs. This allows your code to call Intel IPP functions without worrying about which processor the code will execute on - the appropriate version is automatically used. These processor-specific DLLs are named *w7*.dll, *v8*.dll *p8".dll etc. . The only actions needed to use the Intel IPP DLLs, once the "stub" static libraries are linked, is to ensure that the dispatching DLLs and the processor-specific DLLs are on the path.
In general, the exe will search current folder, system32 folder, the folder of environment variable path points to to find the dlls at run-time.
there are some solutions for these, for example,
1) add IPP dll directory to system environment variable, thus exe can find it.
Right click Icon"Computer" => Open "System Properties"=> click Tab "Advanced"=>Environment Variables=> in System variables, click path => Edit it.
add C:\Program Files (x86)\Intel\Composer XE 2013\redist\ia32\ipp in Variable value.
or using the tools provided by IPP.
set environment variable by ippenv.bat in a command-line windows and run exe after the setting.
Open a command -line windows, run the bat files
> C:\Program Files (x86)\Intel\Composer XE 2013\ipp\bin\ippenv.bat"
then run your exe.
> cd the directory of exe.