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

IPP8.0 ippGetNumThreads

alessandro_c_
Beginner
761 Views

Dear all,

I've recently passed from IPP7.1 to IPP8.0. I see that my app that I've created with IPP 7.1 doesn' work anymore with ipp 8.0:

the problem is in calling this IPP API:

IppStatus ippGetNumThreads(int*pNumThr); that return the following error IppStsNoOperation

IppStsNoOperation. Indicates that there is no such operation in the static version of the library.

It is very strange because I link IPP Library in dynamic mode

Thank you for your help

0 Kudos
8 Replies
Igor_A_Intel
Employee
761 Views

Hi Alessandro,

by default IPP is now single threaded as multi-threaded libraries are declared as deprecated - if you've downloaded the default version of the package - it contains only single-threaded version of the static library, the multi-threaded static is a separate dowload.

regards, Igor

0 Kudos
alessandro_c_
Beginner
761 Views

Thank you Igor

I've installed this package w_ipp_8.0.0.083.exe

I see there are two versions of IPP Libraryis it the default one? or the multithreaded one?

I see that under  (Installationpath)Intel\Composer XE 2013 SP1.083\ipp\lib\ia32 there are two version of every single lib

for example ippcore.lib and ippcoremt.lib

I suppouse that mt is for multithreaded ... Howvever i try to link IPP in dynamic not static way.

0 Kudos
SergeyKostrov
Valued Contributor II
761 Views
>>...by default IPP is now single threaded as multi-threaded libraries are declared as deprecated - if you've downloaded >>the default version of the package - it contains only single-threaded version of the static library, the multi-threaded static is >>a separate dowload. A removal of multi-threaded functionality was announced some time ago and I understood that multi-threading would be removed completely. What I see now looks like: - multi-threading is removed from static IPP libraries version 8.x - multi-threading is Not removed and still available for dynamic ( non static ) IPP libraries version 8.x It gets confusing and please clarify.
0 Kudos
SergeyKostrov
Valued Contributor II
761 Views
>>...I see that my app that I've created with IPP 7.1 doesn' work anymore with ipp 8.0: >> >>the problem is in calling this IPP API: >> >>IppStatus ippGetNumThreads(int*pNumThr); that return the following error IppStsNoOperation If your application uses multi-threading to do IPP related processing then you need to consider ( possibly ) a rollback of IPP library back to 7.x. Or, you could try to mix both versions. However, that mixing approach will create some additional programming overhead for developers and I don't think this is the best way to proceed. In overall, there is some issue with your approach: you've moved to a new version of IPP library without R&D, Testing, Verification and Validation phases (!) for your software. Please don't blame IPP team in that case.
0 Kudos
alessandro_c_
Beginner
761 Views

Dear all,

maybe I've explained my problem in a bad way.

My application links IPP DLL  version 7.1 dinamically. Now I try to upgrade IPP to version 8.0,  of course I'm at the first step just try to compile my application and see if it works before Testing and Verification so i've nothing to blame to IPP team.

However I see that IppGetNumThreads doesn't work anymore neither if i link ipp in a dynamic mode. Is this correct?

0 Kudos
SergeyKostrov
Valued Contributor II
761 Views
>>...IppStatus ippGetNumThreads(int*pNumThr); that return the following error IppStsNoOperation... This is what I found in headers: ... ippStsNoOperation = 1, /* No operation has been executed. */ ... ippStsNoOperation - processed area is disappeared, no operation ... ippStsNoOperationInDll - function does nothing in the dynamic version of the library ... The function doesn't do anything according to the error code returned.
0 Kudos
SergeyKostrov
Valued Contributor II
761 Views
>>>>...IppStatus ippGetNumThreads(int*pNumThr); that return the following error IppStsNoOperation... >> >>... >>The function doesn't do anything according to the error code returned. You could also step into the code of that function under Debugger to verify that the function does nothing.
0 Kudos
Igor_A_Intel
Employee
761 Views

Alessandro,

how did you get 8.0 dlls? For 8.0 install the thin client is used - by default only single-threaded libraries are "checked" (it's true both for static and dynamic - single-threaded dynamic libs are new feature for 8.0) - so to install multi-threaded libraries you should check the corresponding check-box - in this case threaded libraries will be installed in same place with the same names under "threaded" folder. "mt" suffix doesn't mean "multi-threaded" - it has the same meaning as for MS libraries - thread-safe, so can be used in mt environment.

regards, Igor

0 Kudos
Reply