问题标签 [openblas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2565 浏览

numpy - 具有不同 BLAS 实现的 NumPy 的性能

我正在运行一个用 Python 实现并使用 NumPy 的算法。该算法中计算成本最高的部分涉及求解一组线性系统(即调用numpy.linalg.solve(). 我想出了这个小基准:

我一直在运行这个:

  1. 我的笔记本电脑,2013 年末 MacBook Pro 15",4 核 2GHz(sysctl -n machdep.cpu.brand_string给我Intel(R) Core(TM) i7-4750HQ CPU @ 2.00GHz
  2. 具有 4 个 vCPU的 Amazon EC2c3.xlarge实例。亚马逊将它们宣传为“高频英特尔至强 E5-2680 v2(常春藤桥)处理器”

底线:

  • 在 Mac 上运行时间约为 4.5 秒
  • 在 EC2 实例上,它在~19.5 秒内运行

我也在其他基于 OpenBLAS / Intel MKL 的设置上尝试过,运行时总是与我在 EC2 实例上得到的相当(以硬件配置为模。)

谁能解释为什么 Mac(使用 Accelerate Framework)的性能要好 4 倍以上?下面提供了有关每个中的 NumPy / BLAS 设置的更多详细信息。

笔记本电脑设置

numpy.show_config()给我:

EC2 实例设置:

在 Ubuntu 14.04 上,我安装了 OpenBLAS

安装 NumPy 时,我创建了一个site.cfg包含以下内容的文件:

numpy.show_config()给我:

0 投票
0 回答
76 浏览

python - 我需要安装什么才能让 numpy 在多个线程上进行 matix 乘法?

以下是可能相关的事情,但我不确定具体如何。

不知道如何解释ldd输出,但人们一直在答案中引用它们,所以它们在这里:

另外,这里是libblas.so我知道我不应该有 ATLAS 但不知道我需要为多线程做什么

我正在寻找一个简单的解决方案。

我相信我没有多线程支持的原因是因为top它永远不会超过 100%。

0 投票
1 回答
15719 浏览

ubuntu - 如何检查我的 Ubuntu 系统中有哪些 BLAS?

特别想知道先益的OpenBLAS有没有安装。在过去的几年中,我在几台 PC 上工作并安装在几台 PC 上,但我迷失了没有安装它的轨迹。我需要知道哪台电脑有它,哪台没有这就是我安装它的方式:

注意:我可能已经删除了 OpenBLAS 目录,所以它不是一个可靠的指标。而且我不知道如何卸载它,所以我不能尝试在每台 PC 上安装它然后有选择地卸载(这很麻烦)。

0 投票
1 回答
191 浏览

c++ - GLPK OpenBLAS 运行时 dll 链接错误

我有一个使用 Armadillo C++ 编写的程序,链接到 OpenBLAS 和 GLPK。

它使用相同的库在 VS2010 下的 Debug 和 Release 中正确编译和链接。它在 Debug 中完美运行,只是速度很慢。

Release 二进制文件发出以下错误:

过程入口点 glp_get_num_cols 无法位于动态链接库 libopenblas.dll 中。

关于从哪里开始的任何想法?我已经确认 Debug 和 Release 的配置是相同的,但前者允许的调试符号除外。

0 投票
1 回答
936 浏览

r - R 和 nvblas.dynlib(在 Mac 上)

我通过CRAN在我的 Mac 上安装了 R 。我还通过homebrew安装了 openblas 。我可以在 BLAS 实现之间切换,如下所示:

参考 blas(我认为是 netlib):

vecLib(Apple 的 BLAS):

openblas(通过自制软件提供):

在 3 个选项中,openblas 似乎是最快的选项(尽管 vecLib 紧随其后)。

但是,我想尝试更多的力量:

更多力量

从 NVIDIA 安装了 CUDA 6.5。这会将一堆文件下载到/Developer/NVIDIA/并将其中一些链接到/usr/local/cuda. 我将我的 cuda 环境变量设置为~/.profile

然后,我使用以下条目制作了一个“/Users/me/nvblas.conf”:

理论上,这应该指向nvblas.dyliblibopenblas.dylib包含在 BLAS 中的函数nvblas.dylib

到目前为止,一切都很好。下一步是将 R 链接到nvblas.dylib

但是,当我启动 R 时,似乎libRlapack.dylib找不到它正在寻找的所有 BLAS 函数:

openblas 本身可以正常工作,并提供 R 正在寻找的所有功能,所以我认为错误是libnvblas.dylib没有正确回退到libopenblas.dylib.

无论我指向什么 CPU BLAS libnvblas.dylib(netlib、vecLib、openblas),都会发生这种情况。谁能帮我解决这个错误?我还需要在我的路径或链接中添加什么才能libnvblas.dylib在 Mac 上正确使用 R 吗?

相关的错误可能是:

在我看来,nvblas 没有转发_dasum_到 openblas。

/编辑:

产量:

0 投票
2 回答
311 浏览

julia - 为什么 Julia 要求 Ubuntu 14.04 上的 AVX 指令?

在我的 Ubuntu 14.04 机器上,Julia 抱怨我的机器不支持 AVX 指令。这可能是什么原因?

错误信息

0 投票
0 回答
993 浏览

numpy - 无法在 Ubuntu 14.04 上使用 OpenBLAS 安装 scipy (/numpy)

我正在尝试在 Ubuntu 14.04 上使用 OpenBLAS 安装 Numpy 和 Scipy,以更快地运行 Theano。

我按照我在这里找到的说明进行操作:

在 /usr/local/lib 中安装 numpy:

这是我的 site.cfg 文件:

建造:

安装:

我在 build/lib.linux-x86_64-2.7/numpy/core 下找不到 core/_dotblas.so,但是在测试点、乘法、SVD 和特征分解操作时我得到了很好的结果。

所以看起来 numpy 安装正确。当我尝试安装 Scipy 并且没有关于该部分的文档时出现问题,因为 pip install 应该可以工作。

在 /usr/local/lib 中克隆 scipy:

获取 libatlas:

scipy 的 site.cfg 文件:

构建 scipy:

给我以下错误:

我花了很多时间寻找建议,但不知道下一步该做什么。

0 投票
1 回答
911 浏览

python - 安装 OpenBLAS 和 Numpy 后没有 _dotblas.so

我正在尝试在 Ubuntu 14.04 LTS(64 位)中使用 NumPy 加速矩阵运算。而不是使用 ATLAS(实际上当我使用 ATLAS 时,只有 1 个线程完全运行,其他 7 个打开的线程什么也不做,即使我指定OMP_NUM_THREADS=8了例如。不知道为什么。),我决定给 OpenBLAS尝试。

我花了几个小时学习了几个教程来构建OpenBLASNumPy的源代码,例如[1][2][3][4][5]。但是,它们都不能_dotblas.so在编译 NumPy 后生成,这是加快dot矩阵间运算的关键文件。

请问是否有人在 Ubuntu 14.04 下成功构建了 NumPy 和 OpenBLAS?如果是这样,请告诉我该怎么做?

谢谢你。


更新:

下面基本上是我从上面五篇帖子中总结出来的,并在我的机器上尝试过:

更新:上面的脚本已经过测试,可以在 Ubuntu 12.04 和 14.04 64 位上正常运行。

0 投票
1 回答
769 浏览

c++ - 使用 msys2 构建 OpenBlas

我有一台 Windows 7-64 位计算机,我正在尝试通过 Msys2 构建 OpenBlas 库。

gcc 似乎存在一些问题,因为在安装 minGW 并解压缩 OpenBlas 文件夹后,我打开 msys2 并导航到 OpenBlas 所在的文件夹。我键入命令 make 并收到此错误:

制作:gcc:找不到命令制作:*** [getarch] 错误 127

0 投票
0 回答
1661 浏览

c++ - 在 Linux 上使用 Openblas 编译 Suitesparse 4.4.4

我下载并编译了 Openblas,现在我正在尝试编译并将 openblas 链接到 Suitesparse 4.4.4。编译所有 lib 文件后,当编译器尝试编译umfpack_di_demo.c时出现以下错误:

我的意思是链接不正确。但是,按照 SuiteSparse_config.mk 中的指示,我给出了 libopenblas.a 在我的系统上的绝对位置。此外,我还使用 gcc-nm 查看符号 dtrsv_ 是否在 libopenblas.a 中定义,我得到以下输出,表明该符号是在库中定义的:

我不确定这里出了什么问题。我应该在 suitesparse_config.mk 文件中包含带有 openblas 的 lapack 吗?任何帮助表示赞赏。谢谢。

注意:如果有帮助,我使用gcc 4.4.7进行所有编译,我的系统详细信息是:

== 编辑1:我遵循的步骤==

对于 Openblas:

  1. 从 http://github.com/xianyi/OpenBLAS/zipball/v0.2.14 下载 openblas。
  2. 使用 gcc-4.4.7 和以下命令在我的系统上解压缩并编译它 make FC=/usr/bin/lgfortran-4.4 我必须提供 'FC' 因为我的系统没有 libgfortran.* 存在于 /usr/lib /。
  3. 编译完成后,我键入 make install 以安装到我的主文件夹中的自定义目录。

对于套件稀疏:

  1. 从 http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.4.tar.gz 下载suitesparse
  2. 解压它,并编辑 suitsparse_config.mk 文件以进行以下修改:A) 启用 CHOLMOD 和 SPQR 的 GPU 配置,B) 不使用 metis,因此注释“METIS_PATH = ../../metis-4.0”和“METIS = ../../metis-4.0/libmetis.a”。此外,未提交的“CHOLMOD_CONFIG = -DNPARTITION”。C)给出了openblas的自定义安装路径:BLAS = -L//OpenBLAS/local/lib/libopenblas.a -lpthread -L/usr/lib/gcc/x86_64-linux-gnu/4.4.7/libgfortran.so
  3. 在 srcdir 中键入 make。