blas相关内容

python/numpy中的多线程blas

我正在尝试在Python中实现大量矩阵矩阵乘法.最初,我假设NumPy将自动使用我的线程BLAS库,因为我是根据这些库构建它的.但是,当我查看 顶部 或其他名称时似乎代码根本不使用线程. 任何想法是什么错误,或者我可以做些什么来轻松使用BLAS性能? 解决方案 并非所有的Nu​​mPy都使用BLAS,只有某些功能-特别是dot(),vdot()和innerproduct()以及num ..
发布时间:2020-05-18 18:35:35 Python

使用OpenBLAS集成编译numpy

我正在尝试将numpy与OpenBLAS一起安装,但是我对如何编写site.cfg文件感到困惑. 按照安装过程,安装成功完成,没有错误,但是,OpenBLAS使用的线程数从1增加(由环境变量OMP_NUM_THREADS控制)会降低性能. 我不确定OpenBLAS集成是否完美.任何人都可以提供一个site.cfg文件来实现同样的目的. PS:基于Python的其他工具包(如 Th ..
发布时间:2020-05-18 18:32:18 Python

如何使用cblas函数计算向量中元素的值之和?

我需要对caffe中矩阵的所有元素求和, 但是我注意到,cblas函数('math_functions.hpp'和'math_functions.cpp')的caffe包装器使用 cblas_sasum 函数作为 caffe_cpu_asum 计算向量中元素的绝对值之和. 由于我是cblas的新手,所以我试图找到一个合适的函数来摆脱 absolute ,但是似乎cblas中没有该属性的 ..
发布时间:2020-05-17 19:35:08 其他开发

CPU上的Theano CNN:AbstractConv2d Theano优化失败

我正在尝试使用CIFAR10数据集为我的大学的一次研讨会训练用于图像检测的CNN,但是出现以下错误: AssertionError:AbstractConv2d Theano优化失败:没有 可用的实现支持所请求的选项.你是否 从优化程序中同时排除"conv_dnn"和"conv_gemm"?如果在GPU上, cuDNN是否可用,GPU是否支持它?如果在CPU上,您有 安装了Theano的BL ..
发布时间:2020-05-17 19:20:16 Python

犰狳线性系统求解器(带openblas)

我一直在测试各种开放源代码,以解决C ++中的线性方程组.到目前为止,我发现最快的是armadillo,也使用OPENblas软件包.为了解决密集的线性NxN系统,其中N = 5000在我的系统上大约需要8.3秒,这确实非常快(没有安装openblas,大约需要30秒). 这种增加的原因之一是armadillo + openblas似乎可以使用多个线程.它运行在我的两个内核上,而没有open ..
发布时间:2020-05-13 02:24:38 其他开发

如何在mex文件中使用CLAPACK,BLAS或LAPACK?

我在用MATLAB编写MEX文件时遇到麻烦,该文件可以执行简单的线性运算,例如对矩阵求逆.我已成功使用Visual Studio 2010设法对矩阵求逆,并成功创建了MEX文件,因此,我遇到的唯一麻烦是将这两个概念结合在一起.我试图编译我从MathWorks网站获得的MEX示例代码,但是没有运气. 这是我尝试过的, 将我从MathWorks获得的文件(重命名)保存为.c扩展名,然后尝试 ..
发布时间:2020-05-09 19:16:49 其他开发

dgemm_中的内存泄漏

我目前正在开发一个涉及对blas例程的大量调用的应用程序.例行检查我发现的内存泄漏,发现我在 dgemm 调用中丢失了字节.呼叫看起来像这样: // I want to multiply 2 nxn matrices and put the result into C - an nxn matrix double zero = 0.0; double one = 1.0; double n; ..
发布时间:2020-05-08 21:00:04 其他开发

Numpy Pure Function用于性能,缓存

我正在用numpy编写一些性能中等的代码. 此代码将在计算的最内层循环中,运行时间以小时为单位. 快速计算表明,在计算的某些变化中,该代码将被执行大约10 ^ 12次. 因此,函数是计算sigmoid(X),另一个函数是计算其导数(梯度). Sigmoid具有以下属性:对于 y = sigmoid(x),dy/dx = y(1-y) 在numpy的python中,这看起来像: si ..
发布时间:2020-05-08 18:50:50 Python

使用MKL BLAS时,scipy是否支持稀疏矩阵乘法的多线程处理?

根据MKL BLAS文档 “所有矩阵矩阵操作(级别3)都针对稠密和稀疏BLAS进行了线程化." http://software.intel.com /en-us/articles/parallelism-in-the-inth-math内核库 我已经用MKL BLAS构建了Scipy.使用下面的测试代码,我看到了密集而不是稀疏矩阵乘法的预期多线程加速. Scipy是否有任何更改以启用多线程稀 ..

使用DGEMM的BLAS LDB

我想将矩阵乘以D * W',其中W'是W的转置版本. 虽然我将使用DGEMM,但在@IanBush的帮助下,我发现在这种情况下LDB应该是矩阵W的行数而不是列数.这种情况的代码是 Call dgemm('n', 't', N1, M1, N1, 1.0_wp, D, N1, W, M1, 0.0_wp, c, n1) 其中n1和m1是矩阵的维数 Dimensions of ..
发布时间:2020-05-07 19:33:18 其他开发

什么时候将'crossprod'首选为'%*%',而什么时候不是呢?

当X和Y都是矩阵时,crossprod(X,Y)确切地比t(X) %*% Y优先?文档说 给出矩阵x和y作为参数,返回矩阵叉积. 这在形式上相当于(但通常比)快 呼叫t(x) %*% y(crossprod)或x %*% t(y)(tcrossprod). 那么什么时候不是更快?在网上搜索时,我发现有几个消息来源指出crossprod通常是首选,并且应将其作为默认值(例如 请注意,在 ..
发布时间:2020-05-07 19:27:50 其他开发

在R中如何控制BLAS并行矩阵产品中的多线程

我对在R中使用BLAS并行矩阵乘积有疑问(至少从R-3.4起可能是更早的默认乘积). 现在(至少在我的计算机上)默认行为是矩阵产品(请参见下面的示例)使用计算机上所有可用的内核,这可能是一个问题. 您知道如何控制R中用于标准矩阵产品的核数吗? 预先感谢 示例: n=10000 p=1000 q=5000 A = matrix(runif(n*p),nrow=n, nc ..
发布时间:2020-05-07 19:11:12 其他开发

如何用BLAS执行向量矩阵乘法?

BLAS定义了GEMV(矩阵向量乘法)2级操作.如何使用BLAS库执行向量矩阵乘法? 这很明显,但是我看不出如何使用BLAS运算来进行这种乘法.我本来期望GEVM操作. 解决方案 (M x N)矩阵与(N x 1)向量的Matrix-Vector乘法将得到(M x 1)向量.简而言之a*A(MxN)*X(Nx1) + b*Y(Mx1) -> Y(Mx1).当然,当向量包含在矩阵中时, ..
发布时间:2020-05-07 19:01:25 其他开发

什么是.net(C#)好的免费(开源)BLAS/LAPACK库?

我有一个用C#编写的项目,我需要在矩阵上进行各种线性代数运算(例如LU分解). 由于该程序主要是为确认理论而创建的原型,因此C#实现就足够了(与可能更快的C ++实现相比),但是我仍然希望有一个好的BLAS或LAPACK库可以为我节省一些编码. 长话短说,有人可以推荐使用.net的免费/开源BLAS或LAPACK库吗? 最诚挚的问候Egil. 更新:今天发现了 Math.N ..
发布时间:2020-05-07 18:59:25 C#/.NET

犰狳+ Matlab Mex segfault

我整天都在摆弄,所以我想我可以让每个人都从我的经验中受益,请在下面查看我的答案. 我首先遇到了在Matlab中运行已编译的Mex文件的问题,因为Matlab抱怨说它无法打开共享库libarmadillo.我使用环境变量LD_LIBRARY_PATH解决了此问题和LD_RUN_PATH(在osx中​​为DYLD_LIBRARY_PATH和LYLD_RUN_PATH). 问题仍然存在,即使 ..
发布时间:2020-05-06 14:11:53 其他开发

BLAS中矩阵之间的元素明智乘法?

我开始在c ++(特别是intel MKL)中使用BLAS函数来为我的一些旧Matlab代码创建更快的版本. 到目前为止,它运行良好,但是我无法弄清楚如何对2个矩阵(在Matlab中为A.* B)执行元素乘法. 我知道gemv在矩阵和向量之间做类似的事情,所以我应该将我的一个矩阵分解为vectprs并重复调用gemv吗?我认为这可以解决问题,但是我觉得此操作应该内置一些东西. 解 ..
发布时间:2020-05-06 13:07:19 C/C++开发

矩阵/张量三乘积?

我正在研究的算法需要在几个地方计算一种矩阵三乘积. 该操作采用三个具有相同尺寸的正方形矩阵,并生成一个3索引张量.标记操作数A,B和C,结果的第(i,j,k)个元素是 X[i,j,k] = \sum_a A[i,a] B[a,j] C[k,a] 在numpy中,您可以使用einsum('ia,aj,ka->ijk', A, B, C)进行计算. 问题: 此操作是否有标准 ..
发布时间:2020-05-06 12:47:05 Python

libgfortran:找不到版本"GFORTRAN_1.4"

尝试在MATLAB中运行mex文件时出现以下错误: ??? Invalid MEX-file 'findimps3.mexa64': /MATLAB/bin/glnxa64/../../sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/libblas.so.3gf) ..
发布时间:2020-05-06 12:41:35 其他开发