<?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 Hi  in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069837#M22200</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Nice to know you make the eigen and MKl work together. &amp;nbsp; You question actually depends on &amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;compiled the Eigen library based on MKL by defining&amp;nbsp;&lt;STRONG&gt;EIGEN_USE_MKL_ALL.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;&lt;STRONG&gt;a) If the&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: 700; font-size: 12px; line-height: 18px;"&gt;EIGEN_USE_MKL_ALL ensure &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;Eigen::PartialPivLU &amp;nbsp; = &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; color: rgb(96, 96, 96); line-height: 19.512px;"&gt;MKL &amp;nbsp;z&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;getrf () :&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Computes the LU factorization of a general m-by-n&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;matrix.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;As i understand, they are same, &amp;nbsp;then you don't have to replace one with another same one.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;b) If&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;&lt;SPAN style="font-weight: 700;"&gt;the&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: 700; font-size: 12px; line-height: 18px;"&gt;EIGEN_USE_MKL_ALL can't ensure EigenlLU = MKL.LU , then you may try&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;MKL functions because good performance&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;From the article, &lt;A href="http://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html" target="_blank"&gt;http://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html&lt;/A&gt;, it seems the case a). anyway, you can try it out&lt;/P&gt;

&lt;P&gt;Regarding your questions.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;1) In MKL ways, it &lt;STRONG&gt;doesn't&lt;/STRONG&gt; save memory, &amp;nbsp;but the memory alignment like&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;MKL_Complex16 *)mkl_malloc( m*m*sizeof( MKL_Complex16 ), allignment); may bring better performance. You can check MKL user guide to see the details.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;2) performance may be same (in case a, maybe a little change about interface transform) , &amp;nbsp;performance may be better in case b)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;3) If you install MKL, then there is MKL example under MKL install directory, which provide almost most of MKL functions's demo code. Include C code and fortran code. for example dgesv.c . You may refer to them.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;  ========================
 
 DGESV Example Program Results

 Solution
  -0.80  -0.39   0.96
  -0.70  -0.55   0.22
   0.59   0.84   1.90
   1.32  -0.10   5.36
   0.57   0.11   4.04

 Details of LU factorization
   8.23   1.08   9.04   2.14  -6.87
   0.83  -6.94  -7.92   6.55  -3.99
   0.69  -0.67 -14.18   7.24  -5.19
   0.73   0.75   0.02 -13.82  14.19
  -0.26   0.44  -0.59  -0.34  -3.43

 Pivot indices
      5      5      3      4      5
*/
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;mkl.h&amp;gt;

/* Auxiliary routines prototypes */
extern void print_matrix( char* desc, int m, int n, double* a, int lda );
extern void print_int_vector( char* desc, int n, int* a );

/* Parameters */
#define N 5
#define NRHS 3
#define LDA N
#define LDB N

/* Main program */
int main() {
	/* Locals */
	MKL_INT n = N, nrhs = NRHS, lda = LDA, ldb = LDB, info;
	/* Local arrays */
	MKL_INT ipiv&lt;N&gt;;
	double a[LDA*N] = {
	    6.80, -2.11,  5.66,  5.97,  8.23,
	   -6.05, -3.30,  5.36, -4.44,  1.08,
	   -0.45,  2.58, -2.70,  0.27,  9.04,
	    8.32,  2.71,  4.35, -7.17,  2.14,
	   -9.67, -5.14, -7.26,  6.08, -6.87
	};
	double b[LDB*NRHS] = {
	    4.02,  6.19, -8.22, -7.57, -3.03,
	   -1.56,  4.00, -8.67,  1.75,  2.86,
	    9.81, -4.09, -4.57, -8.61,  8.99
	};
	/* Executable statements */
	printf( " DGESV Example Program Results\n" );
	/* Solve the equations A*X = B */
	dgesv( &amp;amp;n, &amp;amp;nrhs, a, &amp;amp;lda, ipiv, b, &amp;amp;ldb, &amp;amp;info );
	/* Check for the exact singularity */
	if( info &amp;gt; 0 ) {
		printf( "The diagonal element of the triangular factor of A,\n" );
		printf( "U(%i,%i) is zero, so that A is singular;\n", info, info );
		printf( "the solution could not be computed.\n" );
		exit( 1 );
	}
	/* Print solution */
	print_matrix( "Solution", n, nrhs, b, ldb );
	/* Print details of LU factorization */
	print_matrix( "Details of LU factorization", n, n, a, lda );
	/* Print pivot indices */
	print_int_vector( "Pivot indices", n, ipiv );
	exit( 0 );
} /* End of DGESV Example */

