2017-08-26 103 views
3

对于一般和对称情况(MKL实现的链接),存在带状矩阵向量乘积的BLAS Level 2中的例程。BLAS 2级频带矩阵 - 向量乘积多个向量

cblas_?gbmv

cblas_?sbmv

有没有办法使用多个向量(不使用for循环外),最大限度地在这种情况下的表现?

+0

当你有一个密集的完整矩阵(多个向量)时,没有办法利用其中一个的带状结构来获得速度。 – percusse

+0

@percusse我不认为你的陈述成立。也许你误解了我的问题。我想要多个右侧向量,即y = A * x,其中A是稀疏带状的,x是N-D。你可以利用x中的每个向量,因为它们的结果是独立的(y的每一列) – fcdimitr

+0

是的,这就是为什么BLAS3没有它们,因为它只是遍历y的每一列,因此BLAS2函数。 BLAS3使用块而不是RHS的列。 – percusse

回答

1

我认为Spike library应该有这样一个例程的对称情况。尽管如此,我恐怕不能再有任何帮助,因为我从来没有用过它。

Spike(用于系统求解)的算法和实现概述于[Polizzi & Sameh, Comp. Fluids (36), 2007]

+0

我只是因为你提供了一个有效的替代方案,才将你的答案标记为Picaud Vincent的正确答案。但是,我确实认为这是BLAS实现中应该提供的。 – fcdimitr