栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

矩阵乘法:矩阵大小差异小,时序差异大

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

矩阵乘法:矩阵大小差异小,时序差异大

这是我的疯狂猜测: 缓存

可能是您可以将2行2000

double
s放入缓存中。略小于32kb L1缓存。(同时留出其他必要的空间)

但是,当您将其增加到2048时,它将使用 整个 缓存(并且由于需要其他空间而浪费了一些缓存)

假设高速缓存策略是LRU,则将高速缓存仅溢出一小部分将导致整个行被重复刷新并重新加载到L1高速缓存中。

另一种可能是由于2的幂导致的缓存关联性。尽管我认为处理器是2路L1关联的,所以在这种情况下我认为这并不重要。(但我还是会把这个想法丢掉)

可能的解释2: 由于L2缓存上的超对齐,冲突缓存未命中。

您的

B
数组正在列上进行迭代。这样访问就大步向前。
2k x 2k
每个矩阵的总数据大小约为32 MB。这比您的L2缓存大得多。

当数据不完全对齐时,您将在B上具有适当的空间局部性。尽管您要跳行并且每个高速缓存行仅使用一个元素,但是高速缓存行仍保留在L2高速缓存中,以供中间循环的下一次迭代重用。

但是,当数据完全对齐(2048)时,这些跃点将全部落在相同的“缓存方式”上,并且将远远超过您的L2缓存关联性。因此,所访问的缓存行

B
不会在下一次迭代中保留在缓存中。
相反,它们将需要从ram一直拉出。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号