Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.

IPP uses only a single thread

snirgaz
Beginner
152 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
152 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.
snirgaz
Beginner
152 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
Vladimir_Dudnik
Employee
152 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
fishbupt
Beginner
152 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?
SergeyKostrov
Valued Contributor II
152 Views
Did you checkin the WindowsTaskManager how many threads were actually created for your application?

Best regards,
Sergey
igorastakhov
New Contributor II
152 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

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

Regards,
Igor
Reply