针对 openblas 的链接;我还需要Lapack吗?

Mor*_*itz 5 blas lapack ipopt openblas

我使用以下链接使用 openblas 编译 Ipopt:./configure --with-blas-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-blas-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/ -libopenblas_sandybridgep-r0.2.14.a"

如果我没有定义任何特定的 LAPACK 库,Ipopt 会自动使用 netlib 中的 LAPACK。openplas 是否有自己优化的 LAPACK 实现?

如果我使用--with-lapack-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-lapack-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/"

make 失败,因为无法解析某些 Lapack 例程,例如undefined reference todpotrs_ At least there is the filelapacke.h in theinclude folder but there are not LAPACK libraries in thelib` 文件夹。

我在 GitHub 上发现了这个问题:

好的,我想我想通了...您可以通过在 make 命令行上指定 NO_LAPACK=1 来构建 OpenBLAS,而不包含 LAPACK。默认情况下,它包含完整的 LAPACK 库(某些部分已优化)。

但如果是这种情况,库在哪里?

我应该针对 openblas 编译 LAPACK 吗?

如果有人能够阐明这个问题,我将不胜感激。

小智 1

在OpenBLAS文件夹中的changelog.txt上,它说

    * Patched LAPACK to fix bug 114, 117, 118. 
  (http://www.netlib.org/lapack/bug_list.html)
Run Code Online (Sandbox Code Playgroud)

另请检查此页面的源代码布局,此页面说:“OpenBLAS实现了一些LAPACK函数的优化版本”

基于这些,我认为OpenBLAS从netlib下载Lapack,然后优化其中一些。你能找到替代方案吗?

顺便说一句,只有当您打算在 Ipopt 中使用拟牛顿选项时才需要 LAPACK