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

pypi package for mkl-2021.2.0 is not linkable under Linux and Mac

dvp
Novice
2,071 Views

We have python extension depending on the MKL. On attempt to update dependency to version 2021.2.0 we found that linker is not able to find mkl_rt library under Linux and Mac. On Windows everything is fiine.

It appeared, that in the recent MKL package only the files with  ".so.1" suffix present (on Mac: ".1.dylib"). In the previous versions of the package there were also copies of these files with ".so" (".dylib") suffixes. The recent version works fine for runtime, but there's a a problem with the gcc (ld) linker: it looks for "mkl_rt.so" ("mkl_rt.dylib") exactly. Adding symbolic link with

 ln -s mkl_rt.so.1 mkl_rt.so

to the package folder solves the problem. However, this requires additional steps on building in isolated environments and, in particular, requires changes in the building or CI scripts.

Is there more efficient way to make MKL visible to gcc/ld linker, than creating these symbolic links with building scripts? And what was the reason to change the naming scheme for shared libraries (besides disk space saving)?

0 Kudos
1 Solution
MRajesh_intel
Moderator
1,937 Views

Hi,

 

We have confirmed with the developers that the oneMKL devel package (mkl-devel) for PIP distribution on Linux and macOS does not provide dynamic libraries symlinks.

 

In the case of dynamic or single dynamic library linking with oneMKL devel package you must modify link line with oneMKL libraries full names and versions.

 

Example command for single dynamic library:

g++ mkl_sample.o /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_rt.so.1 -lpthread -lm -ldl

 

For more information:

https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-mkl-for-dpcpp/top.html ( Refer to the step 1)

 

https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html ( Link Line Advisor)

 

 

 

 

 

View solution in original post

0 Kudos
6 Replies
MRajesh_intel
Moderator
2,037 Views

Hi,

 

Please check the following path to find the required .so files :"/opt/intel/oneapi/mkl/2021.2.0/lib/intel64"

 

We were able to see the .so file as shown in the attached picture.

If you have not found the required files, try re-installing the oneAPI base toolkit and let us know if you face the same issue.

 

Regards

Rajesh.

 

0 Kudos
dvp
Novice
2,029 Views

I has been writing about the package on PyPi.org, see https://pypi.org/project/mkl/#files

This is what we have as python dependency. 

Content of  mkl-2021.2.0-py2.py3-none-manylinux1_x86_64.whlContent of mkl-2021.2.0-py2.py3-none-manylinux1_x86_64.whl

0 Kudos
dvp
Novice
2,028 Views

We have to use the automatic MKL installation as a python dependency from PyPi in our package for our own setup and automatic continuous intergration tests. I just want to note, that the naming scheme changes in the recent PyPi package since the previous version breaks existing setup and CI scripts. Of course we are able to fix the scripts to adopt the new naming approach, but all other "MKL from PyPi" users will have to do that as well. And this unexpected change takes time and efforts to figure out and fix.

 

Regards,  Dmitry (dvp)

0 Kudos
MRajesh_intel
Moderator
2,008 Views

Hi,

 

Thanks for letting us know. We are working on this internally and will get back to you.

 

Regards

Rajesh.

 

0 Kudos
MRajesh_intel
Moderator
1,938 Views

Hi,

 

We have confirmed with the developers that the oneMKL devel package (mkl-devel) for PIP distribution on Linux and macOS does not provide dynamic libraries symlinks.

 

In the case of dynamic or single dynamic library linking with oneMKL devel package you must modify link line with oneMKL libraries full names and versions.

 

Example command for single dynamic library:

g++ mkl_sample.o /opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_rt.so.1 -lpthread -lm -ldl

 

For more information:

https://software.intel.com/content/www/us/en/develop/documentation/get-started-with-mkl-for-dpcpp/top.html ( Refer to the step 1)

 

https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html ( Link Line Advisor)

 

 

 

 

 

0 Kudos
MRajesh_intel
Moderator
1,907 Views

Hi,

 

Thanks for accepting as a Solution

 

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

 

Have a Good day.

 

Regards

Rajesh.

 

0 Kudos
Reply