Intel® Integrated Performance Primitives (Intel® IPP)

  • Performance: Pre-optimized Building Blocks Perform Faster
  • Previewing Intel® Graphics Support. Click here!
  • Cross-Platform and Operating System
  • Now available as a standalone product for OS X*!
  • Introducing a separate download package for Android* OS.

$199
Buy Now

Or Download a Free 30-Day Evaluation Version

Intel Integrated Performance Primitives

A Library of Highly Optimized Algorithmic Building Blocks for Media and Data Applications

Intel® Integrated Performance Primitives (Intel® IPP) 8.1 is an extensive library of software functions for multimedia processing, data processing, and communications applications for Windows*, Linux*, Android*, and OS X* environments.

Intel® Integrated Performance Primitives Highlighted Features

Overview

  • Optimized for Performance: Intel® IPP software building blocks are highly optimized using Intel® Streaming SIMD Extensions (Intel® SSE) and Intel® Advanced Vector Extensions (Intel® AVX) instruction sets so your application will perform faster than what an optimized compiler can produce alone.

  • Intel Engineered to Save You Time: Because Intel has done the engineering on these ready-to-use, royalty-free functions, you’ll not only have more time to develop new features for your application, but in the long run you’ll also save development, debug and maintenance time while knowing that the code you write today will run optimally on future generations of Intel processors.

  • Thousands of Frequently Used Functions: Intel® IPP offers thousands of optimized functions covering frequently used fundamental algorithms including those for creating digital media, enterprise, data, embedded, communications, and scientific / technical applications.

New Preview Features:

New Production Features:

  • Standalone OS X* support added (previously distributed only via the OSX* Composer suite)
  • Microsoft Windows 8* UI supported via single-threaded static libraries
  • Standalone package for Android* OS. See Using Intel® Integrated Performance Primitives with Android* OS
  • Standalone package and Intel® IPP within the Intel® Composer XE suite now have support for Intel® Xeon Phi™ coprocessors

Click on images for a larger view of the benchmark graphic.

Performance Benchmarks

Performance ChartPerformance Comparison Details
ippiFilter

ippiFilter

Performance is significantly faster than an optimized compiler with further improvements over multiple generations of SSE and Intel® AVX instruction sets.

ippsSqrt32f

ippsSqrt32f

Intel® Compiler vectorization makes a major difference in Sqrt performance alone, but Intel IPP provides significant performance boost over the Intel® Compiler.

Featured Articles

Aucun contenu trouvé

Supplemental Documentation

Aucun contenu trouvé
S’abonner à

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


