当前位置: 首页 > 知识库问答 >
问题:

用OpenBLAS集成编译numpy

滕夜洛
2023-03-14

共有1个答案

贺桐
2023-03-14

我刚刚用OpenBLAS集成在VirtualEnv内部编译了Numpy,它似乎工作正常。

这就是我的过程:

>

  • 编译openblas:

    $ git clone https://github.com/xianyi/OpenBLAS
    $ cd OpenBLAS && make FC=gfortran
    $ sudo make PREFIX=/opt/OpenBLAS install
    

    >

  • 要在本地执行此操作,您可以编辑~/.bashrc文件以包含行

    export LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH
    

    启动新的终端会话时,将更新ld_library_path环境变量(使用$source~/.bashrc在同一会话内强制更新)。

    对多个用户有效的另一个选项是在/etc/ld.so.conf.d/中创建一个.conf文件,其中包含行/opt/openblas/lib,例如:

    $ sudo sh -c "echo '/opt/OpenBLAS/lib' > /etc/ld.so.conf.d/openblas.conf"
    

    完成任一选项后,运行

    $ sudo ldconfig
    

    获取numpy源代码:

    $ git clone https://github.com/numpy/numpy
    $ cd numpy
    

    site.cfg.example复制到site.cfg并编辑副本:

    $ cp site.cfg.example site.cfg
    $ nano site.cfg
    

    取消对这些行的注释:

    ....
    [openblas]
    libraries = openblas
    library_dirs = /opt/OpenBLAS/lib
    include_dirs = /opt/OpenBLAS/include
    ....
    

    检查configuration、build、install(可选地在VirtualEnv中)

    $ python setup.py config
    

    输出应该如下所示:

    ...
    openblas_info:
      FOUND:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/opt/OpenBLAS/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    
      FOUND:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/opt/OpenBLAS/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    ...
    
    $ pip install .
    
    $ OMP_NUM_THREADS=1 python build/test_numpy.py
    
    version: 1.10.0.dev0+8e026a2
    maxint:  9223372036854775807
    
    BLAS info:
     * libraries ['openblas', 'openblas']
     * library_dirs ['/opt/OpenBLAS/lib']
     * define_macros [('HAVE_CBLAS', None)]
     * language c
    
    dot: 0.099796795845 sec
    
    $ OMP_NUM_THREADS=8 python build/test_numpy.py
    
    version: 1.10.0.dev0+8e026a2
    maxint:  9223372036854775807
    
    BLAS info:
     * libraries ['openblas', 'openblas']
     * library_dirs ['/opt/OpenBLAS/lib']
     * define_macros [('HAVE_CBLAS', None)]
     * language c
    
    dot: 0.0439578056335 sec
    

  •  类似资料:
    • 问题内容: 我试图安装有,但我在损失的如何文件需要被写入。 当安装过程之后安装完成且没有错误,但没有关于增加从1(由环境变量OMP_NUM_THREADS控制)使用OpenBLAS线程数性能下降。 我不确定OpenBLAS集成是否完美。任何人都可以提供文件来实现相同目的。 PS:OpenBLAS与基于Python的Theano等其他工具包的集成,可在同一台计算机上通过增加线程数显着提高性能。 问题

    • 问题内容: 我试图安装有,但我在损失的如何文件需要被写入。 当安装过程之后安装完成且没有错误,但没有关于增加从1(由环境变量控制)使用OpenBLAS线程数性能下降。 我不确定OpenBLAS集成是否完善。任何人都可以提供文件来实现相同目的。 PS:OpenBLAS与基于的等其他工具包的集成,可在同一台计算机上显着提高线程数量,从而显着提高性能。 问题答案: 我只是在带有集成的a内编译,看来工作正

    • OpenBLAS 是一个优化的 BLAS 库,基于 GotoBLAS2 1.13 BSD 版本。 BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法)。该程序集最初发布于1979年,并用于建立更大的数值程序包(如LAPACK)。在高性能计算领域,BLAS被广泛使用。

    • 尝试与JIB(容器化您的GradleJava项目)与我的Java项目集成。 在此留档之后:https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin 在我的项目中添加了以下内容: Gradle版本是:5.6.4 使用“/gradlew”构建的编译工作正常。但是,当执行“gradle jib”时,会出现以下错误:

    • 我有一个用npm管理的Angular 2项目,我最近运行了 有什么想法可以解决这个问题吗?

    • 经过上一步的漫长等待,不出意外的话都能出包了。 完整刷机包的位置是: ~/android/sudamod/out/target/product/z2_plus/sudamod-71.2-xxxxxxxxxxxx-UNOFFICIAL-z2_plus.zip 把这个包刷入手机就好用了。 在这个目录下,还会有一个同名的 md5sum 文件,推荐把它一起放入手机,这样 recovery 刷入时会自动检测