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

m132

我在基于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,您将几乎永远无法获得可用的最高频率。

运行CMD

[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 / AMDfglrx模块加载到内核后,处理器将永久提升两个内核(显然还会暂时扩展其余的内核)。经过测试,没有使用X或甚至没有配置X。

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

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

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

另外,fglrx大小将近9 MB。这不是问题,但是知道在这种情况下大部分都是空运费,这并不能使我感到高兴。

[编辑2014年7月24日]

我现在报告了这个错误

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章