问题标签 [cblas]

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 回答
1165 浏览

c++ - mkl cblas_dgemm 参数错误

我尝试使用 mklcblas_dgemm来计算矩阵矩阵乘法。

据我所知,lda, ldb,ldc应该是简单行主矩阵的列数。我尝试执行以下操作:

但它给了我一条错误消息并且c没有更新。

参数 9 是lda

我的代码有什么问题?

0 投票
1 回答
626 浏览

c - CBLAS mac OS X 架构 x86_64 错误的未定义符号

我正在为我的项目尝试不同的 C 线性代数库,现在我想学习 BLAS (CBLAS)。我正在尝试按照此处的教程进行操作。我意识到 cblas 已经内置在 xcode 中并通过添加标志

或者

我可以消除我之前遇到的大部分错误。但是有一个最终错误,我在互联网上的任何地方都找不到。

我不确定我在哪里犯了错误,但有很多可能性:

  1. 我需要从netlib 网站安装 BLAS/CBLAS 。我实际上尝试过这样做,但我可以设法从源代码构建库!如果有人可以制作自制配方,那就太好了。那么如果安装了原始 CBLAS 库,那么我需要了解用于编译的 gcc 标志以及如何链接库。
  2. 或者 netlib 中的原始 CBLAS 与 xcode 中内置的 CBLAS 之间存在语法差异,我需要更改代码。

提前感谢您的帮助。

PS 我正在尝试从我提到的页面编译代码 blas1C.c、blaio.c、blaio.h。

编辑1:哦,我的!我才意识到我犯了一个可怕的错误。缺少的 printVector 函数不是 CBLAS 的一部分,而是博客作者制作的函数。我唯一要做的就是编译 blaio.c 文件。所以正确的 gcc 命令应该是

或者

0 投票
1 回答
815 浏览

caffe - 如何在caffe中的矩阵之间做点积?

在内积层,我需要乘以(top_diff * bottom_data) .* (2*weight). 首先,我们将 ( result = top_diff * bottom_data) 计算为矩阵乘法,caffe_cpu_gemm然后在 和之间进行dot product计算。weightresult

更多解释定义如下:

为了进一步了解,我检查了math_function.c. 它的实现如下:

我认为我应该在之后执行乘法 ( result = top_diff * bottom_data)和. 我应该怎么做?!caffe_cpu_gemm()dot productweight

非常感谢!!!!任何意见,将不胜感激!

0 投票
1 回答
134 浏览

python - BLAS dger以fortran顺序填充矩阵?

我正在使用 cython 对矩形矩阵 A 进行一级更新。我无法让 dger 按我的意愿进行更新,因此我将其隔离在一个函数中:

编译得很好。但是,这样做:

给我

它具有所需的 n x m 形状,但值的顺序错误。我认为 C 顺序与 fortran 顺序与此有关,但我自己无法解决问题。

我期待的结果是

0 投票
1 回答
93 浏览

c++ - 我将一个 c++ 矢量数据集转换为 ac 数组。我将相同的数据集传递给应该给出相同输出的函数

此代码应生成相同的输出。但是 c 输出似乎被四舍五入,而 c++ 不是。我不明白这里发生了什么。请解释。

在我展示代码之前,相同的值被传递给 c 和 c++ 代码。

c代码:

C++代码:

常用功能

c c 输出 (bMat)

时间:2019-05-10 标签:c++coutput(bMat)

并且误差矩阵包含值:

....它充满了 errorMatrix 元素,它们是 2d 数组,

0 投票
1 回答
358 浏览

numpy - CBLAS/LAPACK 与 Python 中的矩阵求逆

我试图反转的矩阵是:

真正的逆是:

使用 Python 的 numpy.linalg.inv,我得到了正确的答案。我的矩阵逆例程之一使用 dgetri_,它是:

使用这个例程,我得到:

其中 e1 和 e2 以及机器精度为 1e-16 的小数。现在也许 dgetri_ 不是最好用的。但是,当我通过 zgeqrf_ 和 zungqr_ 使用 QR 分解进行反转时,我得到了类似的答案。当我使用 dgesvd_ 使用 SVD 进行逆时,我也得到了类似的答案。

Python 似乎使用了一个名为 _umath_linalg.inv 的例程。所以我有几个问题:

  • 那个例程是做什么的?
  • 我可以使用什么 CBLAS/LAPACK 例程来反转此矩阵并获得类似 CBLAS/LAPACK 的结果(这样 e1 和 e2 被适当的零替换)?
0 投票
0 回答
85 浏览

python - cython_blas 1 级例程比 Cython for 循环快几个数量级

我遇到了对 cblas 的调用(即 daxpy: perform y += alpha * x 其中 y 和 x 是相同长度的向量,alpha 是标量)和在纯 cython 中执行的相同操作之间的性能差异。

这是我的基准,使用这个 SO 问题逐行分析 cython 代码:

我要进行基准测试的代码段:

基准测试的结果是:

第 21 和 25 行显示 for 循环比 blas 调用慢 40 倍。如果我没记错的话,我会以正确的顺序遍历数组(以最大化缓存命中)。我希望 BLAS 更快,但不会这么快。我缺少一个明显的解释吗?

用于获取时间的片段是:

0 投票
1 回答
322 浏览

c - Blas dgemv 比手动实现慢

我正在尝试在我的 c 程序中使用 BLAS 来提高矩阵/向量乘积的速度。

手动我有这个代码:

所以我试图用 blas 函数 cblas_dgemv 替换这个 double ,它看起来像这样:

输出值很好。

问题是我使用 BLAS 的实现比“手动”慢得多......

我不知道是因为我没有使用最优化的函数进行计算还是我做错了什么?

0 投票
0 回答
685 浏览

python-2.7 - 尝试访问库时,cython 失败,退出状态为 2

此代码返回错误

编译错误:命令“C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\ProgramData\Anaconda2\ lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda2\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC /TcC :\Users\MyPC.ipython\cython_cython_magic_ccc18a1fe0d778405242b7bd9128f2ff.c /FoC:\Users\MyPC.ipython\cython\Users\MyPC.ipython\cython_cython_magic_ccc18a1fe0d778405242b7bd9128f2ff.obj“失败,退出状态。

我不确定如何修复它,我需要能够访问 cblas.h。是因为我没有正确设置 cblas 文件,还是我的编译器不工作?有什么问题,我对cython不太熟悉。

这是我的命令行终端上出现的图片: 错误 我刚刚注意到它说它找不到文件/目录。这很有帮助,感谢谁指出它应该在我的命令行上显示错误。

无论如何,有人可以指出这个错误不是什么吗?例如,只要运行代码的 ipython 笔记本与“cblas.h”位于同一文件夹中,我是否应该能够从“cblas.h”执行“cdef extern”?谢谢!

0 投票
0 回答
149 浏览

compilation - cython magic 在同一目录中时找不到包含文件

错误图片

在 ipython 中运行以下代码块时出现此错误:

当 cblas.h 与 ipython 笔记本位于同一文件夹中时,它会显示“无法打开包含文件“cblas.h”:没有这样的文件或目录”。我该如何解决?