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

No symbol file loaded for mkl_avx2.dll

SUKLA
Beginner
2,009 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
1,992 Views

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

0 Kudos
mecej4
Honored Contributor III
1,978 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.

0 Kudos
SUKLA
Beginner
1,970 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. 

0 Kudos
Gennady_F_Intel
Moderator
1,948 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.



0 Kudos
SUKLA
Beginner
1,931 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

0 Kudos
SUKLA
Beginner
1,928 Views

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

Sukla

0 Kudos
SUKLA
Beginner
1,925 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

0 Kudos
mecej4
Honored Contributor III
1,902 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.

 

0 Kudos
SUKLA
Beginner
1,876 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>

0 Kudos
Gennady_F_Intel
Moderator
1,920 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.


0 Kudos
Gennady_F_Intel
Moderator
1,869 Views

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

<mklroot>/examples/solvers_eec/dexample_sparse_rci_c.c 



0 Kudos
Gennady_F_Intel
Moderator
1,838 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. 



0 Kudos
Reply