如何在Ubuntu 14.04上启用AMD Turbo Core?


9

我在基于AMD A8-4500m的笔记本电脑上使用Ubuntu 14.04(3.13.0-24通用内核),最近我注意到AMD Turbo Core根本无法正常工作。一切都可以在Windows上运行,但是,在Linux上CPU频率不能超过1.9 GHz(已选中cpufreq-aperf)。

这是的输出cpupower frequency-info,注意Active:在升压状态下支持:

analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 4.0 us.
  hardware limits: 1.40 GHz - 1.90 GHz
  available frequency steps: 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.90 GHz and 1.90 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.90 GHz (asserted by call to hardware).
  cpufreq stats: 1.90 GHz:32,63%, 1.80 GHz:0,74%, 1.70 GHz:0,50%, 1.60 GHz:1,20%, 1.40 GHz:64,93%  (9287)
  boost state support:
    Supported: yes
    Active: no
    Boost States: 2
    Total States: 8
    Pstate-Pb0: 2800MHz (boost state)
    Pstate-Pb1: 2300MHz (boost state)
    Pstate-P0:  1900MHz
    Pstate-P1:  1800MHz
    Pstate-P2:  1700MHz
    Pstate-P3:  1600MHz
    Pstate-P4:  1400MHz
    Pstate-P5:  900MHz

更多测试(使用按需调度程序和3个ffmpeg实例在后台解码1920x1080 H.264视频):

[m132@m132 turbostat]$ sudo cpupower monitor
[sudo] password for m132: 
     |Mperf               || Idle_Stats         
 CPU | C0   | Cx   | Freq || POLL | C1   | C2   
    0| 97,78|  2,22|  1821||  0,00|  0,00|  0,00
    1| 97,84|  2,16|  1821||  0,00|  0,00|  0,00
    2| 99,22|  0,78|  1807||  0,00|  0,00|  0,00
    3| 99,18|  0,82|  1808||  0,00|  0,00|  0,00
[m132@m132 turbostat]$ sudo ./turbostat 
cor CPU   GHz  TSC time
        1.81 1.90   5**
  0   0 1.81 1.90   5**
  1   1 1.81 1.90
  2   2 1.80 1.90
  3   3 1.81 1.90

编辑:似乎Trinity系列处理器在源代码中有它自己的BAPM开关。由于存在稳定性问题,它位于drivers / gpu / drm / radeon / trinity_dpm.c中,并且(在撰写本文时)仅为MSI板启用。要启用它,请打开此文件,找到以下行:

    pi->enable_bapm = false;

将false更改为true,然后编译并安装新内核。您现在应该可以使内核更紧急了。请记住,CPU功率也与GPU共享,因此如果同时使用GPU,则几乎永远不会获得可用的最高频率。


1
很奇怪,安装了fglrx“激活的” Turbo Core,现在显示“活动:是”。cpufreq-aperf有时报告的频率为2 GHz,但仍然无法切换到2.3 GHz或2.8 GHz,就像在Windows上一样。
m132 2014年

