<?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 -no-vec disables auto in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971859#M24165</link>
    <description>&lt;P&gt;&lt;STRONG&gt;-no-vec&lt;/STRONG&gt; disables auto-vectorization only. Development confirmed this and also indicated the option does not prevent scalar code from using vector instructions in any way it likes, and even on Xeons, that it does not prevent scalar code from using packed instructions.&lt;/P&gt;</description>
    <pubDate>Mon, 12 Aug 2013 11:56:45 GMT</pubDate>
    <dc:creator>Kevin_D_Intel</dc:creator>
    <dc:date>2013-08-12T11:56:45Z</dc:date>
    <item>
      <title>disable vectorization</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971854#M24160</link>
      <description>&lt;P&gt;Hi, I have a question on MIC. That is, when using -O2 (or further -O3), the compiler will vectorize the code automatedly. However, when we further add the -no-vec option, the compiler will not vectorize the code, right? But when looking into the assembly code (*.s), I found that there are still a lot of vector instrustructions there. Then what are the differences between using and not using the vector option? The compiler will vectorize the code anyway?&lt;/P&gt;
&lt;P&gt;Jianbin&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2013 14:15:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971854#M24160</guid>
      <dc:creator>Jianbin_F_</dc:creator>
      <dc:date>2013-08-08T14:15:15Z</dc:date>
    </item>
    <item>
      <title>The short story is that</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971855#M24161</link>
      <description>&lt;P&gt;The short story is that scalar floating point is done by using one slot in the mm512 registers, and the basic instruction name is unchanged.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2013 15:44:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971855#M24161</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2013-08-08T15:44:33Z</dc:date>
    </item>
    <item>
      <title>The use of vector</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971856#M24162</link>
      <description>&lt;P&gt;The use of vector instructions is a by-product of the architecture.&amp;nbsp;I expect you&amp;nbsp;are using &lt;STRONG&gt;-mmic&lt;/STRONG&gt;. The compiler honors &lt;STRONG&gt;-no-vec&lt;/STRONG&gt; when compiling for native. Add a &lt;STRONG&gt;-vec-report&lt;/STRONG&gt; option (e.g. &lt;STRONG&gt;-vec-report6&lt;/STRONG&gt;) to verify code is vectorized at &lt;STRONG&gt;-O2&lt;/STRONG&gt; or &lt;STRONG&gt;-O3&lt;/STRONG&gt; and then use that same report option with &lt;STRONG&gt;-no-vec&lt;/STRONG&gt; to confirm it disabled vectorization.&lt;/P&gt;
&lt;P&gt;Here’s some additional resources:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/mic-developer"&gt;&lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Developer Zone&lt;/STRONG&gt;&lt;/A&gt; (On the Overview tab, look for the link to the &lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Instruction Set Architecture Reference Manual)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-vector-microarchitecture"&gt;&lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Vector Microarchitecture&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/programming-and-compiling-for-intel-many-integrated-core-architecture"&gt;&lt;STRONG&gt;Programming and Compiling for Intel® Many Integrated Core Architecture&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Aug 2013 15:52:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971856#M24162</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2013-08-08T15:52:00Z</dc:date>
    </item>
    <item>
      <title>Quote:TimP (Intel) wrote:</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971857#M24163</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;TimP (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The short story is that scalar floating point is done by using one slot in the mm512 registers, and the basic instruction name is unchanged.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;OK, but when I measure the vectorization intensity (VPU_ELEMENTS_ACTIVE/VPU_INSTRUCTIONS_EXECUTED), I found that the VI number is around 4 for GEMM (with -no-vec, -mmic, and -O3), rather than 1. Therefore, I do not aggree with the opintion that the instruction uses only one slot out of eight. I wonder whether you have any idea of it?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2013 06:48:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971857#M24163</guid>
      <dc:creator>Jianbin_F_</dc:creator>
      <dc:date>2013-08-09T06:48:29Z</dc:date>
    </item>
    <item>
      <title>Quote:Kevin Davis (Intel)</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971858#M24164</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Kevin Davis (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The use of vector instructions is a by-product of the architecture.&amp;nbsp;I expect you&amp;nbsp;are using &lt;STRONG&gt;-mmic&lt;/STRONG&gt;. The compiler honors &lt;STRONG&gt;-no-vec&lt;/STRONG&gt; when compiling for native. Add a &lt;STRONG&gt;-vec-report&lt;/STRONG&gt; option (e.g. &lt;STRONG&gt;-vec-report6&lt;/STRONG&gt;) to verify code is vectorized at &lt;STRONG&gt;-O2&lt;/STRONG&gt; or &lt;STRONG&gt;-O3&lt;/STRONG&gt; and then use that same report option with &lt;STRONG&gt;-no-vec&lt;/STRONG&gt; to confirm it disabled vectorization.&lt;/P&gt;
&lt;P&gt;Here’s some additional resources:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/mic-developer"&gt;&lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Developer Zone&lt;/STRONG&gt;&lt;/A&gt; (On the Overview tab, look for the link to the &lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Instruction Set Architecture Reference Manual)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-vector-microarchitecture"&gt;&lt;STRONG&gt;Intel® Xeon Phi™ Coprocessor Vector Microarchitecture&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/articles/programming-and-compiling-for-intel-many-integrated-core-architecture"&gt;&lt;STRONG&gt;Programming and Compiling for Intel® Many Integrated Core Architecture&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;You are right that the use of vector instructions is a by-product. But what do you mean by the compiler will honor the -no-vec option? In my opinion, using -no-vec means that only one of the 8 or 16 lanes should be used (as TimP has mentioned). But my experimental results show that the vectorization intensity on GEMM (with -no-vec, -mmic, and -O3) is around 4, rather than 1. Indeed, the -vec-report message does not show any vectorization information, but how can you explain the vectorization instruction was using more than one lane/slot of the VPU?&lt;/P&gt;
&lt;P&gt;Jianbin&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2013 06:57:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971858#M24164</guid>
      <dc:creator>Jianbin_F_</dc:creator>
      <dc:date>2013-08-09T06:57:00Z</dc:date>
    </item>
    <item>
      <title>-no-vec disables auto</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971859#M24165</link>
      <description>&lt;P&gt;&lt;STRONG&gt;-no-vec&lt;/STRONG&gt; disables auto-vectorization only. Development confirmed this and also indicated the option does not prevent scalar code from using vector instructions in any way it likes, and even on Xeons, that it does not prevent scalar code from using packed instructions.&lt;/P&gt;</description>
      <pubDate>Mon, 12 Aug 2013 11:56:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971859#M24165</guid>
      <dc:creator>Kevin_D_Intel</dc:creator>
      <dc:date>2013-08-12T11:56:45Z</dc:date>
    </item>
    <item>
      <title>Quote:Kevin Davis (Intel)</title>
      <link>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971860#M24166</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Kevin Davis (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;-no-vec&lt;/STRONG&gt; disables auto-vectorization only. Development confirmed this and also indicated the option does not prevent scalar code from using vector instructions in any way it likes, and even on Xeons, that it does not prevent scalar code from using packed instructions.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hi Kevin, thank you for your answer.&lt;/P&gt;</description>
      <pubDate>Mon, 12 Aug 2013 12:05:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/disable-vectorization/m-p/971860#M24166</guid>
      <dc:creator>Jianbin_F_</dc:creator>
      <dc:date>2013-08-12T12:05:08Z</dc:date>
    </item>
  </channel>
</rss>

