众核发展趋势浅析

更新时间:2023-12-14 11:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

众核发展趋势浅析

顾名思义,众核(ManyCore)处理器比多核(MultiCore)处理器中的处理内核数量还要多,计算能力更强大,这得益于1965年Gordon Moore预测的Moore定律在延续。如果从wikipedia上搜索ManyCore,你会得到这样的介绍:“当前的软件结构可以在当前的多核结构上得到较好的扩展,但如果超过八个处理器核,当前软件结构的扩展能力将会很差。超过八个处理器核的设计就被称为‘众核’处理器。”

微软公司在2007年6月25日在美国西雅图召开了第一个以ManyCore为主题的Workshop,这是一个标志性的事件,与会者都是来自世界工业界的领袖和学术界的权威,讨论众核设计应如何开展。Intel正在研发的面向媒体应用领域的Larabee、IBM正在研发的面向科学计算领域的Cyclops、面向网络安全等领域的Tile64都是对众核设计的探索。微软公司于2007年11月发表了宣言《THE MANYCORE SHIFT: Microsoft Parallel Computing Initiative Ushers Computing into the Next Era》,宣布转入对众核系统软件的研究。可以看出,众核设计已经成为技术发展的趋势和学术研究的热点。

本文将浅显地回答四个问题,这是我们开展众核设计最关心的问题,即计算所为什么要做众核设计?众核设计的技术问题是什么?适合于众核的应用是什么?计算所在众核设计上开展了哪些工作? 一、计算所为什么要做众核?

计算所的传统优势在于以高性能计算为核心的芯片和系统设计,五十多年来几代人一直围绕这个领域辛勤耕耘,从成果到文化上都有了相当的积淀,特别是2000年后,成功研发的多款龙芯芯片更为我们在高性能计算核心技术上取得了实质性突破。众核设计恰恰可以增强我们在高性能计算领域的优势地位,以众核研究为基础的大型并行系统设计可以进一步巩固计算所在战略性、基础性、前瞻性的国立研究 所定位。

众核设计的核心目标就是充分开发片上高性能计算能力,这是高性能计算发展的必然趋势。以Intel公司为例,在其推出双核和四核通用处理器的同时,开发了峰值性能超过Tera Flops的Polaris和Larabee,使单芯片计算能力得到

几十倍的提升。虽然众核设计上的进步将有效推动我所在高性能计算领域的发展,但在众核设计的研究过程中,需要紧密围绕龙芯和曙光在产业应用中对此类众核高性能加速芯片的实际需求。

国内系统结构研究领域的各优秀研究团队对众核设计广泛关注,2008年3月27日,复旦大学同UIUC大学的非赢利组织Gelato承办了“Shanghai Many-Core Workshop”,国内的参与者包括计算所、清华大学、国防科大、江南所、HP中国、IBM中国、Intel中国等单位的超过一百名研究人员。可以看到,很多研究机构都在开展面向众核技术的研究工作,一场面向众核设计相关技术方向的研究竞争已经展开,从自然科学基金的项目申请上就可以清楚看到这个趋势,在2006年和2007年就有二十项左右与多核和众核相关研究的申请获得批准。 由此可见,无论从计算所的传统优势和计算所的定位,还是从技术发展趋势,以及从科研资源获取角度分析,尽快将众核研究推向深入都是势在必行。 二、众核设计的技术问题是什么?

众核研究是一项复杂的系统性研究,完全不能简单地理解为处理器核的堆砌,分析众核结构应当以看处理器结构图作为终点,而不是起点,首要关注的是隐藏在结构图后面系统化的设计思想。下面我们从三个层次进行分析,说明众核设计所涉及的关键技术。

众核设计的基础是摩尔定律的延续,也就是人类掌握的最先进的硅制造工艺的进步。制造工艺的进步带来了四个主要的变化:1. 集成度提高,2. 带宽受限,3. 功耗问题突出,4. 线延迟变长。这些芯片生产工艺变化直接引出了众核设计的关键问题。