只是确认一下:我在Fedora内核3.14.5下的A10-7850K遇到相同的问题:支持:是,活动:否。似乎不是特定于发行版的。
克里斯(Chris

您可以尝试禁用内核模式设置(nomodeset在内核命令行上)吗?这为我解决了这个问题。
克里斯(Chris

1
@Chris现在显示Active: yes,但是我认为此信息是错误的,因为没有显示Pstate,并且cpufreq-aperf仍然没有报告高于1,9 GHz的频率。另外,它还强制我使用软件OpenGL渲染器。
m132 2014年

怎么样turbostat还是cpupower monitor?他们显示涡轮被使用了吗?
克里斯(Chris

Answers:


5

[2015年更新]

从Linux 3.16开始:

  • 的值bapm可以作为模块参数提供(请参见此处)。

  • bapm对于Kaveri,Kabini和桌面Trinity,Richland系统,默认将的值设置为1(请参见此处),从而启用Turbo Core。

这意味着在许多情况下,使用内核3.16或更高版本时,Turbo Core 应该可以立即使用radeon

如果您运行的是Debian,或者您运行的是Ubuntu,而上述情况并非如此,请参阅如何使用AMD Turbo Core APU设置Debian系统(专注于2D或控制台/服务器),以实现最大的能耗和计算效率。 ?

[2014年8月7日更新]

我发布了一份详细分析,unix-stackexchange.com其中包含(至少对我而言)一些惊喜。例如,ondemand州长可能比performance(至少在Richland A10-6700上)更差,并且fglrx显然使用了一些可疑的技巧来改善短期提振,从长远来看却不得不对此做出补偿。我很高兴对此有更深入的了解。

[原始回答]

我正在使用Ubuntu 14.04 Server使用A10-6700配置系统。

  • 的输出cat /proc/cpuinfo不会也不会反映任何处理器提升。提升是基于潜在复杂标准在芯片上的自主决定。在这里阅读
  • cpufreq-infowill 的输出不会显示可用的提升频率,而是cpupower frequency-infowill 的输出。对于A10-6700,除了常规的3700、3400、2700、2300和1800 MHz外,它还应显示4300 MHz(Pb0),4200 MHz(Pb1)和3900 MHz(Pb2)。
  • 的输出cpufreq-aperf(后modprobe msr)是可比的输出cpupower monitor。这些工具显示的频率应该反映出提升。
  • 使用标准视频驱动程序甚至radeon内核中的模块,我都没有成功使A10-6700使用提升频率(使用stress --cpu 2)。
  • 将ATI / AMD fglrx模块加载到内核后,处理器将永久提升两个内核(显然还会暂时扩展其余的内核)。在没有使用X甚至未配置X的情况下进行了测试。

请记住,支持还是反对由APU自主决定。我目前的猜测是,除非对集成图形单元进行了充分的初始化,否则APU无法确定其当前功耗是否有提升空间。

使用标准模块的视频输出与加载fglrx时的输出不同。因此,我们只能猜测内核是否仍可以单独使用APU进入所需的“智能”(功耗降低)模式,同时仍使用VGA模块。

在解决之前,我将只加载fglrx。缺点是构建它需要很多东西,这些东西在服务器上是不需要的,并且在编译后需要删除。

此外,fglrx大小约为9 MB。这不是问题,但是知道在这种情况下大部分都是空运费,这并不会让我感到高兴。

[编辑2014年7月24日]

我现在报告了这个错误

我注意到还报告了另一个错误:如果实际上您使用fglrx并尝试使用动态电源管理模式。


谢谢(你的)信息。正如第二个错误报告中所建议的,我将编译启用BAPM的新内核,以查看它是否有所不同:)
m132 2014年

似乎在3.16内核上默认启用了BAPM。至少对我而言,升级无法解决此问题。但是,禁用DPM可以正常工作,但我得到的频率高于1.8 GHz,但是笔记本电脑开始过热,并将CPU速度限制为1.1 GHz,因此性能甚至更差。
m132 2014年

@ M132真可悲。尽管如此,它仍助长了怀疑。-您在Windows上看到相同的行为吗?-您能影响风扇控制吗?可惜的是,制造商显然没有与AMD合作得足够好。-TurboBoost是TDP范围内的常规功能。
运行CMD

我现在无法测试,因为我删除了Windows来为/ home创建单独的分区。我不了解风扇,但是我记得任务管理器向我显示了2.3 GHz CPU频率,因此TurboBoost在工作,并且没有过热,所以DPM在工作。
m132 2014年

感谢昨天对您报告的问题的评论,我终于使它正常工作了!请详细阅读问题:D
m132

2

我的Thinkpad在Ubuntu 13.10上运行相同的AMD A8-4500m时遇到相同的问题。我今天发现了这个,但是我的英语不太好,所以我听不懂。

https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt

可能对您有帮助。

我发现的主要开始是,从11.10开始不支持Turbo Core。这就是我找到的全部。请向我证明我错了。


1
该链接仅说明什么是Turbo Boost / Core,以及如何启用/禁用它,但在我的情况下,/ sys / devices / system / cpu / cpufreq / boost已为1(启用)。
m132 2014年

没有任何地方说明不支持TurboCore。情况恰恰相反。@ M132发表的评论正确。
运行CMD
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.