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

IPP uses only a single thread

snirgaz
Beginner
504 Views
Hi all,

I am using a few IPP function in my c++ code (cos. log, exp add mul etc.) on an 8 core machine.

I am linkind with the ipp=common option.

For some reason the calculation is done using only a single thread.

I tried using:

ippSetNumThreads(8);

But I only get a single core usage with:

ippGetNumThreads(&t);

Any idea want I am missing?

Thanks !

Snir
0 Kudos
7 Replies
Ying_H_Intel
Employee
504 Views
Hi Snir

You may run same problem asjaylord in http://software.intel.com/en-us/forums/showthread.php?t=77146.

The key problem should make sure if the linked ipp libraries arethreaded libraries
for example,
ipp*.a are static serial library
ipp*_l.a are static threaded library
(make sure callippStaticInit() before any other Intel IPP function when linking static library ) ;

ipp*.so are threaded dynamic library.

Hope it helps,
Ying H.
0 Kudos
snirgaz
Beginner
504 Views
Hi,

Thanks a lot for the quick reply!

I am using IPP 7.0 and linking dynamically, according to the Documentation (and your reply) they should be automaticly threaded.

any clue?

Snir
0 Kudos
Vladimir_Dudnik
Employee
504 Views
Hu Snir,

not every function in IPP will use threading internally, please check with ThreadedFunctionsList.txt file to see if you can expect using threading in functions of your interest (the file is located in IPP documentation folder of your installation)

Regards,
Vladimir
0 Kudos
fishbupt
Beginner
504 Views
Hi,
I have some problem when using IPP running on my new i7-2720QM processors.
I used ippSetNumThreads(&numThreads), which got 8. But ipp function always use single threads on my
laptop with i7-2720QM.
The same executable binary run well on my desktop with i7-920 using 8 threads.
Any suggestion?
0 Kudos
SergeyKostrov
Valued Contributor II
504 Views
Did you checkin the WindowsTaskManager how many threads were actually created for your application?

Best regards,
Sergey
0 Kudos
igorastakhov
New Contributor II
504 Views
please provide additional info: IPP library version:

static void libInfo( void ){

const IppLibraryVersion *lib;

lib = ippiGetLibVersion();

printf( "CPU : %s\n", lib->targetCpu );

printf( "Name : %s\n", lib->Name );

printf( "Version : %s\n", lib->Version );

printf( "Build date: %s\n", lib->BuildDate );

}

and function(s) you are using.

Regards,
Igor

0 Kudos
igorastakhov
New Contributor II
504 Views
sorry, one addition: - of course for both CPUs - in order to be sure the same code is working on both.

Regards,
Igor
0 Kudos
Reply