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



我正在编写一个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(可能是Intel MKL,如果可用,假设Numpy配置正确)。通过np.show_config()可以查看链接的BLAS信息。如果您使用的是Linux,可以列出使用lddobjdump甚至lsof链接的共享库。在Windows上,可以使用进程资源管理器在运行时查看链接的DLL。没有跨平台来获取到BLAS库的路径。事实上,np.show_config()的路径在我的Windows上是错误的(它引用了一个甚至不存在的存储设备)。

最新更新