Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6747 Discussions

Do IPP can run on the specified CPU and specified core ?

samsmile
Beginner
900 Views
Hi All,
I have a series questions about how IPP use the CPU and core resource. Please take a look.
Now, I have a server named TIGW1U which has two 64-bit Quad-Core Intel Xeon processors. And I will use static link with dispatch mode tobuild object code.The details of the server is on the http://us.kontron.com/products/systems+and+platforms/communication+rackmount+servers/carrier+grade+servers/carrier+grade+server+tigw1u.html?searchterm=tigw1u

My question is in the following?
1. Can Ipp support this kind of servers?
2. If IPP can support this server, which type will be if i use ippGetCpuType ?
And which CPU IPP will select in the ippStaticInit()?
Can I designate a CPU for the IPP to use?And how to designate a CPU to the IPP?

3. For thisQuad-Core CPU, how IPP is optimized? I mean, it will use whole Quad-Core? Can I designate only one or two cores for the IPP? Andhow to designate Cores to the IPP?

Look foward for your answers! thanks!


BR
Sam
0 Kudos
3 Replies
Ying_H_Intel
Employee
900 Views

Hello Sam,
IPP is optimized for the broad range of Intel microprocessors: Intel AtomTM Processor, Intel CoreTM2 Quad processors, Intel CoreTM 2 Duo Processors, Intel Xeon processors, Intel Pentium 4 processor and the Intel Itanium 2 processors. Your several is Intel Xeon Processor, So regarding your quesiton,

1) yes, IPP can support. Do you run into any issue when use IPP on your server?
2) What is exact processor type on your machine and Your OS is 64bit or 32bit?

In general, they are Dual socket support for Intel Xeon processors L5410 (45nm) OR for Intel Xeon processors LV 5148 or LV 5128 (65nm), 64bit.

As the article <http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/>,

your CPU will call at least "u8" code. and the CPU type is
  • u8 - New Optimizations for 64-bit applications on Intel CoreTM 2 and Intel Xeon 5100 Processors
  • y8 - New Optimizations for 64-bit applications on 45nm Intel CoreTM2 Duo (Penryn) family processors and Intel CoreTM i7 processors
  • and the CPU type is at least
    ippCpuC2D Intel CoreTM2 Duo processor
    ippCpuC2Q Intel CoreTM2 Quad processor
    Intel CoreTM2 processor with Intel Streaming SIMD Extensions 4.1

    You can designate a CPU to for IPP use, by the funciton ippInitCpu()provide by IPP.
    ippInitCpu, Initializes the version of the library code for the specified processor type.
    Syntax
    IppStatus ippInitCpu(IppCpuType cpu);

    Please see more from IPP manual.
    IPP on-line documentation website:http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/

    but please notes, youcan onlyset the type which the processor can support.For exmaple, if you CPU support SSE4.1 SSE3,SSE2, you can only choose the CPU type below SSE4.1, can'tset the CPU type which support SSE4.2.

    3) As I understand, you may mean the threading of IPP function.
    For some threaded IPP function, it willspawn 4 threads on your 4 cores for optimize purpose. And forthat no- threaded IPP function, it will use only one core. See more at KB : http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-threading-openmp-faq/

    And you can call IPP support function ippSetNumThreads to set the number of threads created. For example ippSetNumThreads(2). then that threaded IPP functions will onlyspawn 2 threads and run 2 cores of 4 cores.

    Regards,
    Ying

    0 Kudos
    samsmile
    Beginner
    900 Views
    Quoting - Ying H (Intel)

    Hello Sam,
    IPP is optimized for the broad range of Intel microprocessors: Intel AtomTM Processor, Intel CoreTM2 Quad processors, Intel CoreTM 2 Duo Processors, Intel Xeon processors, Intel Pentium 4 processor and the Intel Itanium 2 processors. Your several is Intel Xeon Processor, So regarding your quesiton,

    1) yes, IPP can support. Do you run into any issue when use IPP on your server?
    2) What is exact processor type on your machine and Your OS is 64bit or 32bit?

    In general, they are Dual socket support for Intel Xeon processors L5410 (45nm) OR for Intel Xeon processors LV 5148 or LV 5128 (65nm), 64bit.

    As the article <http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/>,

    your CPU will call at least "u8" code. and the CPU type is
  • u8 - New Optimizations for 64-bit applications on Intel CoreTM 2 and Intel Xeon 5100 Processors
  • y8 - New Optimizations for 64-bit applications on 45nm Intel CoreTM2 Duo (Penryn) family processors and Intel CoreTM i7 processors
  • and the CPU type is at least
    ippCpuC2D Intel CoreTM2 Duo processor
    ippCpuC2Q Intel CoreTM2 Quad processor
    Intel CoreTM2 processor with Intel Streaming SIMD Extensions 4.1

    You can designate a CPU to for IPP use, by the funciton ippInitCpu()provide by IPP.
    ippInitCpu, Initializes the version of the library code for the specified processor type.
    Syntax
    IppStatus ippInitCpu(IppCpuType cpu);

    Please see more from IPP manual.
    IPP on-line documentation website:http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation/

    but please notes, youcan onlyset the type which the processor can support.For exmaple, if you CPU support SSE4.1 SSE3,SSE2, you can only choose the CPU type below SSE4.1, can'tset the CPU type which support SSE4.2.

    3) As I understand, you may mean the threading of IPP function.
    For some threaded IPP function, it willspawn 4 threads on your 4 cores for optimize purpose. And forthat no- threaded IPP function, it will use only one core. See more at KB : http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-threading-openmp-faq/

    And you can call IPP support function ippSetNumThreads to set the number of threads created. For example ippSetNumThreads(2). then that threaded IPP functions will onlyspawn 2 threads and run 2 cores of 4 cores.

    Regards,
    Ying


    Hi Ying,
    thanks for your answers. I get useful infomations, but I need some time to get the details. By the way, I can't open the first link.

    BR
    Sam
    0 Kudos
    Ying_H_Intel
    Employee
    900 Views
    Quoting - samsmile

    Hi Ying,
    thanks for your answers. I get useful infomations, but I need some time to get the details. By the way, I can't open the first link.

    BR
    Sam

    Sorry, oneunwanted">" in that URL. it is http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/
    BR
    Ying
    0 Kudos
    Reply