c++ - 矩形矩阵的 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
. 这导致加载两个双打