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

Intel MKL FATAL ERROR: Error on loading function mkl_blas_avx_xdcopy

Wendel_M_
Beginner
972 Views

 

Hi experts

I am trying compile Bonmin (An mathematical programming software) using icc, icpc and  mkl from Intel System Studio 2016 (on Opensuse Linux 13.1). Bonmin requires lapack and blas functions. So, I am compiling Bonmin using:

-L/opt/intel/lib/intel64/ -L/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/  -lmkl_intel_lp64  -lmkl_sequential   -lmkl_core  -liomp5  -lpthread -lm

The compilation seems work fine. I got an executable called Bonmin. However, when I try run Bonmin, I get the following error message:

Intel MKL FATAL ERROR: Error on loading function mkl_blas_avx_xdcopy

Directories /opt/intel/lib/intel64/ and /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/ are already in my LD_LIBRARY_PATH. I checked file libmkl_avx is /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/ , so I do not have any idea about what is wrong.

If I compile Bonmin using

-lmkl_avx -lmkl_intel_lp64  -lmkl_sequential   -lmkl_core  -liomp5  -lpthread -lm

I get the same error...

Does anyone have some idea or tip to help me?

Thanks in Advanced

0 Kudos
3 Replies
Roman_D_Intel1
Employee
972 Views

Hi, can you please try adding '-Wl,-rpath,/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64' to your link line if Bonmin build system uses a compiler to link the final executable. If it uses just ld, then can you please try adding '-rpath /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64'?

0 Kudos
Wendel_M_
Beginner
972 Views

Thank you for your answer, Roman!

Unfortunatelly, use "-Wl,-rpath,/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64" did not have any effect... I could not compile Bonmin just using "-rpath,/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64"... :(

 

 

0 Kudos
Ying_H_Intel
Employee
972 Views

Hi Wendel,

mkl_blas_avx_xdcopy is in libmkl_avx.so or libmkl_core.a

[yhu5@prc-mic01 intel64]$ nm -Ag *.* |grep mkl_blas_avx_xdcopy
libmkl_avx.so:00000000008b98a0 T mkl_blas_avx_xdcopy
libmkl_core.a:_xdcopy_fb.o:                 U mkl_blas_avx_xdcopy
libmkl_core.a:_avx_xdcopy.o:0000000000000000 T mkl_blas_avx_xdcopy
libmkl_core.a:_avx_xzcopy.o:                 U mkl_blas_avx_xdcopy
[yhu5@prc-mic01 intel64]$ pwd
/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64

is it possible for you to link static mkl , for example,

1)

/opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_intel_lp64.a   /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_sequential.a   /opt/intel/compilers_and_libraries/linux/mkl/lib/intel64/libmkl_core.a  -liomp5 -lpthread

or 2) use  --no-as-needed

I  found one post in the forum, may be help.
https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/...

If the symbol are coming from MKL, then either rebuild the software  with --no-as-needed option (you mentioned, the build is other person)

or 3) use LD_PRELOAD=opt/intel/mkl/lib/intel64/libmkl_avx.so, then run your application.

Please let us know if any result.

Best Regards,
Ying

0 Kudos
Reply