【问题标题】:Linking to numpy's linear algebra libraries in C extension在 C 扩展中链接到 numpy 的线性代数库
【发布时间】:2022-07-06 04:05:07
【问题描述】:

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

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

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

感谢任何帮助或文档链接。

【问题讨论】:

    标签: python numpy python-c-api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 2016-05-03
      • 2018-12-09
      • 2017-03-13
      相关资源
      最近更新 更多