/* Auxiliary routine: printing a matrix */
void print_matrix( char* desc, int m, int n, double* a, int lda ) {
	int i, j;
	printf( "\n %s\n", desc );
	for( i = 0; i &amp;lt; m; i++ ) {
		for( j = 0; j &amp;lt; n; j++ ) printf( " %6.2f", a[i+j*lda] );
		printf( "\n" );
	}
}
&lt;/N&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 25 Jul 2016 03:03:35 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2016-07-25T03:03:35Z</dc:date>
    <item>
      <title>Eigen+MKL vs. MKL-Only</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069836#M22199</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Currently, I have a code that uses Eigen (a C++ template library for linear algebra) to save a square general dense matrix in the following way&lt;/SPAN&gt;&lt;/P&gt;

&lt;UL&gt;
	&lt;LI&gt;ZMatrix = new Eigen::MatrixXcd;&lt;/LI&gt;
	&lt;LI&gt;(*ZMatrix).resize(N_line,N_line);&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;And subsequently solve the resulting linear system of equations using Eigen as follow:&lt;/SPAN&gt;&lt;/P&gt;

&lt;UL&gt;
	&lt;LI&gt;Eigen::PartialPivLU&amp;lt;Eigen::MatrixXcd&amp;gt; ZMatrixLU(*ZMatrix);&lt;/LI&gt;
	&lt;LI&gt;(*Solution) = ZMatrixLU.solve(*RHS);&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;I recently compiled the Eigen library based on MKL by defining&amp;nbsp;EIGEN_USE_MKL_ALL. This works fine but I am wondering what would happen if I completely get rid of Eigen and do the following instead&lt;/SPAN&gt;&lt;/P&gt;

&lt;UL&gt;
	&lt;LI&gt;MKL_INT m=N_line;&lt;/LI&gt;
	&lt;LI&gt;MKL_Complex16 *ZMatrix;&lt;/LI&gt;
	&lt;LI&gt;const int allignment = 64;&lt;/LI&gt;
	&lt;LI&gt;ZMatrix = (MKL_Complex16 *)mkl_malloc( m*m*sizeof( MKL_Complex16 ), allignment);&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;And this time use MKL functions to solve the resulting linear system of equations. Now I have the following questions:&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;By saving the dense matrix ZMatrix, in MKL's way (the second technique), is it possible to save memory?&lt;/LI&gt;
	&lt;LI&gt;By using MKL's functions instead of Eigen, is it possible to make the operations faster?&lt;/LI&gt;
	&lt;LI&gt;If answer to any or both of the above questions are yes, what is the best way of defining a dense matrix and solving the resulting system using MKL? Is there a tutorial code that I can follow to make sure that I am doing everything in its best possible way in terms of both memory and speed.&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;Please note that the size of the dense matrix can range from (1000x1000) to (20,000x20,000).&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jul 2016 15:43:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069836#M22199</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-07-22T15:43:18Z</dc:date>
    </item>
    <item>
      <title>Hi </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069837#M22200</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Nice to know you make the eigen and MKl work together. &amp;nbsp; You question actually depends on &amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;compiled the Eigen library based on MKL by defining&amp;nbsp;&lt;STRONG&gt;EIGEN_USE_MKL_ALL.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;&lt;STRONG&gt;a) If the&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: 700; font-size: 12px; line-height: 18px;"&gt;EIGEN_USE_MKL_ALL ensure &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;Eigen::PartialPivLU &amp;nbsp; = &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; color: rgb(96, 96, 96); line-height: 19.512px;"&gt;MKL &amp;nbsp;z&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;getrf () :&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Computes the LU factorization of a general m-by-n&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;matrix.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;As i understand, they are same, &amp;nbsp;then you don't have to replace one with another same one.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;b) If&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;&lt;SPAN style="font-weight: 700;"&gt;the&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: 700; font-size: 12px; line-height: 18px;"&gt;EIGEN_USE_MKL_ALL can't ensure EigenlLU = MKL.LU , then you may try&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; line-height: 18px;"&gt;MKL functions because good performance&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;From the article, &lt;A href="http://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html" target="_blank"&gt;http://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html&lt;/A&gt;, it seems the case a). anyway, you can try it out&lt;/P&gt;

