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 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

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.

Zitat:

Ying H (Intel) schrieb:

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!!

Zitat:

Sergey Kostrov schrieb:

>>... 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.

Kommentar hinterlassen

Bitte anmelden, um einen Kommentar hinzuzufügen. Sie sind noch nicht Mitglied? Jetzt teilnehmen