Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Daniele_S_1
Beginner
100 Views

Compilation Errors with MKL_DIRECT_CALL_SEQ

Hi,

I'm compiling a cpp file that includes mkl.h and contains a single cblas_dgemm call with the following:

icpc -DMKL_DIRECT_CALL_SEQ -DMKL_ILP64 -I/opt/intel/mkl/include -c -o main.o main.cpp

Compilation breaks and I get mutliple times the following message:

error: expression must be an lvalue or a function designator
    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 4, 4, 4, 1, A, 4, B, 4, 1, C, 4);

If a remove -DMKL_DIRECT_CALL_SEQ the compilation works as expected.

Is this a bug or am I doing anything wrong?

Thanks,

Daniele

0 Kudos
4 Replies
Daniele_S_1
Beginner
100 Views

I forgot to mention that the very same code used to compile with Intel MKL 11.2 and that now I've upgraded to Intel MKL 11.3.2.

Daniele

Ying_H_Intel
Employee
100 Views

Hi Daniele, 

Thanks for the report.  The issue looks familiar. We will check and get back to you later. 

Thanks

Ying 

 

Sarah_K_Intel
Employee
100 Views

Hi Daniele~

Thank you for your interest in this functionality!  Direct call support for CBLAS interfaces was introduced in Intel MKL 11.2.2, which may explain why the compilation works as expected for Intel MKL 11.2.  The implementation assumes that variables, rather than literals, are passed as arguments to the cblas_dgemm call.  We will need to change the implementation to allow both variables and literals to work for the CBLAS interfaces with direct call.

In the meantime, if you change your code to:

      MKL_INT four = 4;

      double one = 1.0;

      cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, four, four, four, one, A, four, B, four, one, C, four);

instead of

      cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 4, 4, 4, 1, A, 4, B, 4, 1, C, 4);

does the compilation succeed?

Thanks,

Sarah

Ying_H_Intel
Employee
100 Views

Dear All,

Just update the thread.  MKL 2017 update 1 release recently, which fix the issue. 

@Daniele, thank you for report the bug!

Best Regards,

Ying

Reply