Community
cancel
Showing results for 
Search instead for 
Did you mean: 
snirgaz
Beginner
44 Views

IPP uses only a single thread

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
44 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
44 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
44 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
44 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?
SKost
Valued Contributor II
44 Views

Did you checkin the WindowsTaskManager how many threads were actually created for your application?

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

sorry, one addition: - of course for both CPUs - in order to be sure the same code is working on both.

Regards,
Igor