&lt;P&gt;Regarding your questions.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;1) In MKL ways, it &lt;STRONG&gt;doesn't&lt;/STRONG&gt; save memory, &amp;nbsp;but the memory alignment like&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;MKL_Complex16 *)mkl_malloc( m*m*sizeof( MKL_Complex16 ), allignment); may bring better performance. You can check MKL user guide to see the details.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;2) performance may be same (in case a, maybe a little change about interface transform) , &amp;nbsp;performance may be better in case b)&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;3) If you install MKL, then there is MKL example under MKL install directory, which provide almost most of MKL functions's demo code. Include C code and fortran code. for example dgesv.c . You may refer to them.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;  ========================
 
 DGESV Example Program Results

 Solution
  -0.80  -0.39   0.96
  -0.70  -0.55   0.22
   0.59   0.84   1.90
   1.32  -0.10   5.36
   0.57   0.11   4.04

 Details of LU factorization
   8.23   1.08   9.04   2.14  -6.87
   0.83  -6.94  -7.92   6.55  -3.99
   0.69  -0.67 -14.18   7.24  -5.19
   0.73   0.75   0.02 -13.82  14.19
  -0.26   0.44  -0.59  -0.34  -3.43

 Pivot indices
      5      5      3      4      5
*/
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;mkl.h&amp;gt;

/* Auxiliary routines prototypes */
extern void print_matrix( char* desc, int m, int n, double* a, int lda );
extern void print_int_vector( char* desc, int n, int* a );

/* Parameters */
#define N 5
#define NRHS 3
#define LDA N
#define LDB N

/* Main program */
int main() {
	/* Locals */
	MKL_INT n = N, nrhs = NRHS, lda = LDA, ldb = LDB, info;
	/* Local arrays */
	MKL_INT ipiv&lt;N&gt;;
	double a[LDA*N] = {
	    6.80, -2.11,  5.66,  5.97,  8.23,
	   -6.05, -3.30,  5.36, -4.44,  1.08,
	   -0.45,  2.58, -2.70,  0.27,  9.04,
	    8.32,  2.71,  4.35, -7.17,  2.14,
	   -9.67, -5.14, -7.26,  6.08, -6.87
	};
	double b[LDB*NRHS] = {
	    4.02,  6.19, -8.22, -7.57, -3.03,
	   -1.56,  4.00, -8.67,  1.75,  2.86,
	    9.81, -4.09, -4.57, -8.61,  8.99
	};
	/* Executable statements */
	printf( " DGESV Example Program Results\n" );
	/* Solve the equations A*X = B */
	dgesv( &amp;amp;n, &amp;amp;nrhs, a, &amp;amp;lda, ipiv, b, &amp;amp;ldb, &amp;amp;info );
	/* Check for the exact singularity */
	if( info &amp;gt; 0 ) {
		printf( "The diagonal element of the triangular factor of A,\n" );
		printf( "U(%i,%i) is zero, so that A is singular;\n", info, info );
		printf( "the solution could not be computed.\n" );
		exit( 1 );
	}
	/* Print solution */
	print_matrix( "Solution", n, nrhs, b, ldb );
	/* Print details of LU factorization */
	print_matrix( "Details of LU factorization", n, n, a, lda );
	/* Print pivot indices */
	print_int_vector( "Pivot indices", n, ipiv );
	exit( 0 );
} /* End of DGESV Example */

