<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ippStaticInit and non-Intel CPU in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896877#M12296</link>
    <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/428147"&gt;Kaan Gk&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;I'm currently using static version of ipp, by calling ippStaticInit. When calling ippStaticInit, I get the "ippStsNonIntelCpu" result. That seems to be OK.&lt;BR /&gt;I remember that Mr. Dudnik wrote on one of the old threads that ipp works by CPU features, not detected processor type.&lt;BR /&gt;But the documentation says different:&lt;BR /&gt;&lt;BR /&gt;Return Values&lt;BR /&gt;ippStsNoErr&lt;BR /&gt;Indicates that the most appropriate static code of the Intel IPP software is successfully set. &lt;BR /&gt;ippStsNonIntelCpu &lt;BR /&gt;Indicates that the static version of &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;generic &lt;/SPAN&gt;&lt;/STRONG&gt;code for Intel Architecture is set. &lt;BR /&gt;ippStsNoOperationInDll &lt;BR /&gt;Indicates that there is no such operation in the dynamic version of the library. &lt;BR /&gt;&lt;BR /&gt;So, am I getting the (for example SSE) optimized versions on an AMD processor, or not? Is there a way being sure about which version is called? (Other than installing a debugger on the target machine, and checking the actual prefixes of called functions?)&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Kaan, &lt;BR /&gt;&lt;BR /&gt;Youmay checkthe actual optimiziedversionbyadding the belowdetect code in your code, for example, &lt;BR /&gt;&lt;BR /&gt;ippStaticInit(); // using the static merged libraries&lt;BR /&gt;&lt;BR /&gt;// Print the version of ipp being used&lt;BR /&gt;const IppLibraryVersion* lib = ippiGetLibVersion();&lt;BR /&gt;printf("%s %s %d.%d.%d.%dn", lib-&amp;gt;Name, lib-&amp;gt;Version,lib-&amp;gt;major, lib-&amp;gt;minor, lib-&amp;gt;majorBuild, lib-&amp;gt;build);&lt;BR /&gt;&lt;BR /&gt;it will return theactual optimized code on your target machine, likeon my core 2 duo processor, it returns "v8" code&lt;BR /&gt;&lt;BR /&gt;ippiv8l.lib 6.1 build 137.20 6.1.137.809&lt;BR /&gt;&lt;BR /&gt;For details, please see &lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/"&gt;http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;IA-32 Intel architecture&lt;BR /&gt; o&lt;/STRONG&gt; &lt;STRONG&gt;px&lt;/STRONG&gt; - C-optimized for all IA-32 processors
