<?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 Some advantage can be gain in Intel® ISA Extensions</title>
    <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937766#M3758</link>
    <description>&lt;P&gt;Some advantage can be gain also when floating point code does not have data interdependencies this is also relevant to single thread execution port utilisation the best example could be a series of independent fmul or fadd operations.&lt;/P&gt;</description>
    <pubDate>Mon, 08 Jul 2013 17:38:39 GMT</pubDate>
    <dc:creator>Bernard</dc:creator>
    <dc:date>2013-07-08T17:38:39Z</dc:date>
    <item>
      <title>To use FPU</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937753#M3745</link>
      <description>&lt;P&gt;The following code is to use FPU. I run it on E5-2620. It only upto 2 GFlops. If I want to 2*8 GFlops, how could I code program?&lt;/P&gt;
&lt;P&gt;Any help will be appreciated.&lt;/P&gt;
&lt;P&gt;void* test_pd_avx()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; double x[4]={12.02,14.34,34.23,234.34};&lt;BR /&gt;&amp;nbsp; double y[4]={123.234,234.234,675.34,3453.345};&lt;BR /&gt;&amp;nbsp; __m256d mx=_mm256_load_pd(x);&lt;BR /&gt;&amp;nbsp; __m256d my=_mm256_load_pd(y);&lt;BR /&gt;&amp;nbsp; for(;;)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __m256d mz=_mm256_mul_pd(mx,my);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;
&lt;P&gt;The Compiler Option: icc test.c -O0&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jun 2013 09:13:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937753#M3745</guid>
      <dc:creator>GHui</dc:creator>
      <dc:date>2013-06-28T09:13:53Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...The following code is to</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937754#M3746</link>
      <description>&amp;gt;&amp;gt;...The following code is to use FPU...

Here are a couple of notes:

- It doesn't use x86 floating-point unit and it uses SSE floating-point unit

- Use OpenMP ( /Qopenmp ) to parallelize processing and set OpenMP environment variable OMP_NUM_THREADS to 8
...
/Qopenmp - enable the compiler to generate multi-threaded code based on the OpenMP* directives ( same as /openmp )
..

- You could also try to use Intel C++ compiler option /Qparallel:
...
/Qparallel - enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel
...

&amp;gt;&amp;gt;...The Compiler Option: &lt;STRONG&gt;icc test.c -O0&lt;/STRONG&gt;...

What version of Intel C++ compiler and platform ( OS ) do you use?</description>
      <pubDate>Mon, 01 Jul 2013 04:42:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937754#M3746</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-01T04:42:58Z</dc:date>
    </item>
    <item>
      <title>GHui,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937755#M3747</link>
      <description>&lt;P&gt;GHui,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; If you really want to run at top speed, program in assembly rather than intrinsics.. so you "really" know what's happening with register allocation underneath the covers. &amp;nbsp;To achieve max utilization, you need to use both the "add" and the "mul" pipes on your code, I only see you using the "mul" unit. &amp;nbsp;You need to use 256-bits as well, since the units are 256-bits in size. &amp;nbsp;Another point.. while in some trivial and pointless code you might get full utulization while you're hitting in the L1D.. you want to be able to get this performance even when you're not hitting in the L1D.. maybe the L2 or memory where you're data resides. &amp;nbsp;If you are only focused on the L1D hit case.. what happens when you're getting that data to the L1D.. you're likely not doing any computation during that copy of data to the L1D. &amp;nbsp;To do this, while you're doing computation, also 1) block your data so as to arrange it's locality within the caches, the L2 preferrably, 2) try to reuse loads of data, if the algorithm allows it, so as to lessen the # of LDs per cycle you need to perform, this is important when you're filling data into the L1D while also loading it to the core, you can't fill and load 2 ops at the same time likely due to design constraints of the L1D, 3) make sure you don't have TLB misses.. a TLB miss is wasted cycles, 7 on SB/IB and HW, where you are achieving nothing because you don't have the physical address available to fetch the $line you need from the cache hierarchy or memory (monitor you're TLB miss count per 1000 instructions.. if it's an issue use huge pages or change how you're doing the computation via loop reordering or blocking of data) and 4) determine what the bandwidth constrains are upon your code to get max performance in the FPU, is it even possible, does the L1D have enough bandwidth. &amp;nbsp;You might also use "software prefetch" instructions .. so as to pre-emptively fill data that "you" know you need. &amp;nbsp;HW prefetchers are very useful.. but they'll never be able to predict the future of memory accesses like that algorithm's creater can. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;My DGEMM/SGEMM/etc, achieves 96% efficiency on SB/IB and soon HW and it only requires a GB or 2 of bandwidth from the system memory to do so. &amp;nbsp;So.. I speak from experience. &amp;nbsp;Focus on 1T, don't worry about parallelization.. solve the simple problem before you complicate it. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perfwise&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 13:12:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937755#M3747</guid>
      <dc:creator>perfwise</dc:creator>
      <dc:date>2013-07-01T13:12:03Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;You might also use</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937756#M3748</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;You might also use "software prefetch" instructions&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;For posted code example software prefetch will not be efective.I do not think that hardware prefetch will trigger unless that code causes 2 consecutive misses.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 16:14:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937756#M3748</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-01T16:14:27Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...For posted code example</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937757#M3749</link>
      <description>&amp;gt;&amp;gt;...For posted code example software prefetch will not be efective..

