                        Intel(R) Integrated Performance Primitives for Linux* Performance Tests

Introduction
============

    The Intel(R) Integrated Performance Primitives (Intel(R) IPP) for Linux* Performance Tests are command line
    programs for testing the performance of each function in the API.

Running the Tests
=================

    Each portion of the Intel(R) IPP API has its own program to gather performance data. In order to run these tests,
    the Intel(R) IPP shared objects must be on the system's path. This can be achieved by running the "ippvars.sh
    intel64" file before executing the desired performance test(s). The tests will be valid for that system's processor
    only. These programs will run without further input and will output large data files (see below). Command line
    options for these tests, including restricting which functions and data are tested, can be found by invoking any
    test with the "-?" option.

Common Command Line Options
===========================

Groups                              Options                         Descriptions
-----------------------------------------------------------------------------------------------------------------------
1. Adjusting Console Input
                                    -A                              Ask parameters before every test from console
                                    -B                              Batch mode

2. Managing Output
                                    -r[<file-name>]                 Create a csv-file and write PS results
                                    -R[<file-name>]                 Add a test results to csv-file
                                    -H[ONLY]                        Add an 'Interest' column to table file [and run only
                                                                    hot tests]
                                    -o[<file-name>]                 Create a txt-file and write console output
                                    -O[<file-name>]                 Add a console output to txt-file
                                    -L<ERR|WARN|PARM|INFO|TRACE>    Set a detail level of the console output
                                    -u[<file-name>]                 Create a csv-file and write summary table ('_sum' is
                                                                    added to default title name)
                                    -U[<file-name>]                 Add a summary table to csv-file ('_sum' is added to
                                                                    default title name)
                                    -g[<file-name>]                 Create a signal file just at the end of the whole
                                                                    testing
                                    -s[-]                           Sort or do not sort functions (sort mode is default)
                                    -e                              Enumerate tests and exit

3. Selecting Functions for Testing
                                    -f < or-pattern>                Run tests of functions with a pattern in name, case
                                                                    sensitive
                                    -f-<not-pattern>                Do not test functions with a pattern in name, case
                                                                    sensitive
                                    -f+<and-pattern>                Run only tests of functions with a pattern in name,
                                                                    case sensitive
                                    -f=< eq-pattern>                Run tests of functions with this full name,  case
                                                                    sensitive
                                    -F<func-name>                   Start testing from function with this full name,
                                                                    case sensitive

4. Operation with .ini Files
                                    -i[<file-name>]                 Read PS parameters from an ini-file
                                    -I[<file-name>]                 Write PS parameters to an ini-file and exit
                                    -P                              Read tested function names from an ini-file

5. Adjust Default Directories and File Names for Input and Output
                                    -n<title-name>                  Set a default title name for ini file and output files
                                    -p<dir-name>                    Set a default directory for input files (example ini
                                                                    and test data files)
                                    -l<dir-name>                    Set a default directory for output files

6. Direct Data Input
                                    -d<name>=<value>                Set a PS parameter value

7. Process Priority
                                    -Y<HIGH/NORMAL>                 Set high or normal process priority (normal is
                                                                    default)

8. Tune Intel(R) IPP Libraries
                                    -T<cpu-name>                    Turn on <cpu-name>-optimizated code using
                                                                    ippSetCpuFeatures function
                                    -N<num-threads>                 Call ippSetNumThreads(<num-treads>)

Reading the Data
================

    Each performance test application outputs a large comma-delimited file of data. There is a header describing
    global data such as the processor and operating system. This is followed by an entry for each test that lists the
    function, its parameters and the time taken to execute each test.

Other Notes
===========

    - GNU Compiler Collection version 3.2, or later is required to run any of the performance tests (for libstdc++.so.5).

    - The data returned by Intel(R) IPP performance testing is sensitive to normal system activities such as CPU power
      state transitions and background task activity. To achieve results that can be compared across multiple runs, we
      recommend that you undertake performance testing on systems with Intel(R) Turbo Boost Technology and C-State
      transitions disabled and all possible background tasks disabled. Running without these settings may result in
      console warnings due to variability of the output data.

    - The performance data in the accompanying CSV files was obtained using computing platforms available at release.

    - For more updated product and performance information, please refer to https://www.intel.com/content/www/us/en/developer/tools/oneapi/ipp.html.

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

Disclaimer
==========

    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.
    UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY
    APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR
    DEATH MAY OCCUR.

    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 go to the Literature Fulfillment Center.
    Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each
    processor family, not across different processor families. See https://www.intel.com/content/www/us/en/processors/processor-numbers.html
    for details.

    BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Core Inside, i960, Intel, the Intel logo,  Intel
    Atom, Intel Atom Inside, Intel Core, Intel Inside, 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 Viiv, Intel vPro, Intel XScale, InTru, the InTru logo, InTru soundmark, Itanium,
    Itanium Inside, MCS, MMX, Moblin, Pentium, Pentium Inside, skoool, the skoool logo, Sound Mark, The Journey Inside,
    vPro Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.
    * Other names and brands may be claimed as the property of others.

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

Copyright (C) 2012, Intel Corporation. All rights reserved.
