代码之家  ›  专栏  ›  技术社区  ›  avgn

当gemm3m相同但更快时,为什么要使用mkl的zgemm?

  •  1
  • avgn  · 技术社区  · 6 年前

    根据MKL documentation :

    这个?GEMM3M例程使用常规 复矩阵。这些程序类似于?GEMM例程, 但他们使用的矩阵乘法运算更少。

    这些例程通过形成 输入矩阵的实部和虚部。这用三个真的 矩阵乘法和五个实矩阵加法,而不是 传统的四实矩阵乘法和两实矩阵 添加物。三个实矩阵乘法的使用减少了 矩阵运算花费了25%的时间,导致 节省大型矩阵的计算时间。

    如果是这种情况,为什么ZGEMM不被否决?这里有什么收获?使用zgemm更好吗?还存在一个成批版本的gemm3m,这意味着它对小矩阵也很有用。

    0 回复  |  直到 5 年前
        1
  •  0
  •   julioctaboada    5 年前

    因为第二个函数是执行具有复杂值的操作。当你用实值做一个运算时,只需要乘以它所需要的值。当使用复杂值执行操作时,需要4个矩阵乘法。该方法对将矩阵乘法数由4减为3的方法进行了改进。当你输入一个真正的价值,每天的Gemm功能它的最佳选择。