Was the problem related to software prefetches?</description>
      <pubDate>Mon, 01 Jul 2013 16:20:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937757#M3749</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-01T16:20:09Z</dc:date>
    </item>
    <item>
      <title>Hello GHui,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937758#M3750</link>
      <description>&lt;P&gt;Hello GHui,&lt;/P&gt;
&lt;P&gt;I'm moving this thread to AVX forum (&lt;A href="http://software.intel.com/en-us/forums/intel-avx-and-cpu-instructions"&gt;http://software.intel.com/en-us/forums/intel-avx-and-cpu-instructions&lt;/A&gt;). I hope the AVX forum is more familiar with how to get max performance from AVX.&lt;/P&gt;
&lt;P&gt;Pat&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 16:29:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937758#M3750</guid>
      <dc:creator>Patrick_F_Intel1</dc:creator>
      <dc:date>2013-07-01T16:29:33Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;Was the problem related to</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937759#M3751</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;Was the problem related to software prefetches?&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;No,but software prefetches were mentioned in responding post. &lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 16:52:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937759#M3751</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-01T16:52:32Z</dc:date>
    </item>
    <item>
      <title>I mentioned sw pref.. because</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937760#M3752</link>
      <description>&lt;P&gt;I mentioned sw pref.. because for "very optimized" code you might want to use it from my experience. &amp;nbsp;In the posted code, it's poor to even try to maintain max mflops. &amp;nbsp;You are not using FMA or the ADD unit. &amp;nbsp;HW can do 2 MUL, 2 FMA, 1 MUL + 1 FMA, 1 FMA + 1 ADD or 1 MUL + 1 ADD per clk. &amp;nbsp;You need a code example which is keeping both pipes busy.. which this example is not. &amp;nbsp;My comments are more generic.. about how you get the best performance through a cpu when considering LD bandwidth, dispatch bandwidth (you can only do 4 uops per clk dispatched), fill bw into the L1D, L2 bandwidth, latency of TLB and memory. &amp;nbsp;Some or all of these come into play in real code.. depending upon what you're trying to do.&lt;/P&gt;
&lt;P&gt;Perfwise&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 19:07:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937760#M3752</guid>
      <dc:creator>perfwise</dc:creator>
      <dc:date>2013-07-01T19:07:45Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...If I want to 2*8 GFlops,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937761#M3753</link>
      <description>&amp;gt;&amp;gt;...If I want to 2*8 GFlops, how could I code program?..

GHui,

Here are results of my very quick verification how &lt;STRONG&gt;/Qparallel&lt;/STRONG&gt; works. So, if your loop is a simple one ( or a couple of loops ) you could easily acclerate computations without lots of efforts.

&lt;STRONG&gt;[ Test 1 - /Qparallel is Not used ]&lt;/STRONG&gt;

icl.exe /O3 /MD /Qstd=c++0x /Qrestrict /Qansi-alias matmul.cpp

Test Started
Matrix multiplication C[2048x2048] = A[2048x2048] * B[2048x2048]
Intializing matrix data
Measuring performance
Matrix multiplication completed in &lt;STRONG&gt;16.39149&lt;/STRONG&gt; seconds
Deallocating memory
Test Completed

Note: 1 CPU was used

&lt;STRONG&gt;[ Test 2 - /Qparallel is used ]&lt;/STRONG&gt;

icl.exe /O3 /MD /Qstd=c++0x /Qrestrict /Qansi-alias &lt;STRONG&gt;/Qparallel&lt;/STRONG&gt; matmul.cpp