active format description AFD
By Sascha1
Hello, is it possible to add AFD data to an image?
IPP 8.1 i_malloc interface
By MICHAL B. (Intel)4
Hello,If I want to replace standard allocation routines with my own using i_malloc interface do I need to specify all of them? For example if I use the pattern for FFT to query the buffer size, allocate memoy using ippsMalloc_8u and then init the FFT using the memory I allocated myself is there a chance that IPP will call for example realloc somewhere inside? Is it enough to just write my own malloc() and free() functions and skip realloc and calloc?
IPP 8.1 - ippsFIRGetStateSize_32f
By MICHAL B. (Intel)2
Hello,I have a question about FIR filtering functionality. When I ask for the FIR state buffer size using method below: ippsFIRGetStateSize_32f( int tapsLen, int *pBufferSize )I get unusually huge values e. g. 17792 for tapsLen=1. Is this expected? From what I understood from documentation the FIR state structure contains taps values and delay buffer. I see no reason why this should be this big.
widescreen signaling (WSS)
By Sascha0
Hello, has someone an idea how to add the widescreen signaling data to the image(RGB24) ? Best regards Sascha
IPP Asynchronous: hppiAnd, hppiOr, hppiXor work incorrectly with 1u data
By ANNA K.1
hppiAnd, hppiOr, hppiXor don't process the last byte in a matrix row if matrix width is not divisible by 8. If the width is a multiple of 8 all is right. The library version is IPP Asynchronous Preview 2014 February
Ipp 8.1 INTEL_PLATFORM definition for 64 bit application
By giacomo-carsana1
Hi I ran in some trouble after Ipp 8.1 upgrade. INTEL_PLATFORM definition in ippdefs.h is : #ifdef _WIN32 #define _INTEL_PLATFORM "ia32/" #else #define _INTEL_PLATFORM "intel64/" #endif But for microsoft C++ compiler _WIN32  is defined for 64 bit application too as documented here http://msdn.microsoft.com/en-us/library/b0084kay.aspx _WIN32 Defined for applications for Win32 and Win64. Always defined. _WIN64 Defined for applications for Win64 When I try to compile a 64 bit application the wrong path is selected. I use this workaround including ipp.h #pragma push_macro ("_WIN32") #if defined ( _WIN64 )     #undef _WIN32 #endif #include <ipp.h> #pragma pop_macro ("_WIN32")  I'm missing something? Thanks
Floodfill GetSize function is useless?
By Chaofeng W.4
I found in the example of Floodfill_Grad page: http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch14/functn_FloodFill_Grad.html ippiFloodFillGetSize_Grad ( roiSize, &pBufSize ); Ipp8u* pBuffer = ippiMalloc_8u_C1 ( 8, 8, &pBufSize ); ippiFloodFill_Grad4Con_8u_C1IR ( pImage, 8, roiSize, seed, newVal, minDelta, maxDelta, &pRegion, pBuffer );The pBufSize is calculated by GetSize() function, however it is updated in ippiMalloc function without any use. From the manual description, the temporary buffer size should be calculated by GetSize and we only need to create a char buff with that size and pass the buff to flood fill function. However, as the example shows, the size returned by GetSize is not used at all. Or I guess the pBufSize is both \param[in, out] for ippiMalloc? I have tried both ways: 1. the same way as the example shows. 2. I get size with GetSize() and new a char array with this size, and use this char array in Floodfill. It turns out th...
IPP 8.1 undocumented change to ippiMorphCloseBorder?
By pvonkaenel1
Hi, I hope I'm missing something here, but I just tried updating my code to IPP 8.1 from 8.0 and it looks like the parameters for ippiMorphCloseBorder_8u_C1R has changed.  Is this a mistake?  I've never noticed an IPP signature change in the past, and the change is not even listed in the reference manual. Thanks, Peter

Pages

