我有一个 corei7 英特尔处理器(CPU 名称:Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz,CPU 类型:Intel Core Haswell 处理器)。我想知道 CPUID 命令的输出,因为它显示 4 个 CPU,每个 CPU 有 2 个内核!我真的有 4 个 CPU 吗?输出包括 4 cpus(cpu0 to cpu3)
(multi-processing synth): multi-core (c=2), hyper-threaded (t=2)
这是因为我想使用硬件性能计数器来测试我的应用程序。但是,我对必须监视和配置多少个内核感到困惑。
2 回答
首先,如前所述,您的系统是具有超线程的双核(超线程意味着每个内核可以同时从两个硬件线程执行)。因此,即使只有一个“物理 CPU”,您的操作系统也会看到 4 个“逻辑 CPU”。在下面阅读更多内容:
如果您使用的是 linux,请使用 cat 或更少查看 /proc/cpuinfo,如下所示:
cat /proc/cpuinfo
这将列出您需要知道的所有信息。但是,要回答您的问题并理解信息。您需要知道“逻辑 cpu”和“物理 cpu”之间存在差异。物理 CPU 是英特尔制造的实际硬件,例如安装在您的系统中。逻辑 CPU 是操作系统所看到的,基本上是指“硬件线程”或一个处理器内核。因此,假设您有一个具有 4 个内核的物理 CPU,每个内核支持一个线程(硬件线程),那么您的操作系统将看到 4 个 CPU,这些 CPU 将列在 /proc/cpuinfo 中,具有不同的“处理器”编号但相同'physical id' 因为它们都属于同一个物理处理器。另一个例子,假设上面的每个内核都支持两个线程(再次,硬件线程,而不是软件线程)。然后,您的操作系统将看到 8 个 CPU。如果您有双插槽(多节点)服务器,带有两个物理 CPU 和以上所有,那么您的操作系统将看到 16 个 CPU;他们中的每一个都将具有相同的“物理ID”。
有关您的系统的信息在这里:http ://ark.intel.com/products/75460/Intel-Core-i7-4500U-Processor-4M-Cache-up-to-3_00-GHz