<?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 Sparse Blas Matrix Multiplication in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862980#M7637</link>
    <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I have a problem using MKL Sparse Blas Level 3 routine "mkl_dcoomm" which calculates C=A*B where A is a sparse matrix in coordinate format and B is dense matrix. Clearly C is also a dense matrix. The problem is that I would like to perform C=A*B where B is sparse and A is dense (reverse of former case). Is there any other function for this (I didn't find!) or I should change my expression and use same matrix? My question might be very elementary, so sorry in advance!&lt;BR /&gt;&lt;BR /&gt;Thanks for your help,&lt;BR /&gt;&lt;BR /&gt;D.&lt;BR /&gt;</description>
    <pubDate>Fri, 25 Sep 2009 11:17:27 GMT</pubDate>
    <dc:creator>Dan4</dc:creator>
    <dc:date>2009-09-25T11:17:27Z</dc:date>
    <item>
      <title>Sparse Blas Matrix Multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862980#M7637</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I have a problem using MKL Sparse Blas Level 3 routine "mkl_dcoomm" which calculates C=A*B where A is a sparse matrix in coordinate format and B is dense matrix. Clearly C is also a dense matrix. The problem is that I would like to perform C=A*B where B is sparse and A is dense (reverse of former case). Is there any other function for this (I didn't find!) or I should change my expression and use same matrix? My question might be very elementary, so sorry in advance!&lt;BR /&gt;&lt;BR /&gt;Thanks for your help,&lt;BR /&gt;&lt;BR /&gt;D.&lt;BR /&gt;</description>
      <pubDate>Fri, 25 Sep 2009 11:17:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862980#M7637</guid>
      <dc:creator>Dan4</dc:creator>
      <dc:date>2009-09-25T11:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Matrix Multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862981#M7638</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/410217"&gt;danltu.se&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I have a problem using MKL Sparse Blas Level 3 routine "mkl_dcoomm" which calculates C=A*B where A is a sparse matrix in coordinate format and B is dense matrix. Clearly C is also a dense matrix. The problem is that I would like to perform C=A*B where B is sparse and A is dense (reverse of former case). Is there any other function for this (I didn't find!) or I should change my expression and use same matrix? My question might be very elementary, so sorry in advance!&lt;BR /&gt;&lt;BR /&gt;Thanks for your help,&lt;BR /&gt;&lt;BR /&gt;D.&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
This might work.&lt;BR /&gt;&lt;BR /&gt;C^T = (A*B)^T = B^T * A^T&lt;BR /&gt;&lt;BR /&gt;B^T : set transa = 'T'&lt;BR /&gt;A^T : store A in row-major order, or transpose A if it is stored in column-major order&lt;BR /&gt;C^T : treat C as C-style dense array, or transpose C if you need column-major order &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;</description>
      <pubDate>Fri, 25 Sep 2009 14:41:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862981#M7638</guid>
      <dc:creator>jaewonj</dc:creator>
      <dc:date>2009-09-25T14:41:00Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Matrix Multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862982#M7639</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/431061"&gt;jaewonj&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;&lt;/DIV&gt;
This might work.&lt;BR /&gt;&lt;BR /&gt;C^T = (A*B)^T = B^T * A^T&lt;BR /&gt;&lt;BR /&gt;B^T : set transa = 'T'&lt;BR /&gt;A^T : store A in row-major order, or transpose A if it is stored in column-major order&lt;BR /&gt;C^T : treat C as C-style dense array, or transpose C if you need column-major order &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Thank you janwonj for your answer. It can be a solution, but it sounds weired to me if MKL does not support such simple multiplication. Isn't really any suitable function to perform DENSE x SPARSE operation in MKL?&lt;BR /&gt;</description>
      <pubDate>Fri, 25 Sep 2009 17:28:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862982#M7639</guid>
      <dc:creator>Dan4</dc:creator>
      <dc:date>2009-09-25T17:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Matrix Multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862983#M7640</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/410217"&gt;danltu.se&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt; &lt;BR /&gt;Thank you janwonj for your answer. It can be a solution, but it sounds weired to me if MKL does not support such simple multiplication. Isn't really any suitable function to perform DENSE x SPARSE operation in MKL?&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
As far as I know MKL does not directly support dense * sparse BLAS level 3 function. I know it's not pleasant, but I think we need to compute C' = (A*B)'.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Sat, 26 Sep 2009 17:47:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862983#M7640</guid>
      <dc:creator>jaewonj</dc:creator>
      <dc:date>2009-09-26T17:47:46Z</dc:date>
    </item>
    <item>
      <title>Re: Sparse Blas Matrix Multiplication</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862984#M7641</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/410217"&gt;danltu.se&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;&lt;BR /&gt;Thank you janwonj for your answer. It can be a solution, but it sounds weired to me if MKL does not support such simple multiplication. Isn't really any suitable function to perform DENSE x SPARSE operation in MKL?&lt;BR /&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;
&lt;P&gt;Anyway there are different ways to used MKL, but it depend to problem that required computation of DENSE matrix C&lt;/P&gt;
&lt;P&gt;First way: Size of SPARSE matrix is enough small, then you could convert from COO to DENSE and use MKL dgemm.&lt;/P&gt;
&lt;P&gt;Second way: Your interest is compute product y = C*x (x is vector) or Y=C*X (X is DENSE matrix) then you could used MKL by next way:&lt;/P&gt;
&lt;P&gt; compute z = B * x (use mkl_dcoomv) and compute y= A * z (use dgemv)&lt;/P&gt;
&lt;P&gt; or&lt;/P&gt;
&lt;P&gt; compute Z = B * X (use mkl_dcoomm) and compute Y= A * Z (use dgemm)&lt;/P&gt;</description>
      <pubDate>Mon, 28 Sep 2009 05:48:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Sparse-Blas-Matrix-Multiplication/m-p/862984#M7641</guid>
      <dc:creator>Victor_Gladkikh</dc:creator>
      <dc:date>2009-09-28T05:48:25Z</dc:date>
    </item>
  </channel>
</rss>

