【发布时间】:2017-08-26 15:54:27
【问题描述】:
BLAS Level 2 中有一个用于带状矩阵向量积的例程,适用于一般情况和对称情况(MKL 实现的链接)。
有没有办法使用多个向量(不使用外部 for 循环),以在这种情况下最大限度地提高性能?
【问题讨论】:
-
当你有一个密集的完整矩阵(多个向量)时,没有办法利用一个带状结构来提高速度。
-
@percusse 我认为你的说法不成立。也许你误解了我的问题。我想要多个右侧向量,即 y=A*x,其中 A 是稀疏带状,x 是 N×d。您可以利用 x 中的每个向量,因为它们的结果是独立的(y 的每一列)
-
是的,这就是 BLAS3 没有它们的原因,因为它只是遍历 y 的每一列,因此是 BLAS2 函数。 BLAS3 使用块而不是 RHS 的列。
标签: c++ c vector blas intel-mkl