在花费大量时间从源代码构建ATLAS之后,我发现libopenblas和libatals在OpenSUSE 13.1存储库中。我的问题是
注意:如果您在存储库中安装了"libatlas“,那么ATLAS将不会针对您的计算机进行调优,计算性能也不会很好。因此,我首先构建并调整了ATLAS,然后使用我自己的ATLAS构建了Numpy。之后,我尝试将OpenBLAS链接到Numpy,但失败了。
事先非常感谢!
谢谢你的快速回答!,但问题还没有解决……
安装
$ sudo zypper in libopenblasp0
The following NEW package is going to be installed:
libopenblasp0
1 new package to install.
Overall download size: 3.0 MiB. After the operation, additional 30.3 MiB will be used.
Continue? [y/n/? shows all options] (y):
Retrieving package libopenblasp0-0.2.11-11.1.x86_64 (1/1), 3.0 MiB ( 30.3 MiB unpacked)
Retrieving: libopenblasp0-0.2.11-11.1.x86_64.rpm ...........................[done (2.1 MiB/s)]
(1/1) Installing: libopenblasp0-0.2.11-11.1 ............................................[done]
Additional rpm output:
/sbin/ldconfig: Can't link /usr/lib64//usr/local/atlas/lib/libtatlas.so to libopenblas.so.0问:为什么会有一个有趣的双斜杠“.64//usr.”?
链接图书馆
$ /usr/sbin/update-alternatives --config libblas.so.3
Selection Path Priority Status
------------------------------------------------------------
0 /usr/local/atlas/lib/libtatlas.so 70 auto mode
1 /usr/lib64/blas/libblas.so.3 50 manual mode
2 /usr/lib64/libopenblasp.so.0 20 manual mode
3 /usr/local/atlas/lib/libcblas.a 50 manual mode
4 /usr/local/atlas/lib/libptcblas.a 60 manual mode
5 /usr/local/atlas/lib/libsatlas.so 65 manual mode
* 6 /usr/local/atlas/lib/libtatlas.so 70 manual modeQ:这种配置好吗,因为有些静态库".a“是链接的?
注意:"libopenblasp.so.0“在"zypper in”之后自动链接,而所有"atlas“库都由命令手动创建:
$ /usr/sbin/update-alternatives --install /usr/lib64/blas/libblas.so.3 libblas.so.3 /usr/local/atlas/lib/libxxxx.x <Integer>发布于 2014-09-14 07:46:53
您可以在系统BLAS和LAPACK实现之间切换,使用更新替代。例如:
/usr/sbin/update-alternatives --config libblas.so.3库
我不知道地图集包,但我们提供开放的支持多弓。数学内核包括所有处理器特定的优化和动态设置右变体。注意,openblas库有3种版本:串行版本、p线程版本和openmp版本。您需要使用p线程或openmp。
发布于 2021-09-01 02:20:30
本文展示了一些基准测试。和如何编译不同的线性代数包。显然,在作者的情况下,自己编译比默认的性能要好,但当然是YMMV。
引用有小编辑的文章:
链接到默认系统cblas:
$ gcc time_dgemm.c -lcblas && ./a.out
10.997839 s单线程优化的地图集版本获得了~3x加速比:
$ gcc time_dgemm.c -L$HOME/opt/atlas/lib -lsatlas && ./a.out
3.237809 s通过线程blas链接相同的代码,我得到了~10倍的加速比:
$ gcc time_dgemm.c -L$HOME/opt/atlas/lib -ltatlas && ./a.out
1.302789 s使用OpenBLAS 0.2.8,我获得了比ATLAS更好的性能:
$ gcc time_dgemm.c -L$HOME/opt/openblas-0.2.8/lib -lopenblas && ./a.out
1.031470 s使用(非免费) MKL,性能非常相似。但是链接线要复杂得多:
$ gcc -fopenmp -m64 -I$MKLROOT/include time_dgemm.c -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -ldl -lpthread -lm && ./a.out
0.951390 shttps://stackoverflow.com/questions/25830764
复制相似问题