英特尔 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=A
,f(A, B, C)
就可以了。但是连这个copy都不做会好很多C
.
不,这是不允许的。您要么必须引入一个临时缓冲区,要么找到另一种方法来完成这项工作。
英特尔 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=A
,f(A, B, C)
就可以了。但是连这个copy都不做会好很多C
.
不,这是不允许的。您要么必须引入一个临时缓冲区,要么找到另一种方法来完成这项工作。