C++ BLAS 2级频带矩阵向量积多个向量
BLAS 2级有一个带状矩阵向量积例程,适用于一般情况和对称情况(链接用于MKL实现)C++ BLAS 2级频带矩阵向量积多个向量,c++,c,vector,blas,intel-mkl,C++,C,Vector,Blas,Intel Mkl,BLAS 2级有一个带状矩阵向量积例程,适用于一般情况和对称情况(链接用于MKL实现) 在这种情况下,有没有办法使用多个向量(不使用外部for循环)来最大限度地提高性能?AFAIK答案是否定的 level3 BLAS子例程的完整列表可在此处找到 没有带状矩阵子程序 强>额外信息:如果你使用BLAS/LAPACK和C++,最近有一个设计C++接口的倡议: (cblas和lapacke更倾向于C用法)我认为对于对称情况,应该有这样一个例程。不过,恐怕我帮不了什么忙了,因为我从未用过它 Sp
在这种情况下,有没有办法使用多个向量(不使用外部for循环)来最大限度地提高性能?AFAIK答案是否定的 level3 BLAS子例程的完整列表可在此处找到 没有带状矩阵子程序
<>强>额外信息:如果你使用BLAS/LAPACK和C++,最近有一个设计C++接口的倡议: (cblas和lapacke更倾向于C用法)我认为对于对称情况,应该有这样一个例程。不过,恐怕我帮不了什么忙了,因为我从未用过它
Spike(用于系统求解)的算法和实现如所述。当你有一个密集的全矩阵(多个向量)时,就没有办法利用一个矩阵的带状结构来提高速度。@percusse我认为你的说法不成立。也许你误解了我的问题。我想要多个右侧向量,即y=A*x,其中A是稀疏带状的,x是N×d。你可以利用x中的每个向量,因为它们的结果是独立的(y的每一列)。是的,这就是为什么BLAS3没有它们,因为它只是在y的每一列上循环,因此BLAS2函数。BLAS3使用的是块而不是RHS列。我将你的答案标记为正确,而不是Picaud Vincent的,只是因为你提供了一个有效的替代方案。然而,我相信这应该在BLAS实现中可用。