intelpython不能玩_python-Intel MKL致命错误:无法加载libmkl_avx2.so或libmkl_def.s

当运行Python脚本时,出现Intel MKL FATAL ERROR: 无法加载libmkl_avx2.so或libmkl_def.so。解决方案包括使用conda安装nomkl,更新numpy,预加载libmkl_core.so,或卸载并重新安装Anaconda。这些方法可以帮助解决因Anaconda与MKL链接问题导致的错误。
摘要由CSDN通过智能技术生成

python-Intel MKL致命错误:无法加载libmkl_avx2.so或libmkl_def.s

我正在运行python脚本,但出现此错误:

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

这两个文件都位于anaconda2 / lib目录中。 如何解决此错误? 谢谢。

9个解决方案

99 votes

如果使用conda,请尝试使用以下两个命令:

conda install nomkl numpy scipy scikit-learn numexpr

conda remove mkl mkl-service

它应该可以解决您的问题。

Zaikun Xu answered 2020-02-07T11:43:15Z

35 votes

安装anaconda3(版本4.2.0)后,我遇到了这个问题。 对我来说,修复很简单,而且我能够继续使用mkl。 只需更新到最新的numpy版本。

conda update numpy

Drew Swartz answered 2020-02-07T11:43:35Z

16 votes

只是要注意,默认情况下启用了mkl的Anaconda 4.0.0就有此问题。问题确实在Anaconda上,因为可以通过下面的简单python测试来重现。

实际的问题是Anaconda与mkl链接,但未与libmkl_core.so链接,因此它缺少符号,可以通过运行以下命令查看:

$ LD_DEBUG=symbols python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i error

2200: /opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so: error: symbol lookup error: undefined symbol: mkl_dft_fft_fix_twiddle_table_32f (fatal)

我不想卸载mkl,因为我想提高性能,所以我找到了一个对我有用的解决方法-在执行之前预加载libmkl_core.so。

$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'

Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so.

$

$ LD_PRELOAD=/opt/anaconda/lib/libmkl_core.so python -c 'import sklearn.linear_model.tests.test_randomized_l1'

$

yanir answered 2020-02-07T11:44:04Z

5 votes

遇到了同样的问题,并通过使用以下命令解决了:

conda install nomkl

我从这次讨论中得到了解决方案[https://github.com/BVLC/caffe/issues/3884]

Masud answered 2020-02-07T11:44:33Z

3 votes

运行MLPRegressor时,我也使用scikit-learn 0.19和numpy 1.13.3遇到了同样的问题(还有一个名为pyearth的程序包,它运行一种称为MARS的算法)。 我相信问题的根源是我们的python是Anaconda安装的一部分,但是scikit-learn和numpy是通过pip安装的,他们对mkl的期望一定不能达成共识。

不幸的是,我的框架是由一些专门的公司管理员管理的,而不是由我管理的,所以我还没有让我的家伙尝试重新编译numpy。 但是我能够找到一个基于此线程的解决方法:将export LD_PRELOAD=/path/to/anaconda/lib/libmkl_def.so:/path/to/anaconda/lib/libmkl_avx.so:/path/to/anaconda/lib/libmkl_core.so:/path/to/anaconda/lib/libmkl_intel_lp64.so:/path/to/anaconda/lib/libmkl_intel_thread.so:/path/to/anaconda/lib/libiomp5.so添加到我的~/.bashrc中会使该问题消失。 这是超级hacky,如果我说我完全知道它在做什么,那我会撒谎(但这很有用),所以我希望重新编译numpy是一个更干净的解决方案。 但至少它能起作用。

请注意,使用这些软件包的版本使用mkl更好。 安装nomkl版本是一种解决方法,但不是真正的解决方案。

Pavel Komarov answered 2020-02-07T11:45:04Z

1 votes

想要添加Valilutzik和Zaikun Xu的主题。 由于我的积分不足,因此无法添加评论。

nomkl为我工作,而不必删除mkl和mkl服务。

如果nomkl的速度变慢,请在Lee的问题上添加答案:mkl是一个英特尔数学内核库,针对英特尔CPU进行了手动优化。 nomkl根据以下方式使用OpenBlas:[https://docs.continuum.io/mkl-optimizations/]看来在Intel cpus的许多矩阵运算中mkl都相当快(请参阅[https://software.intel.com/zh-cn/articles/performance-comparison-of-openblas-and-intel-math-kernel-library -in-r)]

我见过有人说nomkl对于AMD cpus更快(也许是因为mkl在AMD中无法正常工作?)

libphy answered 2020-02-07T11:45:38Z

1 votes

上面提供的所有解决方案都不适合我,但我发现了一个不错的折衷方案:

对于具有相同错误并希望将Anaconda保留在他的计算机上,并且钢铁将mkl用于(numpy和scipy)良好的过程性能的人,我建议采用以下解决方案:

编辑您的#文件。

在文件中查找类似于#的内容。

将#放在开头,以从脚本中对其进行注释:#export PATH="/home/anaconda2/bin:$PATH"

打开一个新的终端,您应该正在运行基本的python安装。

它对我有用,希望对您有所帮助。

Klipiklop answered 2020-02-07T11:46:25Z

1 votes

如果有人遇到类似问题并遇到无法找到libmkl_p4m.so或libmkl_p4.so的错误(调用某些numpy函数时发生在我身上的错误),我尝试重新安装/更新不同的python模块并将其恢复/更新为各种版本的Anaconda ,但两者均无效。但是我发现完全卸载anaconda并重新安装(版本4.4.10)可以解决此问题。

KamKam answered 2020-02-07T11:46:46Z

0 votes

以下为我工作

conda install -f numpy

Armughan Shahid answered 2020-02-07T11:47:05Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值