Test Started
Matrix multiplication C[2048x2048] = A[2048x2048] * B[2048x2048]
Intializing matrix data
Measuring performance
Matrix multiplication completed in &lt;STRONG&gt;3.53025&lt;/STRONG&gt; seconds
Deallocating memory
Test Completed

Note: 8 CPUs were used

&lt;STRONG&gt;Summary:&lt;/STRONG&gt; Take into account that I have Not changed anything in C/C++ codes in order to increase performance. Even if performance increased by ~4.64x you could apply many other tricks to improve that number.

Tests are done on Dell Precision Mobile M4700 with Intel Core i7-3840QM ( Ivy Bridge / 4 cores / 8 logical CPUs / ark.intel.com/compare/70846 ).</description>
      <pubDate>Tue, 02 Jul 2013 00:06:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937761#M3753</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-02T00:06:27Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;I mentioned sw pref..</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937762#M3754</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;I mentioned sw pref.. because for "very optimized" code you might want to use it from my experience.&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;Yes that is true.I also later realized that your comment was more like general advise.&lt;/P&gt;
&lt;P&gt;If I am not wrong the posted code example (per one loop cycle) at least two memory loads can be executed per one cpu cycle utilising Port2 and Port3 next loop integer logic will be executed also at the same time even out of order if the there is memory stall and non destructive AVX fmul instruction will be executed.I think that during the fmul execution already memory store reference will be resolved.The longest latency is fmul instruction.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2013 05:49:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937762#M3754</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-02T05:49:19Z</dc:date>
    </item>
    <item>
      <title>Sergey,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937763#M3755</link>
      <description>&lt;P&gt;Sergey,&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;Note: 8 CPUs were used&lt;BR /&gt;...&lt;BR /&gt;Tests are done on Dell Precision Mobile M4700 with Intel Core i7-3840QM ( Ivy Bridge / 4 cores / 8 logical CPUs / ark.intel.com/compare/70846 ).&lt;BR /&gt;&amp;lt;&amp;lt;&lt;/P&gt;
&lt;P&gt;4 cores == 4 SSE/AVX floating point engines&lt;BR /&gt;HT == 8 contexts (set of registers) with two threads of each core sharing the&amp;nbsp;one SSE/AVX floating point engine of the core.&lt;/P&gt;
&lt;P&gt;HT will see some advantage over 1 thread per core when a thread stalls for memory or last level cache fetch/store. My experience was about 15% improvement. Your 4.64x improvement&amp;nbsp;/ 4 = 1.16, or 16% improvement in your 1 core vs 4 core experiment.&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jul 2013 17:27:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937763#M3755</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2013-07-04T17:27:28Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...HT will see some</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937764#M3756</link>
      <description>&amp;gt;&amp;gt;...HT will see some advantage over 1 thread per core when a thread stalls for memory or last level cache fetch/store.
&amp;gt;&amp;gt;&lt;STRONG&gt;My experience was about 15% improvement&lt;/STRONG&gt;. &lt;STRONG&gt;Your&lt;/STRONG&gt; 4.64x improvement / 4 = 1.16, or &lt;STRONG&gt;16% improvement&lt;/STRONG&gt; in your
&amp;gt;&amp;gt;1 core vs 4 core experiment.

I knew that processing would be done faster and it is good to see that our results are consistent. Thanks for the note, Jim.</description>
      <pubDate>Thu, 04 Jul 2013 22:59:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937764#M3756</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-07-04T22:59:00Z</dc:date>
    </item>
    <item>
      <title>I should also mention that</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937765#M3757</link>
      <description>&lt;P&gt;I should also mention that each HT has a complete set of integer ALU's and instruction pipeline. A goodly portion of any program includes integer (address) manipulation. While one HT is say fetching a pointer and computing an offset the other HT sibling has relatively free access to the FPU/SSE/AVX unint (the first thread may have pending operations too, and in which case the advatage to the second thread is diminished). The 15% improvement I experienced is usually found when multiple threads are working on different slices of the same array, which usually also happens to have little integer math other than adding a stride to a register.&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Sat, 06 Jul 2013 12:53:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937765#M3757</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2013-07-06T12:53:43Z</dc:date>
    </item>
    <item>
      <title>Some advantage can be gain</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937766#M3758</link>
      <description>&lt;P&gt;Some advantage can be gain also when floating point code does not have data interdependencies this is also relevant to single thread execution port utilisation the best example could be a series of independent fmul or fadd operations.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jul 2013 17:38:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937766#M3758</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-08T17:38:39Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;HT will see some advantage</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937767#M3759</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;HT will see some advantage over 1 thread per core when a thread stalls for memory or last level cache fetch/store. My experience was about 15% improvement. Your 4.64x improvement&amp;nbsp;/ 4 = 1.16, or 16% improvement in your 1 core vs 4 core experiment.&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;There will be also some advantage due to different set of instruction &amp;nbsp;if executed by both threads at the same time.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jul 2013 17:49:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937767#M3759</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-08T17:49:48Z</dc:date>
    </item>
    <item>
      <title>Quote:Sergey Kostrov wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937768#M3760</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Sergey Kostrov wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt; Use OpenMP ( /Qopenmp ) to parallelize processing and set OpenMP environment variable OMP_NUM_THREADS to 8&lt;BR /&gt;&amp;gt;&amp;gt; You could also try to use Intel C++ compiler option /Qparallel:&lt;/P&gt;
