我使用链接:./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/