Is There an IPP Function to Detect the Processor Type?

By Ying Song,

Published:10/28/2011   Last Updated:02/08/2017

In Intel® Integrated Performance Primitives (Intel® IPP), there is a new function named ippGetCpuFeatures() (*) that can be used to detect your processor features. It is declared in ippcore.h. This function retrieves CPU features like those returned by the Linux function CPUID.1 and stores them consecutively in the mask pFeaturesMask. The following table lists features stored in the mask. Mask values are defined in the ippdefs.h file.

Note as of version 2018, the IPP library supports the new Intel® Advanced Vector Extensions 512( Intel® AVX-512) instruction.

ippCPU_feature.JPG

Please refer to Intel® IPP developer reference guide Developer Reference for Intel® Integrated Performance Primitives 2019 for latest processor.

Note that the legacy IPP function ippGetCpuType() (**) mixed CPU types and SIMD instruction types. Starting with version 6.0 of the library we strongly recommend using this new function ippGetCpuFeatures() to detect the CPU feature.

Additional Resources

Understanding CPU Dispatching in the Intel® IPP Libraries

Intel® IPP Functions Optimized for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)

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

Product and Performance Information

1

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