Matrix 计算C=A x B x A的最快方法
使用“英特尔MKL”计算C=A x B x A的最快方法是什么 A、 B,C都是(nxn)矩阵 目前我正在使用两次Matrix 计算C=A x B x A的最快方法,matrix,matrix-multiplication,intel-mkl,Matrix,Matrix Multiplication,Intel Mkl,使用“英特尔MKL”计算C=A x B x A的最快方法是什么 A、 B,C都是(nxn)矩阵 目前我正在使用两次cblas_ggemm,请参阅 请参阅以下伪代码: C = dgemm(dgemm(A, B), A) for i = 1:m C[i] = dgemm(dgemm(A, B[i]), A) end 有没有更快的计算方法 编辑 我有多个矩阵B[I],我想用同一个矩阵A计算多个矩阵C[I],请参见以下伪代码: C = dgemm(dgemm(A, B), A) for i
cblas_ggemm
,请参阅
请参阅以下伪代码:
C = dgemm(dgemm(A, B), A)
for i = 1:m
C[i] = dgemm(dgemm(A, B[i]), A)
end
有没有更快的计算方法
编辑
我有多个矩阵B[I]
,我想用同一个矩阵A
计算多个矩阵C[I]
,请参见以下伪代码:
C = dgemm(dgemm(A, B), A)
for i = 1:m
C[i] = dgemm(dgemm(A, B[i]), A)
end
如果我能加快计算速度,那就太好了:-)这些矩阵有什么特殊性质吗?对称、正交等?它们中的任何一个是否重复使用超过一次迭代?唯一特别的是函数中有两次
a
。在B
的左侧和右侧。是的,会有不同的B[i]
和A
保持不变。我将编辑这个问题。A
,或者每个B[I]
的结构有什么特殊之处吗?我在对角线B[I]
和计算C=transpose(a)*B[I]*a
的情况下也处于类似的情况。另外,n
通常是什么,你看过类型算法吗?在我的例子中,n在10到1000之间。m可能在1到10000之间。我希望Strassen
是在英特尔MKL cblas_dgemm中实现的。这些矩阵有什么特殊属性吗?对称、正交等?它们中的任何一个是否重复使用超过一次迭代?唯一特别的是函数中有两次a
。在B
的左侧和右侧。是的,会有不同的B[i]
和A
保持不变。我将编辑这个问题。A
,或者每个B[I]
的结构有什么特殊之处吗?我在对角线B[I]
和计算C=transpose(a)*B[I]*a
的情况下也处于类似的情况。另外,n
通常是什么,你看过类型算法吗?在我的例子中,n在10到1000之间。m可能在1到10000之间。我希望Strassen
能在英特尔MKL cblasèdgemm中实现。