英特尔 MKL 矩阵产品 gemm 是否就地工作?

Does Intel MKL matrix product gemm work in-place?

英特尔 MKL 中的 BLAS gemm 例程通常使用三个矩阵。这就像给你 f(A, B, C) = alpha A * B + beta C 其中 alpha 和 beta 是比例因子。

但是可以将 f(A, B, A) 写成 alpha=1,beta=0 以便简单地得到 A = A * B 吗?我的意思是 f(A, B, A) 中的两个 A 是同一个变量。 (这里都是方阵。)

当然,如果我们设置第三个变量 C=Af(A, B, C) 就可以了。但是连这个copy都不做会好很多C.

不,这是不允许的。您要么必须引入一个临时缓冲区,要么找到另一种方法来完成这项工作。