报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法

报错,intel,mkl,fatal,error,cannot,load,libmkl,core,so,一种,解决,方法 · 浏览次数 : 15

小编点评

**问题分析:** 当您运行 mdistiller 代码时,意外发现 `torch` 和 `numpy` 不能使用 `T_T` 运算符。由于该错误来自 `Inter MKL` (Intel Math Kernel Library),它可能与共享库文件相关。 **解决方案:** 1. **确定 `libmkl_rt.so.1` 文件是否存在:** ```bash ls /home/jyg/anaconda3/envs/mdisPy37/lib/python3.7/site-packages/mkl/../../../libmkl_rt.so.1 ``` 如果该文件存在,您可以尝试加载它: ```bash import libmkl_rt.so.1 ``` 2. **设置 `LD_LIBRARY_PATH` 环境变量:** ```bash export LD_LIBRARY_PATH=/home/jyg/anaconda3/envs/mdisPy37/lib:$LD_LIBRARY_PATH ``` **注意:** * `LD_LIBRARY_PATH` 是一个与动态链接有关的环境变量。 * 将 `LD_LIBRARY_PATH` 设置到 `LD_LIBRARY_PATH` 中的路径中可能需要添加 `/home/jyg/anaconda3/envs/mdisPy37/lib`。 * 如果您已经设置过 `LD_LIBRARY_PATH`,请确保将新路径追加到该环境变量中。

正文

问题

今天上80服务器跑mdistiller的代码时,意外发现torch、numpy都不能用了T_T

以torch为例,出现如下报错情况
image
以numpy为例,出现如下报错情况
image

我们先看看报错信息,这个报错来自Inter MKL。Inter MKL全称是The Intel Math Kernel Library,它是一个主要是用于科学计算的共享库,提供了很多与数学优化程序,例如向量矩阵操作什么的。

报错信息说明我们在导入torch/numpy库时,无法载入libmkl_core.so.和libmkl_rt.so.1.

这两个文件以so结尾,属于共享库文件。
在Linux系统上一般以.so文件扩展名(shared object), 在MacOS上以.dylib为文件扩展名, 在Windows上以.dll (dynamic link library)为文件扩展名。

共享库的出现的一个原因是防止重复造轮子,它允许多个程序使用同一份代码

这样程序里面便不需要重复写相同的代码,只需要让程序指向共享库即可,提高了程序的可复用性,也让程序变得更modular了。

解决过程

从报错信息来看,它说我们无法载入某个文件。首先想到的是先确定这个文件是否存在,这里以libmkl_rt.so.1.来进行分析。

通过执行以下命令,我们来看看它是否存在

ls /home/jyg/anaconda3/envs/mdisPy37/lib/python3.7/site-pa
ckages/mkl/../../../libmkl_rt.so.1

在我的机器上运行结果如下,libmkl_rt.so.1.确实存在
image

那么如何让numpy或者torch库能够正确的找到Inter MKL共享库并载入它需要的共享文件呢?

这就不得不说一下LD_LIBRARY_PATH环境变量了。

LD_LIBRARY_PATH是Linux系统上一个与动态链接有关的环境变量。如果将各个程序想象成大小不一的拼图,那么链接的过程就是将这些杂乱的拼图正确地拼合起来。

当某个库或者程序需要用到其他的共享库时,在搜索标准库目录,例如/lib或者/usr/lib之前,操作系统会首先从由LD_LIBRARY_PATH指定路径下进行搜索。

因此,我们只需要将路径/home/jyg/anaconda3/envs/mdisPy37/lib添加到LD_LIBRARY_PATH即可,即执行如下命令

export LD_LIBRARY_PATH=/home/jyg/anaconda3/envs/mdisPy37/l
ib:$LD_LIBRARY_PATH

现在便能正常导入numpy或者torch库了
image

不要忘了,我们现在只是在当前session中临时设置了LD_LIBRARY_PATH的值,如果当前会话结束了,重新开一个会话时还需要重新export。

因此,我们可以考虑执行如下命令永久改变LD_LIBRARY_PATH的值

echo "export LD_LIBRARY_PATH=/home/jyg/anaconda3/envs/mdisPy37/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc

与报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法相似的内容:

报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法

问题 今天上80服务器跑mdistiller的代码时,意外发现torch、numpy都不能用了T_T 以torch为例,出现如下报错情况 以numpy为例,出现如下报错情况 我们先看看报错信息,这个报错来自Inter MKL。Inter MKL全称是The Intel Math Kernel Lib

[转帖]Intel甘拜下风,挤牙膏比不过兆芯CPU

https://baijiahao.baidu.com/s?id=1735997557665412214 本文比较长,有万字左右,因此在前面先把小标题集中亮个相。 即使大家一晃而过,我也要让精心拟定的各个小标题有个露脸机会。 兆芯承运应时生,抢得先机石成金, 架海擎天担重任,同德一心报国恩。 多核增

[转帖]IDM UltraCompare Professional 22.10.0.3破解版

https://www.ittel.cn/archives/7834.html IDM UltraCompare Professional破解版是功能强大的文件比较/合并工具,提供一系列的文件、文本文档、文件夹等的对比比较,轻松获得准确的报告,支持对比压缩文件和jar文件,支持两个以及三个文件比较,

[转帖]打包rpm包报错contains an invalid rpath

#报错 file '/opt/leptonica/prog/.libs/binmorph5_reg' contains an invalid rpath '/usr/local/lib' in [/usr/local/lib] #解决 vim ~/.rpmmacros #注释 %__arch_ins

[转帖]tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式

报错: 1 of ORDER BY clause is not in SELECT list, references column 'xxx' which is not in SELECT list 最近发现有个sql 执行报错: xpression #1 of ORDER BY clause is

报错 PEP 8: expected 2 blank lines, found 1

PyCharm 提示:PEP 8: expected 2 blank lines, found 1 类或方法前需要空两行 解决方法:Ctrl+Alt+L 格式化一下就OK了。或者手动在前面敲一行

报错AttributeError: Attempted to set WANDB to False, but CfgNode is immutable

问题 今天在跑代码的时候,使用到了wandb记录训练数据。 我在23服务器上跑的好好的,但将环境迁移到80服务器上重新开始跑时,却遇到了如下报错 看这个报错信息是由于wandb没有apis这个属性,于是我定位到具体的报错代码 😯原来程序在import wandb时就抛出异常了。 解决方法 我尝试验

[转帖]Nginx报错404,由于请求处理时间过长

问题复现 近期部门内部有一个应用由于数据量过于庞大,或者说sql优化性能问题,导致查询全量数据时老报错nginx404,后来查看浏览器timing信息,发现其竟然时常达到可怕的2分钟十秒,抛去解决sql优化问题,这里从Nginx端的配置来说如何解决这类问题! 存在的问题 服务器处理请求时间过长,导致

[转帖]docker报错:报错br-xxxx 之Docker-Compose 自动创建的网桥与局域网络冲突

https://www.dianjilingqu.com/653590.html 故障描述: 当我使用docker-compose的方式部署内网的harbor时。它自动创建了一个bridge网桥,与内网的一个网段(172.18.0.1/16)发生冲突,docker 默认的网络模式是bridge ,默

[转帖]ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

1.报错信息 ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access. 1 2.解决方法 2.1 方法一 查询是否启动local_infile,查询命令如下: sho