如何验证我的硬件预取器是不是已禁用

Posted

技术标签:

【中文标题】如何验证我的硬件预取器是不是已禁用【英文标题】:How can I verify that my hardware prefetcher is disabled如何验证我的硬件预取器是否已禁用 【发布时间】:2019-09-21 21:16:00 【问题描述】:

我已使用以下指南禁用硬件预取: 安装 msr-tools 1.3

wrmsr -a 0x1A4 1

我的系统 (Broadwell) 的预取器信息位于 msr 地址 0x1A4 如intel documentation所示。

我做了rdmsr -a 0x1A4,输出显示1。 根据英特尔文档,如果与特定预取器对应的位数设置为 1,则表示它被禁用。

我想知道是否有任何其他方法可以验证我的硬件预取器已被禁用?

【问题讨论】:

【参考方案1】:

禁用的预取器会减慢一些受益于启用的预取器的操作。您将需要编写一些代码(可能使用汇编语言)并使用启用和禁用的预取器来衡量它的性能。

很久以前我写了一个测试程序来测量内存读取性能。它以不同大小的块重复读取内存。证明了不同级别内存缓存的内存块大小和容量之间存在明显的相关性。

【讨论】:

以上是关于如何验证我的硬件预取器是不是已禁用的主要内容,如果未能解决你的问题,请参考以下文章

非临时负载和硬件预取器,它们可以一起工作吗?

非临时负载和硬件预取器,它们可以一起工作吗?

如何以编程方式禁用硬件预取?

如何使用 Vue CLI 4.3 默认禁用链接(异步模块)预取/预加载?

读或写预取之间的区别

我打开硬件检测中的:CPUID 为啥 Turbo Boost 支持 已禁用? 怎样开启?