gpt4 book ai didi

c - 在 L1 缓存上强制一些数据

转载 作者:太空狗 更新时间:2023-10-29 15:45:30 25 4
gpt4 key购买 nike

很抱歉这个简单的问题。仍在为这里的一些内存概念而苦苦挣扎。问题是:假设我有一个我想重复访问的预计算数组 A。有没有办法告诉 C 程序让这个数组尽可能靠近 CPU 缓存以实现最快的访问?谢谢。

最佳答案

在大多数架构上无法强制将数组放入 L1/L2 缓存;通常不需要它,如果您经常访问它,它不太可能被从缓存中逐出。

在某些架构上,有一组指令允许您向处理器提示即将需要内存位置,以便它可以尽早开始将其加载到 L1/L2 缓存 - 这称为预取,请参阅_mm_prefetch 指令,例如 ( http://msdn.microsoft.com/en-us/library/84szxsww(v=vs.80).aspx )。如果您访问的是小型阵列,则不太可能需要这样做。

一般的建议是 - 首先让你的数据结构缓存高效(将相关数据放在一起,打包数据等),如果分析器告诉你你仍然在缓存未命中上花费时间并且你可以稍后尝试预取' 进一步改进数据布局。

关于c - 在 L1 缓存上强制一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com