首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用在我的计算机上编译的OpenBLAS存储库中的Octave?

如何使用在我的计算机上编译的OpenBLAS存储库中的Octave?
EN

Ask Ubuntu用户
提问于 2020-08-14 06:03:44
回答 1查看 678关注 0票数 1

使用Octave并在我自己的计算机中编译的建议 (而不是存储库中的预编译OpenBLAS )将加快计算速度。我使用apt从存储库中安装了GNU (4.2.2),并从https://www.openblas.net/编译了最新版本的GNU。

如何使八度使用这个OpenBLAS?

我已经尝试过了。

编译OpenBLAS之后,我将它安装在opt/openblas中。

然后我输入了命令

代码语言:javascript
运行
复制
sudo update-alternatives --install /usr/lib/libblas.so libblas.so /opt/openblas/lib/libopenblas.so 50

sudo update-alternatives --install /usr/lib/libblas.so.3 libblas.so.3 /opt/openblas/lib/libopenblas.so 50

sudo update-alternatives --install /usr/lib/liblapack.so liblapack.so /opt/openblas/lib/libopenblas.so 50

sudo update-alternatives --install /usr/lib/liblapack.so.3 liblapack.so.3 /opt/openblas/lib/libopenblas.so 50

然后,我配置为使用新的OpenBLAS

代码语言:javascript
运行
复制
update-alternatives --config libblas.so 
update-alternatives --config libblas.so.3 
update-alternatives --config liblapack.so 
update-alternatives --config liblapack.so.3 

最后,我使用新的OpenBLAS运行Octave,但是得到了这个错误。

代码语言:javascript
运行
复制
$ LD_PRELOAD=/opt/openblas/lib/libopenblas.so octave-cli
octave-cli: symbol lookup error: /usr/lib/x86_64-linux-gnu/libblas.so.3: undefined symbol: gotoblas
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-08-16 11:50:38

我建议从Ubuntu存储库的所有内容开始。首先要尝试的是安装libopenblas-base包并允许它提供BLAS和LAPACK选项,简单如下:

代码语言:javascript
运行
复制
sudo apt-get install octave
sudo apt-get install libopenblas-base

使用我们的测试脚本,我们在我的i7-3537U上有以下八度的时间:

  • 0.42 S-简单默认的libblas3liblapack3
  • 0.26 S-使用存储库中的libopenblas-base

如果您想对其进行更多的优化-通过以下方法在本地编译OpenBLAS:

代码语言:javascript
运行
复制
sudo apt-get build-dep libopenblas-dev

cd /tmp
apt-get source libopenblas-base
cd openblas-0.2.20+ds
DEB_CFLAGS_SET="-march=native -mtune=native" DEB_CFLAGS_SET="-march=native -mtune=native" dpkg-buildpackage  -uc -us -j8

sudo apt-get install ../libopenblas-base_0.2.20+ds-4_amd64.deb ../libopenblas-dev_0.2.20+ds-4_amd64.deb

这将把基准结果改为:

  • S-用libopenblas-base自编

因此,使用额外的手动优化来编译优化的库是没有用的。

结论:我建议首先优化您的八度代码,避免使用for-循环,并尽可能多地使用矢量化函数。这将极大地提高性能。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1267070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档