链接openblas;我还需要拉帕克吗?

时间:2015-10-03 17:12:49

标签: lapack blas openblas ipopt

我使用链接编译Ipopt和openblas:./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 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来使OpenBLAS构建而不包含LAPACK。默认情况下,它包含一个完整的LAPACK lib(优化了一些部分)。

但如果这是libs的情况呢?

我应该针对openblas编译LAPACK吗?

如果有人能对这个问题有所了解,我将非常感激。

1 个答案:

答案 0 :(得分:0)

在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然后优化了一些。你能找到另一种选择吗?

BTW,只有在打算在Ipopt中使用准牛顿选项时才需要LAPACK