Waterfall issue again on a deployed machine

Waterfall issue again on a deployed machine

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.

Nick

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Nick,
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.
>your.exe

Best Regards,
Ying

>>... I am certain that ippi-7.0.dll is the only dll file we used...

That is not possible and CPU specific IPP DLLs must be used as well.

Quote:

Ying H (Intel) wrote:

Hi Nick,
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.
>your.exe

Best Regards,
Ying

Hi Ying:
You are absolutely right, and your explanation is very detail and clear. Thanks a lot!!

Quote:

Sergey Kostrov wrote:

>>... I am certain that ippi-7.0.dll is the only dll file we used...

That is not possible and CPU specific IPP DLLs must be used as well.

Thanks.

Leave a Comment

Please sign in to add a comment. Not a member? Join today