Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6433 Discussions

No symbol file loaded for mkl_avx2.dll

SUKLA
Beginner
853 Views

SUKLA_0-1606664403802.png

 

Hello,

   I installed 2020.00.4.1 community version. But I am facing the crash. I have this dll in my path. Please help

 

0 Kudos
12 Replies
Gennady_F_Intel
Moderator
833 Views

Please show how did you build your application against the mkl.

mecej4
Black Belt
819 Views

The message "No symbol file loaded..." is normal and expected for compiler RT and MKL libraries that do not come with separate Release/Debug versions. This message is not a cause for concern. Nor is accessibility of the DLL at issue -- the DLL was loaded and its code was executed and caused an access violation (C0000005 error code).

On the other hand, the access violation in one of these DLLs is the real problem. More specifically, a call to a routine in MKL appears to be passing an integer variable with the value -1 when an address was required.

Look at the Call Stack panel and report what you see there. Examine your code and see if you can pin down the MKL function call that caused the problem, and examine the argument list for correctness (number of arguments, types, values).

If possible, provide a "bug reproducer" example.

SUKLA
Beginner
811 Views

I am using:

a) I have installed visual studio# 2017 (see attached picture visual_studio_version_picture.png)

b) I have installed parallel_studio_xe_2020_update4_cluster_edition_setup.exe to use MKL.

c) I am trying to call feast from MKL for eigen solution. I am statically linking with mkl_core.lib (you can see from my attached project). 

d) I am using /MTd (muti-threaded Debug) to compile.

e) while linking I get this error "mkl_core.lib(_avx512_jit_destroy.obj) : : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in c_example.obj"

  In my experience, this error happens in the DEBUG module. However, I can link with mkl_core_dll.lib (I do not like to do that). It seems to be bug between developer studio 2017 and intel compiler. 

Any help is appreciated. Please do not hesitate to contact me for further investigation. 

Gennady_F_Intel
Moderator
789 Views

I would recommend you to check the list of mkl's libs you need to link with. Please check the MKL Linker Adviser or MKL Developer Guide first of all.



SUKLA
Beginner
772 Views

Hello Gennady,

    Unfortunately, I tried according to intel MKL Linker Adviser. I have added "mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" (only these four libraries are used for linking). The strange thing is that the linking error happens ONLY WHEN I call FEAST routine. It does not happen if I call other LAPACK or BLAS routines. Would you please check if anything I am doing wrong? I have attached the project.

Dilip

SUKLA
Beginner
769 Views

Another thing I have noticed that I can link in the release module fine.

Sukla

SUKLA
Beginner
766 Views

Hello Gennady,

   The error happens only when I call FEAST. The error does not happen for other LAPACK or BLAS routines. I am trying 2x2 eigenvalue analysis. The error happens in the debug module. It does not happen in the release module. I have included the exact libraries, that Intel MKL link advisor suggests ( mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib). 

 

Sukla

mecej4
Black Belt
743 Views

Sukla:

From your post, is seems to me* that you may be passing 4-byte integer arguments to the FEAST solver. If MKL_INT is not redefined, which can be done in one of several ways, it will default to "int", which is 4-byte. Such 4-byte integer arguments are not compatible with the ILP64 versions of the MKL libraries. You should have used the LP64 libraries instead. Or, if you really require 8-byte integers, take the steps needed to make MKL_INT be 8-byte, and use the ILP64 libraries.

If you call other MKL routines, e.g., the BLAS or Lapack routines, and those routines do not take any integer arguments, this mismatch of integer sizes is not an issue for those calls.

* I am replying from a Chromebook, so I cannot open up your project in Visual Studio to check.

P.S. (90 minutes later, back on a Windows PC):

I added two diagnostic print statements, one before and the other after the call to dfeast_scsrgv in your example source code:

 

printf("size of mkl_int: %d\n",sizeof(MKL_INT));
dfeast_scsrgv(...);
printf("FEAST returned info = %d\n",info);

 

Compiling, linking, and running:

 

S:\LANG\MKL>icl /Qmkl c_example.cc
S:\LANG\MKL>c_example
size of mkl_int: 4
FEAST returned info = 0

S:\LANG\MKL>

 

These findings are in agreement with my conjecture regarding your using ILP64 libraries when LP64 should have been chosen.

 

SUKLA
Beginner
717 Views

Since, I could build only the release executable, here is the outcome.

  By the way can I get an example with dfeast_srci. I could not find an example in MKL directory.

Thanks in advance.

 

C:\Users\19494\source\bug\b1\bug1\x64\Release\bug1.exe
size of mkl_int: 8

C:\Users\19494\source\bug>

Gennady_F_Intel
Moderator
761 Views

that's very strange if you are able to build BLAS and LAPACK examples and failed to build the FEAST. There are no differences between all of these examples from a building point of view.

You may try to build the existing FEAST example from mklroot/examples/solvers_eec directory. There you may find out the makefile ready to build. For example, you may take a separate example, e.x - sexample_sparse_c.c, and building the code from the command line.


Gennady_F_Intel
Moderator
710 Views

yes, such MKL Extended Eigensolvers example in a sparse format exists. You may check

<mklroot>/examples/solvers_eec/dexample_sparse_rci_c.c 



Gennady_F_Intel
Moderator
679 Views

This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only. 



Reply