首先,芯片集成度的提高是众核设计的基本条件,这使得更多的计算资源可以集成在一块芯片上,但这种集成却也带来了硬件资源管理的困难和对资源的竞争。如何容易地将计算任务进行分割,映射到众多处理器核上?众多处理器核如何分享片上有限的存储空间?如何让众多处理器核利用有限片上传输网络传递数据,而冲突最小?如何对片上众多资源进行测试和修复?

其次,芯片的访存带宽问题在众核设计中变得更为严峻,访存带宽的限制是众核发展的最大制约。以NVIDIA G8800 GTX为例,访存带宽为86.4GB/s,计算能力为588.8GFlops,每次计算需要2个4B宽数据,计算访存比约为55Flops/B,

Stanford大学设计的流处理器Merrimac的计算访存比为32 Flops/B,随着工艺的进步,这个比例还将增大,比例越大,就意味着可在此结构上取得接近峰值性能的应用算法越少。这直接引入了一系列问题,如何让众多处理器核有数据可算?如何更充分地利用片上有限存储空间的众核间共享,以避免片外访存?如何充分利用有限访存带宽,尽量让访存通道繁忙,并能优先满足处于关键路径处理器核的访存请求?

再有,虽然众核设计有助于提高芯片的能效(Power-Efficiency),如Intel的80核实验设计Polaris能效为16GFlops/Watt,而Intel传统超标量Clovertown设计的能效为0.35GFlops/Watt,但是不能忽视,由于众核芯片面积庞大,功耗问题依然突出。根据半导体国际工艺路线发展报告ITRS-2007的分析,在2018年,芯片的供电电压将为0.7v,而目前为1.1v,即使假设不提高设计主频,根据功耗计算公式cv2f,功耗降低仅为(1.1/0.7)2=2.5倍,但集成的晶体管数量却可以增加12倍以上,绝对功耗会有明显增加。如何在众核设计中提高能效?如何对众多计算资源进行调度管理才能最大限度降低众核设计的功耗?这些问题依然要在众核结构设计过程中寻找答案。

最后,线延迟变长使得在众核设计中进行集中控制变得困难,如何采用更分布式的方式完成结构设计?如何在分布的结构中实现共享数据的分发传播?如何在分布的结构中实现高效的核间互斥并发操作?

将上面根据工艺实现的变化带来的众核设计关键问题进行凝练,众核设计的主要研究内容包括并行编程模型、运行时系统、存储模型、通讯模型等。在对这些问题进行深入研究,对不同设计部分进行匹配权衡,最终凝练为完善的系统软件、运行时库,以及众核结构模型。众核结构模型只是整个系统的集中 体现。

众核设计是一种新型的并行计算形式,传统的基于SMP或集群的并行研究成果不能直接应用,必须进行重新评价。这个研究领域有待解决的问题很多,虽然目前世界上很多研究人员都参与到该领域的研究中,但还没有找到系统解决问题的好方法,而且未来五年,众核设计会一直是研究的热点。 三、适合于众核的应用是什么?

首先罗列了一下已有众核芯片自称适用的应用领域,包括生物计算、网络安

全、虚拟现实、信号处理(GSM、MPEG-4、压缩、滤波等)、国土安全(加密解密、模式匹配、搜索等)、网络包处理、生物特征识别、图形处理、移动游戏、服务器组件和机器人学习等。从上面的列举可以看出,适于众核设计的应用很广泛,下面我们更技术化地从两个层次进行简要分析,一是应用算法本身的特性,一是结合众核处理器结构,看何种应用更适合特定众核设计,应用的特性如何同结构结合。

应用算法本身特性主要体现在三个方面,即应用算法是否有足够的并行度,计算和访存的比例是否合适,是否强调单线程速度。如果应用算法本身难于进行并行划分,或者非常强调单线程速度,那就不适合在众核设计上进行并行化,而更适于在指令集并行性开发更好的超标量处理器上执行;如果应用算法对计算能力的需求不高,而数据处理量很大,那也不适合在众核上进行加速,因为目前众核设计最大的限制就是访存带宽。假如应用算法在这三个方面都是适合的,那就应该考虑用众核设计来加速此应用。

