<?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 Quote:Robert Ioffe (Intel) in OpenCL* for CPU</title>
    <link>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112177#M5320</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Robert Ioffe (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi Lucas,&lt;/P&gt;

&lt;P&gt;1. Yes,&lt;/P&gt;

&lt;P&gt;2. Yes. The 8 by 8 workgroup will end up executing on 4 hardware threads, though about the mapping of the individual work items I am not quite sure - your code shouldn't assume a particular mapping.&lt;/P&gt;

&lt;P&gt;3. Typically, you should assume SIMD16 instruction will execute in 4 cycles on one SIMD4 FPU.&lt;/P&gt;

&lt;P&gt;4. Correct. Local memory is accessed thru 16 banks, 4 bytes (32-bits) could be fetched from each bank in a single access.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi Robert,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;1.Based on the thirdly question, I have another question. For example,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;//work-group &amp;lt; 64, 1, 1 &amp;gt;,assume compiled SIMD16&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;__kernel void vectorProcess(uchar4 *A,uchar4*B,uchar4*C) &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;uint id = get_local_id(0);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;C[id] = A[id]+B[id];&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;for vector data(uchar4) ,How the SIMD-4 FPU execute? Does it process one work-item in 1 cycle,and need 16 cycles to process all the 16 work-items?Or does it process 4 work-items for the first component of the vector data ?&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;2. For the OpenCL kernel reading local memory data, Does the data pass through L3 CacheLine whose size is 64 bit?&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;Thanks.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 02 Feb 2016 09:02:47 GMT</pubDate>
    <dc:creator>lucas_w_</dc:creator>
    <dc:date>2016-02-02T09:02:47Z</dc:date>
    <item>
      <title>Execution Model For the Intel GPU</title>
      <link>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112175#M5318</link>
      <description>&lt;P&gt;&amp;nbsp; &amp;nbsp; &lt;SPAN style="font-size: 13.008px; line-height: 15.6096px;"&gt;&amp;nbsp;Now I'm confused about &amp;nbsp;execution Model of the work-items . T&lt;/SPAN&gt;here are 3 compiled model(&lt;SPAN style="font-size: 13.008px; line-height: 15.6096px;"&gt;SIMD8 SIMD16,SIMD32)&lt;/SPAN&gt; for the intel GPU.&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1. For the SIMD-X,does that mean there are X work-items execute simultaneously in one hardware thread?&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2. There is a OpenCL Kernel , compiled to SIMD16. and my work-group is &amp;nbsp;a “square” work-group &amp;lt; 8, 8, 1 &amp;gt;.&amp;nbsp;For SIMD16, does that mean the first two 8 work-items(&amp;lt; 0~7, 0~1, 1 &amp;gt;) execute simultaneously?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3. And for each EU,there is two 4-SIMD FPU. For SIMD16, does that mean 16 work-items run in a 4-SIMD FPU for 4 times? or in two 4-SIMD FPU for 2 times?&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; PS: for the local memory, are there 16 banks &amp;nbsp;whose wide is 32-bit?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; Thanks!&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 17:49:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112175#M5318</guid>
      <dc:creator>lucas_w_</dc:creator>
      <dc:date>2016-02-01T17:49:10Z</dc:date>
    </item>
    <item>
      <title>Hi Lucas,</title>
      <link>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112176#M5319</link>
      <description>&lt;P&gt;Hi Lucas,&lt;/P&gt;

&lt;P&gt;1. Yes,&lt;/P&gt;

&lt;P&gt;2. Yes. The 8 by 8 workgroup will end up executing on 4 hardware threads, though about the mapping of the individual work items I am not quite sure - your code shouldn't assume a particular mapping.&lt;/P&gt;

&lt;P&gt;3. Typically, you should assume SIMD16 instruction will execute in 4 cycles on one SIMD4 FPU.&lt;/P&gt;

&lt;P&gt;4. Correct. Local memory is accessed thru 16 banks, 4 bytes (32-bits) could be fetched from each bank in a single access.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Feb 2016 18:04:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112176#M5319</guid>
      <dc:creator>Robert_I_Intel</dc:creator>
      <dc:date>2016-02-01T18:04:19Z</dc:date>
    </item>
    <item>
      <title>Quote:Robert Ioffe (Intel)</title>
      <link>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112177#M5320</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Robert Ioffe (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi Lucas,&lt;/P&gt;

&lt;P&gt;1. Yes,&lt;/P&gt;

&lt;P&gt;2. Yes. The 8 by 8 workgroup will end up executing on 4 hardware threads, though about the mapping of the individual work items I am not quite sure - your code shouldn't assume a particular mapping.&lt;/P&gt;

&lt;P&gt;3. Typically, you should assume SIMD16 instruction will execute in 4 cycles on one SIMD4 FPU.&lt;/P&gt;

&lt;P&gt;4. Correct. Local memory is accessed thru 16 banks, 4 bytes (32-bits) could be fetched from each bank in a single access.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi Robert,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;1.Based on the thirdly question, I have another question. For example,&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;//work-group &amp;lt; 64, 1, 1 &amp;gt;,assume compiled SIMD16&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;__kernel void vectorProcess(uchar4 *A,uchar4*B,uchar4*C) &amp;nbsp;&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;uint id = get_local_id(0);&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;C[id] = A[id]+B[id];&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;for vector data(uchar4) ,How the SIMD-4 FPU execute? Does it process one work-item in 1 cycle,and need 16 cycles to process all the 16 work-items?Or does it process 4 work-items for the first component of the vector data ?&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;2. For the OpenCL kernel reading local memory data, Does the data pass through L3 CacheLine whose size is 64 bit?&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;Thanks.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Feb 2016 09:02:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/OpenCL-for-CPU/Execution-Model-For-the-Intel-GPU/m-p/1112177#M5320</guid>
      <dc:creator>lucas_w_</dc:creator>
      <dc:date>2016-02-02T09:02:47Z</dc:date>
    </item>
  </channel>
</rss>

