姓名:韩政
学号:16010188021
转载自:https://www.zhihu.com/question/60868958/answer/181241131,有删节
https://www.zhihu.com/question/66889727,有删节
【嵌牛导读】:苹果处理器几乎每一代都比前代厉害了百分之几十,但是英特尔几年下来才那么一点点,究竟是怎么回事呢
【嵌牛鼻子】:设计架构 制造工艺
【嵌牛提问】:为什么苹果cpu性能每年都在进步而英特尔却进步不大
【嵌牛正文】
事实上,Intel并非在CPU领域挤牙膏,而是在家用CPU领域挤牙膏。
从第一代Nehalemi7-920到最新的i7 7700K,面向主流市场的顶级家用CPU——Core i7系列一直保持着四核心八线程的规格。每一代都会有所提升:频率、制程、功耗、指令集、周边接口规格。但四核心这个规格从未变动。然而每一代新出来时候,制程、功耗对性能没影响,频率的提升不可能一下子提升太多,指令集、周边接口带来的提升需要等应用优化、周边设备普及才能体现出来。
相信很多人都明白到了今天,CPU频率的提升已经很艰难了。像当年386-486·586-PII-PIII那样每代的最高频率能提升60%甚至200%这种幅度的情况,除非是根本性的工艺/材料改进,否则可以认为不可能再出现了。每一代的制程升级提升一点点,制程优化又提升一点点……
指令集也是类似,常用简单指令其实就那么几十个,现代CPU的各种指令集(MMX,SSE*,AVX*)大部分都是把一些常用的简单指令组合固化下来,实现一个时钟周期能完成以前需要多个时钟周期才能完成计算工作。但这样的指令组合是无穷无尽的,不可能无限制的都固化在CPU里面,只有随着应用环境的变化,某些指令组合的使用率提升了,这时候作为一个扩展指令固化到CPU里面才有意义。
当然,上面说的是CPU性能提升的困难是指单个CPU核心,要提升CPU性能,最简单暴力的方法就是堆核心。没错,Intel企业级CPU就是这个思路。以至强E5为例,初代E5-2690 8核,E5-2697 v2 12核,E5-2699 v3 18核,E5-2699 v4 22核,E5-2699 v5据报道会达到32核。实际性能方面,以Cinebench R15为例,双路系统得分从2200~3000(v2)~4300(v3)~4900(v4),真心不算挤牙膏了。
至于为何家用市场不这样做?第一个原因大家都很清楚,农企不给力,没有竞争对手,没有动力。这个随着Ryzen的上市可能会促使Intel改变思路,在家用市场也开始增加核心数。第二个原因就是应用环境了。家用市场CPU需要处理的数据量有限,可以说90%的家用PC,CPU闲置率都非常高。剩下10%中,也就玩游戏的时候能高点。而现在流行的游戏引擎,增加CPU核心数对性能提升不大,反而更大可能因为频率的降低而造成瓶颈。
当然,反过来,对于游戏开发商来说,家用主流的高端一直都是4核,也没有动力优化更多线程时候的性能表现,不是每个游戏玩家都愿意花大钱装一台6核/8核的机器。而且,不同于普通PC应用,需要考虑旧版本兼容,代码复用,数据一致性,前后逻辑这些不利于进行多线程优化的因素,对于游戏引擎来说,大部分适合并行运算的早就对GPU进行了优化,使用GPU的运算能力。CPU核心数再多,有GPU的运算单元多么?四路E7 v4开超线程也不过192个逻辑核心,NV次旗舰的1070就已经1920个运算单元——刚好10倍,上面还有单路Titan Xp 3840个运算单元,足足20倍,更别说完全可以跑四路Titan Xp。剩下不用GPU要用CPU计算的都是不好并行处理的,因此游戏引擎为低频多核CPU进行优化的动力是相对较低的。
至于题主提到移动CPU降低功耗表现不错,这就是企业级市场的技术下放到消费级市场的结果了。为什么这么说?E5的核心也不是随便堆的,一台服务器的散热能力和供电能力是有限的,不降低单个核心的功耗怎么在一个CPU里面塞进去更多的核心?而降低了功耗的核心,放到移动领域正好相得益彰就是了。
最后,上面说的都是传统CPU,Intel在移动设备CPU、GPGPU计算这些领域也一直有发力,但一来目前来看效果不怎么样,二来影响力和普及率远不如PC就是了。
结论: