lapack - 链接到openblas;我还需要Lapack吗?

标签 lapack blas 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"用openblas编译Ipopt

如果我没有定义任何特定的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/"
因为某些Lapack例程无法解析而使make失败,例如undefined reference to dpotrs_ At least there is the file lapacke.h in the包含folder but there are not LAPACK libraries in the lib`文件夹。

我在GitHub上发现了这个issue:

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

但是,如果是这样的话,libs在哪里?

我应该针对openblas编译LAPACK吗?

如果有人可以阐明这个问题,我将非常感激。

最佳答案

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

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

还要检查this page的源代码布局,this page表示:“OpenBLAS实现了某些LAPACK函数的优化版本”

基于这些,我认为OpenBLAS从netlib下载了Lapack,然后对其进行了一些优化。您是否能够找到其他选择?

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

关于lapack - 链接到openblas;我还需要Lapack吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925267/

相关文章:

python - 可广播的 Numpy 点

java - BLAS.dgemm方法多线程计算误差

R 和 nvblas.dynlib(在 Mac 上)

c - 从矩阵中提取特定列并将其作为新矩阵存储在 C 中

c++ - 我如何确定我正确安装了 LAPACK 和 Armadillo 库?

matlab - 为什么matlab的mldivide比dgels好这么多?

c++ - "error LINK2019: unresolved..."

.net - 什么是 .net (C#) 的免费(开源)BLAS/LAPACK 库?

python - CPU : AbstractConv2d Theano optimization failed 上的 Theano CNN