gpt4 book ai didi

python - 使用 Visual Studio 2019 和 Windows 10 编译 MKL 库时未找到模块错误

转载 作者:行者123 更新时间:2023-12-01 14:47:53 24 4
gpt4 key购买 nike

在生成与英特尔 MKL 库(2020 更新 1)链接的 python 模块时,我面临 Visual Studio 2019(v 16.5.4)的奇怪行为。任何帮助,将不胜感激 !

要重现它:使用 VS2019 创建一个小的 python 模块“Project1.pyd”,其中包含以下几行

#include <pybind11/pybind11.h>
#include <mkl.h>

void test() {
const MKL_INT m(10);
double test[m*m];
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, m, m, m, 1., test, m, test, m, 0., test, m);
}

PYBIND11_MODULE(Project1, m) {
m.def("test", &test);
}

此代码与 mkl_rt.lib 链接,作为添加库依赖项以定义 cblas_dgemm。然后我用简单的 python 行调用模块
if __name__ == "__main__":
import Project1 as p

导致“DLL 加载失败:找不到模块”

请注意,我能够使用 VS2019 16.4.5/Python 3.6 运行相同的代码。

可怕的是编译器或链接器没有提示任何事情:我花了整整三天的时间来识别和隔离这个问题,因为它出现在一个大型 C++/python 库中。

最佳答案

使用 stijn 和 Evg 建议解决了问题:

1) 使用 Dependency (github.com/lucasg/Dependencies) 表征问题:未找到 MKL 库 - 似乎 MKL 运行​​时库将目录从版本 19 更改为 20。

2) 要解决此问题,只需添加到全局变量 PATH MKL 运行​​时库(此处为 mkl_core 和 mkl_intel_thread)。

关于python - 使用 Visual Studio 2019 和 Windows 10 编译 MKL 库时未找到模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61658127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com