循环展开对 dl1 缓存未命中的影响

发布于 2024-11-02 10:41:12 字数 159 浏览 6 评论 0原文

我知道循环展开有时会增加指令级缓存未命中,但我注意到(在简单的标量模拟缓存中),循环展开正在减少 dl1 缓存未命中(我将其他缓存用作 none ,因此不存在其他缓存) ,但我没有得到这背后的逻辑,为什么循环展开可以减少数据级缓存未命中?

循环展开将导致与没有展开情况下相同数量的加载字。

I know that loop unrolling can sometimes increase the Instruction level cache miss, but i have noticed (in simple scalar sim-cache), that loop unrolling is decreasing dl1 cache miss( i am using other cache as none , so no other cache exists) , but i did not get the logic behind this, how come loop unrolling can reduce data level cache miss ?

Loop unrolling will cause the same number of load words as in without unroll case right.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如歌彻婉言 2024-11-09 10:41:12

我遇到了一些情况,比如访问受到列专业形式的限制(我们不能在行专业中这样做),并且列大小很大,所以每次未命中,一个缓存行被带入缓存,但只使用一个元素,因此,如果我们可以通过展开它(矩阵转置)来使用该缓存行的另一个元素,将降低丢失率。

I got some situation , like access is restricted in form of column major( we can not do that in row major), and have large column size, so one each miss, one cache line is brought into the cache but only one element is used, So if we can use another element of that cache line by unrolling it ( matrix transpose ), will reduce miss rate.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文