标签: atlas

BLAS,LAPACK和ATLAS之间有什么关系

我不明白BLAS,LAPACK和ATLAS是如何相关的以及我应该如何一起使用它们!我一直在查看他们的所有手册,我对BLAS和LAPACK以及如何在我找到的极少数示例中使用它们有了一般概念,但我找不到任何使用ATLAS的实际示例来查看它与这两个.

我正在尝试对矩阵做一些低级别的工作,我的主要语言是C.首先我想使用GSL,但它说如果你想要最好的性能,你应该使用BLAS和ATLAS.有没有什么好的网页提供一些很好的例子,说明如何一起使用这些(在C中)?换句话说,我正在寻找使用这三个(或其中任何一个子集!)的教程.总之我很困惑!

c blas lapack atlas

131
推荐指数
3
解决办法
3万
查看次数

使用OpenBLAS集成编译numpy

我试图安装numpyOpenBLAS,但我在损失的如何site.cfg文件需要被写入.

在遵循安装过程时,安装完成且没有错误,但是将OpenBLAS使用的线程数从1增加(由环境变量OMP_NUM_THREADS控制)会导致性能下降.

我不确定OpenBLAS集成是否完美.任何人都可以提供一个site.cfg文件来实现相同的目标.

PS:OpenBLAS集成在其他工具包中,比如基于Python的Theano,可以在同一台机器上增加线程数量,从而大幅提升性能.

python numpy blas atlas

50
推荐指数
3
解决办法
4万
查看次数

如何使用robomongo连接到mongodb地图集?

我现在在mongodb Atlas上自由地创建并创建了集群,我现在想知道如何使用robomongo创建数据库并连接到它?

mongodb atlas robo3t

35
推荐指数
3
解决办法
2万
查看次数

如何确保numpy BLAS库可用作可动态加载的库?

theano安装文档状态,即theano将作为默认使用BLAS库从numpy的,如果"BLAS库可为动态加载库".这似乎不适用于我的机器,请参阅错误消息.

  • 如果numpy BLAS库可以动态加载,我怎么知道呢?
  • 如果它们不可动态加载,我如何重新编译numpy BLAS库?

如果您需要更多信息,请说明!

错误信息

We did not found a dynamic library into the library_dir of the library we use for blas. If you use ATLAS, make sure to compile it with dynamics library. /usr/bin/ld: cannot find -lblas

附录

theano除其他事项外库的需求与NumPy和BLAS库.如果你sudo apt-get install python-numpy python-scipy在Ubuntu下安装它,我认为numpy带有BLAS .

这是文件列表 /usr/lib64/python2.6/dist-packages/scipy/lib/blas

cblas.so  info.py   __init__.py   scons_support.py   setup.py     
fblas.so  info.pyc  __init__.pyc  scons_support.pyc  setup.pyc  
setupscons.py  test
setupscons.pyc
Run Code Online (Sandbox Code Playgroud)

这是输出distutils.__config__.show()如下

blas_info:
    libraries = ['blas']
    library_dirs = ['/usr/lib64'] …
Run Code Online (Sandbox Code Playgroud)

linux numpy shared-libraries blas atlas

23
推荐指数
2
解决办法
2万
查看次数

如何检查BLAS和ATLAS是否已安装

我正在尝试将armadillo库安装到我的linux系统(ubuntu 12.04)上.首先需要BOOST BLAS ATLAS和LAPACK进行安装.有没有办法检查这些库是否已经安装?

linux blas lapack atlas armadillo

18
推荐指数
1
解决办法
2万
查看次数

valgrind"未初始化的值"警告ATLAS多线程BLAS例程中的误报吗?

我正在使用ATLAS进行LAPACK和多线程BLAS例程,并且注意到当我的矩阵足够大以致ATLAS使用BLAS的多线程版本时,我从Valgrind得到初始化错误.这是我的代码中的一个最小示例:

#include <stdio.h>
#include <stdlib.h>

extern void dgetrf_(int *, int *, double *, int *, int *, int *);
extern void dgetri_(int *, double *, int *, int *, double *, int *, int *);
extern void dgemm_(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);

