如何使用 AMD Turbo Core APU 设置 Debian 系统(专注于 2D 或控制台/服务器)以获得最大的能量和计算效率?

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 的功能?

Run*_*CMD 7

基本

对于 AMD APU,以下因素值得关注。

  • 如果您的系统仅使用控制台输出,您将需要使用radeon驱动程序。radeon与后备驱动程序和fglrxA10-6700 (Richland)相比,由驱动程序处理的活动控制台将节省 8 W。如果控制台空闲,radeon将额外节省 2 W。

  • AMD APU 的 Turbo Core 功能必须以一种或另一种方式启用。与某些人的看法相反,Turbo Core(一旦启用,就是一个自主的 APU 功能)在 APU 级别上表现出色,并且具有合理的用例。但是驱动程序radeonfglrx驱动程序必须在场,在这两种情况下,都必须小心。

如果您觉得将完整的 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-infocpupower monitormodprobe msr

遗憾的是,直到并包括 Debian Jessie 8.2,您将无法从 AMD APU 中获得开箱即用的 Debian 安装

Debian 选项 1fglrx潜水员

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 系统并且发现这种突然的频率缩放行为是可以接受的,您可以选择fglrxDebian 7如果您不打算使用 GNOME 桌面,还可以选择fglrxDebian 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=1GRUB_CMDLINE_LINUX_DEFAULTin的值/etc/default/grub并运行sudo update-grub

经过这两个变化,Turbo Core 和低控制台功耗对我来说就像一个魅力。