Community
cancel
Showing results for 
Search instead for 
Did you mean: 
larisa-basov
Beginner
311 Views

ipp redist dlls

Jump to solution
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
0 Kudos
1 Solution
7 Replies
pvonkaenel
New Contributor III
311 Views

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

311 Views
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
SergeyKostrov
Valued Contributor II
311 Views
...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.
311 Views
that's right, but it shows, where the IPPCore is called, so you can see where it is not static linked.
larisa-basov
Beginner
311 Views
How do you make the static linkage?

via code?
ILevi1
Valued Contributor I
311 Views
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.
Reply