微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从理论上讲,如何为超过内存大小的内存矩阵计算高速缓存未命中次数?

如何解决从理论上讲,如何为超过内存大小的内存矩阵计算高速缓存未命中次数?

我目前正在考虑以行优先顺序存储在主存储器中的64位整数元素的 n x n矩阵M 我有一个16KB的 L1 数据缓存,分为64B个块(没有L2或L3)。我的代码旨在通过以行优先或列优先的顺序遍历矩阵来一次打印出数组的每个元素。

n = 16 (即16 x 16矩阵)的情况下,由于矩阵M完全适合于16KB缓存(它无需跳转到主内存即可获取元素)。我该如何处理 n = 256 (256 x 256的64位整数矩阵)的情况;即当M不能完全容纳在缓存中时?我是否会将所有不适合的整数都算作遗漏,还是可以通过某种方式利用空间局部性?假设缓存最初是空的。

解决方法

“ 0缓存未命中”似乎假设您从缓存中已存在的M开始。那已经有点可疑了,但是可以。

对于256x256的情况,您需要模拟缓存的行为。您必须具有缓存未命中才能引入缺少的条目。每个高速缓存未命中不仅带来请求的int,还带来7个相邻的int。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。