<?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 32bit build out-performs 64bit build on mac os x in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852811#M6755</link>
    <description>&lt;P&gt;&lt;BR /&gt;Hello,&lt;/P&gt;&lt;P&gt;It looks that the code is linking with IPP statically, but it does to call ippInit() function. &lt;/P&gt;&lt;P&gt;This function is required by static linkage, or it will only use non optimized code. &lt;/P&gt;&lt;P&gt;Check here for more information: &lt;/P&gt;&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/ipp-dispatcher-control-functions-ippinit-functions/" target="_blank"&gt;http://software.intel.com/en-us/articles/ipp-dispatcher-control-functions-ippinit-functions/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chao&lt;/P&gt;</description>
    <pubDate>Fri, 09 Apr 2010 00:38:25 GMT</pubDate>
    <dc:creator>Chao_Y_Intel</dc:creator>
    <dc:date>2010-04-09T00:38:25Z</dc:date>
    <item>
      <title>32bit build out-performs 64bit build on mac os x</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852810#M6754</link>
      <description>I have noticed that our 32bit builds perform better than our 64bit builds on mac osx.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have built a test application and I am timing muliple calls to "&lt;SPAN style="line-height: 16px;"&gt;ippsSub_32f".&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;The 64 bit build is almost twice as slow as the 32bit build of the exact same code.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;Here is the output:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;$ ./ippTest32&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;DIV&gt;Time Taken: 70.199000&lt;/DIV&gt;&lt;DIV&gt;$ ./ippTest64&lt;/DIV&gt;&lt;DIV&gt;Time Taken: 112.907000&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="line-height: normal; white-space: pre;"&gt;	&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;Has anybody else noticed this?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;Here are the build commands:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;DIV id="_mcePaste"&gt;&lt;SUP&gt;g++ -o ippTest32.o -c -03 -I/opt/intel/Compiler/11.1/080/Frameworks/ipp/Headers -m32 ipptest.cpp
