繁体   English   中英

在 C 扩展中链接到 numpy 的线性代数库

[英]Linking to numpy's linear algebra libraries in C extension

我正在编写一个 C 扩展,并希望利用 numpy 库链接到的线性代数例程。 是否有跨平台方法来获取这些路径? 我浏览了大部分numpy.distutils.*并没有找到类似的东西。 我也尝试过numpy.show_config() ,它打印出链接到的库的正确名称,但目录错误。

我的目标是能够访问 numpy 在后台调用的低级例程。 即在我的 C 代码中,我希望能够做到

dgetrf(&m, &n, a, &lda, ipiv, &info);
// or
LAPACK_dgetrf(&m, &n, a, &lda, ipiv, &info);

任何帮助或文档链接都值得赞赏。

Numpy 不实现线性代数例程,它通常在大多数平台上默认使用 OpenBLAS(如果 Numpy 配置正确,可能是 Intel MKL)。 通过np.show_config()可以看到有关链接的 BLAS 的信息。 如果您使用的是 Linux,则可以列出使用lddobjdump甚至lsof链接的共享库。 在 Windows 上,您可以使用Process Explorer在运行时查看链接的 DLL。 没有跨平台获取 BLAS 库的路径。 事实上,我的 Windows 上np.show_config()的路径是错误的(它引用了一个甚至不存在的存储设备)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM