Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6956 Discussions

Compilation Errors with MKL_DIRECT_CALL_SEQ

Daniele_S_1
Beginner
568 Views

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
568 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

0 Kudos
Ying_H_Intel
Employee
568 Views

Hi Daniele, 

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

Thanks

Ying 

 

0 Kudos
Sarah_K_Intel
Employee
568 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

0 Kudos
Ying_H_Intel
Employee
568 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

0 Kudos
Reply