问题标签 [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.
numpy - 具有不同 BLAS 实现的 NumPy 的性能
我正在运行一个用 Python 实现并使用 NumPy 的算法。该算法中计算成本最高的部分涉及求解一组线性系统(即调用numpy.linalg.solve()
. 我想出了这个小基准:
我一直在运行这个:
- 我的笔记本电脑,2013 年末 MacBook Pro 15",4 核 2GHz(
sysctl -n machdep.cpu.brand_string
给我Intel(R) Core(TM) i7-4750HQ CPU @ 2.00GHz) - 具有 4 个 vCPU的 Amazon EC2
c3.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()
给我:
python - 我需要安装什么才能让 numpy 在多个线程上进行 matix 乘法?
以下是可能相关的事情,但我不确定具体如何。
不知道如何解释ldd
输出,但人们一直在答案中引用它们,所以它们在这里:
另外,这里是libblas.so
我知道我不应该有 ATLAS 但不知道我需要为多线程做什么
我正在寻找一个简单的解决方案。
我相信我没有多线程支持的原因是因为top
它永远不会超过 100%。
ubuntu - 如何检查我的 Ubuntu 系统中有哪些 BLAS?
特别想知道先益的OpenBLAS有没有安装。在过去的几年中,我在几台 PC 上工作并安装在几台 PC 上,但我迷失了没有安装它的轨迹。我需要知道哪台电脑有它,哪台没有这就是我安装它的方式:
注意:我可能已经删除了 OpenBLAS 目录,所以它不是一个可靠的指标。而且我不知道如何卸载它,所以我不能尝试在每台 PC 上安装它然后有选择地卸载(这很麻烦)。
c++ - GLPK OpenBLAS 运行时 dll 链接错误
我有一个使用 Armadillo C++ 编写的程序,链接到 OpenBLAS 和 GLPK。
它使用相同的库在 VS2010 下的 Debug 和 Release 中正确编译和链接。它在 Debug 中完美运行,只是速度很慢。
Release 二进制文件发出以下错误:
过程入口点 glp_get_num_cols 无法位于动态链接库 libopenblas.dll 中。
关于从哪里开始的任何想法?我已经确认 Debug 和 Release 的配置是相同的,但前者允许的调试符号除外。
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.dylib
不libopenblas.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。
/编辑:
产量:
julia - 为什么 Julia 要求 Ubuntu 14.04 上的 AVX 指令?
在我的 Ubuntu 14.04 机器上,Julia 抱怨我的机器不支持 AVX 指令。这可能是什么原因?
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:
给我以下错误:
我花了很多时间寻找建议,但不知道下一步该做什么。
python - 安装 OpenBLAS 和 Numpy 后没有 _dotblas.so
我正在尝试在 Ubuntu 14.04 LTS(64 位)中使用 NumPy 加速矩阵运算。而不是使用 ATLAS(实际上当我使用 ATLAS 时,只有 1 个线程完全运行,其他 7 个打开的线程什么也不做,即使我指定OMP_NUM_THREADS=8
了例如。不知道为什么。),我决定给 OpenBLAS尝试。
我花了几个小时学习了几个教程来构建OpenBLAS和NumPy的源代码,例如[1]、[2]、[3]、[4]和[5]。但是,它们都不能_dotblas.so
在编译 NumPy 后生成,这是加快dot
矩阵间运算的关键文件。
请问是否有人在 Ubuntu 14.04 下成功构建了 NumPy 和 OpenBLAS?如果是这样,请告诉我该怎么做?
谢谢你。
更新:
下面基本上是我从上面五篇帖子中总结出来的,并在我的机器上尝试过:
更新:上面的脚本已经过测试,可以在 Ubuntu 12.04 和 14.04 64 位上正常运行。
c++ - 使用 msys2 构建 OpenBlas
我有一台 Windows 7-64 位计算机,我正在尝试通过 Msys2 构建 OpenBlas 库。
gcc 似乎存在一些问题,因为在安装 minGW 并解压缩 OpenBlas 文件夹后,我打开 msys2 并导航到 OpenBlas 所在的文件夹。我键入命令 make 并收到此错误:
制作:gcc:找不到命令制作:*** [getarch] 错误 127
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:
- 从 http://github.com/xianyi/OpenBLAS/zipball/v0.2.14 下载 openblas。
- 使用 gcc-4.4.7 和以下命令在我的系统上解压缩并编译它 make FC=/usr/bin/lgfortran-4.4 我必须提供 'FC' 因为我的系统没有 libgfortran.* 存在于 /usr/lib /。
- 编译完成后,我键入 make install 以安装到我的主文件夹中的自定义目录。
对于套件稀疏:
- 从 http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.4.tar.gz 下载suitesparse
- 解压它,并编辑 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
- 在 srcdir 中键入 make。