可能重复:
双核处理器中每个核心的速度有多快?
我正在两个系统之间进行讨论(为了简单起见):
(1)2.9 GHz 双核处理器
(2)2.3 GHz 四核处理器
现在,当我考虑这个问题时,我有几个具体问题想要回答。
首先,这些“数字”(频率)究竟是如何计算的?它们意味着什么?对于 2.9 GHz 双核,这是否意味着每个核心的时钟频率约为 2.9 GHz,还是意味着每个核心的时钟频率为 2.9/2 = 1.45 Ghz?同样,四核是否提供“净”2.3 GHz 速度,或者每个核心字面上地以 2.3 GHz 的速度运行?
从我在网上读到的内容来看,我的直觉是每个核心实际上都以指定的速度运行(我知道除非你的代码在并行化方面完全线性,否则你无法从四核 3 GHz 系统获得 12 GHz)。
我的另一个问题是,假设您的代码完全并行运行。在什么情况下,额外的核心能够使代码运行得更快,因为操作系统(和其他后台任务)的干扰更少?
例如,如果我可以选择 2.6 GHz 双核或 2.5 GHz 四核,即使对于单身的线程程序,我认为 2.5 四核会运行得更快,因为单线程较少被其他程序(包括操作系统)中断。
答案1
对于 2.9 GHz 双核处理器,这是否意味着每个核心的时钟频率约为 2.9 GHz,还是意味着每个核心的时钟频率为 2.9/2 = 1.45 Ghz?同样,四核处理器的“净”速度是 2.3 GHz,还是每个核心的时钟频率实际上都是 2.3 GHz?
你永远、永远曾经以这种方式增加速度。两辆汽车每辆以每小时 50 英里的速度行驶,不会使任何汽车以每小时 100 英里的速度行驶,就是这样。如果 CPU 的核心速度为 2.9 GHz,这意味着您可以以 2.9 GHz 的频率对其进行时钟频率,也就是说,它的时钟频率每秒可以循环 29 亿次。
例如,如果我可以选择 2.6 GHz 双核或 2.5 GHz 四核,即使对于单线程程序,我也会认为 2.5 四核会运行得更快,因为单线程较少受其他程序(包括操作系统)的干扰。
这个问题毫无意义。您不能根据时钟速度比较不同的 CPU。这就像说“您有一辆油箱容量为 10 加仑的汽车和一辆油箱容量为 12 加仑的汽车,哪一辆加满一箱油还能跑得更远?”嗯,这取决于它们的重量、发动机的大小等等。
永远不要根据时钟速度比较 CPU,除非它们在其他方面完全相同。双核和四核显然有很大不同。
如果您想象两个 CPU 的区别仅在于一个是 2.6 GHz 双核,另一个是 2.5 GHz 四核,那么在运行单线程程序时,很可能不会有太大差异,前提是系统没有被其他程序严重加载。操作系统开销不太可能使内核达到最大值,并且无论哪种情况,您至少有一个内核可用于操作系统任务,例如磁盘 I/O 和中断。例如,如果限制因素是内存带宽,则更多内核无济于事。
话虽如此,在其他条件相同的情况下,内核越多总是比内核越少好。对于台式机,我看不出双核有什么用处。展望未来,越来越多的软件将知道如何利用更多内核。