我很好奇 Linux 中的 CPU 排序是什么。假设我在超线程系统上将一个线程绑定到 cpu0,另一个绑定到 cpu1,它们是否都将位于同一个物理内核上。给定具有 4 个内核和超线程的 Core i7 920,/proc/cpuinfo 的输出让我认为 cpu0 和 cpu1 是不同的物理内核,而 cpu0 和 cpu4 在同一个物理内核上。
谢谢。
我很好奇 Linux 中的 CPU 排序是什么。假设我在超线程系统上将一个线程绑定到 cpu0,另一个绑定到 cpu1,它们是否都将位于同一个物理内核上。给定具有 4 个内核和超线程的 Core i7 920,/proc/cpuinfo 的输出让我认为 cpu0 和 cpu1 是不同的物理内核,而 cpu0 和 cpu4 在同一个物理内核上。
谢谢。
物理 cpu/socket 列为physical id
.
物理核心列为core id
。
由于超线程,处理器条目将拥有自己的processor
,但core id
与physical id
另一个共享。
请注意,每个物理 cpu ( physical id
) 可以有多个核心 ( core id
),这些核心可以通过超线程进一步分解为额外的逻辑 cpu。逻辑 CPU 整体按processor id
.
您可以使用likwid-topology -g
获取 cpu 的图形拓扑。它显示了每个 cpu 主核心以及同级核心。
请参阅此链接中提供的指针。有关物理处理器、内核和超线程的信息都在 /proc/cpuinfo 中,但是您必须匹配来自该文件中多个条目的信息以识别哪些组合在一起。