&lt;P&gt;I use pthread affinity to bind the thread to core. And every core is upto 2Gflops.&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;What version of Intel C++ compiler and platform ( OS ) do you use?&lt;/P&gt;
&lt;P&gt;I user ics2013.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2013 16:15:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937768#M3760</guid>
      <dc:creator>GHui</dc:creator>
      <dc:date>2013-07-10T16:15:02Z</dc:date>
    </item>
    <item>
      <title>Quote:Sergey Kostrov wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937769#M3761</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Sergey Kostrov wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;...HT will see some advantage over 1 thread per core when a thread stalls for memory or last level cache fetch/store.&lt;BR /&gt; &amp;gt;&amp;gt;&lt;STRONG&gt;My experience was about 15% improvement&lt;/STRONG&gt;. &lt;STRONG&gt;Your&lt;/STRONG&gt; 4.64x improvement / 4 = 1.16, or &lt;STRONG&gt;16% improvement&lt;/STRONG&gt; in your&lt;BR /&gt; &amp;gt;&amp;gt;1 core vs 4 core experiment.&lt;/P&gt;
&lt;P&gt;I knew that processing would be done faster and it is good to see that our results are consistent. Thanks for the note, Jim.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If I enable HT, every core's utilization is 1.5Gflops. While I disable HT, every core's utilization is 2Gflops.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2013 16:19:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937769#M3761</guid>
      <dc:creator>GHui</dc:creator>
      <dc:date>2013-07-10T16:19:58Z</dc:date>
    </item>
    <item>
      <title>Quote:perfwise wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937770#M3762</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;perfwise wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;HW can do 2 MUL, 2 FMA, 1 MUL + 1 FMA, 1 FMA + 1 ADD or 1 MUL + 1 ADD per clk. &amp;nbsp;You need a code example which is keeping both pipes busy.. which this example is not.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Thanks, I will try this method.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2013 16:34:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937770#M3762</guid>
      <dc:creator>GHui</dc:creator>
      <dc:date>2013-07-10T16:34:01Z</dc:date>
    </item>
    <item>
      <title>My purpose for this code is</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937771#M3763</link>
      <description>&lt;P&gt;My purpose for this code is to known what code can get max performance from AVX.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2013 16:45:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937771#M3763</guid>
      <dc:creator>GHui</dc:creator>
      <dc:date>2013-07-10T16:45:21Z</dc:date>
    </item>
    <item>
      <title>Quote:GHui wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937772#M3764</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;GHui wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Quote:&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;EM&gt;Sergey Kostrov&lt;/EM&gt;wrote:
&lt;P&gt;&amp;gt;&amp;gt;...HT will see some advantage over 1 thread per core when a thread stalls for memory or last level cache fetch/store.&lt;BR /&gt; &amp;gt;&amp;gt;&lt;STRONG&gt;My experience was about 15% improvement&lt;/STRONG&gt;. &lt;STRONG&gt;Your&lt;/STRONG&gt; 4.64x improvement / 4 = 1.16, or &lt;STRONG&gt;16% improvement&lt;/STRONG&gt; in your&lt;BR /&gt; &amp;gt;&amp;gt;1 core vs 4 core experiment.&lt;/P&gt;
&lt;P&gt;I knew that processing would be done faster and it is good to see that our results are consistent. Thanks for the note, Jim.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If I enable HT, every core's utilization is 1.5Gflops. While I disable HT, every core's utilization is 2Gflops.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Do you want to use multithreading on that piece of code.You will not speed up the execution of your code and only overhead of thread creation will be greater &amp;nbsp;that running time of that code.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jul 2013 16:57:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/To-use-FPU/m-p/937772#M3764</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-07-10T16:57:14Z</dc:date>
    </item>
  </channel>
</rss>

