<?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 Wow, that’s kind of funny and in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093083#M23373</link>
    <description>&lt;P class="p1"&gt;Wow, that’s kind of funny and sad at the same time how this conversation is going nowhere.&lt;/P&gt;

&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p1"&gt;Let me start over. In my application, I have BSR matrix A (of course it has hundred thousands of rows/columns so I cannot use gemm…). I need to compute the product of A and multiple vectors (stored column-wise as a matrix B)&lt;/P&gt;

&lt;P class="p1"&gt;For instance, if m = k = 2, lb = 2, and n = 2, with&lt;/P&gt;

&lt;P class="p1"&gt;B = [1, 2;&lt;/P&gt;

&lt;P class="p1"&gt;3, 4;&lt;/P&gt;

&lt;P class="p1"&gt;5, 6;&lt;/P&gt;

&lt;P class="p1"&gt;7, 8];&lt;/P&gt;

&lt;P class="p1"&gt;stored in memory as B = {1, 3, 5, 7, 2, 4, 6, 8 }; (this is how B must be stored if you need to solve A^-1 B with PARDISO)&lt;/P&gt;

&lt;P class="p1"&gt;I want to compute C = A * B, stored in memory as C = { c_11, c_21, c_31, c_41, c_12, c_22, c_32, c_42 };&lt;/P&gt;

&lt;P class="p1"&gt;I cannot change how B is stored in memory because it is how PARDISO takes it as an argument and I don’t want to change the layout of B everytime I call bsrmm and then PARDISO.&lt;/P&gt;

&lt;P class="p1"&gt;In this thread answered by a colleague of yours &lt;A href="https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/365430#comment-1724657"&gt;https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/365430#comment-1724657&lt;/A&gt;, he suggests to use a one-based CSR matrix for the routine csrmm given my layout of B and C, now what I need to do with A to get the desired results as a BSR matrix? I can do a loop over (B + j * lb * m), j = 0..n-1 and call bsrmv n times, but I would rather use bsrmm one time. Are you telling me that the memory layout of the input matrices B are different between bsrmm and csrmm/PARDISO?&lt;/P&gt;

&lt;P class="p1"&gt;I’m attaching another example, the same matrix A is stored as a CSR and a BSR matrix. The calls to csrmm and bsrmv are the same, but not with bsrmm. I cannot change how B and C are stored, otherwise, how can I call PARDISO afterwards? I can change the call to bsrmm however (for example use a zero-based BSR matrix for A).&lt;/P&gt;

&lt;P class="p1"&gt;Thank you in advance for your help.&lt;/P&gt;

&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 28 Sep 2016 09:20:40 GMT</pubDate>
    <dc:creator>asd__asdqwe</dc:creator>
    <dc:date>2016-09-28T09:20:40Z</dc:date>
    <item>
      <title>What is happening with mkl_dbsrmm</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093078#M23368</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;I'm trying to call mkl_dbsrmm once instead of calling mkl_dbsrmv multiple times, but I'm getting different results, like:&lt;/P&gt;

&lt;P&gt;X&lt;BR /&gt;
	1.000000e+00 &amp;nbsp; &amp;nbsp;2.000000e+00&lt;BR /&gt;
	2.000000e+00 &amp;nbsp; &amp;nbsp;3.000000e+00&lt;BR /&gt;
	1.000000e+00 &amp;nbsp; &amp;nbsp;2.000000e+00&lt;BR /&gt;
	2.000000e+00 &amp;nbsp; &amp;nbsp;3.000000e+00&lt;BR /&gt;
	Y = AX (bsrmm)&lt;BR /&gt;
	1.746125e-01 &amp;nbsp; &amp;nbsp;8.390122e-01&lt;BR /&gt;
	1.469818e+00 &amp;nbsp; &amp;nbsp;1.939678e+00&lt;BR /&gt;
	1.974694e-01 &amp;nbsp; &amp;nbsp;2.000000e+00&lt;BR /&gt;
	3.128180e+00 &amp;nbsp; &amp;nbsp;2.000000e+00&lt;BR /&gt;
	Y = AX (bsrmv x2)&lt;BR /&gt;
	1.746125e-01 &amp;nbsp; &amp;nbsp;3.594702e-01&lt;BR /&gt;
	1.469818e+00 &amp;nbsp; &amp;nbsp;2.228417e+00&lt;BR /&gt;
	1.974694e-01 &amp;nbsp; &amp;nbsp;5.919458e-01&lt;BR /&gt;
	3.128180e+00 &amp;nbsp; &amp;nbsp;2.125353e+00&lt;/P&gt;

