Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Is it better to use IPP or ICL's vectorizer?

meldaproduction
Beginner
408 Views

The ICL's vectorizer seems to be very good, which makes me think whether it makes sense to use IPP (performance primitives) for simple tasks such as

for (int i=0; i<cnt; i++) dst = src1 * src2;

I assume to use SSE2 as base architecture and AVX for dispatching.

 

0 Kudos
4 Replies
TimP
Honored Contributor III
408 Views

Performance library functions incur more startup overhead so might be expected to be most competitive for long vectors.

In cases big enough to use threaded parallel, if parallel compilation isn't practical, performance library may be useful.

0 Kudos
meldaproduction
Beginner
408 Views

Are you saying that IPP also employs multithreaded processing for these operations?

0 Kudos
TimP
Honored Contributor III
408 Views

You have an install option for the parallel IPP which should decide at run time whether to engage multiple threads.  

0 Kudos
KitturGanesh
Employee
408 Views

Using IPP is different in that the code written with IPP will automatically take advantage of the cpu capabilities available (including vectorization) which can save time and maintenance cost as well with one optimized path instead of the need to create multiple paths for different streaming extensions for performance for scaling opportunities as well.  

_Kittur

0 Kudos
Reply