面向应用可定制的处理器

2013-01-31 04:31张悠慧
中国教育网络 2013年11期
关键词:体系结构超级计算机功耗

文/张悠慧

定制化设计成本较高,如果无法获得较大使用量就不能真正推广。因此一般认为超算领域以及大规模云计算模式将是定制化设计的用武之地。

处理器结构的多核化发展已经成为微体系结构发展的主要趋势。这一多核化甚至众核化的趋势实际上是一种“不得已的选择”。我们知道,时至今日,芯片的集成度还在以摩尔定律的速度增长,但受制于功耗、互连延迟等的限制难以设计成为一整个“大而复杂”的处理器,所以只能采用“分而治之”的办法——在一个处理器中集成多个“小而简单”的处理器核。这样就没有全局的连线延迟,处理器核的验证也相对简单可行。

但从应用角度来看,如何利用这种多核/众核结构成为一个系统性的难题。并行化程序面临编程难度大、调试困难等因素,在短期看不到有效的解决途径。而且许多应用天然缺乏并行性,无法直接从中获益。因此,将集成度的增长转换为处理器能力的增长遇到了困难,通用处理器的片上资源在很大程度上无法得到有效利用。比如,美国劳伦斯实验室(伯克利)的分析数据表明:300余条X86指令中,大致只有80余条是科学计算所常用的。进一步研究表明,不同类型应用对于处理器微体系结构的需求不同,即通用处理器在效能上难以“通用”。

这就导致计算机基础建设设施广泛存在规模过大、功耗过高、可靠性较低等问题。预计到2015年,超算系统峰值性能将超过100PFlops,2018 年将跨入E量级时代。然而,随着系统峰值性能的提升,系统功耗将成为制约系统发展的最主要问题,预计未来E级系统功耗至少在数十乃至上百MW 量级上,将直接影响系统运行的可靠性和运行成本。

因此,在通过工艺发展向片内集成更高效资源的同时,进行体系结构设计方法上的改进与创新也是必要途径,面向应用的定制处理器设计就是其中的关键技术。

定制处理器的概念

定制计算器(或系统)指的是针对某一特定应用或应用领域,在硬件架构(包括指令集)和软件支持方面进行了深度优化与定制化设计的处理器(或系统),目标主要是获得较高的应用性能与性能功耗比。与之相对的,通用处理器之所以通用是因为其被广泛应用在完全不同的领域,“上”至超级计算机,“下”至桌面应用,比如较新的Intel IVY Bridge核心架构就被同时应用在服务器平台、桌面平台与移动平台上。这样势必会带来前面所提到的问题。

通用处理器这样做有其历史发展的必然性,处理器厂商需要维护兼容性来支持已有的应用资源,进而保持市场地位。而定制化设计则反其道而行之——不是强调兼容性,而是以应用为中心,由硬件去适应软件或者软件的计算模式。这一做法也有其弊端:定制化设计往往成本较高,如果没有较大使用量就无法真正推广。这就进一步牵涉到定制化设计的分类及其技术途径。

技术途径

广义上讲,定制处理器(系统)包括应用定制集成电路(ASIC, Application-Specific Integrated Circuits)与应用领域定制处理器(ADSP , Application Domain Specific Processor)两类。由于前者过于强调专用性,限制了这一类设计的实际应用,因此本文主要集中于后者。后者在应用层面主要通过指令集的扩展来体现硬件层面的定制功能,一个简单例子就是针对某种使用频繁的功能,设计对应的硬件指令,使得应用可以以直接执行指令的方式来完成功能,其效率显著高于基于通用指令的软件执行方式。

定制化设计的最关键问题是对于应用的理解与分析。在此基础上后续的模拟仿真、具体设计方法等才有立足之地。因此,定制化设计的通用技术包括如下流程。

应用分析

通过核心算法分析,得到应用的通信、计算和访存复杂度,进而获得其通信/访存模式、性能热点以及可扩展性。同时进行指令级并行性分析与优化,为处理器定制打下基础。

扩展指令的发现与生成

通常使用指令模板来寻找应用程序代码中的潜在候选指令。应用程序的执行过程通常可以以图的方式描述,如数据流图、控制流图;指令模板则通常表示为子图的形式。这样,基于指令模板的扩展指令生成问题就能转换为图的同构问题。然后再通过开销分析对所选指令进行约束。

扩展功能模块的设计与耦合

扩展指令的实现对硬件架构也提出了新的要求。传统的处理器架构针对通用计算设计,结构复杂,功耗、面积开销大。完全定制的专用处理器结构则存在结构可扩展性差的缺点。因此,需要研究面向指令集扩展的可扩展处理器架构。

高层次建模/模拟技术

定制设计需要尽快尽早的进行应用性能、功耗与处理器资源消耗评估,以检验是否达到设计目标。因此需要开展高效的性能模拟技术以及高层次的芯片面积/功耗建模研究,以便在定制设计中反复快速的进行优化,直至达到目标。

