我正在尝试实现以下算法的版本:
但是我不想将问题减少为1乘法,而是希望将矩阵尺寸减少为16 * 16并将这些块相乘。
我已经有一个1 * 1块大小的实现(与前面提到的算法相同)。我需要将版本扩展为更大的块(例如16 * 16)。
乘积并不难。我的问题是访问块的索引,因为我必须使用1 * 1块版本的递归调用:
recursive_mult(n / 2,步幅,&A [0 + 0 * stride],&B [0 + 0 * stride],&C [0 + 0 * stride]);
...其中n是当前块的大小。我在矩阵性能测试中大步向前。
因此,我仅传递矩阵的引用。
有没有一种方法可以解决此问题,而无需更改递归调用以传递块的开始索引?