Intel® Integrated Performance Primitives

Intel® IPP 2018 is now available

Intel® IPP 2018 is now available. This release added new functions to support the LZ4 data compression, introduced the standalone cryptography packages, and added the optimization code for the GraphicsMagick source.  

Check Intel® IPP 2018 release notes to learn more information.

What's New in Intel® IPP 2018:

How to use ippInitCpu(ippCpuSSE3) in IPP 9.0

Hi All,

I have working with code which is using following  IPP-6.0 API

IppStatus status = ippInitCpu(ippCpuSSE3);
 if (status != ippStsNoErr)

     throw IPException(SOURCE, "ippInitCpuFailed - %s", ippGetStatusString(status));


For some reason I am forcing CPU to use SSE3. But the latest ipp library  -IPP_2017_3_210 – doesn’t have these function and neither IPP legacy has this. But, I want to  force CPU to use SSE3 in latest IPP version but I am not getting the right way of doing it. 

sharing buffers for forward and inverse DCT


From the documentation, it is not clear weather ippsDCTFwdInit_32f and ippsDCTInvInit_32f can share the same memory space.

For a given length, ippsDCTFwdGetSize_32f and ippsDCTInvGetSize_32f do return the same sizes, and allocating the Ipp8u buffers once for both forward and inverse transform seems to work.

However, I assume there is a reason for which both pairs of functions exist.

Any clue?

thanks, piem

What can I use instead of IPP on unsupported platforms such as iOS?

If I write my Windows, Mac, Linux & Android code to utilise IPP, how can I then port those apps to iOS if it's not a not supported platform?

Are there any "swap-in" alternatives or is it possible to get IPP working on iOS?

How to propose an addition to the IPP library

I have a user-mode virtual memory library that I think might fit well in the IPP library (or possibly another Intel library). It allows access to multi-gigabyte virtual memory vectors with a convenient interface and high performance. It would also go very well with byte-addressable Optane memory.

Whom should I contact about this possibility?

Feature request: add ippsNorm_L2Sqr_64f

Currently the available options for floats/doubles are:

- ippsNorm_L2_64f which than has to be squared - loss of precision and less performant than just doing L2Sqr from the start

- ippsDotProd_64f with the same vector given as pSrc1 and pSrc2 - that works but I guess a more efficient implementation might be possible given the knowledge that the same vector is being inner-producted with itself.

It would be great to instead have a precise and as-efficient-as-possible ippsNorm_L2Sqr_64f.



Manipulate srcStep to do Median Filtering along diagonals?

Image Median of a large neighborhood can be approximated well (and much faster) by computing the median of medians using line medians.
In that context I wish to compute the median along diagonals (i.e. neither rows nor columns), but IPP does not seem to support this?
Would it be possible to accomplish this by computing a median with a column mask(1x3 or 1x5) on an image where the srcStep is artificially increased or decreased by an amount corresponding to the storage required for one pixel?

Подписаться на Intel® Integrated Performance Primitives