如今的CPU核心数量越来越多,似乎核心越多性能就会越好,起码这些CPU品牌在向消费者传输这个信息,但CPU的核心真的越多越好吗?
事实上,CPU的核心多了之后,在使用多线程应用时,操作表现会有明显的提高,比如图片编辑、视频剪辑以及3D动画渲染。但在大多数情况下,更多的核心不仅毫无好处,反而还会拖累整个电脑。
增加的发热量是最大的拦路虎
发热量永远是电脑性能提高道路上最大的敌人,不论什么硬件,性能提高势必会伴随着发热量的增多,如果不能对硬件实施有效的降温,那么高性能就只是“空中楼阁”,好看,但没用,多核CPU就是如此。
CPU的核心多了,需要的电能和产生的热量就会跟着变多,但因为设计原因以及对电脑空间的有效利用,这些核心都被堆放在一个狭小的空间里,所以散热效果往往并不理想。所以在很多厂商设计多核CPU时,都会受到热设计功耗的限制。
也就是说为了避免CPU的功率过高,发热量过大,厂商们会降低各核的频率,从而降低自身的功率和发热量。虽然也有几款多核CPU在宣传时会说自己的频率很高,但这种所谓的高频率一般只能坚持一段时间,或者只有在使用一些对CPU需求不大的软件时才能保持高频率。
频率降低其实就意味着性能降低,虽然降低之后的性能依旧会比其他一些较低级的CPU强,但这些降低的性能就变成了损耗,这样不值得。
统一or非统一,内存访问的选择
一般核心比较多的CPU,会把自身的核心分组进行工作,我们称每组为一个节点,CPU通常会把核心分为两个节点。而CPU又分为两种架构,他们分别为NUMA架构,也就是非统一内存访问,还有UMA架构,它的意思是统一内存访问。NUMA架构的特点是CPU的每个节点都各有一个内存控制器和节点本身专用的物理内存,而UMA架构则是只有一个内存控制器,并且所有核共享一个大的内存池。
一般来说NUMA会更快一些,但是对于分了很多线程的软件来说,想要流畅运行会很吃力。因为NUMA架构的CPU,它的每个节点都要等另一个节点把数据处理完之后才能开始工作,所以不同节点访问内存的时间不同,因此这类多线程软件宁愿只使用一个节点,把其他的核心都空着不用,也不愿意跨节点运行,这样就造成了性能的损耗。
既然NUMA架构的CPU存在这样那样的问题,那么用UMA架构就可以避免吗?其实不然,UMA架构的CPU虽然是一个内存控制器控制所有的内存访问,以此来确保所有软件访问内存的用时相等,但是相比之下,NUMA架构的软件在访问内存时反而会更加方便直接,这样一来UMA的性能损耗会更大一些,并且节点越多,性能损耗就越严重。
其实不管用什么架构,只要是多节点的CPU,都无法避免性能损耗,反而是核心数量少一些的CPU能够避免这个问题,因为它们根本就没有节点。
设计缺陷同样会影响CPU的多核性能
有些CPU本身就是核心一多,性能就会出现瓶颈的设计,其中最鲜明的例子就是AMD之前发售的FX推土机CPU。
这里要讲一个概念那就是浮点性能,简单来说,我们计算机在做运算时,会处理非常多的数字,但这些数字往往并不是整数。其中会有一些极小数或是极大数需要参与运算,这里就需要用到浮点性能。浮点性能越高,这些运算就会越快,在处理一些较为复杂的运算时,比如3D建模等,浮点运算会显得非常重要。
一开始时的AMD处理器,虽然核心很多,但是性能就是比不上英特尔,这是因为在ADM之前的FX推土机CPU中,虽然有8个核心,但浮点单元只有4个,因此这8个核心就要公用4个浮点单元,所以浮点性能就会很低。
这极大的影响了该款CPU在处理一些重要的软件时所需的单线程的性能,虽然这种设计让AMD用更低的成本得到更多的线程,但性能却远远比不上英特尔。而补救的方法也很简单,就是提高频率,但是提高频率发热量就会增加,所以当初的AMD被笑话了很久。
现在的很多软件,尤其是游戏,它们看重的并非是核心的数量,而是单核的性能。有很多游戏甚至根本没有针对多核进行优化,或者是需要在设置中打开多核渲染才能用到其他核心的性能,这样就很容易造成“一核有难,多核围观”的尴尬场面。
多核确实有多核的好处,在跑支持多核工作的软件时,多核CPU的确有着显著的优势。我在本文中想表达的意思也并非也多核CPU没有低端CPU强。现在的英特尔和AMD的多核CPU,都是已经大幅改进过,也用了智能的加速机制,来达到与更便宜的CPU相类似的单线程性能。
但是对多核CPU来说,性能损耗是无法避免的,而且核心越多,性能损耗往往就越严重。因此,在选择CPU是,最好还是先确定自己究竟需不需要多核的CPU,毕竟辛苦赚来的搬砖钱可不能浪费。
-
处理器
+关注
关注
68文章
19259浏览量
229657 -
3D
+关注
关注
9文章
2875浏览量
107487 -
cpu
+关注
关注
68文章
10855浏览量
211594
发布评论请先 登录
相关推荐
评论