&lt;P&gt;Is there a regression somewhere inside mkl_dbsrmm or am I doing something wrong? I've been dealing with csrmm in the past with no such problem. Thanks in advance.&lt;/P&gt;

&lt;P&gt;PS: compile line is, with MKL 2017&lt;/P&gt;

&lt;P&gt;icpc bsrmm.cpp -L/opt/intel/mkl/lib/intel64 -lmkl_core -lmkl_rt -lmkl_intel_lp64 -lmkl_intel_thread -liomp5&lt;/P&gt;</description>
      <pubDate>Mon, 26 Sep 2016 17:37:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093078#M23368</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2016-09-26T17:37:17Z</dc:date>
    </item>
    <item>
      <title>Hi qweasd,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093079#M23369</link>
      <description>&lt;P&gt;Hi qweasd,&lt;/P&gt;

&lt;P&gt;I think you misunderstand usage of&amp;nbsp;&lt;SPAN style="font-size: 12px;"&gt;bsrmm &amp;amp;&amp;nbsp;bsrmv. You set&amp;nbsp;&lt;/SPAN&gt;matdescra&amp;nbsp;parameter by zero-base but set &lt;SPAN style="color: rgb(102, 102, 102); font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 13px; font-style: italic;"&gt;indx,&amp;nbsp;pntrb &amp;amp;&amp;nbsp;pntre&lt;/SPAN&gt;&amp;nbsp;by one-base. Thus the result of&amp;nbsp;&lt;SPAN style="font-size: 12px;"&gt;bsrmm &amp;amp;&amp;nbsp;bsrmv&amp;nbsp;&lt;/SPAN&gt;are&amp;nbsp;totally different. Another point is that the bsrmm operate multiplication of Matrix &amp;amp; vector, you'd better define input value for bsrmm as&amp;nbsp;X_v&lt;N&gt;[M*BS]={{1,1,2,3},{2,2,3,3}}. And use this input in function as&amp;nbsp;&amp;amp;(X_v&lt;I&gt;[0]). I paste code below:&lt;/I&gt;&lt;/N&gt;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;int ia[M + 1] = { 0, 2, 4 }; //zero-base
    int ja[NNZ]   = {0, 1, 0,1};
    int pointerB&lt;M&gt; ={0,2};
    int pointerE&lt;M&gt;={2,4};
    double a[NNZ * BS * BS] = { 0.505208, -0.015657, -0.015657, 0.530954, -0.310105, 0.0630386, 0.00541174, 0.180264, -0.310105, 0.00541174, 0.0630386, 0.180264 , 0.511346, 0.000116003, 0.000116003, 0.524502};
    double X[M* BS] &lt;N&gt;= { {1, 2}, {1, 2}, {2, 3}, {2, 3} }; //input for bsrmm
    double X_v&lt;N&gt;[M*BS]={{1,1,2,3},{2,2,3,3}}; //input for bsrmv
    double Y[M* BS] &lt;N&gt; = { {0, 0}, {0, 0}, {0, 0}, {0, 0} };
    double Temp&lt;N&gt;[M * BS] = {{0, 0, 0, 0}, {0, 0, 0, 0} };
    int m = M;
    int n = N;
    int k = K;
    int bs = BS;
    double alpha = 1.0;
    double beta = 0.0;
    char matdescra[6] = { 'T', 'L', 'N', 'C', '0', '0' };
    mkl_dbsrmm("N", &amp;amp;m, &amp;amp;n, &amp;amp;k, &amp;amp;bs, &amp;amp;alpha, matdescra, a, ja, ia, &amp;amp;ia[1], &amp;amp;(X[0][0]), &amp;amp;m, &amp;amp;beta, &amp;amp;(Y[0][0]), &amp;amp;k);
    std::cout &amp;lt;&amp;lt; std::scientific;
    std::cout &amp;lt;&amp;lt; "X" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; M * BS; ++i) {
        for(int j = 0; j &amp;lt; N; ++j) {
            std::cout &amp;lt;&amp;lt; X[M * BS * j + i] &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }
    std::cout &amp;lt;&amp;lt; "Y = AX (bsrmm)" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; M * BS; ++i) {
        for(int j = 0; j &amp;lt; N; ++j) {
            std::cout &amp;lt;&amp;lt; Y&lt;I&gt;&lt;J&gt; &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }
    std::cout &amp;lt;&amp;lt; "Y = AX (bsrmv x2)" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; N; ++i)
    {
        mkl_dbsrmv("N", &amp;amp;m, &amp;amp;k, &amp;amp;bs, &amp;amp;alpha, matdescra, a, ja, pointerB, pointerE, &amp;amp;(X_v&lt;I&gt;[0]), &amp;amp;beta, &amp;amp;(Temp&lt;I&gt;[0]));
    }
    for(int j = 0; j &amp;lt;  M*BS; j++) {
        for(int i = 0; i &amp;lt; N; i++) {
            std::cout &amp;lt;&amp;lt; Temp&lt;I&gt;&lt;J&gt; &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }&lt;/J&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/N&gt;&lt;/N&gt;&lt;/N&gt;&lt;/N&gt;&lt;/M&gt;&lt;/M&gt;&lt;/PRE&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Tue, 27 Sep 2016 06:44:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093079#M23369</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-27T06:44:20Z</dc:date>
    </item>
    <item>
      <title>Thank you for your answer.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093080#M23370</link>
      <description>&lt;P&gt;Thank you for your answer. Sorry, I set matdescra[4] to N instead of F. I have fixed the example now but the problem obviously remains. My BSR matrices use one-based indexing so I don't see how your code can help me. Plus, as stated in the example, I don't have such problem with mkl_dcsrmm which is also used for matrix * matrix products. Could you let me know if I'm calling mkl_dbsrmm right, or if there is a bug with the routine with one-based indexed matrices?&lt;/P&gt;

&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 27 Sep 2016 10:30:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093080#M23370</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2016-09-27T10:30:41Z</dc:date>
    </item>
    <item>
      <title>On a side note, if I change</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093081#M23371</link>
      <description>&lt;P&gt;On a side note, if I change in your example&amp;nbsp;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;{&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'T'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'L'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'N'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'C'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 13.008px; background-color: rgb(248, 248, 248);"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;}; to&amp;nbsp;{&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'G'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'C'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;,&amp;nbsp;&lt;/CODE&gt;&lt;CODE class="string" style="font-size: 13.008px; background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important; color: blue !important;"&gt;'0'&lt;/CODE&gt;&lt;SPAN style="color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 13.008px; background-color: rgb(248, 248, 248);"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="plain" style="font-size: 13.008px; background-color: rgb(248, 248, 248); color: rgb(0, 0, 0); font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; margin: 0px !important; padding: 0px !important; border: 0px !important; outline: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; min-height: auto !important;"&gt;};&amp;nbsp;&lt;/CODE&gt;&lt;SPAN style="font-size: 13.008px;"&gt;I get different results between, so there is another problem right there.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Sep 2016 10:44:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093081#M23371</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2016-09-27T10:44:32Z</dc:date>
    </item>
    <item>
      <title>Hi qweasd,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093082#M23372</link>
      <description>&lt;P&gt;Hi qweasd,&lt;/P&gt;

&lt;P&gt;Sorry for my written mistake, the input of bsrmv should be&amp;nbsp;&lt;/P&gt;

&lt;P&gt;double X_v&lt;N&gt;[M*BS]={{1,1,2,2},{2,2,3,3}};&amp;nbsp;&lt;/N&gt;&lt;/P&gt;

&lt;P&gt;In your program, there are 3 places lead errors:&lt;/P&gt;

&lt;P&gt;1. 'F' could only used for one-based indexing, normally used for Fortran. However in c code, normally used with zero-based indexing. You'd better use G,0,0,C, or change all array's value &amp;amp; start from 1.&lt;BR /&gt;
	2. In bsrmm function, A is 4*4, B is 4*2 (B[0]={1,2}); the result C should be 4*2 as well, the last two value is 2 because you set one-based indexing that first two values of A, B has not been calculated.&amp;nbsp;&lt;BR /&gt;
	3. In bsrmv function, A is 4*4, B is 2*4 (B[0]={1,2,1,2}) . How could you expect the result of this calculation equals to previous one? The result of bsrmv in your program is wrong. The fist column of result is the same that is because the equation is C=alpha*A*B+C. So, in your program, the bsrmv function is action doing work of Y=alpha*A*B+&lt;SPAN style="font-size: 13.008px;"&gt;bsrmm_result.&lt;BR /&gt;
	4. seems you didn't use sparse matrix, length of a is 16, all values are non-zero. Thus, the functionality should be same as dgemm. I checked with Dgemm, the return is correct by using following code(fix value setting of X_v).&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Please use following code, the result should be as same as Dgemm:&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;int ia[M + 1] = { 0, 2, 4}; //zero-base for C program
    int ja[NNZ]   = {0,1, 0,1};
    int pointerB&lt;M&gt; ={0,2};
    int pointerE&lt;M&gt;={2,4};
    double a[NNZ * BS * BS] = { 0.505208, -0.015657, -0.015657, 0.530954, -0.310105, 0.0630386, 0.00541174, 0.180264, -0.310105, 0.00541174, 0.0630386, 0.180264 , 0.511346, 0.000116003, 0.000116003, 0.524502};
    double X[M* BS] &lt;N&gt;= { {1, 2}, {1, 2}, {2, 3}, {2, 3} }; //input for srmm
    double X_v&lt;N&gt;[M*BS]={{1,1,2,2},{2,2,3,3}}; //input for srmv
    double Y[M* BS] &lt;N&gt; = { {0, 0}, {0, 0}, {0, 0}, {0, 0} };
    double Temp&lt;N&gt;[M * BS] = {{0, 0, 0, 0}, {0, 0, 0, 0} };
    int m = M;
    int n = N;
    int k = K;
    int bs = BS;
    double alpha = 1.0;
    double beta = 0.0;
    char matdescra[6] = { 'G', '0', '0', 'C', '0', '0' };
    mkl_dbsrmm("N", &amp;amp;m, &amp;amp;n, &amp;amp;k, &amp;amp;bs, &amp;amp;alpha, matdescra, a, ja, ia, &amp;amp;ia[1], &amp;amp;(X[0][0]), &amp;amp;m, &amp;amp;beta, &amp;amp;(Y[0][0]), &amp;amp;k);
    std::cout &amp;lt;&amp;lt; std::scientific;
    std::cout &amp;lt;&amp;lt; "X" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; M * BS; ++i) {
        for(int j = 0; j &amp;lt; N; ++j) {
            std::cout &amp;lt;&amp;lt; X&lt;I&gt;&lt;J&gt; &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }
    std::cout &amp;lt;&amp;lt; "Y = AX (bsrmm)" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; M * BS; ++i) {
        for(int j = 0; j &amp;lt; N; ++j) {
            std::cout &amp;lt;&amp;lt; Y&lt;I&gt;&lt;J&gt; &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }
    std::cout &amp;lt;&amp;lt; "Y = AX (bsrmv x2)" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt; N; ++i)
    {
        mkl_dbsrmv("N", &amp;amp;m, &amp;amp;k, &amp;amp;bs, &amp;amp;alpha, matdescra, a, ja, pointerB, pointerE, &amp;amp;(X_v&lt;I&gt;[0]), &amp;amp;beta, &amp;amp;(Temp&lt;I&gt;[0]));
    }
    for(int j = 0; j &amp;lt;  M*BS; j++) {
        for(int i = 0; i &amp;lt; N; i++) {
            std::cout &amp;lt;&amp;lt; Temp&lt;I&gt;&lt;J&gt; &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }
    std::cout &amp;lt;&amp;lt; "Results are same!" &amp;lt;&amp;lt; std::endl;&lt;/J&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/J&gt;&lt;/I&gt;&lt;/N&gt;&lt;/N&gt;&lt;/N&gt;&lt;/N&gt;&lt;/M&gt;&lt;/M&gt;&lt;/PRE&gt;

&lt;P&gt;Or you could test with Dgemm function, you will find there's no problem with bsrmm.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 04:44:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093082#M23372</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-28T04:44:19Z</dc:date>
    </item>
    <item>
      <title>Wow, that’s kind of funny and</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093083#M23373</link>
      <description>&lt;P class="p1"&gt;Wow, that’s kind of funny and sad at the same time how this conversation is going nowhere.&lt;/P&gt;

&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P class="p1"&gt;Let me start over. In my application, I have BSR matrix A (of course it has hundred thousands of rows/columns so I cannot use gemm…). I need to compute the product of A and multiple vectors (stored column-wise as a matrix B)&lt;/P&gt;

&lt;P class="p1"&gt;For instance, if m = k = 2, lb = 2, and n = 2, with&lt;/P&gt;

&lt;P class="p1"&gt;B = [1, 2;&lt;/P&gt;

&lt;P class="p1"&gt;3, 4;&lt;/P&gt;

&lt;P class="p1"&gt;5, 6;&lt;/P&gt;

&lt;P class="p1"&gt;7, 8];&lt;/P&gt;

&lt;P class="p1"&gt;stored in memory as B = {1, 3, 5, 7, 2, 4, 6, 8 }; (this is how B must be stored if you need to solve A^-1 B with PARDISO)&lt;/P&gt;

&lt;P class="p1"&gt;I want to compute C = A * B, stored in memory as C = { c_11, c_21, c_31, c_41, c_12, c_22, c_32, c_42 };&lt;/P&gt;

&lt;P class="p1"&gt;I cannot change how B is stored in memory because it is how PARDISO takes it as an argument and I don’t want to change the layout of B everytime I call bsrmm and then PARDISO.&lt;/P&gt;

&lt;P class="p1"&gt;In this thread answered by a colleague of yours &lt;A href="https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/365430#comment-1724657"&gt;https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/365430#comment-1724657&lt;/A&gt;, he suggests to use a one-based CSR matrix for the routine csrmm given my layout of B and C, now what I need to do with A to get the desired results as a BSR matrix? I can do a loop over (B + j * lb * m), j = 0..n-1 and call bsrmv n times, but I would rather use bsrmm one time. Are you telling me that the memory layout of the input matrices B are different between bsrmm and csrmm/PARDISO?&lt;/P&gt;

&lt;P class="p1"&gt;I’m attaching another example, the same matrix A is stored as a CSR and a BSR matrix. The calls to csrmm and bsrmv are the same, but not with bsrmm. I cannot change how B and C are stored, otherwise, how can I call PARDISO afterwards? I can change the call to bsrmm however (for example use a zero-based BSR matrix for A).&lt;/P&gt;

&lt;P class="p1"&gt;Thank you in advance for your help.&lt;/P&gt;

&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2016 09:20:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093083#M23373</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2016-09-28T09:20:40Z</dc:date>
    </item>
    <item>
      <title>Hi qweasd:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093084#M23374</link>
      <description>&lt;P&gt;Hi qweasd:&lt;/P&gt;

&lt;P&gt;I think there are some errors in your code:&lt;/P&gt;

&lt;P&gt;1. you print value of y like these:&amp;nbsp;y[j * m * bs + i], is that mean the length of y is 22 ? However, you defined the length of y is 10 as: double y[k*m] (k=5, m=2). Please pay attention to the length of array.&lt;/P&gt;

&lt;P&gt;2. You get correct value of csrmv &amp;amp; bsrmv, but it doesn't mean you calculated correctly, the length of y is incorrect. And Number of block rows of the matrix&amp;nbsp;&lt;VAR&gt;A&lt;/VAR&gt;&amp;nbsp; is also incorrect.&lt;/P&gt;

&lt;P&gt;3. By using srmv/crmv/srmm ,the matrix A is normally sparse matrix. Well, if you plan to calculate like a normally matrix in this program, you can. But, you should define the Number of block rows of the matrix&amp;nbsp;&lt;VAR&gt;A&lt;/VAR&gt;&amp;nbsp;as 1, it means length of block's row &lt;STRONG&gt;not &lt;/STRONG&gt;length of A's row. In this example code, the block is 1*1, you have 4 blocks for matrix A that block1 is 10, block2 is 2, block3 is 2, block4 is 10.&lt;BR /&gt;
	If you set Number of block rows of the matrix&amp;nbsp;&lt;VAR&gt;A,&lt;/VAR&gt;&amp;nbsp;that means each block is a 2*2 matrix.&lt;/P&gt;

&lt;P&gt;4. You should set Number of columns of the matrix&amp;nbsp;&lt;VAR&gt;C&lt;/VAR&gt;&amp;nbsp;as k, not m. The number of columns of C is 5, not 2.&lt;/P&gt;

&lt;P&gt;Please read &lt;A href="https://software.intel.com/en-us/node/520833"&gt;developer guide&lt;/A&gt; to help you understand the usage completely. I attached the code below:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;    int m_block=1
    int m_x=2;
    mkl_dbsrmm("N", &amp;amp;m_block, &amp;amp;k, &amp;amp;m_block, &amp;amp;bs, &amp;amp;one, matdescra, a, ja, ia, &amp;amp;ia[1], x, &amp;amp;m_x, &amp;amp;two, y, &amp;amp;m_x);
    std::cout &amp;lt;&amp;lt; "Y = AX + 2Y (bsrmm F):" &amp;lt;&amp;lt; std::endl;
    for(int i = 0; i &amp;lt;m_x; ++i) {
        for(int j = 0; j &amp;lt;k; ++j) {
            std::cout &amp;lt;&amp;lt; y[j*m_x+i] &amp;lt;&amp;lt; "\t";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Thu, 29 Sep 2016 06:52:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093084#M23374</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-09-29T06:52:51Z</dc:date>
    </item>
    <item>
      <title>Alright, I now get the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093085#M23375</link>
      <description>&lt;P&gt;Alright, I now get the correct results. The documentation&amp;nbsp;&lt;SPAN style="font-size: 1em;"&gt;here &lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;&lt;A href="https://software.intel.com/en-us/node/520833" target="_blank"&gt;https://software.intel.com/en-us/node/520833&lt;/A&gt; is quite misleading&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em;"&gt;:&lt;/SPAN&gt;&lt;/P&gt;

&lt;DL&gt;
	&lt;DT class="dlterm" style="box-sizing: border-box; position: relative; width: 140.391px; padding-right: 1.5em; float: left; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px; font-weight: normal;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic;"&gt;ldb&lt;/SPAN&gt;&lt;/DT&gt;
	&lt;DD style="box-sizing: border-box; margin-bottom: 0px; margin-left: 140.391px; position: relative; width: 561.594px; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;
		&lt;P style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; max-width: 100%; width: auto;"&gt;Specifies the leading dimension (in blocks) of&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic;"&gt;b&lt;/SPAN&gt;&amp;nbsp;as declared in the calling (sub)program.&lt;/P&gt;
	&lt;/DD&gt;
&lt;/DL&gt;

&lt;DL&gt;
	&lt;DT class="dlterm" style="box-sizing: border-box; position: relative; width: 140.391px; padding-right: 1.5em; float: left; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px; font-weight: normal;"&gt;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic;"&gt;ldc&lt;/SPAN&gt;&lt;/DT&gt;
	&lt;DD style="box-sizing: border-box; margin-bottom: 0px; margin-left: 140.391px; position: relative; width: 561.594px; color: rgb(102, 102, 102); font-family: Arial, Tahoma, Helvetica, sans-serif; font-size: 13px;"&gt;
		&lt;P style="box-sizing: border-box; word-wrap: break-word; margin-bottom: 1em; line-height: 1.4; max-width: 100%; width: auto;"&gt;Specifies the leading dimension (in blocks) of&amp;nbsp;&lt;SPAN class="parmname" style="box-sizing: border-box; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-style: italic;"&gt;c&lt;/SPAN&gt;&amp;nbsp;as declared in the calling (sub)program.&lt;SPAN style="color: rgb(83, 87, 94); font-family: Arial, 宋体, Tahoma, Helvetica, sans-serif; font-size: 1em;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
	&lt;/DD&gt;
&lt;/DL&gt;

&lt;P&gt;If I want my first example to return the correct result, I have to set ldb and ldc to&amp;nbsp;M * BS, and not M. I think you should remove "(in blocks)" from the documentation.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Sep 2016 08:05:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/What-is-happening-with-mkl-dbsrmm/m-p/1093085#M23375</guid>
      <dc:creator>asd__asdqwe</dc:creator>
      <dc:date>2016-09-29T08:05:39Z</dc:date>
    </item>
  </channel>
</rss>

