指向numpy构建的ATLAS/BLAS/LAPACK库的正确方法? [英] Correct way to point to ATLAS/BLAS/LAPACK libraries for numpy build?
问题描述
我正在CentOS 6.5上从源代码构建numpy,而没有root访问权限(python -V = 2.7.6).我有来自git的最新numpy来源.我一生无法麻木地承认地图集库.我有:
I'm building numpy from source on CentOS 6.5 with no root access (python -V=2.7.6). I have the latest numpy source from git. I cannot for the life of me get numpy to acknowledge atlas libs. I have:
ls -1 /usr/lib64/atlas
libatlas.so.3
libatlas.so.3.0
libcblas.so.3
libcblas.so.3.0
libclapack.so.3
libclapack.so.3.0
libf77blas.so.3
libf77blas.so.3.0
liblapack.so.3
liblapack.so.3.0
libptcblas.so.3
libptcblas.so.3.0
libptf77blas.so.3
libptf77blas.so.3.0
我对这些库的产生方式一无所知,但我只能假设Atlas版本比我能制作的任何标准BLAS/LAPACK版本都要快.
I don't know anything about how these libs came about, but I can only assume that the atlas builds would be faster than any standard BLAS/LAPACK builds I could make.
将numpy指向这些库的正确方法是什么?我是否export ATLAS, BLAS, LAPACK=...
分别将其设置为相应的路径?还是我将site.cfg
文件编辑为包含以下内容:
What is the correct way to point numpy to these libraries? Do I export ATLAS, BLAS, LAPACK=...
setting each to its corresponding path? or do I edit a site.cfg
file to contain something like:
[default]
library_dirs = /usr/lib64/atlas
[atlas]
library_dirs = /usr/lib64/atlas
atlas_libs = lapack, cblas, f77blas, atlas
我已经尝试了上面的几乎所有变体,并且每次运行python setup.py config
时,它都告诉我无法在我指定的路径以及其他默认搜索路径中找到每个库.我已经将python setup.py config
和site.cfg
的运行结果粘贴到上面,并且在此处未设置任何环境变量: http://pastebin.com/EL9CfaR7 .感谢您的帮助.
I've tried just about every variation of the above, and each time I run python setup.py config
it tells me each library cannot be found in the paths I specify as well as a bunch of other default search paths. I've pasted the results of running python setup.py config
with the site.cfg
as above and no environment variables set here: http://pastebin.com/EL9CfaR7. Any help is appreciated.
推荐答案
好吧,这非常简单,本质上完全遵循安装指南.我想这更多是关于共享库之后编号的问题,而不是关于numpy或图集的问题.无论如何,我只需要创建一些符号链接:
Ok this was pretty simple and essentially follows the install guidelines exactly. I suppose this is more of a question on the numberings after shared libs than about numpy or atlas. Anyway, I just had to create some symlinks:
ln -s /usr/lib64/atlas/___.so.3.0 $HOME/local/lib/___.so
然后删除site.cfg中的所有配置并更新我的.bashrc
:
Then removed all configs in the site.cfg and updated my .bashrc
:
export ATLAS=$HOME/local/lib/libatlas.so
export BLAS=$HOME/local/lib/libptf77blas.so
export LAPACK=$HOME/local/lib/liblapack.so
运行python setup.py install
后,我很好:
>>> import numpy.distutils.system_info as si
>>> si.get_info('atlas')
ATLAS version 3.8.4 built by mockbuild on Wed Mar 21 01:43:44 GMT 2012:
UNAME : Linux c6b6.bsys.dev.centos.org 2.6.32-44.2.el6.x86_64 #1 SMP Wed Jul 21 12:48:32 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
INSTFLG : -1 0 -a 1
ARCHDEFS : -DATL_OS_Linux -DATL_ARCH_PII -DATL_CPUMHZ=2261 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664
F2CDEFS : -DAdd_ -DF77_INTEGER=int -DStringSunStyle
CACHEEDGE: 163840
F77 : gfortran, version GNU Fortran (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
F77FLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
SMC : gcc, version gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
SMCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
SKC : gcc, version gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
SKCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
{'libraries': ['lapack', 'f77blas', 'cblas', 'atlas'], 'library_dirs': ['~/local/lib'], 'define_macros': [('ATLAS_INFO', '"\\"3.8.4\\""')], 'language': 'f77'}
这篇关于指向numpy构建的ATLAS/BLAS/LAPACK库的正确方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!