0
点赞
收藏
分享

微信扫一扫

处理器从单核到多核的演化过程Linux-查看系统CPU个数、核心数、线程数


处理器从单核到多核的演化过程Linux-查看系统CPU个数、核心数、线程数_设备管理

Linux-查看系统CPU个数、核心数、线程数

1.CPU个数(socket的个数)

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

2.每个CPU的核心数

grep 'core id' /proc/cpuinfo | sort -u | wc -l

3.线程数

grep 'processor' /proc/cpuinfo | sort -u | wc -l

所以,CPU总的并发线程数为:

线程数=CPU个数(socket个数) x 核心数/CPU x 线程数/核心(考虑到超线程)

注意,对于分大小核的情况,核心数/CPU,线程数/核心分别计算。/proc/cpuinfo不区分大小核,显示的线程数是总线程。

以12th Gen Intel(R) Core(TM) i5-12600K为例,此款CPU是10核16线程,粗看感觉不对,毕竟16个线程没有办法平均到10个核上。实际上这是一款大小核结构的处理器。分成6个大核和4个小河。6个大核每个核2个线程,四个小核每个核1个线程,所以一共12+4=16线程。下图可以看到,其前12个线程对应的core id是2对1的关系。后面四个线程和CORE ID则是一一对应。

$ cat /proc/cpuinfo |grep "core id"
core id : 0
core id : 0
core id : 4
core id : 4
core id : 8
core id : 8
core id : 12
core id : 12
core id : 16
core id : 16
core id : 20
core id : 20
core id : 28
core id : 29
core id : 30
core id : 31

对于windows来说,通过任务管理器或者设备管理器都可以看到,要注意的是,从设备管理器中看到的CPU列表是CPU线程数,并非核数。

参考资料

​​4. x86 Topology — The Linux Kernel documentation​​

结束

举报

相关推荐

0 条评论