将CPU设置为高性能

将CPU设置为高性能

我花了几个小时在互联网上寻找答案。我能找到的一切都没有帮助。我有 Intel i9-9980HK,在 Ubuntu 20.04、内核 5.4.0-33 下运行。

问题是,在满负载情况下,CPU 将频率降低到 2.7 GHZ,我猜是为了保持低功耗预算。无论我尝试什么,我都无法让它运行得更快。它保持在 65 摄氏度以下,静静地、缓慢地处理着数字。为了进行比较,Windows 下的同一台机器在满负载下运行频率为 3 到 4+ GHz。

我尝试过的:

  • 将州长改为performance.没有效果。
  • 设置。/sys/devices/system/cpu/cpufreq/policyX/energy_performance_preferenceperformance没有效果。
  • sudo service thermald stop。没有效果。
  • 增加/sys/devices/system/cpu/intel_pstate/turbo_pct。即使是 root 也拒绝访问。
  • 增加/sys/devices/system/cpu/cpufreq/policyX/scaling_min_freq。没有效果。

我搞不清楚了。它想要什么?顺便说一句,/sys/devices/system/cpu/intel_pstate/statusactive

更新。我想我知道原因。当intel_pstate处于活动状态时,它会忽略所有设置(例如governor、 下的所有设置/sys/devices/system/cpu/cpufreq)。像这样的工具cpupower无法控制intel_pstate。所以问题几乎可以归结为如何控制intel_pstate驱动程序。

答案1

解决方案是传递intel_pstate=passive给内核。然后intel_pstate将控制权交还给CPUFreq。后者仍然用于intel_pstate控制CPU,但intel_pstate对做什么没有发言权。之后,您终于可以设置性能策略。您的笔记本电脑可以完全安静,也可以使其非常吵闹,但功能强大。当intel_pstate处于活动状态时,机器既不安静也不表现良好,而是总是缓慢且嘈杂。

两年后更新

事实证明,这个故事还有更多内容。有问题的电脑是一台技嘉笔记本电脑。当我买了一台同样来自技嘉的新笔记本电脑时,一个技巧并intel_pstate=passive没有帮助。我开始深入研究,发现 (i) 如果笔记本电脑在除 Windows 之外的任何操作系统上运行,技嘉的固件都会限制性能。 ACPI 通过 _OSI 了解它正在运行的操作系统。不仅如此,您会看到,笔记本电脑制造商通常会贡献 Linux 内核并编写特定于供应商的小型驱动程序,以帮助监控系统和管理性能。如果你查看内核源代码,你会发现其中有很多drivers/platform/x86,对于戴尔,惠普,华硕,联想,富士通......嗯,(ii)技嘉在这方面没有做任何事情。第一个问题可以通过传递acpi_os_name="Windows 2015"给内核来解决。性能会变得更好。然而,要真正使 Gigabyte 笔记本电脑可以在 Linux 上使用,必须有人为其编写内核驱动程序。有一个用户空间解决方法,用于这个项目,它利用内核的调试功能并将值直接写入嵌入式控制器寄存器。这是危险的,需要有关 EC 的未记录的信息。相反,我们应该做的是从固件调用 WMI 的 ACPI 方法。

答案2

正如评论中提到的问题有很多关于如何更改 CPU 设置的信息。

为什么它被称为“ondemand”,但它设置其他调控器(例如,使用 intel_pstate 驱动程序,它将设置 powersave 调控器)?因为该工具早于 intel_pstate 驱动程序,可以追溯到迄今为止占主导地位的频率缩放驱动程序是 acpi-cpufreq 驱动程序,并且“ondemand”是首选的 Ubuntu 默认调节器的时代。

英特尔P状态:是 Linux 内核中 CPU 性能扩展子系统 (CPUFreq) 的一部分。它是 Sandy Bridge 和后续几代 Intel 处理器的扩展驱动程序。但请注意,其中一些处理器可能不受支持。要了解 intel_pstate,有必要了解 CPUFreq 一般是如何工作的,因此,如果您还没有读过《CPU 性能扩展》,那么现在是阅读该书的时候了。

您可以intel_pstate=disable在内核书籍参数中添加以禁用它,更多详细信息这里

相关内容