Building a Custom SO

A custom shared object (SO) is useful for an application that has few internal modules, and only these modules share Intel IPP code. In this case, you can use dynamic linking with a customized SO containing only those Intel IPP functions that the application uses.

The following table summarizes features of the custom SO.

Custom SO Features

Benefits

Drawbacks

  • Run-time dispatching of processor-specific optimizations

  • Reduced hard-drive footprint compared with a full set of Intel IPP

    SOs

  • Smallest installation package to accommodate use of some of the same Intel IPP functions by multiple applications

  • Application executable requires access to the Intel compiler specific run-time libraries that are delivered with Intel IPP

  • Developer resources are needed to create and maintain the custom

    SOs

  • Integration of new processor-specific optimizations requires rebuilding the custom

    SOs

  • Not appropriate for kernel-mode/device-driver/ring-0 code

To create a custom SO, you need to create a separate build step or project that generates the SO and stubs. The specially developed sample demonstrates how to do it. Refer to the latest updated custom so sample from the Intel IPP samples directory: /ipp-samples/advanced-usage/linkage/customso at http://www.intel.com/software/products/ipp/samples.htm.

Optimization Notice

The Intel® Integrated Performance Primitives (Intel® IPP) library contains functions that are more highly optimized for Intel microprocessors than for other microprocessors. While the functions in the Intel® IPP library offer optimizations for both Intel and Intel-compatible microprocessors, depending on your code and other factors, you will likely get extra performance on Intel microprocessors.

While the paragraph above describes the basic optimization approach for the Intel® IPP library as a whole, the library may or may not be optimized to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental Streaming SIMD Extensions 3 (Intel® 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.

Intel recommends that you evaluate other library products to determine which best meets your requirements.


Submit feedback on this help topic

Copyright © 2008 - 2010, Intel Corporation. All rights reserved.