Faiss利用mkl加速,构建索引训练时出错。
前言
记录一下faiss构建索引训练时碰到的一个坑。
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
问题:
利用英特尔mkl(Math Kernel Library)库加速faiss。 index.train()时报如下错误:
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
解决方案
在调用faiss之前导入调用mkl。代码如下:
import mkl
mkl.get_max_threads()
为什么这么做,我还不太理解。猜测是conda安装版本兼容的问题。具体可以看我提的issue
补充
如出现mkl导入失败的情况。如
import mkl
ImportError: No module named mkl
解决方式如下:
### 执行:
$ conda install mkl
$ conda install mkl-service