S’abonner à Forums
  • What is Intel® IPP?
  • Intel® Integrated Performance Primitives (Intel® IPP) is an extensive library of software functions to help you develop multimedia, data processing, and communications applications for Windows*, Linux*, OS X*, and Android* environments. These functions are highly optimized using Intel® Streaming SIMD Extensions (Intel® SSE) and Intel® Advanced Vector Extensions (Intel® AVX) instruction sets which often outperform what an optimized compiler can produce alone. Because Intel has done the engineering on these ready-to-use, royalty-free functions, you'll not only have more time to develop new features that differentiate your application, but in the long run you'll also save development, debug and maintenance time while knowing that the code you write today will run optimally on future generations of Intel processors.
  • What's new in Intel® IPP 8.1?
    • All Intel® IPP functions are now available for the Intel® Xeon Phi™ product family.
    • Image Processing and Computer Vision:
      • Added the ippiFilterBilateralBorder, ippiFilterGaussianBorder, ippiLabelMarkers, and ippiCannyBorder functions with extended data type and borders support.
      • Added new functions: ippiGradientVector, ippiFilterSobelBorder, ippiSAD.
      • Added extended axis support (45 and 135 degree) to the ippiMirror function.
  • What are the Intel® IPP Previews?
  • Intel® IPP is now providing technology previews of two new APIs (OpenCL and Asynchronous C/C++) focused on the image processing domain. Both models enable targeting Intel® HD Graphics and Intel® Iris™ graphics components of the Intel® processor. Try it out and take part in our new forums dedicated to these APIs. For more info, check out our preview website at: http://software.intel.com/intel-ipp-preview
  • What do I need to do to enable great performance on new platforms with Intel® IPP?
    • With Intel® IPP you get great CPU performance today and tomorrow. With each instruction set upgrade a new implementation layer is added. Previous implementations will work as before, but functions which can benefit from new hardware capabilities will be updated and validated before the new architecture is publicly released. With IPP you get the keys to unlock new performance delivered with new hardware so you can start utilizing its new CPU capabilities right away instead of interrupting development cycles for additional optimizations. In some cases the performance boost will be automatic. In most other cases all you need to do is recompile.
    • GPU performance is increasingly important. While the technology previews are less mature than IPP's CPU-only functions, starting your evaluation now and sending feedback will help make sure that IPP's GPU support grows in a direction useful to you. You can also start building products today with the previews if a faster rate of change is acceptable.
  • What are the differences between Intel® IPP main product, previews, examples, and samples?
    • The main product is primitives: optimized functions to enable developers to utilize hardware capabilities without dropping down to the specifics of each hardware version. This is still CPU only today but will include GPU support in the future. This is why we are releasing technology previews.
    • Technology previews represent a "release early and often" approach, intended to maximize the rate of new functionality released to you as well as the level of feedback on what is truly important. While there will be no limitations on releasing software built with the preview functions they will be free to change with much less notice than for changes to functions in the main product.
    • Examples as defined for Intel® IPP are short starting points intended to illustrate use of features in Intel® IPP's main product and previews. They are installed with the main package and previews. Small examples may accompany documentation. They will never grow large enough to require a separate download package, which distinguishes them from samples.
    • Samples represent a previous era for Intel® IPP. These were like examples, but far too large to maintain indefinitely. These are now legacy. For more information please see the article on Code Examples and Samples for Intel® IPP.
  • How do I get the Intel® IPP Cryptography add-on?
  • Cryptography for Intel® IPP is part of the main Intel IPP product, but is packaged separately in order to comply with United States export regulations. It is available to download for all registered users of Intel® IPP. See the Cryptography Download section of this site for more information.
  • What are the Intel® IPP Previews?
  • Intel® IPP is now providing technology previews of two new APIs (OpenCL and Asynchronous C/C++) focused on the image processing domain. Both models enable targeting Intel® HD Graphics and Intel® Iris Graphics components of the Intel® processor. Try it out and take part in our new forums dedicated to these APIs. For more info, check out our preview website at: http://software.intel.com/intel-ipp/preview
  • What do I need to do to enable great performance on new platforms with Intel® IPP?
    • With Intel® IPP you get great CPU performance today and tomorrow. With each instruction set upgrade a new implementation layer is added. Previous implementations will work as before, but functions which can benefit from new hardware capabilities will be updated and validated before the new architecture is publicly released. With IPP you get the keys to unlock new performance delivered with new hardware so you can start utilizing its new CPU capabilities right away instead of interrupting development cycles for additional optimizations. In some cases the performance boost will be automatic. In most other cases all you need to do is recompile.
    • GPU performance is increasingly important. While the technology previews are less mature than IPP's CPU-only functions, starting your evaluation now and sending feedback will help make sure that IPP's GPU support grows in a direction useful to you. You can also start building products today with the previews if a faster rate of change is acceptable.
  • What are the differences between Intel® IPP main product, previews, examples, and samples?
    • The main product is primitives: optimized functions to enable developers to utilize hardware capabilities without dropping down to the specifics of each hardware version. This is still CPU only today but will include GPU support in the future. This is why we are releasing technology previews.
    • Technology previews represent a "release early and often" approach, intended to maximize the rate of new functionality released to you as well as the level of feedback on what is truly important. While there will be no limitations on releasing software built with the preview functions they will be free to change with much less notice than for changes to functions in the main product.
    • Examples as defined for IPP are short starting points intended to illustrate use of features in IPP's main product and previews. They are installed with the main package and previews. Small examples may accompany documentation. They will never grow large enough to require a separate download package, which distinguishes them from samples.
    • Samples represent a previous era for Intel® IPP. These were like examples, but far too large to maintain indefinitely. These are now legacy. For more information please see the article on Code Examples and Samples for Intel® IPP.
  • How do I get the Intel® IPP Cryptography add-on?
  • Cryptography for Intel IPP is part of the main Intel IPP product, but is packaged separately in order to comply with United States export regulations. It is available to download for all registered users of Intel IPP. See the Cryptography Download section of this site for more information.

Intel® Integrated Performance Primitives

Getting Started?

Click the Learn tab for guides and links that will quickly get you started.

Get Help or Advice

Search Support Articles
Forums - The best place for timely answers from our technical experts and your peers. Use it even for bug reports.
Support - For secure, web-based, engineer-to-engineer support, visit our Intel® Premier Support web site. Intel Premier Support registration is required.
Download, Registration and Licensing Help - Specific help for download, registration, and licensing questions.
Supported Versions

Resources

Release Notes - View Release Notes online!
Documentation:
Reference Manual
User's Guide
All Product Documentation - View documentation online!

Featured Support Topics

Aucun contenu trouvé