修复并利用 Ubuntu Linux 内核中的 4/8 锁定物理核心,超频值在操作系统中也看不到

修复并利用 Ubuntu Linux 内核中的 4/8 锁定物理核心,超频值在操作系统中也看不到

让我解释一下我的问题以寻求帮助:


块引用的问题已解决,仍然存在一些关于启动操作系统时未显示超频值的问题。

问题:

我已经激活了(原始 0 1 2 -> 3 核3-7 -> 8 核目前有 4 家正在注册,最后 4 个未被利用

CPU 是一个AMD 速龙 II X3 450 处理器最初以及当 BIOS 中最后一个核心被激活时它成为 AMD Phenom(tm) II X4 B50 处理器这表明它至少有 X4 个核心处于活动状态,而不是 X3。

BIOS 为我提供了总共激活 8 个核心的选项,我已将它们全部设置为“启用”。

回答者斯蒂芬·基特


我有将每个 CPU 超频至 +10% 时钟速度。所以它从最大 3.2GHz至最大3.540GHz两种情况下的基本时钟均为 800 Mhz (0.8 Ghz)。 操作系统只能看到 3.200Ghz,而在 kern.log 中它显示为 3.540 Ghz

我没有对CPU 的电压配置做过任何事情。

拉姆去了从 2 个 4GB DDR3 1.333 GHz 到大约 1.4 GHz(这是对 CPU 超频的自动响应),但没有迹象表明内存在启动和启动到操作系统时实际上已超频。

我已经读过内核日志并记下一些信息,同时尽量减少文件的长度。请注意,我不知道为什么在启动操作系统时某些值会被注册,但它不会显示为超频或最重要的 8 个 vCores/Cores

我不是硬件人(我编写高质量的软件)所以我不知道构建机器的所有来龙去脉。另外:我在 4 年前建造了这台机器,主要使用 Windows 的默认 BIOS 设置,并具有 +2% 超频的 x3 CPU。我最近对最大化我的机器感兴趣并购买了一个800瓦的电源,以便能够超频并且不会遇到功耗问题。

我的系统规格如下:

OS/Kernel:
Linux system-name 5.0.0-37-generic #40~18.04.1-Ubuntu SMP Thu Nov 14 12:06:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

All non-compiled system information:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/lshw.txt

All compiled system information:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/sysinfo.txt

CPU's/Processor:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/cpuinfo.txt

Motherboard:
ASUSTeK Computer INC. M5A78L-M/USB3

BIOS:
American Megatrends Inc 0801 11/30/2011

GPU:
NVIDIA GTX-680 2GB 4.6.0 NVIDIA 435.21

Disks:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/disks.txt

Memory (MB's):
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/memory.txt

回答者斯蒂芬·基特

我的目标是为了解锁并激活多达 8 个核心(我读到AMD将所有线程命名为“核心”,所以这应该意味着其他4个“核心”应该在超线程期间激活,但是,我不知道ubuntu是否能够默认使用超线程核心。如果你知道我如何知道我的其他“核心”是否是超线程,请告诉我), 通过我玩的游戏获得最大的游戏性能(通过使用蒸汽质子以及在大多数游戏中利用 Vulkan 和其他质子发射配置,我已经将 fps 从约 25 帧每秒提高到了约 45 帧)60 Hz 刷新率显示器。我已经将 NVIDIA GTX 680 配置为能够发挥其最大潜力,尽管我可以在 BIOS 中对其进行超频,但我不愿意这样做因为我的CPU目前是瓶颈。

我是询问有关我可以做什么才能让我的操作系统使用所有 CPU/线程的信息以及为什么它在启动内核时显示为 8 个核心,但实际启动时它只使用 +1 个核心,总​​共 4 个核心

为什么操作系统看不到超频值

我已经在 BIOS 中尝试了许多配置,但无法实现我想要实现的目标,而现在才注意到操作系统由于操作系统而没有充分利用我的系统的最大潜力(这就是我的想法)。

请随时向我询问有关系统日志和配置信息的信息,同时提供有关如何获取此系统信息的提示。

其他问题(我可能可以自己解决)是我的 HDaudio Nvidia HDMI 控制器除了内置音频之外似乎不再工作,但不幸的是,除了我的显示器之外,我没有任何其他扬声器。如果您发现任何其他错误的配置设置,请告诉我...

非常感谢所有愿意提供帮助的人!


来自系统/配置/日志文件的有用信息,通过使用 grep 和嗅探收集:

使用此存储库来调试信息,下面指定的所有文件都保存在此存储库中。 (我在这个网站上的声誉限制我的帐户粘贴超过 8 个链接,所以这是我的解决方案...

https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/

顶部/h顶部:

顶部.txt

htop.png

cat /sys/devices/system/cpu/online && ls -ld /sys/devices/system/cpu/c*:

cat.sys.devices.system.cpu.txt

猫 /proc/cpuinfo:

cat.proc.cpuinfo.txt

超线程论点已被揭穿(现在我们肯定谈论的是物理 CPU 未启用)。

来自 cpuinfo 的解码报告,用于使用在线找到的脚本检查超线程:(检查超线程是否启用?

This system has one physical CPU,
and 4 logical CPUs.
For every physical CPU there are 4 cores.
The CPU is a AMD Phenom(tm) II X4 B50 Processor with 512 KB cache

猫 /sys/devices/system/cpu/smt/control:

不支持

(表示不支持超线程)

猫 /sys/devices/system/cpu/smt/active:

0

(前面的说法可能是正确的,没有启用超线程,因为如果启用了超线程,则应报告 1 )

sudo dmidecode -t 处理器:

dmidecode.processor.txt

(线程和 CPU 计数相同,表明前面的陈述是正确的......没有超/多线程核心)

转折...

sudo dmidecode -t 处理器 | grep HTT:

HTT(多线程)

(标志表明超线程实际上是由 CPU 支持的)

逻辑CPU:

lcpu.txt

(标志(再次)显示“ht”,表示支持超线程)

检查在线和离线CPU,因为我最初认为超线程不适用于AMD处理器,这意味着BIOS不会列出总共要启用的8个核心...

猫 /sys/devices/system/cpu/online && cat /sys/devices/system/cpu/offline:

在线:0-3

离线:4-7

请注意,正如我所料... 4-7 处于离线状态并且未被系统使用,现在是下一个问题:我们如何启用/设置最后 4 个 CPU 在线?

日志信息:

猫 /var/log/kern.log > kern.log.txt:

猫.kern.log.txt

猫 /var/log/kern.log | grep NUMA:

cat.kernel.log.numa.txt

猫 /var/log/kern.log | grep smp:

cat.kernel.log.smb.txt

猫 /var/log/syslog | grep -i smb:

结果:二进制文件(标准输入)匹配

lsb_release -a:

lsb_release.txt

收集:ACPI警告和cpufreq覆盖BIOS(认为这可能有用):

内核.log.acpi.txt

收集:微代码和CPU活动注册(认为这可能有用):

kernel.log.microcode.txt

收集:处理器信息和超频到 3520 MHz 的证据,其中 linux 只注册了 3200 Mhz:

kernel.log.overclock-proof.txt

收集:MTRR 信息和 BIOS 与主板的通讯错误,最终启用了 8 个核心中的 4 个:

kernel.log.mtrr.0-7isX8.txt

内核激活了第 4 个核心,而 BIOS 只激活了前 3 个核心,还有 4 个核心......

kernel.log.acpi-pci-line21.txt

收集:ACPI信息,更多ACPI信息在以前的文件中:

内核.log.acpi2.txt

收集:更多(有用)信息以及一些 PCI 信息:

kernel.log.extra-info.txt

谢谢:斯蒂芬·基特解决我关于无法激活 4 个以上 CPU 核心的问题。

答案1

您无需启用任何其他功能,您的 Athlon 是四核 CPU,不支持超线程。

cpuinfoand输出dmidecode具有误导性,因为ht它的意思是“多线程和/或多核”;您的 CPU 有多个核心,因此符合资格。 (看AMDCPUID文档,第 13 页。)

您的 BIOS 可以选择启用最多 8 个内核,因为这是 AM3+ 插槽支持的内核,尽管据我所知,AM3+ CPU 中可用的最多内核是 6 个。

就你的超频而言,它正在被应用。在内核日志中,您将看到诸如

tsc: Detected 3456.252 MHz processor

具有不同的值,均高于 CPU 的标称时钟速率。

输出dmidecode显示 CPU 的官方速度,而不是实际速度。/proc/cpuinfo显示每个核心的当前速度,该速度根据需要而波动。

答案2

Linux 不超频。如果您尝试超频,Linux 将尝试保持指定的时序。超频仅调整 Linux 内核控制的设置的大约 1/100。

当用户超频时,Windows 内核会动态调整自身,平衡系统以获得良好的基准测试,但会牺牲不影响基准测试的幕后操作的性能。

Windows 有专门用于超频性能的 dll。因此,Windows OCing 的大部分工作是由操作系统在软件中完成的。 Windows 对此没有给出任何指示。微软也没有透露 Windows 内核会动态地自我调整以启动 OCed 系统并发布高位。

如果任何 OCer 真正分析为获得性能而投入的时间,他就会看到一个严峻的现实:在计算该人的时间价值时,购买更快的硬件实际上会花费更少。

我购买 OC 设备,因为它具有顶级的质量和性能,但我以默认设置运行它。

Linux 内核不支持 OCing。它实际上可以使系统恢复到其额定时序规格。所以,总的来说,这几乎没有什么区别。

Sourceforge 上曾经有一个 Linux OC 程序,但它位于“信仰与宗教”部分。只是稍微抬起头。

相关内容