我正在寻找一种方法来执行对称稀疏矩阵 - 矩阵乘法:X = AB 其中稀疏矩阵 A 以前以 CSR3 格式(上三角)存储,而矩阵 B 是密集的非对称矩阵。MKL 库中是否有一个例程来执行此操作?还是他们都需要 CSR 格式的完整稀疏矩阵(从中获取句柄)而不是三角形矩阵(我构建了三角形矩阵,因为我需要在 MKL Pardiso 中使用它)?我知道mkl_sparse_d_mv(...)例程,但是我找不到从以前存储的对称稀疏矩阵(如 CSR 格式的上三角矩阵)中获取稀疏矩阵句柄的方法。提前谢谢你,丹尼尔
3 回答
0
好的,我现在可以说例程需要 CSR 格式的完整矩阵,矩阵结构描述它只会告诉例程从输入的完整 CSR 矩阵中取一个三角形(上/下),但它仍然需要它。
于 2020-07-01T16:31:02.880 回答
0
你能试试 mkl_sparse_?_mm,其中 [?] == s,d,c 和 z 数据类型。该例程执行矩阵-矩阵运算:
Y := alpha*op(A) X + beta Y 其中 alpha 和 beta 是标量,A 是稀疏矩阵,op 是矩阵 A 的矩阵修饰符,X 和 Y 是密集矩阵。
于 2020-06-24T14:02:14.743 回答
0
sparse_d_create_csr在大多数情况下,您可以通过将适当的偏移量指针传递给指针 B 和指针 E 的行索引来轻松地将 CSR3 存储的矩阵输入。
然后你可以告诉mkl_sparse_d_mm稀疏矩阵是三角形的并且你希望它被填充(我从来没有这样做过并且不能保证它会起作用)。
于 2020-06-25T15:26:58.093 回答