/* Auxiliary routine: printing a matrix */
void print_matrix( char* desc, int m, int n, double* a, int lda ) {
	int i, j;
	printf( "\n %s\n", desc );
	for( i = 0; i &amp;lt; m; i++ ) {
		for( j = 0; j &amp;lt; n; j++ ) printf( " %6.2f", a[i+j*lda] );
		printf( "\n" );
	}
}
&lt;/N&gt;&lt;/PRE&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jul 2016 03:03:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069837#M22200</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2016-07-25T03:03:35Z</dc:date>
    </item>
    <item>
      <title>Thank you Ying. These are my</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069838#M22201</link>
      <description>&lt;P&gt;Thank you Ying. These are my findings after actually implementing it using MKL-Only. Maybe others can benefit from this discussion as well:&lt;/P&gt;

&lt;OL&gt;
	&lt;LI&gt;Saving the dense matrix in MKL way and Eigen way is the same in terms of memory use. For example, the largest matrix that I can fill into my memory is roughly (12000x12000) matrix both using&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;Eigen::MatrixXcd and&amp;nbsp;MKL_Complex16 *ZMatrix.&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;By using&amp;nbsp;zgesv() of MKL instead of&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;ZMatrixLU() of Eigen, there is no gain in speed, but the memory requirement for&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;zgesv() is less. For example, when I solve a system with 5796 unknowns using&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;ZMatrixLU() or&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;zgesv(), 23 seconds is required (both over 4 cores using OpenMP). However, for larger systems&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;ZMatrixLU() runs into memory issues while&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.008px; line-height: 19.512px;"&gt;zgesv() can handle systems up to 8100 unknowns.&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;FONT color="#606060"&gt;&lt;SPAN style="line-height: 19.512px;"&gt;I used the example in mkl/examples/exacmples_core_c.zip/lapackc/source/zgesv.c. However, instead of&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;_dcomplex, I had to use&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;MKL_Complex16. I think this example should be updated because I could not compiled it as is. Only when I introduced&amp;nbsp;MKL_Complex16 it could be built. ( I used Intel C++ compiler rather than Microsoft's Visual C++ compiler as I usually get executable files which are twice as fast using Intel C++ compiler).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;Hope this helps.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;Mohammad&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jul 2016 17:56:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069838#M22201</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-07-26T17:56:17Z</dc:date>
    </item>
    <item>
      <title>Hi Mohammad, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069839#M22202</link>
      <description>&lt;P&gt;Hi Mohammad,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks a lot for sharing your findings.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Regarding 3. yes, it seems better to use&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;MKL_Complex16. &amp;nbsp; some compiler may report warning about the data types.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px; line-height: 19.512px;"&gt;the dcomplex was defined in the&amp;nbsp;&lt;SPAN style="color: rgb(96, 96, 96); font-size: 13.008px; line-height: 19.512px;"&gt;zgesv.c&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px; line-height: 19.512px;"&gt;struct _dcomplex { double re, im; };&lt;BR /&gt;
	typedef struct _dcomplex dcomplex;&lt;/P&gt;

&lt;P style="font-size: 13.008px; line-height: 19.512px;"&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;zgesv.c(112) : warning C4133: 'function' : incompatible types - from 'dcomplex [&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;16]' to 'MKL_Complex16 *'&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px; line-height: 19.512px;"&gt;zgesv.c(112) : warning C4133: 'function' : incompatible types - from 'dcomplex [8]' to 'MKL_Complex16 *'&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jul 2016 01:55:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Eigen-MKL-vs-MKL-Only/m-p/1069839#M22202</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2016-07-27T01:55:06Z</dc:date>
    </item>
  </channel>
</rss>

