异构并行系统统一编程环境关键技术研究

来源 :国防科学技术大学 | 被引量 : 0次 | 上传用户:l7610237
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本文认为为异构并行系统提供统一的编程环境是提高软件生产率的必然选择。我们将异构系统分为两类来研究统一编程环境设计中的关键问题。第一类是系统中异构的计算部件都可以同样的方式进行编程。由于异构编程的困难,开发人员提出了Open CL编程框架,尝试统一不同类型计算设备的编程方法。目前Open CL已得到多个芯片生产厂商的普遍支持,包括Intel、AMD、NVIDIA、Apple等。虽然用户可以使用Open CL对不同计算部件进行编程,但用户仍然需要通过Open CL分别的控制每个计算设备,同时Open CL虽然具备功能可移植性,性能可移植性尚有很大欠缺。本文前三个研究内容围绕该类型系统的这些问题展开。1.研究将多个Open CL计算设备虚拟为单个Open CL计算设备。为了简化异构体系结构的并行编程,我们提出和实现了在概念上将多个异构设备合并为一个的高级Open CL运行时VHCD。同时,我们采用了基于离线Profiling的技术来进行设备间负载均衡,并设计了用于定义Work-group数据访问范围的设备无关的编程制导语句。在VHCD的支持下,为单个Open CL设备设计的程序在添加少量制导语句以后就可以在任意的异构并行计算平台上高效的运行。VHCD运行时通过虚拟Cache管理来最小主机设备间的数据传输以确保性能。我们通过一组Open CL测试程序对VHCD运行时进行了评估,结果表明该运行时在不同配置的异构系统上均能获得很好的性能。2.研究自动细粒度管理多个Open CL计算设备间的虚拟共享存储。我们提出了分布式共享Open CL存储(Distributed Shared Open CL Memory,DSOM),来支持多个Open CL设备的共享存储。DSOM可以使用户从繁琐的设备间数据传输控制中解脱出来。DSOM在系统主存中分配共享Buffer,并将设备存储看做软件管理的虚拟Cache Buffer。为了支持细粒度共享Buffer管理,我们在DSOM中设计了一个Kernel解析器来进行Buffer访问范围分析。DSOM采用基本的修改、共享、无效的Cache一致性管理协议来管理Cache Buffer之间的一致性。同时我们提出了一种自适应的更新策略来最小化设备间数据传输,同时尽早的启动必需的数据传输操作。该策略可以使得数据传输和Kernel执行尽可能的重叠。虽然DSOM以软件运行时方式实现,但是它是以符合Open CL标准的运行时方式实现,而不会引入额外的编程接口。这使得DSOM与以往的软件运行时分布式共享存储系统相比对用户更加友好。DSOM使用一种编译器辅助的方式来获取用户对共享Buffer的访问范围。大部分工作都通过静态分析的方式完成,降低了运行时时间开销。我们选择了大量的测试程序来验证DSOM运行时访存模式分析方法的实用性,结果表明该方法在绝大多数情况下均可以高效工作。同时我们选择了一组测试程序对DSOM运行时的性能进行了评估,实验结果也表明性能逼近手写优化代码的性能。3.研究Open CL程序的性能可移植性问题。尽管Open CL具备很好的功能可移植性,但是性能可移植性却较差。实现一个在任意平台上都具备良好性能可移植性的Open CL运行时是非常困难的,因为不同硬件体系结构差异非常大。作为提高性能可移植性的一个尝试,我们提出了NOCL。NOCL是一个面向CPU的Open CL运行时实现,它的特点是可以高效的执行面向GPU优化的Open CL程序。在CPU上调度大量的Work-item会耗费大量时间开销,而为了维护Work-item对本地数组访问的一致性,Kernel内需要大量同步,更加使得调度开销的问题恶化。本文基于本地数组在Kernel中总是作为临时变量的观察,尝试将所有本地数组访问都替换为相应的全局数组访问。NOCL在进行依赖性检测,确认Work-item之间不存在依赖关系的前提下,自动消除Kernel中的Barrier以进行激进的Work-item串行化。在串行化以后,NOCL将Kernel的每个Work-group看做一个普通的三重循环,并通过自动向量化和Cache管理的方法来对该循环进行优化。我们的实验表明在执行面向GPU优化的Open CL程序时,与Intel Open CL CPU运行时相比,NOCL在CPU上获得了相当大的性能提升。本文研究的第二类系统是指不同计算部件无法以相同方式编程时。虽然Open CL试图统一所有类型计算部件的编程方法,但总有新型或是特殊类型的硬件无法使用Open CL进行编程,典型的就是FPGA。由于硬件逻辑设计的复杂度非常高,目前使用高级语言对FPGA进行编程仍然难以获得理想的性能,所以常常仍然需要使用硬件描述语言进行应用开发。在由FPGA和CPU构成的可重构计算系统中,软硬件协同是一个困扰应用开发人员的难题,因为这两者采用完全不同的方式编程。本文最后一个研究内容探讨了如何在操作系统层面为由CPU和FPGA构成的可重构计算系统的应用开发提供支持,面向用户提供软硬件统一的编程环境。1.基于BORPH的硬件进程概念,实现软硬件进程高效率的进程间通信机制。我们将BORPH移植到了普通用户最易获得的由FPGA板和通用PC构成的可重构计算平台上,设计了BORPH的扩展系统BORPH-N。BORPH-N对硬件进程概念进行了扩展,降低了硬件进程设计难度。硬件进程设计难度的降低体现在两个方面。一方面是与系统交互部分通过软件接口而不是硬件接口,编写软件程序来调用系统接口,显然比设计硬件逻辑来连接硬件接口更为容易。另一方面是功能逻辑部分,由于接口为标准FPGA片上总线接口,有大量厂商提供的库支持方便了设计。同时基于独立执行的基本思想,BORPH-N为硬件进程提供基于共享存储、符合Unix语义的高性能进程间通信支持:共享存储和信号量。基于独立执行基本思路的优化策略,大大提高了进程间通信的效率,该系统可用于支持可重构计算平台高级编程模型和运行时系统的设计。
其他文献
着重介绍工业管道的高压水射流清洗的主要参数及部分工业管道的清洗实例,藉以说明高压水射流清洗是我国工业清洗的重要组成部分。
本文针对高校人才培养质量评价的模糊特性,以西北工业大学为例,探索人才培养质量的社会评价体系构建问题。提出了基于层次分析法的模糊综合评判模型和评判方法。并总结应用效
信息技术的迅猛发展将人们带入数字化时代,并逐渐影响到新闻传播模式。作为传统的信息载体,报纸新闻的主要内容是新闻报道和时事评论。在数字化时代背景下,报纸新闻编辑内容
针对网络流行语现象,本文主要从模因论视角探究“一言不合就XX”表达式的起源、复制和传播,探讨其成为成功模因的理据,揭示“一言不合就XX”发展变化的规律,以期为洞悉社会文化和
带约束的各类曲面逆向设计和带约束的曲线降多阶逼近是计算机辅助几何设计(CAGD)领域中具有重要研究价值的两类基本问题.CAGD中绝大数操作都是以曲线曲面为对象的,而无论在工
随着城市开发,人类活动不断影响着环境,绿化面积减少,不透水地面面积增加,市政管网设施陈旧,造成暴雨时期内涝现象严重。基于改善雨水排放条件,减小市政排水管网负担,结合雨水综合利
大学英语四六级语言测试对英语语言教学客观上起着一种指挥棒的作用,正确理解和分析四六级测试成绩,发挥测试的反拨作用,是促进大学英语教学质量上新台阶的重要措施之一,无疑
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
国有企业是我国国民经济的重要支柱,为我国经济建设发展做出了重大贡献。改革开放以来,国有企业改革不断深化推进,混合所有制改革成效显著。特别是在2013年十八届三中全会上提出“混合所有制经济是中国基本经济制度的重要实现形式”,将混合所有制改革作为现阶段国企改革的重要发展方向,与此同时政府也对现阶段混改下的国有企业提出了更高的发展要求。2013年之前的国企改革大多是股份制改革,通过股权上的混合来达成激发
权力清单制度是理顺及构建政府、市场、社会三者之间新型关系的有力工具,是推进国家治理体系和治理能力现代化的制度性回应,而现代医院管理制度的核心问题恰是符合社会主义市