我们正处于移动计算时代的过渡期,每天都有令人震撼的设备发布,移动计算性能不断提高,令人充满期待。
移动平台目前正在经历如PC机之前一样的演变路线:单核处理器的频率一路攀升,达到最大允许功耗的极限;为了继续提升计算性能,并保持合理的功耗,处理器厂商又推出了多核处理器。
意法·爱立信早在2009年就推出了双核处理器平台,是第一批推出双核处理器的芯片厂商,其NovaThor平台开发计划也是基于ARM双核处理器。根据公司的分析报告,现有的软件以及近期上市的软件还不能充分发挥四核技术的优势。从最高可达频率和内存访问开销角度看,增加内核不是没有代价的。只有很好地平衡加核做法与软件运行能力,才能充分利用加核后所提升的硬件并行处理能力。
本文将通过对比的方式探讨频率较高的双核架构与频率较低的四核架构的优缺点。不过,芯片技术和软件处理的折衷解决方案正在迅速发展,而且,爱立信也将根据技术未来发展趋势调整产品计划。在本文中,我们把讨论的焦点放在性能上,功耗问题只稍加提示。事实上,在执行高性能任务时,四核处理器的频率和电压都较低,因此节能省电效果更好;但是,如果不执行高性能任务,四核就失去了省电的特色。
多核是需要有代价的
目前大多数最新的移动平台所使用的多核架构是对称多核处理系统(Symmetric Multi Processing, SMP),其特点是多个内核完全相同,且访问系统资源(包括内存)面临相同的开销。此外,运行SMP功能的操作系统的基本需求是多核必须共享一个内存空间。为确保多个物理内存之间的一致性来实现共享内存空间,还需要配备专用电路。在今天的多核处理器中,每个内核都有各自的一级高速缓存,每个内核的一级高速缓存必须保持相互一致,而且还要与唯一的多核共用的二级高速缓存保持一致。内存一致性硬件位于高速缓存的重要运行通道内,因此,该硬件在很大程度上决定了多核架构的扩展性。增加内核不可避免地导致一致性协议的额外管理,产生额外的延迟,从而对性能造成负面影响。这就是为什么SMP架构不能无限地扩展的原因,即使在超级计算机上, 也不能无限扩展。
不断增加的1级/2级高速缓存数据流量和共用2级高速缓存而产生的数据拥堵问题也限制了多核处理技术的扩展性能。每增加一个内核,就需要更大的芯片面积和更高的2级高速缓存容量。这进一步增加了芯片布局限制,并在内存分层结构内部引起访问延迟。
意法·爱立信的实验表明,对于典型负载,当处理器从双核变成四核时,每增加一个内核,每核性能将会受到25-30%影响,虽然这是内核频率损失和在系统的不同部分浪费更多的时钟周期的综合影响,但是,我们可以将其简化为等效的频率降低。
软件的扩展性
只有把软件设计成并行运行才能充分发挥多核处理器的优势。软件并行应用分为两类:并行应用软件和多任务处理。并行应用遵循著名的Amdahl定律,如方程式1所示:
如果处理器数量N给定,我们利用这个方程式可以确定一个应用软件能够取得的最高加速比S,其中P代表并行运行应用在软件中所占的百分比,即P随着处理器数量增加而线性提高((1-P)是串行运行应用的百分比)。我们特别关注的是,对于一个对于给定的应用软件(即P值已知),何时才是改用四核处理器的最佳时机。对于一个给定的应用软件,有一个很有趣的分析方法:合并一个四核处理器与一个双核处理器的可达加速比,并考虑前文描述的硬件额外开销因素,把硬件对相关频率F的影响考虑进去,即当Fquad * S4> Fdual * S2时,四核性能占优。
图1所示是用比较S4/S2比与Fdual/Fquad的方法解上面的不等式。蓝色横线代表Fdual/Fquad = 1.37,这个数值对应四核处理器每核25-30%的额外性能开销。这条线与S4/S2曲线相交于P=70%的点,这意味着,应用软件的并行占比必须超过70%,才能把四核处理器的优势发挥出来,否则,四核性能比不上速度高出25-30%的双核处理器。在现阶段P>70%这个比例太大了!这意味着70%的应用代码都要很好地并行运行,这是非常罕见的。
图1: 当Fquad * S4> Fdual * S2时,S4/S2,Fdual/Fquad对比
1 2
有人可能提出,如果单核与双核解决方案对比,结论也是同样的,这在理论是正确的,但是,实际数值却让我们得出相反的结论:图2中的红线与图1中的红线相同,而绿线则代表单核与双核的加速比特性。两条线的走势相同,但是,绿线总是在红线上方延伸,结果P值比双核与四核曲线的P值小很多,在这种情况下,速度较慢的双核优于速度较快的单核。此外,架构从单核转向双核的性能代价也比从两核转向四核低很多,进一步将P的阈值降到一个合理的数值(大约30-35%)。
图2:比较单核对双核(绿色曲线)与双核对四核(红色曲线)的加速比提高幅度
我们继续比较双核和四核处理器:根据经验,并行比例超过70%的应用软件是很少的。多媒体应用软件和某些视频应用是一个例外,考虑到它们需要的大量并行处理和优化计算,其P值非常高,甚至达到了90-95%。但是,我们所讨论的上下文有其特殊性:移动平台的相关多媒体功能几乎全都是硬件加速,导致这种特殊性的原因是:没有任何其它方式能够达到所需的性能并且/或者移动平台的功耗是受限的。非硬件加速的多媒体应用软件确实可充分发挥四核处理器的优势,但是,它们会很快耗尽任何一种移动设备的电池,因此非硬件加速的使用是有疑问的。
网页浏览器是推动移动计算性能提高的主要力量之一。今天的网页浏览器能够在双核处理器上取得1.4-1.5的加速比,对应的P值在55-65%之间,仍远低于70%阈值。另外,实际的应用情况甚至要比理论更差,因为在今天的网页浏览器内并不能找到Amdahl定律定义的并行百分比P。事实上,大多数加速比来自关联的支持活动,例如,用户界面、多媒体、网络等,某些活动会分几个线程执行,因此,这些系统级的并行活动让双核处理器优势(1.4-1.5的加速比)得以充分发挥。
即便我们在网页浏览中使用Amdahl定律,由于所涉及的并行算法之间的相互差异,我们也无法在四核处理器上得出1.8-2.0的理论加速比。事实上,我们倾向于四核处理器的1.6-1.7的理论加速比,这个比值对应一个更具实际意义的50-55%的等效P值。即使移动多核处理器的处理优势将会极大地推进网页浏览器的并行化机制,但是,鉴于所涉及软件的复杂性,这个过程肯定需要一段相当长的时间。
视频游戏是另一类值得考虑的计算密集型应用软件。与网页浏览器相似,,今天的大多数商业游戏引擎并非并行且不适用于Amdahl定律。我们发现,有些游戏具有与网页浏览器一样的系统级特性,从而在双核处理器上能取得很好的加速比,当然,其P 值仍然低于推动四核处理器应用的门限值。
此外,移动视频游戏的瓶颈是图形处理,而不是CPU。因此,目前,四核这一点激励因素不足以让软件厂商在如此复杂的系统的并行化工程上花费大力气。我们预计这种情况会逐渐改观,但是还是尚需时日。
多任务处理的任务量有多大?
多任务处理是软件并行化的另一个推动力,当然,多任务处理肯定受益于多核处理器。多任务处理指同时处理多个相互关联性很小或无关联的粗粒活动。多任务处理的例子很多,例如,一边听音乐一边上网或进行多页浏览(现代的多页浏览实现方法将针对不同的页面分支出不同的进程。)。
因为多任务处理完全取决于并发任务的数量和属性,所以并没有类似Amdahl定律一样的数学公式来帮助我们确定其加速比。我们需要设法找到貌似合理的能够把下一代2 GHz双核处理器发挥到极限的用例,一边听音乐一边做其它事情当然是一个很普通的用例,但是播放音乐甚至播放数据流的工作量并不是很大。
今天虽然有很多Widget微件生成多任务处理请求,但不幸地是,这些程序的代码量还是很小,甚至不能接近一个单核处理器的满负荷。把手机视频转码在外接显示器上播放同时浏览网页或玩视频游戏是一个任务量很大的多任务处理用例。不过,移动平台的多媒体功能多数是采用硬件加速技术,否则很快就会把电池用尽,无需考虑双核与四核处理器。总之,很难发现足以激励人选用四核的并行用例。
时机尚不成熟
按照PC行业的市场发展轨迹,部分移动行业将很快进入四核处理器平台时代。四大于二是一个非常有效的营销口号!然而,对于最终的用户来说,事实并非如此。
正如本文所述,四核处理器可能会对用户的成本和性能感觉构成负面影响。当然,某些高端小众市场或特殊使用场合不会受此影响,然而,事实上,今天的软件的并行化程度还是不够高,此时选择四核处理器不是明智之举。只有软件改进了,才是选择四核的正确时机。目前,意法·爱立信宁愿集中精力优化速度更快且功耗更低的双核处理器,我们相信这将会给大多数消费者带来更切合实际的好处。
作者: Marco Cornero
意法·爱立信
1 2