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

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

我计划使用 Debian 设置 AMD APU 系统,但我找不到如何实现最大能效和成功使用 Turbo Core 的提示。特别是,Debian Wiki 如何调整 CPU 频率对于 AMD 系统来说不是很有帮助。

我必须如何设置 Debian 系统才能部署 AMD APU 的功能?

答案1

基本

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

  • 如果您的系统仅使用控制台输出,您将需要使用radeon驱动程序。与后备驱动器和A10-6700 (Richland)radeon相比,由驱动器处理的活动控制台将节省 8 W。fglrx如果控制台空闲,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、动态电源管理?

请注意,您不一定依赖来自/procAMD /sysAPU 内核的实际频率的信息。为了安全起见,请在 后使用cpufreq-aperf(或cpupower frequency-infocpupower monitor) modprobe msr

可悲的是,从 Debian Jessie 8.2 开始(包括 Debian Jessie 8.2),您无法通过开箱即用的 Debian 安装获得 AMD APU 的所有功能

Debian 选项 1fglrx潜水员

AMD 的 Linuxfglrx驱动程序支持 Turbo Core,这不足为奇。

然而,虽然 APU 通过免费的 Linuxradeon驱动程序显示出非常合理且有用的 Turbo Core 行为,但当您使用fglrx.司机fglrx似乎在操纵核心亲和力的进程。也许它甚至取代了 APU 中的微代码。但无论fglrx细节级别如何工作,您都会得到:

  • 在具有四个核心的 APU 上,如果您有两个需要充分性能的进程,Linux 将在两个单独的 APU 模块上启动它们。 (例如,A10-6700 有两个模块,每个模块有两个内核,虽然每个内核都有一个小型的独立 L3 缓存,但同一模块上的两个内核共享一个 L2 缓存。)这种初始设置将为您提供最大的性能和高电力消耗。 (本例中A10-6700功耗将增加70W。)

  • fglrx如果 APU 变得太热,会将其中一个进程重新定位到另一个模块的第二个核心。 (与使用两个 APU 模块相比,这将使 A10-6700 功耗降低 25 W。)这样做大概是为了在更长的时间内展示高核心频率。然而,由于二级缓存手头没有任何所需数据,迁移过程很可能会暂时停止,并且通常迁移后的性能会因共享二级缓存而降低。

  • 由于fglrx在达到 APU 极限之前没有采取任何主动措施来稍微降低核心频率,因此如果进程运行较长时间,它会大幅降低核心速度。这意味着在爆发之后,您将不得不忍受较低的频率,直到您的 APU 冷却下来。

fglrx除了核心频率演示之外,我认为的行为有些值得怀疑;我相信您会获得更好的整体表现radeon。但如果如果您想要 2D/3D 系统并发现这种突然的频率缩放行为可以接受,您可以选择fglrxDebian 7 及以上版本。你fglrx如果您不打算使用 GNOME 桌面,还可以选择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可以作为模块参数提供(请参阅这里)。

  • 对于 Kaveri、Kabini 和桌面 Trinity、Richland 系统,的值bapm默认设置为 1(请参阅这里),导致 Turbo Core 被启用。

这意味着,使用当前的 Linux 内核,您很可能会立即获得最佳价值(Turbo Core、节能控制台)(对于当前的 ArchLinux 安装程序来说就是如此)。

令我惊讶的是,即使使用 Debian Jessie 8.2 安装程序,您也需要注意两件事:

  • 根据其政策,Debian 默认情况下不会提供所需的微代码。您需要提供它:将non-free和附加到并运行以及contrib中的相关条目/etc/apt/sources.listsudo apt-get updatesudo apt-get install firmware-linux-nonfree

  • 有趣的是,尽管 3.16 是默认值,但 Turbo Core 确实不是在最近的 ArchLinux 成功的同一系统上工作。可能是 Debian 3.16 内核太旧而无法合并默认值,或者隔离微代码的 Debian 补丁有一些副作用。无论哪种方式,都可以通过bapm在启动时提供一个值来在微代码存在的情况下为 Debian Jessie 启用 Turbo Core : 附加到inradeon.bapm=1的值并运行GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grubsudo update-grub

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

相关内容