<?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>Thema "Re: oneMKL Lapack functions with DPC++ compiler" in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1537863#M35368</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;A gentle reminder:&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Have you found the information to be useful? Could you please provide us with an update on your issue?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Jilani&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 27 Oct 2023 09:02:39 GMT</pubDate>
    <dc:creator>IntelSupport</dc:creator>
    <dc:date>2023-10-27T09:02:39Z</dc:date>
    <item>
      <title>oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1532912#M35286</link>
      <description>&lt;P&gt;I am getting the following error employing lapack functions with DPC++ compiler&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Error no matching function for call to 'dgeqrf_' VectorFittingOptimization&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1&amp;gt;C:\Program Files (x86)\Intel\oneAPI\mkl\latest\include/mkl_lapack.h(15252,6): note: candidate function not viable: no known conversion from 'integer *' (aka 'long *') to 'const int *' for 1st argument&lt;BR /&gt;1&amp;gt;void dgeqrf_( const MKL_INT* m, const MKL_INT* n, double* a,&lt;BR /&gt;1&amp;gt; ^&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same code runs properly with C++ Compiler Classic and Visual C++.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Thu, 12 Oct 2023 05:55:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1532912#M35286</guid>
      <dc:creator>FelipeDicler</dc:creator>
      <dc:date>2023-10-12T05:55:25Z</dc:date>
    </item>
    <item>
      <title>Re:oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1533432#M35297</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for posting in Intel Communities.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please let us know the OS details, Intel MKL you are using?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, could you please provide us with the complete sample reproducer code you are using to reproduce the similar behavior and investigate more at our end?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards,&lt;/P&gt;&lt;P&gt;Jilani&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 13 Oct 2023 09:56:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1533432#M35297</guid>
      <dc:creator>IntelSupport</dc:creator>
      <dc:date>2023-10-13T09:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: Re:oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1533509#M35299</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While writing a minimum example, it turned out that the problem is related to the type of int variables that my mkl function needs. I was using long int. It works for Visual C++ and Intel C++ Classic, but gives the above error with DPC++. Changing the types to int solves the problem.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OS:&amp;nbsp; Windows 11, 22H2&lt;/P&gt;&lt;P&gt;Intel MKL 2023.2&lt;/P&gt;&lt;P&gt;Visual Studio 2022 17.1.0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;#define ALLOC_FACTOR_DGEQRF 0.01&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;time.h&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;mkl.h&amp;gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;int main(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int&amp;nbsp; &amp;nbsp; &amp;nbsp;m = 2000;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int&amp;nbsp; &amp;nbsp; &amp;nbsp;n = 100;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int&amp;nbsp; &amp;nbsp; &amp;nbsp;lda = m;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int&amp;nbsp; &amp;nbsp; &amp;nbsp;lwork = ((int)(ALLOC_FACTOR_DGEQRF * m * n) / 64 ) * 64;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;//long int&amp;nbsp; &amp;nbsp; &amp;nbsp;info;&amp;nbsp; // -&amp;gt; arises conversion error&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;int&amp;nbsp; &amp;nbsp; &amp;nbsp;info;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double* tau = (double*)mkl_malloc(n * sizeof(double), 64);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double* work = (double*)mkl_malloc(lwork * sizeof(double), 64);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double* A = (double*)mkl_malloc(m * n * sizeof(double), 64);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double check = 0;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;//&amp;nbsp; Filling matrix A with ones&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;for (int k = 0; k &amp;lt;= m * n; ++k) A[k] = 1;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;clock_t start_time, end_time;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;start_time = clock();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;dgeqrf_(&amp;amp;m, &amp;amp;n, A, &amp;amp;lda, tau, work, &amp;amp;lwork, &amp;amp;info);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;for (int k = 0; k &amp;lt;= m * n; ++k) check = check + A[k];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;printf("Checksum&amp;nbsp; %20.20f\n", check);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;end_time = clock();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Calculate execution time in seconds&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double execution_time = ((double)(end_time - start_time)) / CLOCKS_PER_SEC;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;printf("\nDGEQRF Execution Time: %.6f seconds\n", execution_time);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;double gflops = (2.0 / 3.0) * n * n * (3 * m - n) / (execution_time * 1e9); // (2/3)n2(3m-n) for m &amp;gt; n&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Print the performance results&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;printf("Matrix Size: %d x %d\n", m, n);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;//printf("Execution Time: %.6f seconds\n", end_time - start_time);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;printf("GFLOPS: %.2f\n", gflops);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mkl_free(tau);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mkl_free(work);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mkl_free(A);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Oct 2023 15:20:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1533509#M35299</guid>
      <dc:creator>FelipeDicler</dc:creator>
      <dc:date>2023-10-13T15:20:40Z</dc:date>
    </item>
    <item>
      <title>Re:oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1535911#M35345</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Intel DPC++ compiler(dpcpp) is used to execute the C++ with SYCL code. Intel C++ compiler is only used to execute the C++ source code. Because of this, the sample code runs without any compilation issues on Intel C++ classic.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If long int is required rather than int, we can do explicit casting as seen below. This will solve the compilation error.&lt;/P&gt;&lt;P&gt;dgeqrf_(&amp;amp;m, &amp;amp;n, A, &amp;amp;lda, tau, work, &amp;amp;lwork, ((int*) &amp;amp; info));&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jilani&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 20 Oct 2023 16:18:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1535911#M35345</guid>
      <dc:creator>IntelSupport</dc:creator>
      <dc:date>2023-10-20T16:18:46Z</dc:date>
    </item>
    <item>
      <title>Re: oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1537863#M35368</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;A gentle reminder:&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Have you found the information to be useful? Could you please provide us with an update on your issue?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Jilani&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Oct 2023 09:02:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1537863#M35368</guid>
      <dc:creator>IntelSupport</dc:creator>
      <dc:date>2023-10-27T09:02:39Z</dc:date>
    </item>
    <item>
      <title>Re:oneMKL Lapack functions with DPC++ compiler</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1540259#M35395</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;We have not heard back from you. Could you please provide us with an update?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jilani&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 03 Nov 2023 11:41:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/oneMKL-Lapack-functions-with-DPC-compiler/m-p/1540259#M35395</guid>
      <dc:creator>JilaniS_Intel</dc:creator>
      <dc:date>2023-11-03T11:41:20Z</dc:date>
    </item>
  </channel>
</rss>

