我正在做一些缓存性能测量,我需要确保在计时之前缓存中没有“有用的”数据。
假设L3缓存为10MB,创建一个10M / 4 = 2,500,000浮点数的向量就足够了,遍历整个向量,求和,然后在遍历整个缓存之前清空其中的所有数据向量?
是的,这足以刷新L3
有用数据的缓存。
我已经进行了类似类型的测量,并使用英特尔的缓存计数器进行了交叉验证,以验证我L3
在测试期间是否出现了预期的缓存未命中次数。
如果要绝对确定,还应该使用计数器。特别是,您可以通过Event select 2EH, Umask 41H
在大多数英特尔架构中使用来测量最后一级的高速缓存未命中。
有关这些计数器的详细信息,请参阅《英特尔手册》。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句