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

IPP multithreaded libraries not installed?

dominique120
Beginner
1,451 Views

Hello

I'm getting this error when I compile my program with Intel's compiler v14:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms\x64\PlatformToolsets\Intel C++ Compiler XE 14.0\ImportBefore\Intel.Libs.IPP.Intel C++ Compiler XE 14.0.targets(91,5): error : IPP multi-threaded libraries are not installed.

I have Parallel Studio XE 2013 for windows, I thought it came included with IPP, did I miss something?

Thanks

0 Kudos
8 Replies
Sergey_K_Intel
Employee
1,451 Views

Hi Dominique,

You need to reinstall PS2013 in "modify" mode and use "customizing" (or "customize") button on one of installation dialogs. There you need to specify that the installation of IPP multi-threaded libraries is required. By default they are OFF.

0 Kudos
dominique120
Beginner
1,451 Views

Thank you they have been installed now. But why does it say (Deprecated)? Has support for them been dropped or is there a problem with using them?

0 Kudos
Igor_A_Intel
Employee
1,451 Views

Hi Dominique,

Multi-threaded libraries are deprecated because internal (inside a primitive) threading is significantly less effective than external (at the application level) threading. Moreover - IPP internally is threaded with OMP, Linux p-threads or Win API or any other threading engine know nothing about OMP and if application is threaded with any other threading tool - you can face with different issues like thread oversubscription, conflicts, etc. With new IPP versions we provide a lot of new APIs for 1D (ipps) and 2D (ippi) functions that support external threading. Several IPP functions combined into 1 pipeline that is threaded externally are significantly more efficient from the performance and power points of view than sequential call of internally-threaded variants of these functions.

regards, Igor

0 Kudos
Royi
Novice
1,451 Views

Igor,

I wish you brought back those libraries.
They were the best feature of IPP.

On many cases Multi Threaded Filters are all needed.

Thank You.

0 Kudos
acc3141
Beginner
1,451 Views

So does that mean if I am using the IPP functions in for example a Windows DirectShow Filter where multiple instances may be active within a process then I need to provide my own external locks around calls to IPP functions?.

 

0 Kudos
Chao_Y_Intel
Moderator
1,451 Views

Hi ,
IPP is thread safe libraries. so it could be used by different thread at the same time. It does not need to add a lock externally.

Thanks,
Chao

0 Kudos
Arne_B_
Beginner
1,451 Views

But if i need just to do a single function on single data continuously, lets say a 2d fourier transform possibly on a big data chunk, and at the same time is unable or dont have the time to do a good optimization myself and yet this function dominates execution time and uses its core up 100%, is it still not a good reason to use the multithreaded version?

ArneBo

0 Kudos
Pavel_B_Intel1
Employee
1,451 Views

Hi All,

as Igor mentioned IPP team introduced Threading Layer for IPP libraries. It realizes the same functionality as IPP multi-threaded libraries and additionally enable a customer to organize threading for a custom pipeline that has much better performance vs. IPP threaded libraries. The Threading Layer are supported OpenMP and TBB tools starting from IPP 2019 gold release.

In a one of next IPP 2019 updates you can see an example of usage IPP Threading Layer in several modes and you can see performance benefits.

Yes there are a small % of cases when internal threading gives better performance results vs. external threading. But in general external threading is more effective.

Pavel

0 Kudos
Reply