&lt;P&gt;o &lt;STRONG&gt;a6&lt;/STRONG&gt; - Optimized for Pentium III processors (it is removed in Intel IPP v6.0)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;w7&lt;/STRONG&gt; - Optimized for Pentium 4 processors&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;t7&lt;/STRONG&gt; - Optimized for Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;v8&lt;/STRONG&gt; - New Optimizations for 32-bit applications on Intel Core&lt;SUP&gt;TM&lt;/SUP&gt;2 and Intel Xeon 5100 processors&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;p8&lt;/STRONG&gt; - New Optimizations for 32-bit applications on 45nm Intel Core&lt;SUP&gt;TM&lt;/SUP&gt;2 Duo (Penryn) family processors and Intel Core&lt;SUP&gt;TM&lt;/SUP&gt; i7 processors (Nehalem)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;s8 &lt;/STRONG&gt;- Optimized for Intel Atom&lt;SUP&gt;TM&lt;/SUP&gt; Processors ( new in Intel IPP v6.0)&lt;/P&gt;
&lt;BR /&gt;Andthe documention&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-is-there-any-function-to-detect-processor-type/"&gt;http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-is-there-any-function-to-detect-processor-type/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;you can also usefunction ippGetCpuFeatures()&lt;/EM&gt; to detect the processor features. It is new feature since V6.0. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying &lt;BR /&gt;</description>
    <pubDate>Mon, 02 Nov 2009 05:03:14 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2009-11-02T05:03:14Z</dc:date>
    <item>
      <title>ippStaticInit and non-Intel CPU</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896876#M12295</link>
      <description>I'm currently using static version of ipp, by calling ippStaticInit. When calling ippStaticInit, I get the "ippStsNonIntelCpu" result. That seems to be OK.&lt;BR /&gt;I remember that Mr. Dudnik wrote on one of the old threads that ipp works by CPU features, not detected processor type.&lt;BR /&gt;But the documentation says different:&lt;BR /&gt;&lt;BR /&gt;Return Values&lt;BR /&gt;ippStsNoErr&lt;BR /&gt;Indicates that the most appropriate static code of the Intel IPP software is successfully set. &lt;BR /&gt;ippStsNonIntelCpu &lt;BR /&gt;Indicates that the static version of &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;generic &lt;/SPAN&gt;&lt;/STRONG&gt;code for Intel Architecture is set. &lt;BR /&gt;ippStsNoOperationInDll &lt;BR /&gt;Indicates that there is no such operation in the dynamic version of the library. &lt;BR /&gt;&lt;BR /&gt;So, am I getting the (for example SSE) optimized versions on an AMD processor, or not? Is there a way being sure about which version is called? (Other than installing a debugger on the target machine, and checking the actual prefixes of called functions?)&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 31 Oct 2009 09:22:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896876#M12295</guid>
      <dc:creator>Kaan_Gök</dc:creator>
      <dc:date>2009-10-31T09:22:37Z</dc:date>
    </item>
    <item>
      <title>Re: ippStaticInit and non-Intel CPU</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896877#M12296</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/428147"&gt;Kaan Gk&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;I'm currently using static version of ipp, by calling ippStaticInit. When calling ippStaticInit, I get the "ippStsNonIntelCpu" result. That seems to be OK.&lt;BR /&gt;I remember that Mr. Dudnik wrote on one of the old threads that ipp works by CPU features, not detected processor type.&lt;BR /&gt;But the documentation says different:&lt;BR /&gt;&lt;BR /&gt;Return Values&lt;BR /&gt;ippStsNoErr&lt;BR /&gt;Indicates that the most appropriate static code of the Intel IPP software is successfully set. &lt;BR /&gt;ippStsNonIntelCpu &lt;BR /&gt;Indicates that the static version of &lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;generic &lt;/SPAN&gt;&lt;/STRONG&gt;code for Intel Architecture is set. &lt;BR /&gt;ippStsNoOperationInDll &lt;BR /&gt;Indicates that there is no such operation in the dynamic version of the library. &lt;BR /&gt;&lt;BR /&gt;So, am I getting the (for example SSE) optimized versions on an AMD processor, or not? Is there a way being sure about which version is called? (Other than installing a debugger on the target machine, and checking the actual prefixes of called functions?)&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Kaan, &lt;BR /&gt;&lt;BR /&gt;Youmay checkthe actual optimiziedversionbyadding the belowdetect code in your code, for example, &lt;BR /&gt;&lt;BR /&gt;ippStaticInit(); // using the static merged libraries&lt;BR /&gt;&lt;BR /&gt;// Print the version of ipp being used&lt;BR /&gt;const IppLibraryVersion* lib = ippiGetLibVersion();&lt;BR /&gt;printf("%s %s %d.%d.%d.%dn", lib-&amp;gt;Name, lib-&amp;gt;Version,lib-&amp;gt;major, lib-&amp;gt;minor, lib-&amp;gt;majorBuild, lib-&amp;gt;build);&lt;BR /&gt;&lt;BR /&gt;it will return theactual optimized code on your target machine, likeon my core 2 duo processor, it returns "v8" code&lt;BR /&gt;&lt;BR /&gt;ippiv8l.lib 6.1 build 137.20 6.1.137.809&lt;BR /&gt;&lt;BR /&gt;For details, please see &lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/"&gt;http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understanding-cpu-optimized-code-used-in-intel-ipp/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;IA-32 Intel architecture&lt;BR /&gt; o&lt;/STRONG&gt; &lt;STRONG&gt;px&lt;/STRONG&gt; - C-optimized for all IA-32 processors
&lt;P&gt;o &lt;STRONG&gt;a6&lt;/STRONG&gt; - Optimized for Pentium III processors (it is removed in Intel IPP v6.0)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;w7&lt;/STRONG&gt; - Optimized for Pentium 4 processors&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;t7&lt;/STRONG&gt; - Optimized for Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;v8&lt;/STRONG&gt; - New Optimizations for 32-bit applications on Intel Core&lt;SUP&gt;TM&lt;/SUP&gt;2 and Intel Xeon 5100 processors&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;p8&lt;/STRONG&gt; - New Optimizations for 32-bit applications on 45nm Intel Core&lt;SUP&gt;TM&lt;/SUP&gt;2 Duo (Penryn) family processors and Intel Core&lt;SUP&gt;TM&lt;/SUP&gt; i7 processors (Nehalem)&lt;/P&gt;
&lt;P&gt;o &lt;STRONG&gt;s8 &lt;/STRONG&gt;- Optimized for Intel Atom&lt;SUP&gt;TM&lt;/SUP&gt; Processors ( new in Intel IPP v6.0)&lt;/P&gt;
&lt;BR /&gt;Andthe documention&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-is-there-any-function-to-detect-processor-type/"&gt;http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-is-there-any-function-to-detect-processor-type/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;you can also usefunction ippGetCpuFeatures()&lt;/EM&gt; to detect the processor features. It is new feature since V6.0. &lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Ying &lt;BR /&gt;</description>
      <pubDate>Mon, 02 Nov 2009 05:03:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896877#M12296</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2009-11-02T05:03:14Z</dc:date>
    </item>
    <item>
      <title>Re: ippStaticInit and non-Intel CPU</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896878#M12297</link>
      <description>&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV style="margin:0px;"&gt;Thank you very much. I'll check it as you suggested. I'll also do a simple performance test by not calling ippStaticInit vs calling ippStaticInit. That'll show the actual optimized vs unoptimized difference.&lt;/DIV&gt;
&lt;BR /&gt;</description>
      <pubDate>Tue, 03 Nov 2009 07:04:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/ippStaticInit-and-non-Intel-CPU/m-p/896878#M12297</guid>
      <dc:creator>Kaan_Gök</dc:creator>
      <dc:date>2009-11-03T07:04:42Z</dc:date>
    </item>
  </channel>
</rss>