int main(void)
{
    double *m1,*m2,*work,*temp;
    int dim = 576;
    int i,j,info;
    int lwork = dim * dim; …
Run Code Online (Sandbox Code Playgroud)

c multithreading valgrind lapack atlas

17
推荐指数
1
解决办法
618
查看次数

使用ATLAS / LAPACK支持构建numpy

我正在尝试编译numpyv1.12,以获得对ATLAS / LAPACK例程的支持。

问题

我用于编译的设置似乎无法将ATLAS / LAPACK库引入numpy

设置

我正在使用的主机(计算群集)没有管理员特权。

但是,节点可以通过GNU模块访问gcc4.7.2和glibc5.3.0、2.17和2.22以及ATLAS / LAPACK库和标头v3.10.2。

出于兼容性原因,我正在使用包含Python 2.7.16的虚拟环境。同样,numpy出于同样的原因,我正在安装旧版本的。如果一切正常,我可以探索的较新版本,numpy但目前,这就是我正在使用的版本。

我的源目录numpy有一个名为的配置文件site.cfg,其中包含以下指令:

[ALL]
library_dirs = /usr/local/lib:/net/module/sw/glibc/2.22/lib64:/net/module/sw/atlas-lapack/3.10.2/lib
include_dirs = /usr/local/include:/net/module/sw/glibc/2.22/include:/net/module/sw/atlas-lapack/3.10.2/include

[atlas]
libraries = lapack,f77blas,cblas,atlas
library_dirs = /net/module/sw/atlas-lapack/3.10.2/lib
include_dirs = /net/module/sw/atlas-lapack/3.10.2/include
Run Code Online (Sandbox Code Playgroud)

numpy通过以下命令进行编译:

$ CFLAGS="${CFLAGS} -std=c99 -fPIC" LDFLAGS="-L/home/areynolds/.conda/envs/genotyping_environment/lib -Wl,-rpath=/home/areynolds/.conda/envs/genotyping_environment/lib -Wl,--no-as-needed -Wl,--sysroot=/,-L/net/module/sw/glibc/2.22/lib64" python setup.py build --fcompiler=gnu95
Run Code Online (Sandbox Code Playgroud)

我正在使用--fcompiler=gnu95ATLAS / LAPACK库,是使用GNU Fortran编译的。我重写CFLAGS,并LDFLAGS以变量的GCC工具包可以编译和链接正确。

问题

编译之后,我测试该numpy库以查看通过一种方法安装了什么:

$ python
... …
Run Code Online (Sandbox Code Playgroud)

python numpy lapack atlas python-2.7

15
推荐指数
1
解决办法
285
查看次数

ATLAS安装:真的需要通过CPU节流检查

ATLAS 3.10.1不会安装在我组织的CentOS 6.x平台上,因为它会检测CPU限制.在旧版本的软件包中,有一个配置标志可以将油门检查关闭(-Si cputhrchk 0)并且无论如何都要向前进.该选项在几个版本之前就被删除了.我理解这个决定背后的原因 - 开发人员担心他们软件的性能和声誉以及CPU限制使得ATLAS无法自我调整.精细.我的问题是,无论ATLAS的性能如何,我只需要完成构建.我知道,有很多方法可以停止节流,但是我没有,也许不会获得许可在这台机器上乱用CPU频率.所以我需要的是一种通过ATLAS油门检查的方法.我已经看到了一些关于破解配置脚本的讨论,但是我看不出自己该怎么做.没有人在ATLAS sourceforge网站上回答,这不是批评那里的任何人.只是想表明我的情况.所以:任何人都知道如何通过ATLAS的油门检查?谢谢.

linux install cpu-speed atlas

12
推荐指数
1
解决办法
7505
查看次数

Numpy以MATLAB的一半速度运行

我一直在将MATLAB代码移植到Python上,经过大量工作后,我发现了一些有用的东西.然而,缺点是Python运行我的代码比MATLAB运行得慢.我知道使用优化的ATLAS库会加快速度,但实际上实现这一点会让我感到困惑.这是发生了什么:

我启动了没有安装BLAS的ipython会话:

import numpy.distutils.system_info as sysinfo
import time
In [11]: sysinfo.get_info('atlas')
Out[11]: {}

timeit( eig(randn(1E2,1E2)) )
100 loops, best of 3: 13.4 ms per loop
Run Code Online (Sandbox Code Playgroud)

Matlab中的相同代码运行速度是原来的两倍

tic,eig(randn(1E2));toc*1000
    6.5650   
Run Code Online (Sandbox Code Playgroud)

我从Ubuntu存储库安装了非优化的ATAS deb.重新启动ipython,现在我得到:

In [2]: sysinfo.get_info('atlas')
 ...
Out[2]: 
{'define_macros': [('ATLAS_INFO', '"\\"3.8.4\\""')],
 'include_dirs': ['/usr/include/atlas'],
 'language': 'f77',
 'libraries': ['lapack', 'f77blas', 'cblas', 'atlas'],
 'library_dirs': ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base']}
Run Code Online (Sandbox Code Playgroud)

和测试代码:

In [4]: timeit( eig(randn(1E2,1E2)) )
100 loops, best of 3: 16.8 ms per loop
Run Code Online (Sandbox Code Playgroud)

所以没有更快.如果有任何触摸速度较慢.但我还没有切换到优化的BLAS.我按照这些说明操作:http://danielnouri.org/notes/category/python/我构建库并用这些库覆盖非优化版本.我重新开始ipython但是没有变化:

In [4]: timeit( eig(randn(1E2,1E2)) )
100 loops, best of 3: …
Run Code Online (Sandbox Code Playgroud)

python performance matlab numpy atlas

12
推荐指数
1
解决办法
4345
查看次数

如何确定我的R安装使用的矩阵库?

在我的大学使用我无法在本地计算机上重现的计算机群集时出现矩阵错误.我认为这可能是由于矩阵库(BLAS,LAPACK,ATLAS等)的不同.除了我在这里阅读的内容之外,我对这些库知之甚少,但我认为应该有办法让R告诉我它安装了哪些矩阵库(即它使用的是哪些),类似的到sessionInfo()告诉我它使用的是哪个版本的R包.

r build blas lapack atlas

10
推荐指数
1
解决办法
594
查看次数