Answers:
[编辑:关于处理器选择的总结性想法]
[编辑:bapm
默认情况下,从Linux 3.16开始,为Kaveri,Kabini和桌面Trinity,Richland系统设置免费的radeon驱动程序参数。
参见[pull] radeon drm-fixes-3.16。
但是,对于基于3.16的Debian,默认值似乎还不起作用,但boot参数却可以。请参阅如何使用AMD Turbo Core APU设置Debian系统(专注于2D或控制台/服务器)以获得最大的能量和计算效率?
[编辑:免费的radeon驱动程序将很快有一个bapm
参数]
由于以下内容的底线是radeon
在APU 上使用免费驱动程序的补丁版本来支持Turbo Core,并在可能的情况下充分利用(除非是3D图形)(启用bapm
可能导致某些配置不稳定) ),好消息是radeon的未来版本将具有启用bapm的参数。
[后接原文]
我的第一台PC是从数十个包含Slackware源软件包的3.5英寸软盘上安装的486DX2-66。然后,很多事情发生了变化,许多行业目前似乎仍处于增加数量的阶段产品变体。
这种情况以及最近AMD的一些不幸决定并没有使我更容易决定迷你服务器平台。但最后,我认为A10-6700将是一个不错的选择:
尽管有无数的处理器可供选择,但Mini-ITX板并不多。华擎FM2A78M-ITX +似乎是一个合理的选择。测试是使用固件V1.30完成的(在撰写本文时没有可用的更新)。
仅应消耗电源标称输出的80%。另一方面,许多负载在50%负载以下无法有效工作。对于估计功耗范围为35W至120W的系统,很难找到一种节能电源。我使用Seasonal G360 80+ Gold进行了这些测试,因为它在低负载下的效率优于大多数竞争对手。
测试设置还包括两个8GB DDR3-1866 RAM(如此配置-与1333相比确实有所不同),一个SSD驱动器和一个PWM可控制质量的CPU风扇。
使用AVM Fritz!DECT 200进行测量,据报道该设备执行了精确的测量。尽管如此,使用较旧的无名设备验证了真实性。没有发现不一致之处。测得的系统功耗将包括电源为降低负载而降低的效率。
通过HDMI连接了[W] QHD屏幕。
在UEFI BIOS中,GPU的初始共享内存设置为32M。此外,还将板载GPU选为主处理器,并启用了IOMMU。
没有安装或配置X或其他图形系统。视频输出仅限于控制台模式。
有一些事情需要知道。
/proc
和/sys
地方不报告的Turbo核心活动。cpufreq-aperf
,cpupower frequency-info
和cpupower monitor
做的,只是需要modprobe msr
。我从全新的Arch Linux(安装程序2014.08.01,内核3.15.7)开始。这里的关键因素是acpi_cpufreq
(内核CPU缩放)和radeon
(内核GPU驱动程序)的存在以及修补的简便方法radeon
。
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...按需
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 1800-3700 观察到“ cpupower监视器”的频率范围... 1800-3700 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
加载| 核心频率 --------------- + ----------- 压力--cpu 1 | 1 x 3700 压力--cpu 2 | 2 x 3700 压力--cpu 3 | 3 x 3700 压力--cpu 4 | 4 x 3700
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...性能
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 3700 观察到“ cpupower监视器”的频率范围... 2000-3700 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
加载| 核心频率 --------------- + ----------- 压力--cpu 1 | 1 x 3700 压力--cpu 2 | 2 x 3700 压力--cpu 3 | 3 x 3700 压力--cpu 4 | 4 x 3700
在这种情况下,基于Turbo Core的增强是不可能的,因为在某些情况下,radeon
驱动程序当前会bapm
由于稳定性问题而禁用该标志。因此,跳过了进一步的测试。
为了启用该功能bapm
,我从全新的Arch Linux(安装程序2014.08.01,内核3.15.7)开始,core
linux
通过ABS
(3.15.8)获取了该软件包,将其编辑PKGBUILD
为使用pkgbase=linux-tc
,使用提取了源makepkg --nobuild,pi->enable_bapm = true;
在trinity_dpm_init()
中更改了src/linux-3.15/drivers/gpu/drm/radeon/trinity_dpm.c
,用编译makepkg --noextract。然后,我安装了(pacman -U linux-tc-headers-3.15.8-1-x86_64.pkg.tar.xz和pacman -U linux-tc-3.15.8-1-x86_64.pkg.tar.xz)并进行了更新GRUB
(grub-mkconfig -o /boot/grub/grub.cfg当然是YMMV)。
结果,我可以选择启动linux
或linux-tc
,以下测试参考后者。
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...按需
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 1800-3700 观察到“ cpupower监视器”的频率范围... 1800-4300 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
加载| 核心频率 --------------- + ----------------- 压力--cpu 1 | 1 x 4300 压力--cpu 2 | 2 x 4200 .. 4100 压力--cpu 3 | 3 x 4100 .. 3900 压力--cpu 4 | 4 x 4000 .. 3800
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ... performace
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 3700 观察到“ cpupower监视器”的频率范围... 2000-4300 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
加载| 核心频率 --------------- + ----------------- 压力--cpu 1 | 1 x 4300 压力--cpu 2 | 2 x 4200 .. 4100 压力--cpu 3 | 3 x 4100 .. 3900 压力--cpu 4 | 4 x 4000 .. 3800
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................0 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...按需
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 1800-3700 观察到“ cpupower监视器”的频率范围... 1800-3700 / sys / kernel / debug / dri / 0 / radeon_pm_info ...功率等级1
加载| 核心频率 --------------- + ----------- 压力--cpu 1 | 1 x 3700 压力--cpu 2 | 2 x 3700 压力--cpu 3 | 3 x 3700 压力--cpu 4 | 4 x 3700
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................0 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ... performace
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 3700 观察到“ cpupower监视器”的频率范围... 2000-3700 / sys / kernel / debug / dri / 0 / radeon_pm_info ...功率等级1
加载| 核心频率 --------------- + ----------- 压力--cpu 1 | 1 x 3700 压力--cpu 2 | 2 x 3700 压力--cpu 3 | 3 x 3700 压力--cpu 4 | 4 x 3700
UEFI BIOS Turbo Core设置............................禁用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...按需
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 1800-3700 观察到“ cpupower监视器”的频率范围... 1800-3700 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
换句话说,如果在BIOS中禁用了Turbo Core,则打补丁的软件radeon
将不会打开它。
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet设置................................禁用 / sys / devices / system / cpu / cpufreq / boost ................... / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ... n / a
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 3700 观察到“ cpupower监视器”的频率范围... 2000-4300 / sys /内核/调试/ dri / 0 / radeon_pm_info ...功率等级0
加载| 核心频率 --------------- + ----------------- 压力--cpu 1 | 1 x 4300 压力--cpu 2 | 2 x 4100 .. 4000 压力--cpu 3 | 3 x 4000 .. 3800 压力--cpu 4 | 4 x 3900 .. 3700
在禁用Cool'n'Qiet的情况下,Linux内核将不提供任何调控器选择,并且(错误地)假定内核以固定频率运行。有趣的是,在测试用例组2中,得到的Turbo Core频率是所有测试组合中最差的。
使用修补的radeon
驱动程序,Turbo Core可以工作。bapm
到目前为止,还没有发现不稳定因素(这就是在那里禁用了Turbo Core 的原因)。
我从全新的Ubuntu(14.04 Server,内核3.13)安装开始,由于acpi_cpufreq
(内核CPU缩放)和radeon
(内核GPU驱动程序)的存在,我认为它与Arch Linux(安装程序2014.08.01,内核3.15.7)具有可比性)。切换到Ubuntu的原因是易于安装fglrx
。我使用全新安装验证了功耗和行为radeon
。
我安装fglrx
在命令行(sudo apt-get install linux-headers-generic,sudo apt-get install fglrx)并重新启动系统。从radeon
到的更改fglrx
在控制台外观(fglrx
:128 x 48 radeon
,:更高)和空闲模式功耗(fglrx
:40W,radeon
:30W)上都是显而易见的。但是Turbo Core可以立即工作。
UEFI BIOS Turbo Core Setting .................................已启用 UEFI BIOS Cool'n'Quiet Setting ......................................已启用 /sys/devices/system/cpu/cpufreq/boost...................1 / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor ...按需
“ cpupower frequency-info” Pstates ........ 4300 4200 3900 3700 3400 2700 2300 1800 观察到的“ / proc / cpuinfo” cpu MHz范围... 1800-3700 观察到“ cpupower监视器”的频率范围... 1800-4300 / sys /内核/调试/ dri / 0 / radeon_pm_info ... n / a
加载| 核心频率 --------------- + ---------------------------- 压力--cpu 1 | 1 x 4300 压力--cpu 2 | 2 x 4200 .. 3900(核心CHG) 压力--cpu 3 | 3 x 4100 .. 3700 压力--cpu 4 | 4 x 4000 .. 3600
这种fglrx
行为肯定很有趣。当在任何测试用例组中的任何tes用例中调用'stress --cpu 2'时,两个加载的核心始终位于单独的模块上。但是,随着fglrx
发生了突然的重新分配,从而使用了单个模块(这节省了相当多的功能,请参阅下文)。一段时间后,已加载的内核又移回另一个模块。看不到用radeon
。难道是fglrx
操纵流程的核心亲和力?
优点fglrx
是它可以立即启用Turbo Core,而无需对其进行修补。
因为fglrx
在我们的方案中,在具有65W TDP的芯片上为GPU浪费了10至12W的功率,所以有关可用核心速度的总体结果并不令人印象深刻。因此,没有进行进一步的测试。
同样从工程学的角度来看,的行为fglrx
似乎有些可悲。将两个繁忙的内核之一重新分配给另一个模块以保持较高的频率可能不是一个好主意,因为在此步骤之前,两个内核都有自己的L2缓存,而在此之后,它们必须共享一个。是否fglrx
考虑使用任何衡量指标(例如高速缓存命中率未命中)来支持其决定,将需要单独澄清,但是还有其他有关其突然行为的报告。
下表中的某些增量值会随着温度的升高而稍微变差。可能有人说PWM控制的风扇和芯片都在其中起作用。
系统@State /->过渡增量| 系统功耗 ------------------------------------- + ------------ ------------- @BIOS | @ 95 .. 86W @Bootloader | @ 108 .. 89W @Ubuntu安装程序空闲| @ 40瓦 @Linux radeon Idle按需| @ 30瓦 @Linux radeon空闲性能| @ 30瓦 @Linux fglrx空闲按需| @ 40瓦 1个模块1800-> 3700 | + 13瓦 1个模块1800-> 4300 | + 25瓦 1核心1800-> 3700 | + 5瓦 1核心1800-> 4300 | + 10瓦 “ radeon”视频输出->禁用| -2W 'fglrx“视频输出->变暗| +-0W @Linux radeon最大值| @ 103 .. 89W @Linux fglrx最大值| @ 105 .. 92W
/proc/cpuinfo
会始终报告37000MHz下的性能州长,cpupower monitor
就会发现,内核实际上做放缓。在某些情况下,显示的频率低至2000MHz。内部可能还会使用1800MHz。and
taskset -c 1 stress --cpu 1radeon
,它将在短期内提供更多,并非常平稳地减小到最大值,而有了fglrx
,已经观察到,这些限制被更明显地超过了,然后功耗急剧减小。radeon
驱动程序上可以长期支持4个内核@ 3700MHz(Turbo Core为3800MHz)。当GPU要做一些工作时,维持这种性能水平的机会可能不大。radeon
驱动程序(如果您没有遇到不稳定的情况,特别是与启用动态电源管理结合使用)。否则,您将无法获得全部价值。performance
缩放调节器-至少如果您的APU的行为类似于此处测试的那样。您将拥有与之相同的功耗,ondemand
但可以更快地进行频率缩放,并减少内核开销来做出缩放决定。特别感谢Alex Deucher,他在bugzilla.kernel.org上将我推向了正确的方向。
免费radeon
驱动程序的质量给我留下了深刻的印象,并感谢整个团队维护此软件的精心设计。如果radeon
行为不尽如人意,我赞成A10-6700的决定将是错误的。