<?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 Question about mkl_?csrgemv in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138931#M26182</link>
    <description>&lt;P&gt;Hi, when I read reference manual of mkl, the mkl_?csrgemv routine calculates y=Ax (or y=A'x) where A is m-by-m matrix in 3-array CSR format.&lt;/P&gt;

&lt;P&gt;However, when I tested, I figured out that this routine also works&amp;nbsp;well&amp;nbsp;in m-by-k matrix (both k&amp;lt;m and k&amp;gt;m).&lt;/P&gt;

&lt;P&gt;Also, proper results are obtained even&amp;nbsp;when I set ja and a not in order.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;ex) for 2-by-2 matrix, [(1, 2), (3, 4)], I set ja(1)=2, a(1)=2, ja(2)=1, a(2)=1, ...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Does this routine updated in recent version?&lt;/P&gt;</description>
    <pubDate>Wed, 14 Feb 2018 08:41:24 GMT</pubDate>
    <dc:creator>Heo__Jun-Yeong</dc:creator>
    <dc:date>2018-02-14T08:41:24Z</dc:date>
    <item>
      <title>Question about mkl_?csrgemv</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138931#M26182</link>
      <description>&lt;P&gt;Hi, when I read reference manual of mkl, the mkl_?csrgemv routine calculates y=Ax (or y=A'x) where A is m-by-m matrix in 3-array CSR format.&lt;/P&gt;

&lt;P&gt;However, when I tested, I figured out that this routine also works&amp;nbsp;well&amp;nbsp;in m-by-k matrix (both k&amp;lt;m and k&amp;gt;m).&lt;/P&gt;

&lt;P&gt;Also, proper results are obtained even&amp;nbsp;when I set ja and a not in order.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;ex) for 2-by-2 matrix, [(1, 2), (3, 4)], I set ja(1)=2, a(1)=2, ja(2)=1, a(2)=1, ...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Does this routine updated in recent version?&lt;/P&gt;</description>
      <pubDate>Wed, 14 Feb 2018 08:41:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138931#M26182</guid>
      <dc:creator>Heo__Jun-Yeong</dc:creator>
      <dc:date>2018-02-14T08:41:24Z</dc:date>
    </item>
    <item>
      <title>Some of the stated</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138932#M26183</link>
      <description>&lt;P&gt;Some of the stated restrictions become understandable only if you consider that the routine in question can be asked to compute A&lt;SUP&gt;T&lt;/SUP&gt;x or A.x, depending on the value of the UPLO argument. Unlike in the dense case, obtaining the CSR representation of A&lt;SUP&gt;T&lt;/SUP&gt;, given A in the same representation, is not entirely trivial.&lt;/P&gt;

&lt;P&gt;I sometimes feel that it would have been better to have separate routines for computing A.x and&amp;nbsp;A&lt;SUP&gt;T&lt;/SUP&gt;x when A is a sparse matrix in CSR or CSC format. With COO, things are simpler since all that needs to be done is to interchange row and column indices of nonzero entries.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Feb 2018 14:21:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138932#M26183</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2018-02-14T14:21:59Z</dc:date>
    </item>
    <item>
      <title>Also please note that these</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138933#M26184</link>
      <description>&lt;P&gt;Also please note that these functions have been marked deprecated since mkl 2018 update 2 release.&amp;nbsp; They have been replaced by the Sparse Blas&amp;nbsp;Inspector Executor functions (&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-inspector-executor-sparse-blas-routines"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-inspector-executor-sparse-blas-routines&lt;/A&gt; ) which provide much more opportunity to improve performance.&lt;/P&gt;

&lt;P&gt;For instance the new function call would be using the function&lt;/P&gt;

&lt;P&gt;mkl_sparse_?_mv(...)&amp;nbsp;&amp;nbsp; (&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-mv"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-mv&lt;/A&gt;)&lt;/P&gt;

&lt;P&gt;which can optionally be preceded by some optimization hints for even faster performance using&lt;/P&gt;

&lt;P&gt;mkl_sparse_set_mv_hint(...) (&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-mv"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-mv&lt;/A&gt; ) and then mkl_sparse_optimize(...) (&lt;A href="https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-optimize"&gt;https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-optimize&lt;/A&gt; ).&lt;/P&gt;

&lt;P&gt;This setup will&amp;nbsp;take in all sorts of size matrices and the hints provided allow the mkl_sparse_optimize(...) to make some decisions for internal data storage that will provide improved performance of the mv (or which ever operation hints were provided) operation.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Feb 2018 22:17:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Question-about-mkl-csrgemv/m-p/1138933#M26184</guid>
      <dc:creator>Spencer_P_Intel</dc:creator>
      <dc:date>2018-02-21T22:17:29Z</dc:date>
    </item>
  </channel>
</rss>

