ipp redist dlls

ipp redist dlls

Hi,
we are developing with ipp at development pc's , and running our applications on independent pc (with no development tools) and we having 'dlls missing' problems ,inspite of we have installed the redistributables.
On each different configuration pc other ipp dlls is missing.
We are currently have to investigate for each pc which dlls are missing and copy them from redist folder of Composer XE 2011 (from development pc ) to the same folder where the executable file is (at independent pc).
I think, It should be other way of applying applications that uses ipps.Please me help figure that out

Regards,
Larisa

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

Hi Larisa,

I think the redistributable package will only install the DLLs for the target machine's architecture (can someone confirm), so if in code you're forcing IPP toexecutefor aspecific architecture, there may be problems.

I tend to just statically link with IPP, then there are no DLL issues.

Peter

Hi Larisa,

you have a mix of static / dynamic link. INstall an your development pc dependency walker and you will see which dll / exeis dynamic linked (It will call ippcore.dll).

Best Regards

Detlef

Quoting detlef.stralaudynamic-solutions-software.de...Install an your development pc dependency walker and you will see which dll / exeis dynamic linked (It will call ippcore.dll)...
Unfortunately, the Dependency Walker is not displaying all neededdlls for an IPP application, especiallyfrom an IPP'sWaterfall procedure.

that's right, but it shows, where the IPPCore is called, so you can see where it is not static linked.

How do you make the static linkage?

via code?

You do not want to use static linking because:

1. It can conflict with different runtime library and threading model
2. You do not get automatic benefit from new CPUs
3. You need to recompile for each new version of IPP

IPP is organized as follows:

ippi <-- image processing domain functions

ippi-7.0.dll <-- this is the main DLL with CPU dispatcher, your application is dynamically linked against it

ippiw7-7.0.dll <-- w7 (Pentium IV, SSE2)
ippiv8-7.0.dll <-- v8 (Core 2, SSSE3)
ippis8-7.0.dll <-- s8 (Atom, SSSE3)
ippip8-7.0.dll <-- p8 (Penryn/Nehalem/Westmere, SSE4.1, SSE4.2, AES-NI)
ippig9-7.0.dll <-- g9 (SandyBridge, AVX)

Actual code is in those DLLs and which one is needed depends on which CPU is installed in a target system.

The best way to make sure that you have all DLLs needed for your
application to run on a target PC is to copy all of them. Hard disk space is cheap today, and your client may upgrade their hardware which could prevent your application from running if you copied just the DLLs for the currently installed CPU.

Of course, you do not have to copy DLLs for the functional domains you do not use.

-- Regards, Igor Levicki If you find my post helpfull, please rate it and/or select it as a best answer where applies. Thank you.
Best Reply

Leave a Comment

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