为什么在gemm3m相同但更快时使用MKL的Zgemm?

问题描述 投票:1回答:1

根据MKL的documentation

?gemm3m例程使用通用复杂矩阵执行矩阵 - 矩阵运算。这些例程类似于?gemm例程,但它们使用较少的矩阵乘法运算。

这些例程通过形成输入矩阵的实部和虚部来执行复杂的矩阵乘法。这使用三个实矩阵乘法和五个实矩阵加法,而不是传统的四个实矩阵乘法和两个实矩阵加法。使用三个实矩阵乘法可将矩阵运算所花费的时间减少25%,从而显着节省大型矩阵的计算时间。

如果是这种情况,为什么Zgemm不被弃用?这里有什么收获?使用Zgemm会更好吗?还存在批量版本的gemm3m,这意味着它也适用于小型矩阵。

linear-algebra blas intel-mkl
1个回答
0
投票

因为第二个它执行具有复杂值的操作。使用实际值进行操作时,只需要一次乘法。使用复数值执行操作时,需要4个矩阵乘法。这种方法改进了将矩阵乘法次数从4减少到3的方法。当您输入一个实际值时,日常gemm功能是最佳选择。

© www.soinside.com 2019 - 2024. All rights reserved.