接下来,就要结合众核处理器的结构特点来确定是否与应用匹配,主要考虑两个方面。一方面是结构上是否支持高效的片上同步和高效的线程管理机制,这决定着此众核设计能开发何种粒度的并行性。如果线程管理的开销很小,而同步效率很高,在不同处理器核上运行的程序段很容易在片上进行信息的共享与交换,那么就能开发程序中的细粒度并行,这是众核设计真正的优势,否则如果同步操作都需要经过内存,那么同传统的SMP设计无异,只适合粗粒度并行。比如,NVIDIA的G8800 GTX设计,虽然拥有588.8GFlops的单精度浮点峰值处理能力,但片上各节点间不能进行通讯,如果通讯必须通过内存,这就使应用范围受到了限制,若程序间有较多的相关,就无法得到良好加速效果。

另一方面是结构上是否足够灵活以支持复杂算法的编程实现,如果结构上只支持统一控制的向量运算,那么此结构只适合于规则的运算,例如GRAPE-DR这样的设计,但这样的设计方式可以最大限度地提高处理能力,而且设计相对简单;如果结构上具有灵活性,可以支持非规则计算的计算特征,那么应用范围就更广泛,但需要尽量消除因增加灵活性而带来的开销。举例来说,像动态规划和介度中心计算,由于其依赖关系距离随着计算不断变化,其计算访存都不规整,因此只有在众核结构上支持类似线程管理、跳转执行、快速同步等机制后才能得到较

好的加速效果。如果设计采用的是集中控制的方式,甚至片上存储采用的是显示编址的存储方式,那么算法在这样的结构上虽然可以做到性能可控,但编程的难度会相当大,导致设计的应用推广受限,如IBM的Cell和Cyclops设计。 综上所述,当判断一个应用是否适合众核设计时,首先要考虑算法是否可并行化、计算访存比、是否强调单线程性能,如果这些条件满足,可以结合特定众核结构分析算法可并行化的并行粒度和非规则属性,最终判断算法是否可以在特定众核结构上得到很好的加速。

四、计算所在众核设计上开展了哪些工作?

我所非常重视众核设计的研究工作。前瞻研究中心努力将众核设计同生物计算等应用研究相结合,体现交叉学科优势,已经取得了一定成效。系统结构重点实验室也将多核和众核设计规划为未来五年的研究重点,努力同编译技术、操作系统研究、高可靠性和可测试性研究等工作相结合,在系统上取得群体优势。众核研究在项目上也得到了有力支持,李国杰所长负责的973重大专项项目和刘志勇研究员负责的基金重点项目都是围绕多核和众多核研究的项目,同时我所在此研究领域上还获得了一些863探索、基金面上项目和国际合作项目的支持。 目前,我们所在众核研究上已经取得了一定的进展。在理论方面,在存储模型一致性上证明了新的结论;在结构方面,设计了更高效的流处理众核设计和更灵活的GodsonT众核设计,在片上同步机制、数据共享和分配策略、可配置属性上都采用了新的结构设计方法; 在运行时系统软件上,结合处理器结构设计了GodRun运行时海量线程管理系统,并将学术界很有影响的CILK运行时系统移植到了我们的众核平台上;在应用方面,结合计算所在应用研究上的积累,探索了将生物计算和传统高性能科学计算算法在众核设计上的尝试;在实验方法上,已经完成大规模FPGA系统的构建,并完成了可扩展FPGA众核模拟系统的方案设计和专利提炼。相信在未来两年经过踏实工作,会取得更有显效的成果。 技术变革带来了创新的机会,但众核设计的技术路线仍不明朗,有很多方法需要尝试,有很多设计思想有待验证,但我们只有始终秉承着“求实、求实、求实、创新”的龙芯精神,坚持努力,才能在技术变革中抓住机会,有所作为。

本文来源:https://www.bwwdw.com/article/fl15.html

Top