首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在NumPy和SciPy中检查BLAS/LAPACK链接?

如何在NumPy和SciPy中检查BLAS/LAPACK链接?
EN

Stack Overflow用户
提问于 2012-01-25 17:15:34
回答 5查看 83.6K关注 0票数 135

我正在基于blas和lapack构建我的numpy/scipy环境,或多或少基于this遍历。

完成后,如何检查我的numpy/scipy函数是否真的使用了之前构建的blas/lapack功能?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-14 05:01:24

方法numpy.show_config() (或numpy.__config__.show())输出在构建时收集的有关链接的信息。我的输出如下所示。我想这意味着我正在使用Mac OS附带的BLAS/LAPACK。

代码语言:javascript
复制
>>> import numpy as np
>>> np.show_config()

lapack_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3']
    define_macros = [('NO_ATLAS_INFO', 3)]
blas_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
    define_macros = [('NO_ATLAS_INFO', 3)]
票数 306
EN

Stack Overflow用户

发布于 2012-01-25 20:24:16

您要搜索的内容是:system info

我用atlas编译了numpy/scipy,我可以用以下命令检查:

代码语言:javascript
复制
import numpy.distutils.system_info as sysinfo
sysinfo.get_info('atlas')

有关更多命令,请查看文档。

票数 30
EN

Stack Overflow用户

发布于 2012-01-25 19:39:18

您可以使用链接加载器依赖工具来查看构建的C级挂钩组件,并查看它们是否对您选择的blas和lapack具有外部依赖关系。我现在不在linux机器附近,但在OS X机器上,您可以在包含安装的site-packages目录中执行此操作:

代码语言:javascript
复制
$ otool -L numpy/core/_dotblas.so 
numpy/core/_dotblas.so:
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
    /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 268.0.1)

$ otool -L scipy/linalg/flapack.so 
scipy/linalg/flapack.so (architecture i386):
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
    /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0)
scipy/linalg/flapack.so (architecture ppc):
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)

$ otool -L scipy/linalg/fblas.so 
scipy/linalg/fblas.so (architecture i386):
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
    /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0)
scipy/linalg/fblas.so (architecture ppc):
    /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
    /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)

在gnu/Linux系统上用ldd代替otool,您应该会得到所需的答案。

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

https://stackoverflow.com/questions/9000164

复制
相关文章

相似问题

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