OneAPI - MKL 库

Posted

技术标签:

【中文标题】OneAPI - MKL 库【英文标题】:OneAPI - MKL Libraries 【发布时间】:2021-12-26 15:15:14 【问题描述】:

我需要准备一个允许使用 mkl 库编译二进制文件的构建环境:libmkl_core.so, ... 我最初使用来自 oneapi webpage 的安装说明。 mkl 安装安装了以下库:

但是安装提供的库中的 GLIBC 使用的 GLIBC 版本非常低(GLIBC_2.2.5)。

我看到 mkl 库有一个 github 页面所以想象我可以从 source 编译该库。

经过大量努力,我设法编译了代码,但最终得到了三个不同的库: libonemkl.so、libonemkl_blas_mklgpu.so、libonemkl_blas_mklcpu.so、

我觉得这里有一些需要澄清的地方。 有没有办法使用更新的编译器从源代码构建 libmkl_core.so?

所需的文件是否只能通过英特尔的一个 api 安装获得?

我设法从源代码构建的文件有什么用?

提前致谢

【问题讨论】:

安装提供的库中的 GLIBC 使用了非常低的 GLIBC 版本(GLIBC_2.2.5)。请告诉我们您如何验证 glibc 版本(GLIBC_2.2.5)。 运行“字符串 | grep GLIBC”命令。 【参考方案1】:

您提到的开源只是作为包装器提供,适用于英特尔以外的 CPU 和 GPU。 它不是 MKL 代码,这些只是包装器。 没有其他方法可以使用较新的编译器从源代码构建 libmkl_core.so,并且所需的文件只能通过英特尔的 oneAPI 安装获得。 如果您想使用 MKL,建议您根据您的应用环境使用 MKL 链接线顾问进行检查和链接。

以下是链接线顾问供您参考。

https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html

【讨论】:

以上是关于OneAPI - MKL 库的主要内容,如果未能解决你的问题,请参考以下文章

在 python 的 c 扩展中包括外部共享英特尔的 mkl 库

从MKL 11.3库调用DPOSV例程期间的分段错误

linux下intel的mkl编程代码,怎么样编译。C++和C语言代码

安装 scipy 时找不到库 mkl_rt、openblas、lapack - 如何更改库的标志

如何同时使用 MKL 的并行和串行版本?

from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl