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

Using IPP on window XP

Tam_N_
Novice
480 Views

Dear all,

I need a help.

I try to using ippsAndC_16u_I function on IPP 8.0 on my projects.

When I have tested on windows 7, the result is speed up. But on XP is not only lower than windows 7 but also lower than normal case.

I try to find out solution to fix it. And I have read release notes of IPP 8.0 

https://software.intel.com/en-us/intel-ipp-80-library-release-notes.

I see "Intel® IPP static libraries are not compatible with Microsoft Windows Driver Development Kit* 2003. "

That is the reason, my project does't speed up ?

0 Kudos
6 Replies
Igor_A_Intel
Employee
480 Views

Hi Tam,

IPP library is OS-independent. I guess your application is not a driver or kernel mode app, so I think that the note on incompatibility with driver development kit is not related to your app. IPP dispatcher works based on CPU features - so if CPU supports SSE2 instruction set - it dispatches SSE2 library code, SSSE3 - SSSE3, etc. Could you provide information on which CPUs are used on Win-7 and Win-XP machines? which versions of OSes are used - ia32 or x64? The best way is to provide us an output from ippsGetLibVersion function from Win-7 and Win-XP runs.

regards, Igor

0 Kudos
Tam_N_
Novice
480 Views

Hi Igor Astakhov,

Thank for you answer.

Presently, my PC using Intel Core i5, 3470 with 32 bit environment set up for both Win-7 and Win-XP.

If my os XP 32 bit is not installed a driver or kernel mode, how can I resolved it ?

 

Thank and Best Regards,

Tam

 

0 Kudos
Igor_A_Intel
Employee
480 Views

Ok, clear now,

Win-XP doesn't support AVX (your CPU is IVB that supports AVX instruction set), while Win-7 - does, this is why you see difference in performance. OS must care about saving/restoring AVX state during task switching - at XP era nobody knew about AVX - so XP can't execute AVX code and IPP dispatches SSE4.x code under XP, while Win-7 with SP-1 supports AVX state and IPP dispatches there AVX code. Take a look at "Operating system support" at http://en.wikipedia.org/wiki/Advanced_Vector_Extensions

regards, Igor

0 Kudos
Tam_N_
Novice
480 Views

Thank Igor,

In this case, which is IPP version I should use on Win-XP 32 bit with Intel Core i5 ?

Because my products is using Win-XP 32 bit ,I don't want to upgrade os to Win-7. If I don't use os Win 7, which is the best solution I can use ?

Best Regards,
Tam

0 Kudos
Igor_A_Intel
Employee
480 Views

Tam,

there are no any special IPP versions for Win-XP or Win-7, to a greater extent IPP library is OS independent. IPP libraries are "fat" binaries - so they contain inside ALL versions of code for different CPU generations and IPP dispatcher dispatches the most appropriate code version based on features that are supported by your CPU and OS. So you should use standard IPP library for Windows. If you don't want to upgrade from Win-XP - you'll never get the benefit from AVX optimization (see my messages above).

regards, Igor

0 Kudos
Hung_N_
Beginner
480 Views

Igor

I 've already do a simple sample follow this thread. But when I run in Win 7. the result are nearly same same.

my sample with count = 16000000

// standard sample : ~40ms

for (int i = 0; i < count; i ++)

  x &= value

// Ipp code: ~40 ~41ms

ippsAndC_16u_I(value, x, count)

Here is my config:

Code generation: AVX

Optimize: Q3

Floating point: fast

Use IPP static link (also try with dynamic link)

Environment is the same with thread owner. Am I missing anything ?

0 Kudos
Reply