结果非常糟糕。对于1024 x 1024矩阵,普通的MM需要46.381秒,而Strassen's MM需要1484.303秒(25分钟!)。
我尽可能保持代码简单。在网上找到的其他Strassen's MM示例与我的代码并没有太大区别。一个明显的问题是Strassen's代码缺少切换回普通MM的截止点。
我的Strassen's MM代码还有哪些问题?谢谢!
源代码的直接链接为: http://pastebin.com/HqHtFpq9 http://pastebin.com/USRQ5tuy 编辑1。 首先,非常感谢提供的许多好建议。我实现了更改(保留了所有代码),添加了截止点。 具有截止点的2048x2048矩阵的MM已经得到了良好的结果。 普通的MM:191.49秒 Strassen's MM:112.179秒 显著改善。 这些结果是在使用Visual Studio 2012的古老Lenovo X61 TabletPC上,使用Intel Centrino处理器获得的。 我将进行更多检查(以确保我获得了正确的结果),并将发布结果。