问题标签 [blas]
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.
blas - vecLib cblas_sgemm 文档错误?
我正在尝试使用 vecLibs 的 cblas 将两个矩阵相乘:
根据文档,每个参数似乎都匹配但我收到此错误:
lda 必须 >= MAX(K,1):lda=2 K=3BLAS 错误:传递给 cblas_sgemm 的参数号 9 具有无效值
heroku - 在 Heroku 上运行 Scipy
我在 Heroku 上运行了 Numpy 和 Matplotlib,我也在尝试安装 Scipy。但是,Scipy 需要安装 BLAS[1],这在 Heroku 平台上没有提供。在联系 Heroku 支持后,他们建议我将 BLAS 构建为静态库以进行部署,并设置必要的环境变量。
因此,我在 64 位 Linux 机器上编译了 libblas.a,并按照 [2] 中的描述设置了以下变量:
在我的 requirements.txt 中添加 scipy==0.10.1 后,推送仍然失败。
似乎 pip 不知道 BLAS 环境变量,所以我使用 heroku run python 检查环境:
而且看起来还不错。现在我不知道如何解决这个问题。
[1] http://www.netlib.org/blas/ [2] http://www.scipy.org/Installing_SciPy/Linux
lapack - CLAPACK:测试 CBLAS 时出错
当我在 CLAPACK 中测试 CBLAS 时出现错误。当我运行测试代码时
我得到错误输出:
“TransA 必须为 111、112 或 113,但设置为 -1 例程 cblas_dgemv 的参数 2 不正确”
有谁知道这表明什么样的问题?
细节
我试图不使用参考 CBLAS,而是使用 ATLAS CBLAS。所以,我编译了包装库libcblaswr.a并将 make.inc 中的行更改为
CLAPACK安装提示做
但是链接器在没有我使用 -L 选项的情况下找不到 cblas 和 atlas,所以我将其包含在内。
我的设置的详细信息:
- Ubunty Lycid Lynx 10.04
- CLAPACK-3.2.1
- ATLAS.3.9.51
c - 通过 GEMV 与输入向量相同的输出来实现破坏性矩阵应用程序是否安全?
如果A是一个n x n矩阵并且x是一个维度为n的向量,那么是否可以将xGEMV
作为参数传递给x
和y
参数,用beta=0
来实现操作x ← A ⋅ x?
我对带有 C 接口的 Cublas 实现特别感兴趣。
macos - Numpy EIG 在 Mac OS X 10.6 上比 MATLAB EIG 慢大约 4 倍。我究竟做错了什么?
我尝试在 MATLAB 和 NumPy 上分析 EIG 函数,以比较我的 Macbook Pro(2 GHz,运行 OS X 10.6 的四核 i7)上的性能。与 MATLAB 相比,NumPy EIG 似乎相当慢。
这是我在 NumPy 上分析的代码:
在 NumPy 中,这大约是19.5 秒/执行。
这是 MATLAB 中的相同代码:
这在 MATLAB上大约是5.36 秒/执行。
我想像这样简单的事情不应该过多地依赖于 JIT 性能,所以它可能归结为 BLAS 和访问 BLAS 库的例程。我知道 MATLAB 在 Mac 上使用 Accelerate Framework。
NumPy 似乎也在我的 Macbook Pro 上使用了 Accelerate Framework BLAS;这是输出numpy.show_config()
我正在使用 Python 2.7.2 和 NumPy 1.6(都从 MacPorts 安装)
所以这是我对 NumPy 人的问题:为什么在这种情况下 NumPy 速度较慢?在安装 NumPy 时我是否遗漏了一些优化?
python - import numpy 确实将共享的 blas 库加载到其他模块
我们有一个库,由 Cython (core.so) 作为模块链接。它使用 BLAS,但它使用 -undefined,dynamic-lookup 选项编译,希望 BLAS 将在运行时加载。
在 Enthought Python Distribution 中,以下解决方案完美运行:
我们在 Ubuntu 10.04 中的“vanilla”python 发行版上尝试了它,并通过 apt-get 安装了 numpy(以及 liblapack-dev、libblas-dev 以相同的方式安装)。它没有找到 BLAS 库。我们如何才能让它以与环保署相同的方式运作?
更新:
这样做是为了获得与 numpy 中相同的 BLAS。例如,在 Mac Os X 机器上,EPD 再次编译 MKL,并且比可用的 BLAS(加速框架)快得多。
的输出numpy.show_config()
是:
c++ - C ++中的复矩阵指数
实际上是否可以在 c / c++ 中计算复数矩阵的矩阵指数?
我已经设法使用 GNU 科学库中的 blas 函数得到两个复杂矩阵的乘积。对于 matC = matA * matB:
我已经设法通过使用未记录的
但这似乎不接受复杂的论点。
有没有办法做到这一点?我曾经认为 c++ 可以做任何事情。现在我认为它过时和神秘......
c++ - 复对称三对角矩阵的快速矩阵指数
基本上我需要以上。我已经搜索了谷歌,但找不到实现这一点的方法。
我在这里找到了这个功能http://www.guwi17.de/ublas/examples/但它太慢了。我什至按照 MATLAB 的例程编写了自己的 Pade Approximation,但它只比链接中的快一点。
令我震惊的是 Mathematica 计算矩阵指数的速度有多快(它是否关心矩阵是否是 tridiag,我不知道)。
有人能帮忙吗?
编辑:这是我想出的,有什么意见吗?希望对以后的读者有用
我已经有一段时间没有使用 c++ 了,所以下面的代码可能有点杂乱/缓慢,所以如果你看到改进,请赐教。
c++ - C++ 中 Diag(k) 的替代方法是什么?
我正在将 matlab 代码转换为 C++ 代码,并试图在 Lapack、Blas 甚至 Atlas 中找到一个在 matlab 中的 Diag(k) 函数中执行相同工作的函数?有什么建议么 ?
math - 你如何“扩展” BLAS 子程序?
通常,BLAS 子程序是为某个独特的操作定义的。例如,
DAXPY
是必然的y <-- ax + y
DSCAL
是必然的x = ax
。
我希望达到的是:
z = ax+by
和y = ax
。
我如何“扩展” BLAS 的子程序以便我可以执行上述操作? (这些操作不一定相互遵循)
我试过了:
声明一个虚拟对象,然后
DCOPY
将虚拟对象设置为所需的向量。像,DCOPY(dummy,x); DSCAL(a,dummy),DCOPY(y,dummy)
创建我自己的 OpenMP 实现
DCOPY(y,a*x)
使用诸如for y=ax之类的技巧
但问题是,这些方法似乎都没有给我一个确凿的答案,哪个是解决这个问题的最佳方法。我知道我应该“配置文件,配置文件,配置文件”而不是询问,但我已经尝试了所有这些,但是每次我稍微改变向量时,之前最好的方法突然变成最差的方法,反之亦然。
还,
- 我的目的是尽可能实现最佳性能。
- 我知道优化这些操作可能不会给我带来太多的性能提升,但我正在尝试尽可能节省每一皮秒。
- FWIW,我正在链接到英特尔 MKL