g++ -o ippTest32 -L/opt/intel/Compiler/11.1/080/Frameworks/ipp/lib -lippiemerged -lippimerged -lippsemerged -lippsmerged /opt/intel/Compiler/11.1/080/Frameworks/ipp/lib/libippcore.a -m32 ippTest32.o
g++ -o ippTest64.o -c -03 -I/opt/intel/Compiler/11.1/080/Frameworks/ipp/Headers ipptest.cpp
g++ -o ippTest64 -L/opt/intel/Compiler/11.1/080/Frameworks/ipp/lib -lippiemerged -lippimerged -lippsemerged -lippsmerged /opt/intel/Compiler/11.1/080/Frameworks/ipp/lib/libippcore.a ippTest64.o&lt;/SUP&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="font-size: xx-small;"&gt;&lt;SPAN style="font-size: 9px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="font-size: xx-small;"&gt;&lt;SPAN style="font-size: 9px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="font-size: xx-small;"&gt;&lt;SPAN style="font-size: 9px;"&gt;&lt;SPAN style="font-size: 11px; white-space: normal; font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;SPAN style="white-space: pre;"&gt;and the test code (the complete file is attached):&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="color: #cc00a2;"&gt;int&lt;/SPAN&gt; main()&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;{&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;timeVal start, end, diff;&lt;/P&gt;
&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;std::vector&amp;lt;&lt;SPAN style="color: #cc00a2;"&gt;float&lt;/SPAN&gt;&amp;gt; in1,in2,out;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;in1.resize(&lt;SPAN style="color: #3d00db;"&gt;100000&lt;/SPAN&gt;,&lt;SPAN style="color: #3d00db;"&gt;1&lt;/SPAN&gt;);&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;in2.resize(&lt;SPAN style="color: #3d00db;"&gt;100000&lt;/SPAN&gt;,&lt;SPAN style="color: #3d00db;"&gt;2&lt;/SPAN&gt;);&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;out.resize(&lt;SPAN style="color: #3d00db;"&gt;100000&lt;/SPAN&gt;);&lt;/P&gt;
&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;start = TimeNow();&lt;/P&gt;
&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;&lt;SPAN style="color: #cc00a2;"&gt;for&lt;/SPAN&gt; (&lt;SPAN style="color: #cc00a2;"&gt;int&lt;/SPAN&gt; j=&lt;SPAN style="color: #3d00db;"&gt;0&lt;/SPAN&gt;;j&amp;lt;&lt;SPAN style="color: #3d00db;"&gt;1000&lt;/SPAN&gt;;++j) {&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;ippsSub_32f(&amp;amp;in1[&lt;SPAN style="color: #3d00db;"&gt;0&lt;/SPAN&gt;],&amp;amp;in2[&lt;SPAN style="color: #3d00db;"&gt;0&lt;/SPAN&gt;],&amp;amp;out[&lt;SPAN style="color: #3d00db;"&gt;0&lt;/SPAN&gt;],out.size());&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/P&gt;
&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;end = TimeNow();&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;diff = TimeDiff(end,start);&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;&lt;SPAN style="color: #cc00a2;"&gt;double&lt;/SPAN&gt; diffMS = timeVal_to_Millisecs(diff);&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #e20300;"&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;printf(&lt;/SPAN&gt;"Time Taken: %f\\n"&lt;SPAN style="color: #000000;"&gt;,diffMS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #cc00a2;"&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;&lt;/SPAN&gt;return&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3d00db;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo;"&gt;}&lt;/P&gt;
&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 06 Apr 2010 14:49:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852810#M6754</guid>
      <dc:creator>ajcgreenparrotpictur</dc:creator>
      <dc:date>2010-04-06T14:49:56Z</dc:date>
    </item>
    <item>
      <title>32bit build out-performs 64bit build on mac os x</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852811#M6755</link>
      <description>&lt;P&gt;&lt;BR /&gt;Hello,&lt;/P&gt;&lt;P&gt;It looks that the code is linking with IPP statically, but it does to call ippInit() function. &lt;/P&gt;&lt;P&gt;This function is required by static linkage, or it will only use non optimized code. &lt;/P&gt;&lt;P&gt;Check here for more information: &lt;/P&gt;&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/ipp-dispatcher-control-functions-ippinit-functions/" target="_blank"&gt;http://software.intel.com/en-us/articles/ipp-dispatcher-control-functions-ippinit-functions/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chao&lt;/P&gt;</description>
      <pubDate>Fri, 09 Apr 2010 00:38:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852811#M6755</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2010-04-09T00:38:25Z</dc:date>
    </item>
    <item>
      <title>32bit build out-performs 64bit build on mac os x</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852812#M6756</link>
      <description>Thanks Chao,&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;that has solved the performance issues with our application.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Interestingly, for the test app included previously, adding ippInit() appears to slow down the 32bit performance (although this does not seem to be the case for our main application which uses a large range of IPP functions).&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The timings observed are as follows:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;P&gt;without ippInit()&lt;/P&gt;
&lt;P&gt;32: Time Taken: 73.700000&lt;/P&gt;
&lt;P&gt;64: Time Taken: 129.448000&lt;/P&gt;
&lt;P&gt;with IppInit()&lt;/P&gt;
&lt;P&gt;32: Time Taken: 107.572000&lt;/P&gt;
&lt;P&gt;64: Time Taken: 105.004000&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style="font-size: medium;"&gt;&lt;SUP&gt;The processor being used is an Intel Core 2 Duo (2.4 Ghz)&lt;/SUP&gt;&lt;SPAN style="line-height: 16px;"&gt;&lt;SUP&gt;&lt;BR /&gt;&lt;/SUP&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 09 Apr 2010 11:57:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/32bit-build-out-performs-64bit-build-on-mac-os-x/m-p/852812#M6756</guid>
      <dc:creator>ajcgreenparrotpictur</dc:creator>
      <dc:date>2010-04-09T11:57:25Z</dc:date>
    </item>
  </channel>
</rss>

