gpt4 book ai didi

c++ - 如何清除L1、L2、L3缓存?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:30 25 4
gpt4 key购买 nike

我正在做一些缓存性能测量,我需要确保在计时之前缓存中没有“有用”的数据。

假设 L3 缓存为 10MB,是否足以创建一个 10M/4 = 2,500,000 个 float 的 vector ,遍历整个 vector ,对数字求和,这将清空整个缓存中之前存在的任何数据遍历 vector ?

最佳答案

是的,这应该足以刷新有用数据的 L3 缓存。

我已经完成了类似类型的测量,并使用英特尔的缓存计数器进行了交叉验证,以验证我在测试期间发生了预期数量的 L3 缓存未命中。

如果你想绝对确定,你也应该使用计数器。特别是,您可以在大多数 Intel 架构中使用 Event select 2EH, Umask 41H 来测量最后一级缓存未命中。

参见 Intel Manual有关这些计数器的详细信息。

关于c++ - 如何清除L1、L2、L3缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689722/

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