<?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 Optimizing matrix multiplication algorithm on Intel Xeon Gold (DevCloud) in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175495#M28898</link>
    <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;I am working on Case #03357624 - Benchmarking algorithms on Intel Xeon Gold (DevCloud):&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;A href="https://communities.intel.com/thread/124090"&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://communities.intel.com/thread/124090" target="_blank"&gt;https://communities.intel.com/thread/124090&lt;/A&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;The concern is on time overhead while running compiled mmatest1.c, attached to the link: &lt;A href="http://Performance of Classic Matrix Multiplication Algorithm on Intel® Xeon Phi™ Processor System | Intel® Software"&gt;Performance of Classic Matrix Multiplication Algorithm on Intel® Xeon Phi™ Processor System | Intel® Software&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Observation&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;First occurrence of loop is taking huge time. Second loop is also taking comparatively more time. Time taken by rest is similar.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;I ran the code with 16 loop count and matrix size 256 and got following result for each loop:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 1 in: 0.2302730 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 2 in: 0.0001534 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 3 in: 0.0001267 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 4 in: 0.0001275 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ..................&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 15 in: 0.0001280 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 16 in: 0.0001347 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 1 in: 0.0504993 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 2 in: 0.0003169 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 3 in: 0.0001666 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 4 in: 0.0001687 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ................&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 15 in: 0.0001638 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 16 in: 0.0001636 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Time taken by first loop should be due to warm up (initial process of loading the data in cache and Translation Look-Aside Buffer (TLB) etc.)&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;=&amp;gt;&lt;/STRONG&gt; I need advise and confirmation on following Questions and answers which I got as per my understanding:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Should first result (time taken by first occurrence of loop) be included in time estimation while benchmarking?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have) &lt;/STRONG&gt;No, it should be excluded.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Further Q)&lt;/STRONG&gt; Why time taken by second loop is more than other following loops? Should it also be excluded from benchmarking? How many initial loops should we not include in time estimation?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;2)&lt;/STRONG&gt;&amp;nbsp; Is the overhead primarily due to the cache misses or the warm up time?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have)&lt;/STRONG&gt; It’s due to warm up time. If we will use large matrices cache miss will also come to effect.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Further Q)&lt;/STRONG&gt; As per the user it’s due to cache misses. How cache miss is effecting initially when it has no data? Is warm up not a right term instead?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;3)&lt;/STRONG&gt; If it is indeed cache misses, how can he work on that? He thought its always accessed in a row-major format and thus cache misses would be avoided if he would have accessed it in the same format.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have)&lt;/STRONG&gt; It’s correct, we should access in row-major format. Data layout in memory and data access scheme should be kept best same. Possible solutions (if it’s a big matrix) are:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;a)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Transpose matrix B to access it with row major&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;b)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Use loop blocking optimization technique (LBOT) with block size equal to virtual page size.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;4)&lt;/STRONG&gt; How to debug cblas_sgemm() or where to find source code of it to debug using gdb?&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Please advise.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Thanks and regards,&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Rishabh Kumar Jain&lt;/SPAN&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 27 Apr 2018 09:58:36 GMT</pubDate>
    <dc:creator>RishabhKum_J_Intel</dc:creator>
    <dc:date>2018-04-27T09:58:36Z</dc:date>
    <item>
      <title>Optimizing matrix multiplication algorithm on Intel Xeon Gold (DevCloud)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175495#M28898</link>
      <description>&lt;DIV&gt;Hi,&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;I am working on Case #03357624 - Benchmarking algorithms on Intel Xeon Gold (DevCloud):&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;A href="https://communities.intel.com/thread/124090"&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;A href="https://communities.intel.com/thread/124090" target="_blank"&gt;https://communities.intel.com/thread/124090&lt;/A&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;The concern is on time overhead while running compiled mmatest1.c, attached to the link: &lt;A href="http://Performance of Classic Matrix Multiplication Algorithm on Intel® Xeon Phi™ Processor System | Intel® Software"&gt;Performance of Classic Matrix Multiplication Algorithm on Intel® Xeon Phi™ Processor System | Intel® Software&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Observation&lt;/STRONG&gt;:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;First occurrence of loop is taking huge time. Second loop is also taking comparatively more time. Time taken by rest is similar.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;I ran the code with 16 loop count and matrix size 256 and got following result for each loop:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 1 in: 0.2302730 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 2 in: 0.0001534 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 3 in: 0.0001267 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 4 in: 0.0001275 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ..................&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 15 in: 0.0001280 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MKL&amp;nbsp; - Completed 16 in: 0.0001347 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 1 in: 0.0504993 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 2 in: 0.0003169 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 3 in: 0.0001666 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 4 in: 0.0001687 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ................&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 15 in: 0.0001638 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CMMA - Completed 16 in: 0.0001636 seconds&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Time taken by first loop should be due to warm up (initial process of loading the data in cache and Translation Look-Aside Buffer (TLB) etc.)&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;=&amp;gt;&lt;/STRONG&gt; I need advise and confirmation on following Questions and answers which I got as per my understanding:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Should first result (time taken by first occurrence of loop) be included in time estimation while benchmarking?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have) &lt;/STRONG&gt;No, it should be excluded.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Further Q)&lt;/STRONG&gt; Why time taken by second loop is more than other following loops? Should it also be excluded from benchmarking? How many initial loops should we not include in time estimation?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;2)&lt;/STRONG&gt;&amp;nbsp; Is the overhead primarily due to the cache misses or the warm up time?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have)&lt;/STRONG&gt; It’s due to warm up time. If we will use large matrices cache miss will also come to effect.&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Further Q)&lt;/STRONG&gt; As per the user it’s due to cache misses. How cache miss is effecting initially when it has no data? Is warm up not a right term instead?&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;3)&lt;/STRONG&gt; If it is indeed cache misses, how can he work on that? He thought its always accessed in a row-major format and thus cache misses would be avoided if he would have accessed it in the same format.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;Ans I have)&lt;/STRONG&gt; It’s correct, we should access in row-major format. Data layout in memory and data access scheme should be kept best same. Possible solutions (if it’s a big matrix) are:&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;a)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Transpose matrix B to access it with row major&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;b)&lt;/STRONG&gt;&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;Use loop blocking optimization technique (LBOT) with block size equal to virtual page size.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;STRONG&gt;4)&lt;/STRONG&gt; How to debug cblas_sgemm() or where to find source code of it to debug using gdb?&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Please advise.&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Thanks and regards,&lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Rishabh Kumar Jain&lt;/SPAN&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 27 Apr 2018 09:58:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175495#M28898</guid>
      <dc:creator>RishabhKum_J_Intel</dc:creator>
      <dc:date>2018-04-27T09:58:36Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175496#M28899</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;Please can I have some update on this?&amp;nbsp;&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Thanks and regards,&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Rishabh Kumar Jain&lt;/P&gt;</description>
      <pubDate>Thu, 03 May 2018 09:59:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175496#M28899</guid>
      <dc:creator>RishabhKum_J_Intel</dc:creator>
      <dc:date>2018-05-03T09:59:34Z</dc:date>
    </item>
    <item>
      <title>Hi Jian,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175497#M28900</link>
      <description>&lt;P&gt;Hi Jian,&lt;BR /&gt;
	&lt;BR /&gt;
	I will contact with you by email .&amp;nbsp; for the question itself, developer may refer to&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/articles/a-simple-example-to-measure-the-performance-of-an-intel-mkl-function" target="_blank"&gt;https://software.intel.com/en-us/articles/a-simple-example-to-measure-the-performance-of-an-intel-mkl-function&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(85, 85, 85); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;The Intel® Math Kernel Library (Intel® MKL) is multi-threaded and employs internal buffers for fast memory allocation. Typically the first subroutine call initializes the threads and internal buffers. Therefore, the first function call may take more time compared to the subsequent calls with the same arguments. Although the initialization time usually insignificant compared to the execution time of SGEMM for large matrices, it can be substantial when timing SGEMM for small matrices. To remove the initialization time from the performance measurement, we recommend making a call to SGEMM with sufficiently bigger parameters (for example, M=N=K=100) and ignoring the time required for the first call. Using a small matrix for the first call won’t initialize the threads since Intel MKL executes multi-threaded code only for sufficiently large matrices.&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	Best Regards,&lt;BR /&gt;
	​Ying&lt;/P&gt;

&lt;P&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 May 2018 06:33:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Optimizing-matrix-multiplication-algorithm-on-Intel-Xeon-Gold/m-p/1175497#M28900</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2018-05-08T06:33:03Z</dc:date>
    </item>
  </channel>
</rss>

