使用Octave并在我自己的计算机中编译的建议 (而不是存储库中的预编译OpenBLAS )将加快计算速度。我使用apt从存储库中安装了GNU (4.2.2),并从https://www.openblas.net/编译了最新版本的GNU。
如何使八度使用这个OpenBLAS?
我已经尝试过了。
编译OpenBLAS之后,我将它安装在opt/openblas
中。
然后我输入了命令
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
update-alternatives --config libblas.so
update-alternatives --config libblas.so.3
update-alternatives --config liblapack.so
update-alternatives --config liblapack.so.3
最后,我使用新的OpenBLAS运行Octave,但是得到了这个错误。
$ 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
发布于 2020-08-16 11:50:38
我建议从Ubuntu存储库的所有内容开始。首先要尝试的是安装libopenblas-base
包并允许它提供BLAS和LAPACK选项,简单如下:
sudo apt-get install octave
sudo apt-get install libopenblas-base
使用我们的测试脚本,我们在我的i7-3537U上有以下八度的时间:
libblas3
,liblapack3
libopenblas-base
如果您想对其进行更多的优化-通过以下方法在本地编译OpenBLAS:
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
这将把基准结果改为:
libopenblas-base
自编因此,使用额外的手动优化来编译优化的库是没有用的。
结论:我建议首先优化您的八度代码,避免使用for-循环,并尽可能多地使用矢量化函数。这将极大地提高性能。
https://askubuntu.com/questions/1267070
复制相似问题