正在检测来自我的英特尔系统的 CPU 和内核信息
Detecting CPU and Core information from my Intel System
我目前正在使用Windows 8 Pro OS以及处理器:Intel(R)Core(TM)i7-4790 CPU @ 3.60GHz,RAM 8 GB。我想知道我的系统有多少物理处理器和多少实际内核。根据我对硬件的非常基本的了解和这里的讨论,当我在此英特尔站点上搜索此处理器的英特尔信息时,它说:
# of Cores 4
# of Threads 8
在我的CPU系统的任务管理器中,它说:
Maximum Speed: 3.60 GHz
Sockets: 1
Cores: 4
Physical processors: 8
假设我有 1 个物理处理器和 4 个实际物理内核,并且每个物理内核有 2 个虚拟内核(= 2 个线程),我是否正确。因此,正如我的任务管理器中所述,物理处理器总数为 8。但是,如果我的假设是正确的,那么为什么说物理处理器 = 8,而不是虚拟处理器?我需要知道机器的核心细节,因为我需要使用 OpenMP 编写低延迟程序。感谢您抽出宝贵时间...
从操作系统的角度来看,即使是超线程处理器也是"真正的"处理器 - 它们存在于 CPU 中。它们使用真实的物理资源,如指令解码器和 ALU。仅仅因为这些资源在HT内核之间共享并不意味着它们不是"真实的"。
一般计算将使用超线程加速,因为各种线程正在利用共享资源执行不同类型的操作。但是,由于共享资源的压力,并行运行的 CPU 密集型任务的性能可能不会很高。例如,如果只有一个 ALU,则有两个线程竞争它是没有意义的。
运行基准测试并为您的应用程序确定适当的设置是什么,关于是否启用 HT。对于如此广泛的问题,我们无法给您一个明确的答案。
相关文章:
- 我有 12 个 CPU,1 个插槽,每个插槽 6 个内核,每个内核 2 个线程 - 这些信息如何对应于 MPI 和 Op
- Qt QTableView paint() 事件无限期交付,占用 100% 的 CPU 内核
- 正在检测来自我的英特尔系统的 CPU 和内核信息
- 等待条件变量是否会加载 CPU 内核
- 如何获得进程在windows内核模式下使用的CPU时钟周期
- 如何有效地将内核 malloc 数据返回到 CPU
- 如何在windows上获取cpu上的实际内核数量
- 调用GPU内核后,CPU性能下降
- CUDA 程序比 CPU 程序慢,但内核更快
- 如何禁止任何应用程序的所有线程在特定的CPU内核上运行,除非我指定了线程
- 在同一个cpu内核上执行的OpenMP线程
- 将CUDA中的缓冲加倍,这样CPU就可以对持久化内核产生的数据进行操作
- 编写一个CUDA内核来替换一个等效的cpu函数
- 为什么当我使用的线程数远远超过CPU内核数时,此代码会变得更快?
- 使用尽可能多的CPU内核编写一个超级UDP服务器
- C/C++程序是在CPU上运行还是在内核上运行
- 如何计算CPU内核的频率
- 是否可以在"reserved" CPU 内核上运行代码?
- 将 1 个 CPU 内核分配给 1 个线程 c++
- 使用OpenMP将线程绑定到特定的CPU内核