当前位置:主页 > 科技论文 > 软件论文 >

基于峰值架构的跨平台编译器分析优化技术研究

发布时间:2021-07-28 12:00
  近年来,由于国内外半导体行业的发展,国内在芯片领域上的发展方兴未艾。因为硬件技术的蓬勃发展,传统芯片和人工智能芯片的种类丰富多彩,传统编译器已向定制化编译器发展。编译器是计算机平台与应用程序之间的桥梁,编译器依据机器平台的参数信息将应用程序源码正确且高效地编译转换成为可执行程序。在编译过程中,常常会叠加不同的优化选项对应用程序做不同的优化处理。编译器的优化能力受机器平台参数和自身编译器架构特征的影响。在编译器优化工作中,以编译器与机器平台形成的架构组合为分析的基础对象。由于编译器优化工作的难度,在以往工作中常常弱化参照架构组合的选择。但只有多架构组合情况下才能为目标编译器优化提供最大可能的性能提升空间。但是增加架构组合数量,往往会使测试任务量大、分析数据量多、优化工作难。为此本文提出了一种基于峰值架构的跨平台编译器分析技术,以此技术减轻编译器性能分析的工作量,减小编译器优化的工作难度。本论文的主要研究工作概括为以下几个部分:(1)提出基于峰值架构的跨平台编译器分析优化技术。该技术通过二维动态测试、峰值架构分析、粗粒度优势优化定位和细粒度核心差异化分析四个步骤详细分析目标编译器与参照编译... 

【文章来源】:西华师范大学四川省

【文章页数】:58 页

【学位级别】:硕士

【部分图文】:

基于峰值架构的跨平台编译器分析优化技术研究


多核处理器架构图

架构图,编译器,平台,架构


焦于编译器自身。现有主流分析方法通过专注于某一款高性能编译器来减轻分析压力。业界主流芯片厂商均提供了适合自己芯片的商用高性能编译器。如Intel公司所研发的icc编译器以及AMD公司所研发的aocc编译器均是这些尖端企业为自己的处理器产品打造的高性能、高标准的编译器。它们是自己芯片架构的最佳组合,同时它们也给业界同行提供了极佳的参照机会。例如基于安腾处理器的ORC编译器将同期的商用编译器ecc(icc编译器的前身)与X86平台作为参照编译器[11],基于MIPS架构的龙芯编译器也将同期的icc编译器作为参照编译器。图1-2Intel平台和AMD平台上SPECCPU2017定点测试Fig.1-2ThetestingofSPECspeed2017IntegerbenchmarksonIntelandAMDplatforms因此在以往编译器优化工作中,常常不得已选择弱化架构组合方案,因为无法承受跨架构组合所引发的庞大的人工分析开销。公式(1-1)对跨架构编译器分析的时间成本进行了估算。结合平台因素的编译器分析需在平台(platforms)、编译器(compilers)以及性能分析选项(options)、测试集和测试时间(runtime)之间建立关系。其中,性能分析选项往往是引爆性能测试与分析的主因,通用编译器的优化模块多达数百种[5],由此衍生出的性能分析的时间成本和复杂度是难以估量。如在Intel机器平台对gcc和icc编译器进行4种常用选项内联(inline)、O2、O3、性能分析引导优化(profiling)等分析,需要至少16(24)组实验,每组SPECCPU2017完整测试(20个测试用例)需要至少12个小时,这组实验就需要至少16

编译器,目标机,预取,平台


第1章前言5优化选项,即影响测试用例性能的关键优化选项;最后通过人工分析,借助编译分析工具线性对比目标编译器与参照编译器对测试用例源码编译出的中间文件或最终优化之后的汇编码指令文件,细粒度分析出核心的差异化,并提供切实可行的优化方案,最终将优化实施于目标编译器上,使其获得实质的性能提升。在理想性能区间的指引下,PFCA最终会使目标编译器获益于更多架构组合,逐步缩小与理想性能区间的差距。图1-3Intel平台上gcc、icc、aocc峰值测试Fig.1-3Thepeaktestingofthegcc、iccandaocccompilersontheIntelplatforms依据PFCA方法理论知识与实际编译器分析优化相结合,最终在目标机器平台上为目标编译器提供切实可行的优化方向,并实现其中一个预取优化方向点。预取优化(PrefetchOptimization)从实现方式上可以分为硬件预取和软件预取,从功能方式上主要分为指令预取和数据预取[12]。影响预取优化的关键因素是发生预取的时间点和预取距离,做到及时、有效、低开销是预取优化的目标。1.3本文主要贡献根据上文所述的主要研究内容,本文的主要创新点及贡献包括如下几点:(1)提出一种基于优势选择的跨架构分析技术PFCA,它可以在多平台与多编译器构成的多架构组合下对编译优化技术进行深入分析。(2)提出一种基于理想性能区间指导的性能分析方法,它通过对多架构组合下的峰值性能进行汇集,峰值架构的数据与目标编译器数据之间的差距构成理想性能差,代表了一个目标编译器切实可行的提升空间。(3)为目标平台上的目标编译器提供了多个准确可行的优化方向,并成功提升了其中一个预取优化方向点的性能。

【参考文献】:
期刊论文
[1]面向神威·太湖之光的国产异构众核处理器OpenCL编译系统[J]. 伍明川,黄磊,刘颖,何先波,冯晓兵.  计算机学报. 2018(10)
[2]GCC编译器中循环数组预取优化的实现及效果[J]. 董钰山,李春江,徐颖.  计算机工程与应用. 2016(06)
[3]面向媒体处理器可重定目标编译器的代码生成[J]. 琚小明,张召,史册.  计算机工程. 2009(11)
[4]基于GCC的抽象语法树对C++源程序结构的分析[J]. 王相懂,张毅坤.  计算机工程与应用. 2006(23)
[5]基于GCC的交叉编译器研究与开发[J]. 冯钢,郑扣根.  计算机工程与设计. 2004(11)
[6]动态编译技术研究[J]. 崔慧敏,戴桂兰,王生原,张素琴.  计算机科学. 2004(07)
[7]一个重建GCC抽象语法树的方法[J]. 刘文伟,刘坚.  计算机工程与应用. 2004(18)
[8]GCC的中间语言及后端信息的转换[J]. 任珊虹,赵克佳,赵雄芳.  计算机工程与科学. 1995(02)

硕士论文
[1]基于编译实现微线程的故障检测机制关键技术研究[D]. 赵千千.哈尔滨工业大学 2012



本文编号:3307876

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3307876.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户77772***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com