Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Waterfall issue again on a deployed machine

Nick_T_1
Beginner
627 Views

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

0 Kudos
4 Replies
Ying_H_Intel
Employee
627 Views
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-layers-and-dispatching-in-the-intel-ipp-70-library/ 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
0 Kudos
SergeyKostrov
Valued Contributor II
627 Views
>>... 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.
0 Kudos
Nick_T_1
Beginner
627 Views
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!!
0 Kudos
Nick_T_1
Beginner
627 Views
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.
0 Kudos
Reply