如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?

Posted

技术标签:

【中文标题】如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?【英文标题】:How to disable L3 cache prefetcher on Intel Xeon Scalable Processor? 【发布时间】:2021-06-14 12:25:23 【问题描述】:

我已经搜索过 Intel 手册 Vol.4。 MSR0x1a4可以控制L1缓存预取器和L2缓存预取器,但我只想禁用L3缓存预取器。哪个MSR可以控制?

【问题讨论】:

【参考方案1】:

当前的 Intel 处理器中没有专用的 L3 预取器。但是,从 Sandy Bridge 开始,L2 流式预取器可以选择预取到 L3 缓存或 L2 缓存中。英特尔优化手册中对此进行了简要讨论。

可以单独禁用 LLC 预取,但英特尔仅向 Bios 供应商披露了如何执行此操作。在任何一代的 Xeon SP 上,都有一个称为“LLC 预取”之类的 BIOS 选项,您可以使用它来启用或禁用 LLC 预取。如果禁用,它可能会降低 L2 流媒体的攻击性,但它仍然可以预取到 L2。您可能已经知道,英特尔已经披露了如何通过 MSR 寄存器完全禁用所有英特尔 x86 处理器上的所有 L1D 和 L2 预取器。

至强 SP 上的其他相关预取机制包括:如果预计对 L3 的访问会丢失,则将预取请求发送到本地托管的可缓存地址,以及类似地将预取请求发送到远程托管(特别是跨套接字)的可缓存位置.这些是有用的,因为 L2 未命中访问延迟的很大一部分用于 L3 查找操作以确定命中/未命中。还有一些 BIOS 选项可以控制这些预取机制。确切的名称取决于 BIOS 供应商。但请注意,在这些情况下,预取行会绕过 L3,就像任何其他源自核心的请求一样。不过,从技术上讲,此类预取请求是由 L3 发送的。

所有预取机制通常默认启用,LLC Prefetch 除外,它可能默认禁用。

【讨论】:

LLC 预取机制在我的所有戴尔服务器上默认禁用。我在启用它的情况下进行了一些测试,发现对性能的影响很小——有时快一点,有时慢一点,大多非常相似。 SKX/CLX 处理器具有不同寻常的特点,即单线程跨套接字带宽高于单线程本地带宽,适用于许多内存访问模式。 @JohnDMcCalpin 很好的观察。我刚刚检查了 PowerEdge R440 服务器,默认情况下禁用 LLC 预取选项。我想知道为什么。英特尔默认禁用它是可能的,但可能不太可能,而戴尔只是保留英特尔出于任何原因选择的默认值。在任何客户端系统 AFAIK 上都没有这样的 BIOS 选项,因此它可能在默认情况下至少由英特尔在客户端上启用。 感谢您的回答,非常有帮助!

以上是关于如何在英特尔至强可扩展处理器上禁用 L3 缓存预取器?的主要内容,如果未能解决你的问题,请参考以下文章

英特尔发布至强可扩展处理器,业界十年来技术最大进步(核心思想:数据洪流出现)

英特尔发布第四代至强可扩展处理器:重新定义5G云网性能 力导运营商数智化转型...

英特尔发布第四代至强可扩展处理器:重新定义5G云网性能 力导运营商数智化转型...

英特尔发布第四代至强可扩展处理器:重新定义5G云网性能 力导运营商数智化转型...

英特尔发布第四代至强可扩展处理器:重新定义5G云网性能 力导运营商数智化转型...

第四代英特尔至强重磅发布,芯片进入下半场:软硬加速绿色可持续