ARM Cpu上的多核Numpy

the*_*moo 6 python arm numpy scipy raspberry-pi

我希望在我的Raspberry Pi 3 B +上使用NumPy进行一些工作,该产品使用ARM 4核Cortex-A53(ARMv8)64位(请参见底部),我不确定这笔交易是什么并行优化,blas等。在安装NumPy(python 3)之前,我使用以下命令安装了lapack和atlas

sudo apt-get install liblapack-dev
sudo apt-get install libatlas-base-dev
Run Code Online (Sandbox Code Playgroud)

接下来,我安装了Numpy(使用pip3)。使用以下代码检查如何设置NumPy:

import numpy as np
print (np.__config__.show())
Run Code Online (Sandbox Code Playgroud)

输出:

openblas_info:
  NOT AVAILABLE
lapack_opt_info:
    library_dirs = ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base']
    language = f77
    define_macros = [('ATLAS_INFO', '"\\"3.10.3\\""')]
    libraries = ['lapack', 'f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    include_dirs = ['/usr/include/atlas']
openblas_lapack_info:
  NOT AVAILABLE
blis_info:
  NOT AVAILABLE
atlas_3_10_threads_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
atlas_info:
    library_dirs = ['/usr/lib/atlas-base/atlas', '/usr/lib/atlas-base']
    language = f77
    define_macros = [('ATLAS_INFO', '"\\"3.10.3\\""')]
    libraries = ['lapack', 'f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    include_dirs = ['/usr/include/atlas']
lapack_mkl_info:
  NOT AVAILABLE
atlas_3_10_blas_threads_info:
  NOT AVAILABLE
openblas_clapack_info:
  NOT AVAILABLE
accelerate_info:
  NOT AVAILABLE
atlas_blas_threads_info:
  NOT AVAILABLE
atlas_3_10_blas_info:
  NOT AVAILABLE
blas_opt_info:
    language = c
    library_dirs = ['/usr/lib/atlas-base']
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.3\\""')]
    libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    include_dirs = ['/usr/include/atlas']
atlas_threads_info:
  NOT AVAILABLE
atlas_blas_info:
    language = c
    library_dirs = ['/usr/lib/atlas-base']
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.3\\""')]
    libraries = ['f77blas', 'cblas', 'atlas', 'f77blas', 'cblas']
    include_dirs = ['/usr/include/atlas']
atlas_3_10_info:
  NOT AVAILABLE
None
Run Code Online (Sandbox Code Playgroud)

在具有mkl / lapack的Intel / AMD机器上,每个库的信息都包含“ pthread”,我知道这是针对c上的低级多线程处理的。我的bla上numpy的库都不包含“ pthread”。

当我运行一个使用NumPy将大型矩阵相乘的测试时,使用“ top”命令查看进程/资源时,python进程的CPU使用率永远不会达到100%。如果我使用4核,它将达到〜400%。

是否有某种基于ARM的解决方案允许numpy执行并行计算?

谢谢!

编辑:

值得一提的是,即使处理器可以运行armv8,Raspbian显然也使用32位armv7L。您还可以在pi上放置其他64位操作系统。