浅谈移动平台异构计算架构
异构计算在高性能计算领域发展已将近30年,而在移动平台上流行不超过数年。现在流行的绝大多数移动平台,不论是智能手机还是平板电脑,都载有CPU以及GPU,那么,移动平台可以运用在高性能计算领域流行的的CPU/GPU的异构计算并获得期望的高性能低功耗吗?
移动异构的必要性和可行性
首先,我们来分析一下移动平台应用异构计算的必要性和可行性。
异构计算,按照维基百科给的定义,主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,而常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。异构计算近年来得到许多关注,主要是因为通过提升CPU时钟频率和内核数量而提高计算能力的传统方式遇到了散热和能耗瓶颈。与此同时,GPU等专用计算单元虽然工作频率较低,但具有更多的内核数和并行计算能力,总体性能-芯片面积比和性能-功耗比都很高,却远远没有得到充分利用[1]。
移动平台不同于桌面机以及服务器,其电源往往与设备本身绑定,因此电源成为移动平台的一个巨大瓶颈,导致移动平台的生产商们更多关注移动平台的能耗,因此移动平台的计算处理器的架构必须有一个较高的性能功耗比;另外移动平台的用户利用移动平台,例如平板,不是进行科学计算而是来上网、游戏等,因此移动平台被要求有更好的用户体验,但又不能超出用户消费能力,移动平台必须有一个较高的性能价格比。综上所述,移动平台要有较高的性能功耗比和性能价格比,而不需要追求桌面机、甚至超级计算机的高性能。(简单来讲就是在够用的基础上越便宜越好。)异构计算通过充分利用移动平台的CPU和GPU的不同特性来加速计算、提高性能,进而降低移动平台的成本和功耗。
图1 CPU与GPU在结构上的不同
基于CPU/GPU的混合异构计算系统是指在传统计算机系统中加入GPU作为加速部件并配合CPU共同完成计算任务的新型系统[2]。异构计算系统在浮点运算能力、功耗、可扩展性等方面都具有明显的优势[3]。传统的异构计算针对的问题是科学计算等大规模运算,因此其CPU与GPU之间的通信延时可以忽略不计,而这在移动平台上是完全不可忽略的。因此必须改进传统的CPU/GPU加速模型来满足移动平台,实现异构计算,而Intel、AMD等一众公司已经探索出一定的成果。
Intel、AMD、ARM等公司都提出了不同的异构解决方案,虽然存在种种问题,但是对于移动平台异构计是很大的进步。Intel第一代的异构处理器Sandy Bridge因为种种问题被Intel用更先进的Ivy Bridge代替。AMD于今年也发布了Z-01的升级版Z-60异构处理器。Samsung更是宣称明年将实现ARM公司的big.LITTLE架构的异构处理器。可见,异构计算在移动平台不仅可行而且人气颇高。
图2 设计异构计算架构的不同公司
移动平台上的异构计算架构
然后,我们对AMD、Intel以及ARM公司已有的移动平台异构计算架构进行介绍,分析各个异构计算架构的特点,为之后不同架构在移动平台上的应用进行评价打下基础。
一、Intel的Ivy Bridge架构
Ivy Bridge的前身是Sandy Bridge,与Sandy Bridge一样,Ivy Bridge采用双芯片平台方式分区(2-chip platform partition),即在芯片上集成CPU以及GPU。Ivy Bridge在硅片上完全集成IA cores、图形处理器、媒体显示引擎、存储控制器及其他功能部件。这些设计使其能很好与Sandy Bridge兼容。虽然Ivy Bridge也在3D图形显示、功耗比等方面作出改进,但其异构计算的结构与其前身还是一样的[4]。
图3 Sandy Bridge芯片图 图4 Sandy Bridge体系结构[5]
在Sandy Bridge的架构中,Intel公司首次将图形计算单元集成进处理器自身中去[5]。Sandy Bridge通过将GPU包含在处理器的芯片内来提升每单位耗能的性能,在降低渲染引擎功耗的同时提升速度。该GPU可以访问处理器的L3缓存,并且在简单流水线中运行时不需要访问缓存,不像传统的的基于渲染结构的GPU需要一遍又一遍的访问缓存来实现不同特效。L3缓存缩短了达到主存的路径,使信息传输更快,提升了图形性能。GPU内部通过专用功能单元和改进的渲染单元来降低功耗。该架构相较传统交媾其实改进的都是架构某一部分或某一功能单元,例如GPU内部,而并没有在部件之间,比如CPU与GPU的协作上作出太多改进,仅仅是对CPU和GPU运行时的频率作出了一定调整。因此,按照Intel自己的说法,当用户一直运行CPU集中的任务时,用户不会体会到该架构的好处。Intel的Sandy Bridge将CPU和GPU集成的好处包括性能功耗比提高、生产成本降低以及帮助用户免除选择GPU的烦恼。
图5 Ivy Bridge微体系结构[4]
作为Sandy Bridge的后继,Ivy Bridge在六个方面有所改进,包括制作工艺、图形和媒体处理、IA core/ISA、安全性、能源管理和存储显示,但是在结构方面并未作大改进,只是引入了PAIR(Power Aware Interrupt Routing)用来根据优化模型选择响应服务中断的“最好核心”。总的来讲,Ivy Bridge与Sandy Bridge相比主要是在各个部件内部进行了改进或升级,并没有在部件之间的协作上,比如CPU和GPU的任务调度等问题上提出结构上的改进,还有很大的改进空间。
二、AMD的Brazos架构
APU,即加速处理单元,是指计算机系统中,中央处理器内集成了可以辅助传统中央处理器处理特殊类型计算任务的处理单元。这种设计可以提升中央处理器处理这些特殊类型计算任务的性能,这些特殊的计算任务可以是图形处理、矢量计算等等,辅助的处理单元一般是GPU,也可以是FPGA,或类似的可处理某种特殊计算任务的专用处理单元[6]。
GPU并行计算能力强大,但是因为GPU一般是作为与CPU相分离的、无关的部分通过PCI连接在一起,所以GPU的性能瓶颈总是在于CPU与GPU在PCI上的数据传输速度上[7]。AMD公司所设计的APU是将微处理器和GPU集成在一块芯片上,这种设计可以提升CPU和GPU之间的数据传送性能并且降低处理器芯片运作时的耗电量以及发热量[8]。
图6 APU的一般结构
Brazos是AMD公司为移动平台设计的APU架构,由“山猫”微处理器和集成图形显示核心以及高度集成的主板组成,其中计算处理单元、SIMD引擎以及视频解码器都通过高速总线相连。先进的图形处理能力也成了AMD节能型处理器与Intel不同的主要特点。在Brazos架构中,计算处理单元使用的是“山猫”微体系结构,该结构非常紧凑,使得整体生产成本降低[9]。
图7 Brazos某芯片图[11] 图8 Brazos体系结构[7]
三、ARM的big.LITTLE架构
big.LITTLE架构是ARM于2011年提出的异构计算架构,该架构通过使用ARM的高性能处理处理器和低功耗处理器的整合来完成高强度任务的同时,以最节省能源的方式完成低强度任务。该架构通过CCI-400来连接两类处理器的方式可以灵活地支持各种使用模型[10]。
在big.LITTLE架构中,CCI-400(Cache Coherent Interconnect)担任了连接高性能计算核心、低功耗计算核心、GPU、存储控制端口、系统端口等职责,GIC-400允许中断在不同计算核心,甚至是两类计算核心迁移。
图9 big.LITTLE的体系结构[8]
在big.LITTLE架构的任务迁移使用模型中,操作系统和应用程序只在高性能或低功耗处理器上运行,两者不会同时运行。该使用模型是DVFS(Dynamic Voltage and Frequency Scaling,动态电压和频率调节)的扩展,一旦低功耗的处理器在运行操作系统的时候达到其操作峰值且需要更高性能,那么任务迁移便被开启,操作系统和应用程序被移至高性能处理器。这种使用模型允许中低强度的应用程序在低功耗处理器上运行,得到更高的能源效率;而高强度的应用程序则运行在高性能处理器上。另外,通过减少处理器任务迁移时的状态数量,任务迁移的时间被缩短。
图10 big.LITTLE性能图[8]
在big.LITTLE架构的多处理使用模型中,高性能的处理器和低功耗的处理器将同时工作,这基本上也是一种异构计算。这种使用模型使得线程在最适合的处理器资源上运行。计算密集型的线程在高性能处理器上运行,而I/O型或用户不需要立刻得到结果的线程则在低功耗处理器上运行。
不同异构计算架构的比较
以上即为AMD、Intel以及ARM公司各自推出的移动平台上的异构计算架构,可以看到Intel与AMD的异构计算架构较为相似,而ARM则与两者皆不同。现在我们来比较一下这三种主流的异构技术及其产品,分析各自的优势和劣势。
表1显示的是本文介绍的三个厂商给出的异构计算架构以及其基本特点。任务迁移的方式、处理器的断电策略以及存储是否共享是三种架构的主要区别。虽然Intel和AMD的异构计算架构比较类似,但值得注意的是,ARM公司和AMD公司在今年的合作可能预示着AMD与ARM异构计算架构设计的融合,产生远优于Intel的异构计算架构。
表1 不同异构计算架构的比较
表2显示的是本文介绍的三种异构计算架构在移动平台上产品的性能参数。不难看出Intel的芯片功耗和发热较高,但性能也高,而AMD的芯片能耗低,但性能也较弱。由ARM设计,Samsung实现的Exynos 5400则由于还未上市,所得数据有待验证。另外从工艺来看Z-60落后Intel和Samsung整整一代,因此Z-60为代表的Brazos架构的性能也可能比我们想象的还要好。
表2 不同异构计算架构产品的比较
新异构计算架构
在比较完不同异构计算架构的最后,本文尝试给出一个融合不同异构计算架构优点的异构解决方案供大家借鉴参考。
通过前文,我们可以看到,不同的异构计算架构在移动平台上各有优劣,而应用其架构的产品更是性能不一,为简化讨论,我们在此只讨论异构计算架构本身,不涉及工艺等其他方面的问题。本文试图设计一种能融合各公司设计优点的异构架构来应用到平板等移动平台,我们希望它能将计算处理单元和图形处理单元集成在同一芯片上,有高效的任务调度能力,兼顾高性能和低功耗,最终满足移动平台用户的需求。
其实再回头研究三种架构会发现,Intel和AMD的架构是同种处理单元模块内部对称式的,而ARM的同种处理单元模块内部是非对称式的,即Intel和AMD的计算单元模块中的CPU都是相同的,而ARM则是不同的。本文认为可以综合两种做法的优点,取长补短,设计一款更优秀的移动平台上的异构计算架构。
新异构计算架构的特点包括以下几点:
一、图形处理单元和计算处理单元集成在同一芯片,并共享缓存;
二、不同微体系结构的计算处理单元集成在同一芯片(高性能与低功耗),空闲处理单元自动断电;
三、支持多处理单元计算,通过图形处理单元优化并行计算;
四、能进行计算任务的调度,按照一定策略进行任务迁移。
图11 本文设计的新异构计算架构
新计算架构结合了已有异构计算架构的优点,其关键是通过缓存的共享来提高任务迁移的速度,并且按照任务对计算性能的需求分配合适的计算处理单元。
当移动平台进行低强度运算,且其计算结果并不需要直接呈现给用户时,可以将高性能计算处理单元组断电,只依靠低功耗处理单元计算;当移动平台任务增加,超过低功耗计算处理单元组的能力时,则激活高性能处理单元,并进行任务迁移,将计算任务在两个计算处理单元组间负载均衡;当计算任务量大且任务可并行时,则可将任务分配给计算处理单元来运行,通过计算处理单元的并行性来提高运行效率。
总结
异构计算架构带来的发展机会越来越凸显,在移动平台中,单位能耗所提供的性能、可扩展的并行处理能力等都成为共同的焦点。CPU的潜力被发掘殆尽的情况下,我们自然会挖掘其他如适合并行计算的GPU等的计算单元的潜在性能。如今移动设备越来越流行,而降低功耗的需求越来越苛刻,那么在同等情况下的技术拓展就变得很重要,这也是异构技术逐渐走向前台的外在需求之一。
另外,以AMD为首的“异构系统架构基金会”也与今年六月份形成[11],包括 ARM、Imagination Technologies、 联发科和德州仪器等一众主流芯片厂商,此举将大大推进异构计算在芯片领域的发展,并与Intel公司成对立态势。我相信,异构计算技术以及异构计算架构在移动平台上的应用必将会在激烈竞争的市场中茁壮成长。
(本文数据均来源于网上。)
参考文献