发展现状

工业界有不少定制处理器应用实例。如Tensilica公司的Xtensa系列可定制处理器、微软的 eMIPS 和 Xilinx 的 MicroBlaze处理器。在超算领域,已经有采用了ASIC技术与/或Xtensa可定制处理器的超级计算机,如Anton超级计算机与GreenFlash。Anton是美国纽约D.E.Shaw实验室研制的分子动力学模拟定制系统,由针对应用定制的ASIC加速部件(包括Tensilica的嵌入式可定制处理器内核)以及专门设计的3D-torus互连网络构成。Green Flash是美国劳伦斯国家实验室(伯克利)研制的面向全球大气预报的定制结构超级计算机原型,采用Tensilica定制处理器以及互连结构,对它们进行裁剪以适用于全球大气变化预报应用,预计其每个处理器核的峰值性能是2.7Gflops,如果总体性能为10P的话,系统将拥有12万个处理器,功耗为3MW,均大大低于采用Intel或者AMD通用处理器的规模或者功耗。

学术界对可扩展的处理器架构也展开了诸多研究,部分举例如下:

1.美国UCLA的Customizable Domain-Specific Computing研究中心自2010年起开始研究通用的可定制设计平台。

2.英国帝国理工的Wayne Luk 教授研究组开展了一系列的定制指令处理器研究,其针对归纳逻辑程序设计(inductive logic programming)方面的定制化设计的运算性能是P4处理器的15倍。

3.Molen 是由核心通用处理器和可重构协处理器组成。Molen 的主要贡献是解决了指令扩展导致的opcode 空间爆炸问题和可重构器件带宽限制问题。

4.DISC 是一种采用动态部分可重构机制的指令集扩展处理器。DISC 将每个指令实现成相互独立的电路模块,通过类似页换入换出的方式,根据应用需要,动态地加载或卸载指令功能模块。

清华大学在国内较早开展了定制处理器研究,提出以通用的微体系结构扩展支持特定应用这一技术路线,并选取“全球气候变化数值模拟”这一代表性关键应用集为目标,实现了可定制处理器FPGA原型,仿真结果表明处理器的应用性能功耗比是采用同工艺Intel至强处理器的一个数量级以上,且面积仅为几十分之一。

应用前景

定制化设计成本较高,如果无法获得较大使用量就不能真正推广。因此一般认为超算领域以及大规模云计算模式将是定制化设计的用武之地。

第一,云计算模式下,数据中心为差异化的定制处理器提供了应用空间。

在云计算模式下,网络的快速发展以及各种网络终端的引入使得信息处理的界限变得模糊——通过大型数据中心提供IT基础设施、存储/计算资源以及应用服务成为趋势,个人可以通过多种设备来访问、处理其感兴趣的数据与服务。这样,未来的数据中心可能将承担大量需求各异的数据处理任务,包括文本分析搜索、媒体处理、数据统计、事务处理等。针对这些需求各异的应用,可以设计分别为其定制的处理器结构。同时,数据中心内所需的处理器数目巨大,这就为分摊定制设计成本提供了基础。

第二,在超级计算领域定制处理器将快速发展。

能充分利用超算系统计算能力的应用数目是非常有限的,在很多专业场合,超级计算机在其生命周期内往往只运行有限的几种科学计算应用。所以针对主要目标应用(或应用集)。采用应用定制的方法进行处理器结构设计能显著提升超算系统的效率。而且超算系统往往拥有数十万个(或者更多)的处理器核,这为定制设计的经济有效应用提供了前提条件。比如,美国能源部2013年上半年开展 Codesign Project,以科学计算需求来指导体系结构与系统软件设计,目前计划建设三个超算中心,分别针对燃烧(Combustion)模拟、材料模拟与核能计算。

目前,《国家重大科技基础设施建设中长期规划》中的“地球系统数值模拟器”正处于建设方案研讨与申请阶段,有关申请方提出了“应用定制体系结构”方案,这说明国内的超级计算设施建设也将逐步调整指导思想,将系统的应用效能作为关键指标。

应用为“王”,掌握需求、理解需求、服务需求是任何技术、产品研发具有持久生命力的根本,而且对于国内应用需求的理解与掌握不是任何一家国外处理器设计厂商所能替代的。从根本上讲,理解具体的应用需求,结合国内相关科研院所在处理器设计方面的良好积累,围绕应用进行处理器定制的指导思路将是适合我国国情的、能发挥后发优势的发展道路。

猜你喜欢
体系结构超级计算机功耗
超级计算机
基于任务映射的暗硅芯片功耗预算方法
超级计算机及其在航空航天领域中的应用
足球机器人并行行为组合控制体系结构分析
每秒100亿亿次 中国超级计算机
揭开GPU功耗的面纱
数字电路功耗的分析及优化
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计
一种面向星载计算机的功能级功耗估计方法