Community
cancel
Showing results for 
Search instead for 
Did you mean: 
dvp
Novice
193 Views

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

Jump to solution

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
59 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/to... ( Refer to the step 1)

 

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

 

 

 

 

 

View solution in original post

6 Replies
MRajesh_intel
Moderator
159 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.

 

dvp
Novice
151 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

dvp
Novice
150 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)

MRajesh_intel
Moderator
130 Views

Hi,

 

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

 

Regards

Rajesh.

 

MRajesh_intel
Moderator
60 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/to... ( Refer to the step 1)

 

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

 

 

 

 

 

View solution in original post

MRajesh_intel
Moderator
29 Views

Hi,

 

Thanks for the confirmation!

 

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.

 

Reply