<?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 You don't need it. MKL has a in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/how-to-tell-mkl-the-underlying-microarchitecture/m-p/1052420#M21236</link>
    <description>&lt;P&gt;You don't need it. MKL has a built-in dispatcher that detects the microarchitecture at run time and dispatch the execution to the appropriate code path. The compiler flags don't affect MKL code path in any way. These flags only affect the user code to be compiled, not the libraries to be linked.&lt;/P&gt;</description>
    <pubDate>Mon, 30 Jun 2014 21:56:03 GMT</pubDate>
    <dc:creator>Zhang_Z_Intel</dc:creator>
    <dc:date>2014-06-30T21:56:03Z</dc:date>
    <item>
      <title>how to tell mkl the underlying microarchitecture</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/how-to-tell-mkl-the-underlying-microarchitecture/m-p/1052419#M21235</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I read the gcc document as well as intel compiler document, they both said that the default behavior will not detect the underlying microarchitecture in linux x86-64 (default is -xsse2). As a result, I need to put -march=nehalem in CXXFLAGS in g++ and put -xsse4.2 in CXXFLAGS in icpc. However, while linking with mkl, there is no flag to tell mkl that my microarchitecture is nehalem:&lt;/P&gt;

&lt;P&gt;g++:&lt;/P&gt;

&lt;P&gt;g++ -std=c++11 -O2 -march=nehalem -c main.cpp&lt;/P&gt;

&lt;P&gt;g++ main.o -lmkl_rt&lt;/P&gt;

&lt;P&gt;icpc:&lt;/P&gt;

&lt;P&gt;icpc -std=c++11 -xsse4.2 -c main.cpp&lt;/P&gt;

&lt;P&gt;icpc -mkl main.o&lt;/P&gt;

&lt;P&gt;So, how to guarantee mkl can take full advantage of nehalem and get the highest performance?&lt;/P&gt;

&lt;P&gt;Thank you very much&lt;/P&gt;

&lt;P&gt;Chaowen GUO&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jun 2014 20:00:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/how-to-tell-mkl-the-underlying-microarchitecture/m-p/1052419#M21235</guid>
      <dc:creator>Chaowen_G_</dc:creator>
      <dc:date>2014-06-30T20:00:34Z</dc:date>
    </item>
    <item>
      <title>You don't need it. MKL has a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/how-to-tell-mkl-the-underlying-microarchitecture/m-p/1052420#M21236</link>
      <description>&lt;P&gt;You don't need it. MKL has a built-in dispatcher that detects the microarchitecture at run time and dispatch the execution to the appropriate code path. The compiler flags don't affect MKL code path in any way. These flags only affect the user code to be compiled, not the libraries to be linked.&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jun 2014 21:56:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/how-to-tell-mkl-the-underlying-microarchitecture/m-p/1052420#M21236</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2014-06-30T21:56:03Z</dc:date>
    </item>
  </channel>
</rss>

