衡量CPU性能时,缓存大小或内核数是否更重要?


9

我要买一台笔记本电脑供儿子上学使用,因此它不必是游戏机。我以前从头开始组装PC,但是已经有一段时间了。

我注意到,许多可用的入门级计算机都配备了双核或单核CPU。我知道,在其他所有条件相同的情况下,双核CPU可能会表现更好。但是,如果单核具有更大的二级缓存(例如,单核为3 MB,双核为1 MB)怎么办?我知道这也会严重影响性能。

我了解其他系统组件,例如内存速度和图形硬件,也会影响系统性能。我的问题是,如果我必须在额外的CPU内核还是更多的缓存之间进行选择,我应该选择什么?


2
这也取决于您的用例场景。您正在使用的软件(它们的功能以及如何对其进行编程)可能会对它们产生较大的影响,从而带来更好的性能。例如,在过去,速度更快的赛扬通常用于网络浏览和休闲游戏,而速度较慢的P4对于压缩和3D游戏则更好。
Synetech

@Synetech,嗯,当然,他指的是今年+ 3年的典型应用程序。旧应用没关系。
Pacerier's

Answers:


12

CPU缓存

较低的CPU高速缓存将导致较高的高速缓存未命中率,这将大大降低性能。话虽这么说,另一个完整的内核将允许计算机同时运行至少两个线程,因此当您不得不选择一个线程时,这是一个折衷。

CPU缓存大小与未命中率

从上图可以看出,当高速缓存大小超过1 MB时,高速缓存未命中的可能性已经非常低,并且随着高速缓存大小的增加,回报率逐渐降低。

CPU核心

另一方面,当应用程序利用多个内核时,额外的CPU内核可以显示速度的急剧提高。

对于大多数实际应用程序,额外的执行核心将比额外的缓存提供更好的性能。衡量计算机的性能时,缓存大小和核心数都至关重要。但是,当您开始处理数量相对较少的核心时,额外的核心通常会显着提高性能。

...


这或多或少是我的想法...但是我不确定您会从哪里减少缓存的回报。谢谢!
大卫

是我还是图的X轴很错误?4-1 = 3; 16-4 = 12; 64-16 = 48等等,但是都以相同的距离表示。但是我想图中显示的数据仍然正确,对吗?也意识到Y轴也有这个。
Utku

@Utku x轴和y轴均使用对数标度,x轴使用以2为底,y轴使用以10为底。
突破

6

额外的内核,简单易用,适用于大多数应用。您可以在最佳条件下进行两次计算。缓存有帮助,但不会使速度提高一倍。


3

正确的选择(双核与额外的缓存容量)取决于将在笔记本电脑上运行的目标应用程序。

理论上,双核处理器将比单核处理器减少一半的执行时间。但是,实际上,由于编写并行应用程序的挑战,很少能实现2倍的加速。阿姆达尔定律(链接)显示,即使应用程序将90%的执行完全并行化(对于大型应用程序而言这是一项艰巨的任务),其提速仍是1.82倍而不是2倍。仅对于未以可扩展方式实现的应用程序,第二个内核的速度将降低。

较大的L2缓存容量将减少缓存中的未命中率,如@Breakthrough的答案所示。但是,答案从该图得出了错误的结论,即超过1MB的缓存容量只会带来微不足道的改善。收益递减的点取决于应用程序的应用程序(特别是工作集大小链接)。大多数应用程序的工作集大小可能会超过1MB,因此,更大的缓存将通过避免长时间等待的DRAM访问来帮助提高性能(处理器的运行速度比主存储器快3个数量级)。

最后,虽然我的回答听起来像是倾向于在第二个处理器上使用更大的缓存,但我想指出的是,大多数现代CS课程都侧重于向学生介绍并行编程。因此,即使显然不是在性能方面更好的选择,多核处理器也更有意义。



1

我会推荐双核计算机而不是单核计算机。

由于Windows基本上在同一时间做很多事情(例如,在浏览Windows的同时下载Windows Update,并且防病毒程序正在扫描刚刚下载的文件),双核系统比单核系统更具“响应能力”机器。


0

缓存大小很重要,因为它可以减少缓存未命中的可能性。“高速缓存未命中”的代价很高,因为CPU必须访问主内存才能访问内存地址,这会花费更长的时间,从而导致计算机速度变慢。

核心数量也很重要,因为核心越多,可以同时运行的进程越多。这意味着多个指令可以并行运行,从而使计算机速度更快。

如您所见,两者都是非常关键的,并且两者都非常重要,尽管从个人经验来看,如果您只需要优化一件事,那么多核处理器芯片比更大的缓存更有利...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.