Intel® Integrated Performance Primitives (Intel® IPP) Preview 2013 August Release Notes
Library for OpenCL*

Intel® Integrated Performance Primitives (Intel® IPP) Library for OpenCL* is a set of primitives developed in OpenCL which can be utilized within an OpenCL kernel. The primitives are optimized for Intel® platforms but may be run anywhere OpenCL is supported.

This Preview release has been validated on a limited set of Intel® hardware and software configurations. However, the Intel® IPP Library for OpenCL is expected to work on any platform that supports OpenCL.

Please see the following links for the latest information regarding the Intel® IPP Preview release:

System Requirements

Intel® IPP Library for OpenCL is optimized for the following configuration (but is generally expected to run anywhere OpenCL is supported):

Hardware

Software:

What's New in This Release

  1. Added the following mid-level convenience functions:

  2. Increased supported block size with the following new mid-level convenience functions:

  3. Added Sobel OpenCL kernel source file to the ipp_opencl_filters example. This kernel shows how to use the clppiFilterFixed3x3_wg_8u16s_C1 function.

Features

Intel® IPP Library for OpenCL functions include APIs for memory management convenience and mid-level image filtering.
  1. Memory management convenience functions:

    These APIs are intended for reading and writing memory from the GPU.


  2. Mid-level convenience functions:

    These APIs are intended for composite operations, such as image processing, that are commonly used in computer vision applications.

Sample Code

This release includes sample code to showcase usage of Intel® IPP Library for OpenCL. The sample code is available in the Intel® IPP Samples package and in the Intel® IPP Library for OpenCL* Reference Manual (Examples of using Intel® IPP Library for OpenCL* inside the Overview section).

Optimization Guideline

When developing applications for running on the integrated GPU, please consider the following optimization guidelines to achieve higher performance:

  1. Integrate the sources into the application instead of linking it as a library. This will be fixed in a future release.
  2. Use the memory management convenience APIs such as clppReadBlock to read memory from global surface while clamping border edges to the required address mode. Use clppWriteBlock API in order to dump resulting pixels from Filter output back to global memory.
  3. Consider adding pre/post processing code inside the OpenCL kernel code that calls the clpp filter primitive. This can reduce CPU/GPU synchronization dependencies. See Intel® IPP Library for OpenCL* Reference Manual for detailed instructions.
  4. In your application design, adapt parallel algorithms for getting best performance on GPU by taking advantage of multiple threads and SIMD operations.
  5. For further OpenCL optimization guidelines, refer to the OpenCL Optimization Guide.

Known Issues and Limitations

The hardware and software limitations are listed below:

Legal Information

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death.  SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.  The information here is subject to change without notice.  Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's Web Site.

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details.

BlueMoon, BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Cilk, Core Inside, E-GOLD, Flexpipe, i960, Intel, the Intel logo, Intel AppUp, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Insider, the Intel Inside logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo, Intel StrataFlash, Intel vPro, Intel XScale, InTru, the InTru logo, the InTru Inside logo, InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Moblin, Pentium, Pentium Inside, Puma, skoool, the skoool logo, SMARTi, Sound Mark, Stay With It, The Creators Project, The Journey Inside, Thunderbolt, Ultrabook, vPro Inside, VTune, Xeon, Xeon Inside, X-GOLD, XMM, X-PMU and XPOSYS are trademarks of Intel Corporation in the U.S. and/or other countries.

* Other names and brands may be claimed as the property of others.

Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

Copyright © 2013, Intel Corporation. All rights reserved.