问题标签 [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.
python - 使用 OpenBLAS 集成编译 numpy
我正在尝试安装numpy
,OpenBLAS
但是我不知道如何site.cfg
编写文件。
当按照安装过程完成安装时,安装没有错误,但是将 OpenBLAS 使用的线程数从 1 增加(由环境变量 OMP_NUM_THREADS 控制)会降低性能。
我不确定 OpenBLAS 集成是否完美。任何人都可以提供一个site.cfg
文件来实现相同的目标。
PS:OpenBLAS 与其他工具包(如基于 Python 的Theano )的集成,在同一台机器上增加线程数量时提供了显着的性能提升。
multithreading - OpenBLAS 中的多线程线性系统解决方案
我有一个使用 Fortran 95 和 gfortran 编译器的代码。我也在使用 OpenMP,我必须处理非常大的数组。在我的代码中,我还必须使用 OpenBLAS 的求解器 DGTSV 求解线性方程组。我想并行化这个求解器以及使用应该能够做到的openblas。但我在语法上有问题。使用附加的伪代码,所有 4 个 CPU 几乎 100% 使用,但我不确定每个内核是否单独求解线性方程,或者是否将其拆分为多个部分并并行计算。整个东西是使用编译的gfortran -fopenmp -lblas a.f95 -o a.out
所以我的伪代码看起来像
我必须做什么才能使求解器并行化,以便每个内核计算求解器的各个部分?
python - 为什么 numpy.float16 会破坏 OpenBlas/Atlas 功能?
好的,我知道float16
它不是真正的原始类型,但它是由 Python/numpy 模拟的。但是,问题是:如果存在并且 Python 允许使用该numpy.dot()
函数在数组乘法中使用它,为什么 OpenBlas(或 ATLAS)不能正常工作?我的意思是,乘法有效,但并行计算无效。float16
或者,以不同的方式(我认为更好),如果我们不能利用 OpenBlas/ATLAS 提供的高级功能,为什么 Python/numpy 允许使用?
c - 数字文字 0.e0f 是什么意思?
我目前正在尝试调试未初始化的内存错误。我现在在 OpenBlas 源代码中遇到了数字文字 0.e0f(这是调试器当前所在的位置),这是什么意思?
上下文是这样的:
0.e0f 显然评估为 0。
python - Numpy 与 ATLAS 或 OpenBLAS?
在花费大量时间从源代码构建 ATLAS 之后,我在 OpenSUSE 13.1 存储库中发现了 libopenblas 和 libatals。我的问题是
存储库中易于安装(无需在您自己的计算机上进行调整)“libatlas”是否真的提高了计算性能?
OpenBLAS 是比 ATLAS 好还是只比 Linux 存储库中易于安装的“libatlas”好?请参阅For faster R use OpenBLAS instead: better than ATLAS, trivial to switch to on Ubuntu。
我关注了这篇使用 OpenBLAS 编译 Numpy 的帖子,但找不到“numpy.core._dotblas”模块。此外,我无法同时使用 ATLAS 和 OpenBLAS 构建 Numpy。
有人可以发布一个 .py 文件或 bash 代码来比较 ATLAS 和 OpenBLAS 吗?例如。
我用自己的ATLAS构建了 Numpy-1.9,从源代码编译了OpenBLAS,并在 OpenSUSE 13.1 的存储库中安装了“libopenblaso”(OpenMP 版本)和“libopenblasp”(pthreads 版本)。如何配置链接和库,以便可以告诉 Numpy-1.9 使用 OpenBLAS 而不是 ATLAS,而无需重新构建 Numpy-1.9 包。
注意:如果您在存储库中安装“libatlas”,则 ATLAS 未针对您的计算机进行调整,并且无法提高计算性能。因此,我先构建和调整了 ATLAS,然后用我自己的 ATLAS 构建了 Numpy。之后我尝试将 OpenBLAS 链接到 Numpy 但失败了。
提前谢谢了!
感谢@Dmitry 的快速回复!但是问题没有解决...
安装
问:为什么会有一个有趣的双斜杠“..64//usr..”?
链接图书馆
问:这个配置可以吗,因为一些静态库“.a”是链接的?
注意:“libopenblasp.so.0”在“zypper in”之后自动链接,而所有“atlas”库都是由命令手动创建的:
lapack - 在编译/链接期间无法禁用 Armadillo Wrapper
我正在尝试使用 MinGW32 和 OpenBLAS 在 Windows 32 下编译 Armadillo C++ 库。
我已经尝试了有关该主题的所有教程和 stackoverflow.com 问题,但似乎仍然无法禁用 wrapper.obj 的编译,这会产生链接错误“未定义对 `sdot_' 的引用”等等。这些是包装器无法找到的 BLAS 符号。
我没有安装其他 BLAS/LAPACK 库,并且在 cmake 输出中确认已找到 libopenblas.dll。
如何禁用 wrapper.obj 的编译和链接?编辑 config.hpp 没有效果。
python - 在主目录中安装支持 OpenBLAS 的 Numpy
我正在服务器上的主文件夹中本地安装 Python (2.7.8) 环境,以便将较新版本的 Python 及其一些库(Numpy、Theano)与 OpenBLAS 一起使用。为此,我首先usr
在我的主目录 ( /home/my_home/usr/
) 的文件夹中安装了 Python,如下所述:
https://mail.python.org/pipermail/tutor/2002-March/012903.html
安装似乎很顺利。我通过启动 Python 解释器检查了这一点,它在启动时显示正确的版本。
在此之后,我将 OpenBLAS 安装到/home/my_home/opt
文件夹中,如下所述:
...这也没有给我任何错误。但是,现在当我尝试安装 Numpy 时(根据上面链接中的说明),我收到以下错误:
我想最简单的事情就是找到 . 的包select
,编译并安装它。我不确定这是否正确,因为我上次在主目录中本地安装 Python 2.7.6 时,没有出现此类错误。据我了解,该select
模块应该与 Python 一起安装。
当我尝试以类似方式在我的主文件夹中安装 IPython 时,也会发生这种情况。给出的图书馆ImportError
是不同的。
我想知道这些是否与我在安装 Python 时可能犯的一个更普遍的错误有关。我将不胜感激有关此问题的任何建议。请让我知道是否有任何其他信息会有所帮助。谢谢!
python - swig with openmp 和 python,swig -threads 需要额外的 GIL 处理吗?
我的 C 库与 swig 接口。我可以用我的 setup.py 编译它。这里是扩展部分:
在我的库中,我使用 openmp 进行并行化。当我调用我的例程时,我得到了正确数量的线程,但它们都受到 GIL 的影响并且同时运行。我的例程给了我正确的输出。我的印象是swig -threads
进入图书馆时会释放GIL。那么为什么我的函数没有并行化呢?
下面是一个 openmp 例程的示例:
我的接口文件不包括任何%threads
或Py_BEGIN_ALLOW_THREADS
调用。我是否需要发布 GIL,如果需要,我将如何做?
更新: 我在 virtualenv 中安装了带有 openblas 的 numpy,用于计算。它与没有 virtualenv 的 python 解释器完全相同。如果我在激活环境的情况下运行以下 onlineer,则它不会并行化。但是,如果我使用标准安装运行它,它就可以工作。所以我不再确定真正的错误是什么。
python - 无法导入 numpy:错误:/usr/lib/liblapack.so.3:未定义符号:gotoblas
当我尝试导入 numpy 时,出现以下错误:
我已经尝试过在 debian wheezy 上的 virtualenv 中使用 pip 安装 matplotlib 时通过 import numpy: lapack_lite.so: undefined symbol and GotoBLAS error 发布的解决方案
我已经尝试了以下所有选项:
我正在使用 Ubuntu 14.1 和 python 2.7
numpy - RPM 安装 OpenBLAS 以及用于 SciPy 和 NumPy 的 ATLAS?
我正在尝试链接 NumPy 和 SciPy(在 Python 3 下,在 Fedora 20 下),只使用 RPM 包(所以,没有 pip,手动构建等)。
我尝试了各种东西,但是
总是给我通常的“我正在使用 ATLAS”信息。
我试过玩alternatives
,如建议的here,here和其他几个资源,但alternatives --list | grep blas
总是空的。我尝试添加一个libblas.so.3
替代方案,链接到libopenblas.so
,但上述测试的行为没有改变。
我还试图找出 SciPy/NumPy 加载这些库的位置和方式,但找不到。
我没有_dotblas.so
(在与此相关的各种说明中经常提到);但是,我确实有_dotblas.cpython-33m.so
、cblas.cpython-33m.so
和fblas.cpython-33m.so
,但它们都没有链接到libblas.so.3
(如上一个链接中所建议的那样)。
删除 ATLAS 不是一种选择,因为它会拖拽更多的包(例如 Gimp)。
我还在虚拟机中安装了新的 Fedora 20。yum 的 NumPy/SciPy 坚持使用 ATLAS。当我删除它们并从 pip 安装时,它们使用 OpenBLAS 没有问题(但后来我无法轻松切换 ATLAS)。我想要两者,通过简单的切换,所以我可以执行各种测试来比较这两者的性能,并且(重新)在 yum 和 pip 之间安装显然不是一个解决方案。
我想避免重建和手动安装,以便将来更新更容易,因为我需要在几台不同的机器上进行此操作。在我看来,这样做并不是一件奇怪的事情,告诉这些模块加载一个或另一个库,而无需在我想要进行更改时进行重大重新安装。