- Contrassegnare come Nuovo
- Preferito
- Iscriversi
- Disattiva notifiche
- Iscriversi a feed RSS
- Evidenziare
- Stampare
- Segnalare contenuto inappropriato
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
Link copiato
- Contrassegnare come Nuovo
- Preferito
- Iscriversi
- Disattiva notifiche
- Iscriversi a feed RSS
- Evidenziare
- Stampare
- Segnalare contenuto inappropriato
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
- Contrassegnare come Nuovo
- Preferito
- Iscriversi
- Disattiva notifiche
- Iscriversi a feed RSS
- Evidenziare
- Stampare
- Segnalare contenuto inappropriato
Hi Daniele,
Thanks for the report. The issue looks familiar. We will check and get back to you later.
Thanks
Ying
- Contrassegnare come Nuovo
- Preferito
- Iscriversi
- Disattiva notifiche
- Iscriversi a feed RSS
- Evidenziare
- Stampare
- Segnalare contenuto inappropriato
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
- Contrassegnare come Nuovo
- Preferito
- Iscriversi
- Disattiva notifiche
- Iscriversi a feed RSS
- Evidenziare
- Stampare
- Segnalare contenuto inappropriato
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

- Iscriversi a feed RSS
- Contrassegnare la discussione come nuova
- Contrassegnare la discussione come letta
- Sposta questo Discussione per l'utente corrente
- Preferito
- Iscriversi
- Pagina in versione di stampa