<?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 complex-valued scalar products in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159149#M27802</link>
    <description>&lt;P&gt;Is there any problem calling BLAS functions zdotc, zdotu in recent version of MKL?&lt;/P&gt;&lt;P&gt;When calling these functions from a C-code using recent version of the MKL, the code crashes or returns fault values. It works properly when using soft-coded FORTRAN BLAS. I am using LINUX, I tried three different versions of the MKL (2018.5.274, 2019.1.144 und 2019.3.199).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is how I call the MKL&lt;/P&gt;&lt;P&gt;cc -O -fPIC -fopenmp -m64 -mcmodel=medium -I $MKLROOT/include test.c -L $MKLROOT/lib -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a sample C-code&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/P&gt;&lt;P&gt;typedef struct { double r, i; } doublecomplex;&lt;/P&gt;&lt;P&gt;doublecomplex zdotc_(int *,doublecomplex *,int *, doublecomplex *,int *),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zdotu_(int *,doublecomplex *,int *, doublecomplex *,int *);&lt;/P&gt;&lt;P&gt;#define N 4&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; doublecomplex *v, *w, val;&lt;BR /&gt;&amp;nbsp; int i=N,j=1,k=2,l,m;&lt;BR /&gt;&amp;nbsp; v=(doublecomplex *)malloc((size_t)N&amp;nbsp; *sizeof(doublecomplex));&lt;BR /&gt;&amp;nbsp; w=(doublecomplex *)malloc((size_t)2*N*sizeof(doublecomplex));&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (l=0; l&amp;lt;N; l++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v&lt;L&gt;.r&amp;nbsp; = 1.0; v&lt;L&gt;.i&amp;nbsp; =(double)l;&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w&lt;L&gt;.r&amp;nbsp; =-1.0; w&lt;L&gt;.i&amp;nbsp; = 1.0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w[N+l].r= 1.0; w[N+l].i= 0.0;&lt;BR /&gt;&amp;nbsp; }&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; val=zdotc_(&amp;amp;i, v,&amp;amp;j, w,&amp;amp;k);&lt;BR /&gt;&amp;nbsp; printf("val=(%8.1le,%8.1le)\n",val.r,val.i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; val=zdotu_(&amp;amp;i, v,&amp;amp;j, w,&amp;amp;k);&lt;BR /&gt;&amp;nbsp; printf("val=(%8.1le,%8.1le)\n",val.r,val.i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; free(v);&lt;BR /&gt;&amp;nbsp; free(w);&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 09 Sep 2019 06:26:25 GMT</pubDate>
    <dc:creator>Bollhöfer__Matthias</dc:creator>
    <dc:date>2019-09-09T06:26:25Z</dc:date>
    <item>
      <title>complex-valued scalar products</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159149#M27802</link>
      <description>&lt;P&gt;Is there any problem calling BLAS functions zdotc, zdotu in recent version of MKL?&lt;/P&gt;&lt;P&gt;When calling these functions from a C-code using recent version of the MKL, the code crashes or returns fault values. It works properly when using soft-coded FORTRAN BLAS. I am using LINUX, I tried three different versions of the MKL (2018.5.274, 2019.1.144 und 2019.3.199).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is how I call the MKL&lt;/P&gt;&lt;P&gt;cc -O -fPIC -fopenmp -m64 -mcmodel=medium -I $MKLROOT/include test.c -L $MKLROOT/lib -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a sample C-code&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/P&gt;&lt;P&gt;typedef struct { double r, i; } doublecomplex;&lt;/P&gt;&lt;P&gt;doublecomplex zdotc_(int *,doublecomplex *,int *, doublecomplex *,int *),&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zdotu_(int *,doublecomplex *,int *, doublecomplex *,int *);&lt;/P&gt;&lt;P&gt;#define N 4&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; doublecomplex *v, *w, val;&lt;BR /&gt;&amp;nbsp; int i=N,j=1,k=2,l,m;&lt;BR /&gt;&amp;nbsp; v=(doublecomplex *)malloc((size_t)N&amp;nbsp; *sizeof(doublecomplex));&lt;BR /&gt;&amp;nbsp; w=(doublecomplex *)malloc((size_t)2*N*sizeof(doublecomplex));&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (l=0; l&amp;lt;N; l++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v&lt;L&gt;.r&amp;nbsp; = 1.0; v&lt;L&gt;.i&amp;nbsp; =(double)l;&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w&lt;L&gt;.r&amp;nbsp; =-1.0; w&lt;L&gt;.i&amp;nbsp; = 1.0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w[N+l].r= 1.0; w[N+l].i= 0.0;&lt;BR /&gt;&amp;nbsp; }&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; val=zdotc_(&amp;amp;i, v,&amp;amp;j, w,&amp;amp;k);&lt;BR /&gt;&amp;nbsp; printf("val=(%8.1le,%8.1le)\n",val.r,val.i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; val=zdotu_(&amp;amp;i, v,&amp;amp;j, w,&amp;amp;k);&lt;BR /&gt;&amp;nbsp; printf("val=(%8.1le,%8.1le)\n",val.r,val.i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; free(v);&lt;BR /&gt;&amp;nbsp; free(w);&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Sep 2019 06:26:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159149#M27802</guid>
      <dc:creator>Bollhöfer__Matthias</dc:creator>
      <dc:date>2019-09-09T06:26:25Z</dc:date>
    </item>
    <item>
      <title>I rewrote this case by</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159150#M27803</link>
      <description>&lt;P&gt;I rewrote this case by applying recommended MKL_COMPLEX16 datatypes and I don't see the problem on my side. the example (test_zdot.cpp) is attached to this tread.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Sep 2019 04:49:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159150#M27803</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-09-18T04:49:36Z</dc:date>
    </item>
    <item>
      <title>The example has been build</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159151#M27804</link>
      <description>&lt;P&gt;The example has been build against mkl_threading, lp64 modes and then tested on AVX, AVX2 and AVX-512 based systems with MKL_VERBOSE mode enabled:&lt;/P&gt;&lt;P&gt;AVX - 512:&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;MKL_VERBOSE Intel(R) MKL 2019.0 Update 5 Product build 20190808 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 512 &lt;STRONG&gt;(Intel(R) AVX-512)&lt;/STRONG&gt; enabled processors, Lnx 2.20GHz lp64 intel_thread&lt;BR /&gt;MKL_VERBOSE ZDOTC(0x7ffef279cc00,4,0x24e80c0,1,0x24f92c0,2) 162.29ms CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:28&lt;BR /&gt;&lt;STRONG&gt;zdotc : val=( 1.0e+00,-2.0e+00)&lt;/STRONG&gt;&lt;BR /&gt;MKL_VERBOSE ZDOTU(0x7ffef279cc00,4,0x24e80c0,1,0x24f92c0,2) 17.16us CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:28&lt;BR /&gt;&lt;STRONG&gt;zdotu : val=(-1.0e+00, 6.0e+00)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;AVX2:&lt;/P&gt;&lt;P&gt;./test_zdot.out&lt;BR /&gt;MKL_VERBOSE Intel(R) MKL 2019.0 Update 5 Product build 20190808 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 &lt;STRONG&gt;(Intel(R) AVX2)&lt;/STRONG&gt; enabled processors, Lnx 2.20GHz lp64 intel_thread&lt;BR /&gt;MKL_VERBOSE ZDOTC(0x7ffd3aefbf80,4,0x1d560c0,1,0x1d672c0,2) 2.23ms CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:44&lt;BR /&gt;&lt;STRONG&gt;zdotc : val=( 1.0e+00,-2.0e+00)&lt;/STRONG&gt;&lt;BR /&gt;MKL_VERBOSE ZDOTU(0x7ffd3aefbf80,4,0x1d560c0,1,0x1d672c0,2) 7.40us CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:44&lt;BR /&gt;&lt;STRONG&gt;zdotu : val=(-1.0e+00, 6.0e+00)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;AVX:&lt;/P&gt;&lt;P&gt;./test_zdot.out&lt;BR /&gt;MKL_VERBOSE Intel(R) MKL 2019.0 Update 5 Product build 20190808 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions &lt;STRONG&gt;(Intel(R) AVX)&lt;/STRONG&gt; enabled processors, Lnx 2.80GHz lp64 intel_thread&lt;BR /&gt;MKL_VERBOSE ZDOTC(0x7ffe7aec0e00,4,0xca40c0,1,0xcb52c0,2) 2.79ms CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:20&lt;BR /&gt;&lt;STRONG&gt;zdotc : val=( 1.0e+00,-2.0e+00)&lt;/STRONG&gt;&lt;BR /&gt;MKL_VERBOSE ZDOTU(0x7ffe7aec0e00,4,0xca40c0,1,0xcb52c0,2) 13.45us CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:20&lt;BR /&gt;&lt;STRONG&gt;zdotu : val=(-1.0e+00, 6.0e+00)&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Sep 2019 04:54:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159151#M27804</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-09-18T04:54:09Z</dc:date>
    </item>
    <item>
      <title>forget to add: applying with</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159152#M27805</link>
      <description>&lt;P&gt;forget to add: applying with compiler's options you use, didn't chanched changed nothing:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;icc -O -fPIC -fopenmp -m64 -mcmodel=medium &amp;nbsp;-mkl test_zdot.cpp -o test_zdot.out&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;./test_zdot.out&lt;BR /&gt;MKL_VERBOSE Intel(R) MKL 2019.0 Update 5 Product build 20190808 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) enabled processors, Lnx 2.20GHz lp64 intel_thread&lt;BR /&gt;MKL_VERBOSE ZDOTC(0x7ffe42d70b80,4,0x1b000c0,1,0x1b112c0,2) 2.87ms CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:28&lt;BR /&gt;&lt;STRONG&gt;zdotc : val=( 1.0e+00,-2.0e+00)&lt;/STRONG&gt;&lt;BR /&gt;MKL_VERBOSE ZDOTU(0x7ffe42d70b80,4,0x1b000c0,1,0x1b112c0,2) 18.40us CNR:OFF Dyn:1 FastMM:1 TID:0 &amp;nbsp;NThr:28&lt;BR /&gt;&lt;STRONG&gt;zdotu : val=(-1.0e+00, 6.0e+00)&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Sep 2019 05:08:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/complex-valued-scalar-products/m-p/1159152#M27805</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-09-18T05:08:18Z</dc:date>
    </item>
  </channel>
</rss>

