首页 > 解决方案 > 矩形矩阵的 SIMD 矩阵乘法

问题描述

是否可以使用 SIMD 指令对矩形矩阵进行通用矩阵乘法。到目前为止,我在网上遇到的所有示例都是方阵 (NXN),并且 N 是已知的。我知道 SIMD 指令与矩阵大小无关,它更多的是并行计算。

这是一个好主意还是可以使用大小为 MXN 的 SIMD 指令进行矩阵乘法,其中 M,N 在类的构造函数中设置。

class MatrixMN {
  MatrixMN(size_t rows, size_t cols) {..}
  MatrixMN operator*(const MatrixMN& m) const {
    // check for dimension match

    // USE SIMD INSTRUCTION TO PERFORM MATRIX MULTIPLICATION ??
  }
};

矩阵是双精度的,由于我们使用的是旧硬件,我们只能访问__m128d. 这导致加载两个双打

标签: c++matrixmatrix-multiplicationssesimd

解决方案


推荐阅读