Run*_*CMD 2 debian radeon cpu-frequency amd turbo-core
我计划使用 Debian 设置一个 AMD APU 系统,但我找不到如何实现最大能效和成功使用 Turbo Core 的提示。特别是Debian Wiki HowTo on CPU Frequency Scaling对 AMD 系统帮助不大。
我必须如何设置我的 Debian 系统来部署我的 AMD APU 的功能?
基本
对于 AMD APU,以下因素值得关注。
如果您的系统仅使用控制台输出,您将需要使用radeon
驱动程序。radeon
与后备驱动程序和fglrx
A10-6700 (Richland)相比,由驱动程序处理的活动控制台将节省 8 W。如果控制台空闲,radeon
将额外节省 2 W。
AMD APU 的 Turbo Core 功能必须以一种或另一种方式启用。与某些人的看法相反,Turbo Core(一旦启用,就是一个自主的 APU 功能)在 APU 级别上表现出色,并且具有合理的用例。但是驱动程序radeon
或fglrx
驱动程序必须在场,在这两种情况下,都必须小心。
如果您觉得将完整的 A10-6700 Richland 系统(包括风扇、DDR3-1866 RAM 和单个 SSD)的空闲功耗从 40 W 降低到 30 W 是值得的,或者如果您想获得完整的 Turbo Core 速度更长的时间(可用的 Turbo Core 频率基于包括图形和温度在内的总芯片功耗),那么您应该关心。
以上所有陈述都与我之前的分析有关如何设置 Linux 以获得完整的 AMD APU 电源管理支持:Turbo Core、Cool'n'Quiet、动态电源管理?
请注意,您不一定依赖于来自AMD APU 内核实际频率的信息/proc
以及/sys
有关其实际频率的信息。为了安全起见,请在 之后使用cpufreq-aperf
(或其中之一cpupower frequency-info
或cpupower monitor
)modprobe msr
。
遗憾的是,直到并包括 Debian Jessie 8.2,您将无法从 AMD APU 中获得开箱即用的 Debian 安装。
Debian 选项 1:fglrx
潜水员
AMD 的 Linuxfglrx
驱动程序启用了 Turbo Core,这并不令人意外。
然而,虽然 APU 在使用免费的 Linuxradeon
驱动程序时表现出非常合理和有用的 Turbo Core 行为,但当您使用fglrx
. 的fglrx
驱动程序将显示操纵核心亲和力的过程。也许它甚至取代了 APU 中的微码。但无论fglrx
细节级别如何工作,您都会得到:
在具有四核的 APU 上,如果您有两个进程需要全性能,Linux 将在两个单独的 APU 模块上启动它们。(例如,A10-6700 有两个模块,每个模块有两个内核,虽然每个内核都有一个小的独立 L3 缓存,但同一模块上的两个内核共享一个 L2 缓存。)这种初始设置将为您提供最高性能和高耗电。(在此示例中,A10-6700 的功耗将增加 70 W。)
但fglrx
如果 APU 变得太热,则会将其中一个进程重新定位到另一个模块的第二个内核。(与使用两个 APU 模块相比,这将使 A10-6700 的功耗降低 25 W。)据推测,这样做是为了在更长时间内展示高核心频率。但是,由于 L2 缓存手头没有任何所需的数据,迁移后的进程很可能会有效停止片刻,并且通常由于共享 L2 缓存,迁移后的性能会降低。
由于fglrx
在达到 APU 的限制之前没有采取任何主动措施来略微降低核心频率,因此如果进程运行更长的时间,它会显着降低核心速度。这意味着在爆发后,您将不得不忍受较低的频率,直到您的 APU 冷却下来。
除了核心频率演示之外,fglrx
我认为的行为有些值得怀疑;我相信你会获得更好的整体性能radeon
。但是如果您想要一个 2D/3D 系统并且发现这种突然的频率缩放行为是可以接受的,您可以选择fglrx
Debian 7。如果您不打算使用 GNOME 桌面,您还可以选择fglrx
Debian 8。
Debian的选项2:该radeon
驱动程序
如前所述,该radeon
驱动程序提供了更低的控制台模式功耗和更流畅的 Turbo Core 体验。您必须付出的代价是其更糟糕的 3D 支持。
Debian 6 (Squeeze):即使 Linux 3.2 可用作向后移植,radeon
驱动程序也不会处理您的 APU 的 Turbo Core 功能。
Debian 7 (Wheezy):Linux 3.16 可作为向后移植。升级到 Linux 3.16(如果没有其他要求阻止它)并见下文。
Debian 8 (Jessie):基于 Linux 3.16。见下文。
负责 Turbo Core 处理的标志称为bapm
; 它位于驱动程序的trinity_dpm.c
文件中radeon
。在 Linux 3.16 之前,由于某些配置的稳定性问题,它总是被禁用。从 Linux 3.16 开始,计划进行两项更改:
的值bapm
可以作为模块参数提供(请参阅此处)。
bapm
对于 Kaveri、Kabini 和桌面 Trinity、Richland 系统(参见此处),默认情况下的值设置为 1 ,从而启用 Turbo Core。
这意味着使用当前的 Linux 内核,您最有可能获得开箱即用的最佳价值(Turbo Core,节能控制台)(例如,对于当前的 ArchLinux 安装程序来说就是如此)。
令我惊讶的是,即使使用 Debian Jessie 8.2 安装程序,您也需要注意两件事:
按照其政策,Debian 将默认不提供所需的微码。您需要提供它:将non-free
和附加contrib
到相关条目/etc/apt/sources.list
并运行sudo apt-get update
以及sudo apt-get install firmware-linux-nonfree
有趣的是,尽管有 3.16 默认值,Turbo Core不能在最近的 ArchLinux 成功的同一系统上运行。可能是 Debian 3.16 内核太旧而无法合并默认值,或者用于隔离微代码的 Debian 补丁有一些副作用。无论哪种方式,都可以通过bapm
在启动时提供一个值,在存在微代码的情况下为 Debian Jessie 启用 Turbo Core :附加radeon.bapm=1
到GRUB_CMDLINE_LINUX_DEFAULT
in的值/etc/default/grub
并运行sudo update-grub
经过这两个变化,Turbo Core 和低控制台功耗对我来说就像一个魅力。
归档时间: |
|
查看次数: |
3023 次 |
最近记录: |