<?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 mkl/blas routine for C=AA'B in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146340#M26737</link>
    <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;is there any mkl/blas function which performs the operation C=AA'B in on go. Currently I use an intermediate array T and dgemm: T=A'B;C=AT'. I am wondering whether there is a more efficient way since A is always the same matrix.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
    <pubDate>Tue, 05 Feb 2019 07:15:53 GMT</pubDate>
    <dc:creator>may_ka</dc:creator>
    <dc:date>2019-02-05T07:15:53Z</dc:date>
    <item>
      <title>mkl/blas routine for C=AA'B</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146340#M26737</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;is there any mkl/blas function which performs the operation C=AA'B in on go. Currently I use an intermediate array T and dgemm: T=A'B;C=AT'. I am wondering whether there is a more efficient way since A is always the same matrix.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Feb 2019 07:15:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146340#M26737</guid>
      <dc:creator>may_ka</dc:creator>
      <dc:date>2019-02-05T07:15:53Z</dc:date>
    </item>
    <item>
      <title>Did you mean to write C = AT</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146341#M26738</link>
      <description>&lt;P&gt;Did you mean to write C = AT rather than C = AT' ?&lt;/P&gt;&lt;P&gt;If A is "always the same", you could form T = AA' just once, using ?GEMM.&amp;nbsp;Then,&amp;nbsp;do the&amp;nbsp;?GEMM operation&amp;nbsp;C = TB for each B as you go.&lt;/P&gt;&lt;P&gt;A more useful answer could be given if you describe&amp;nbsp;how C is going to be used.&amp;nbsp;Are the matrices square?&lt;/P&gt;</description>
      <pubDate>Tue, 05 Feb 2019 12:51:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146341#M26738</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2019-02-05T12:51:00Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146342#M26739</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thanks for the response.&lt;/P&gt;&lt;P&gt;I may have mixed the dimensions/transpositions .............. but in essence T is such that it can serve as an intermediate matrix.&lt;/P&gt;&lt;P&gt;A is always the same. Generating AA' would simply be a rank update (?syrk) yielding a symmetric matrix. However, AA' is not feasible because of its dimensions. A can be anything but can have row dimension of several hundreds of thousands. In contrast its column dimension may be only several 10th of thousand. The same holds for B.&lt;/P&gt;&lt;P&gt;The whole system is accutally a nice example for a situation where T=A'B and subsequently C=AT' is much faster (even when done repeatedly) than forming T=AA' once (if feasible) and doing C=TB.&lt;/P&gt;&lt;P&gt;C must have the same dimension as matrix B. It is neither squared nor symmetric.&lt;/P&gt;&lt;P&gt;My thoughts were since A is the same in both operations and C must be the same dimension as B, there might be a more efficient way than putting A through the CPU twice.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;</description>
      <pubDate>Tue, 05 Feb 2019 20:33:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-blas-routine-for-C-AA-B/m-p/1146342#M26739</guid>
      <dc:creator>may_ka</dc:creator>
      <dc:date>2019-02-05T20:33:00Z</dc:date>
    </item>
  </channel>
</rss>

