以 Core i9-13900HX 实例讲解 CPU 概念:物理 CPU,内核,逻辑 CPU
缘起
看书的时候看到一行代码加一句注释包含了三个概念:processor,cpu,core。因为之前没用过 os.cpu_count(),所以一下子有点懵,这个函数到底返回什么,为什么用了三个概念?
在梳理概念的过程中发现很多文章缺乏图,单纯的文字不大好理解。于是以自己电脑的 Core i9-13900HX 处理器为例,进行实例讲解,希望对那些对此也有困惑的人员有所帮助。
物理 CPU/处理器(processor)
定义
安装在主板插槽(socket)上的一个物理元件(物理的意思:看得见,摸得着)。称为:物理 CPU,处理器(processor)。我们平时去买电脑时会问“这台电脑是什么处理器?“,其实就是问这台电脑的物理 CPU 是什么?老板可能会回答”这台联想拯救者(Y9000P)电脑的处理器是 Core i9-13900HX “。
实物图
Core i9-13900HX
如上图所示:我的联想拯救者(Y9000P)电脑有 1 个物理 CPU(处理器),型号是 Core i9-13900HX。
物理内核(Physical core)/内核(Cores)
定义
位于 CPU 内部的一个物理元件。称为:物理内核(physical core),内核(core)。
实物图
sorry~ 因为核是封装在物理 CPU 内部的,具体长什么样我也不确定,待确定后再补充。
Core i9-13900HX
如上图所示:Core i9-13900HX 是大小核架构:性能核(Performance-core) + 能效核(Efficient-core)。性能核有 8 个,能效核有 16 个,总计:8 + 16 = 24。即一个物理 CPU Core i9-13900HX 有 24 个内核,或者说有“一个物理 CPU Core i9-13900HX 有 24 个物理内核”
逻辑 CPU(logical CPUs)/线程(Threads)
定义
一个虚拟元件(虚拟的意思:逻辑上的,看不见,摸不着)。称为:逻辑 CPU(logical CPU),逻辑处理器(processor),逻辑内核(logical core),线程(thread)。
Core i9-13900HX
如上图所示:每个性能核(Performance-core)有 2 个线程,能效核(Efficient-core)有 1 个线程,总计:8 x 2 + 16 x 1 = 32 。即 “一个物理 CPU Core i9-13900HX 有 24 个内核,32 个线程”,或者说 “一个物理 CPU Core i9-13900HX 有 24 个内核,32 个逻辑 CPU”。
注:
1.这里的“线程”和“编程中多线程的线程”不是同一个概念。
2.编程中有些描述会直接用 CPU 表示 logical CPU,如:
3.有些文章用 logical cores 表示 logical CPUs,个人觉得这样容易和 physical core 混淆,应该少用 logical cores , 多用 logical CPUs。
编程实战
psutil.cpu_count(logical=True)
如上所述:psutil.cpu_count(logical=True) 获取的“逻辑 CPU(logical CPUs)”的数量,psutil.cpu_count(logical=False) 获取的“物理内核(Physical core)/内核(Cores)”的数量。
os.cpu_count()
如上所述: os.cpu_count() 获取的是“逻辑 CPU 数(logical CPUs)”。
欢迎搜索及关注:编程人(a_codists)







评论