<?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 Which algorithm is implemented in DGEMM? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Which-algorithm-is-implemented-in-DGEMM/m-p/1131382#M25613</link>
    <description>&lt;P&gt;Interestingly, I've been unable to find an answer to this simple question. What is the algorithm that is used for matrix-matrix multiplications (e.g., DGEMM) in MKL? Is is classical (O(N^3)), Strassen (O(N^2.7)), or something else? Thanks.&lt;/P&gt;</description>
    <pubDate>Tue, 26 Sep 2017 18:52:34 GMT</pubDate>
    <dc:creator>Laasner__Raul</dc:creator>
    <dc:date>2017-09-26T18:52:34Z</dc:date>
    <item>
      <title>Which algorithm is implemented in DGEMM?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Which-algorithm-is-implemented-in-DGEMM/m-p/1131382#M25613</link>
      <description>&lt;P&gt;Interestingly, I've been unable to find an answer to this simple question. What is the algorithm that is used for matrix-matrix multiplications (e.g., DGEMM) in MKL? Is is classical (O(N^3)), Strassen (O(N^2.7)), or something else? Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2017 18:52:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Which-algorithm-is-implemented-in-DGEMM/m-p/1131382#M25613</guid>
      <dc:creator>Laasner__Raul</dc:creator>
      <dc:date>2017-09-26T18:52:34Z</dc:date>
    </item>
    <item>
      <title>Hi Raul,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Which-algorithm-is-implemented-in-DGEMM/m-p/1131383#M25614</link>
      <description>&lt;P&gt;Hi Raul,&lt;/P&gt;

&lt;P&gt;I am afraid BLAS standard gemm uses classical O(N&lt;SUP&gt;3&lt;/SUP&gt;), for algorithm design, you could follow Netlib gemm source code. Intel MKL optimized BLAS routines with SIMD instruction sets, do some work to fit data into the caches enabling contiguous, aligned accesses.&lt;/P&gt;

&lt;P&gt;Here's another algorithm for matrix matrix multiplication, call 3M. It split a complex matrix into two matrices, performs 3 GEMM and 4 matrix additions. For other algorithm, like Winograd which implemented for NN convolution kernel in MKL-DNN.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 02:07:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Which-algorithm-is-implemented-in-DGEMM/m-p/1131383#M25614</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2017-09-27T02:07:00Z</dc:date>
    </item>
  </channel>
</rss>

