【发布时间】:2021-04-11 22:34:06
【问题描述】:
我正在尝试在单个处理器上实现阻塞(平铺)矩阵乘法。我已经阅读了有关为什么阻塞可以提高内存性能的文献,但我只是想问一下如何确定最佳块大小。我需要执行 C+A*B,其中 A、B、C 是相同维度的浮点方阵。 3 块应该一次适合缓存是有道理的,那么块大小应该是缓存大小除以 3 吗?或者块大小应该是别的吗?
最后,谁能提出一种可行的实验方法来确定我正在使用的超级计算机上的最佳块大小?我正在使用 GCC C。
【问题讨论】:
-
出于好奇,您的应用程序域是什么?武器?医疗应用? COVID大流行模拟?生物信息学?飞机模拟的有限元素?
-
不知道应用域是什么
-
我改进了我的评论
-
@BasileStarynkevitch 数值线性代数
-
为什么要重新发明轮子?矩阵乘法的实现已经够多了……
标签: c memory-management matrix-multiplication cpu-cache cache-locality