You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本获取Intel性能核(P-cores)的数量?

如何通过脚本获取Intel性能核(P-cores)的数量?

嘿,我来帮你解决这个在脚本中获取Intel性能核(P-core)数量的问题,同时也补充了高效核(E-core)的相关方案,方便后续有需要的朋友参考:

Linux系统下的实现方法

方法1:利用CPU频率差异

P-core的最高运行频率通常显著高于E-core,我们可以通过读取每个CPU核心的最大频率来区分统计:

# 第一步:自动获取P-core的最高频率值(取所有核心中的最高频率)
MAX_P_FREQ=$(grep -h "" /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq | sort -nr | head -n1)
# 第二步:统计拥有该最高频率的核心数量,即为P-core总数
P_CORE_COUNT=$(grep -l "$MAX_P_FREQ" /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq | wc -l)
echo "P-core数量: $P_CORE_COUNT"

方法2:通过sysfs的核心类型标识(内核支持时)

部分较新的Linux内核会在sysfs中直接标记核心的性能类型,你可以通过以下命令快速统计:

# 统计标记为"performance"类型的核心数量(对应P-core)
P_CORE_COUNT=$(grep -r "performance" /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference | wc -l)
echo "P-core数量: $P_CORE_COUNT"

补充:获取E-core(含低功耗E-core)数量

如果后续需要统计高效核的数量,同样可以基于频率差异实现:

MAX_P_FREQ=$(grep -h "" /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq | sort -nr | head -n1)
# 统计所有最高频率不等于P-core最高频率的核心,即为E-core总数
E_CORE_COUNT=$(grep -v "$MAX_P_FREQ" /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq | wc -l)
echo "E-core数量: $E_CORE_COUNT"

额外说明

如果需要获取总物理核心数(包含所有类型的核心),可以用以下简单命令:

PHYSICAL_CORE_COUNT=$(lscpu | grep "Core(s) per socket:" | awk '{print $4}')
echo "总物理核心数: $PHYSICAL_CORE_COUNT"

备注:内容来源于stack exchange,提问作者VasyaNovikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:53:16