As the microprocessor industry evolves towards multi/many-core architectures, the challenge in utilizing the tremendous computing power and obtaining acceptable performance will grow. Application-specific compiler optimizations are known to deliver high performance due to domain experts.tuning experience on modern processors. However,such optimization opportunities are beyond the capability of traditional general-purpose compilers..This proposal proposes a new semantic-pattern-making compilation methodology, which represents an encouraging direction for domain experts' experience and knowledge.to be integrated into general-purpose compilers. The proposal will makes the following research:.1. Analyze the causes behind the huge performance gap between compiler-generated and hand-tuned code on multi/many-core platforms, and argued for the necessity of infusing domain experts' knowledge into compilers..2. Propose a new semantic-pattern-making compilation methodology, which involves domain experts, compiler developers, and programmers into the future compiler development. Compiler developers summarize domain experts.tuning experience into semantic patterns in the form of directives. Consequently, programmers will annotate a program using these directives and guide the compiler to apply pattern-specific optimization schemes..3. Propose a new compiler framework to support the new methodology, called EPOD (Extendable Pattern-Oriented Optimization Directives), which provides EPOD pragma for programmers to specify semantic patterns, and provides OPI (Optimization Programming Interface) and EPOD script for compiler developers to define pattern-specific optimization schemes..4. Propose an OA (Optimization Adaptor) framework to leverage similarity between applications and enable tuning experiences to be reused...Based on the research in this proposal, we intend to make out a new compilation methodology which can continously integrate domain experts' knowledge and experience. Eventually, the tremendous computing power of multi/many-core processors can be ultilized in a more efficient way.
传统编译方法由于缺少对程序高层抽象语义的理解,因此丧失了很多优化机会,导致编译器取得的性能远远落后于领域专家,这一情况在多核、众核平台上尤为突出。本项目以此为出发点,研究如何从编译方法学本身取得突破,解决传统编译方法在适配性、成长性、可控性方面的局限性,构建一个能够持续集成领域专家经验的并行编译系统。研究内容包括:1.针对适配性,研究领域专家优化经验的的形式化表达方法。该方法以程序高层抽象语义作为载体,研究语义的表达机制及向编译器的传递机制;2.针对成长性,研究可扩展语义的并行编译框架。该框架以程序语义作为优化策略的指导,研究自动根据语义为其选择最匹配编译优化策略的方法;3.针对可控性,研究细粒度的优化策略调整机制。利用组件化松耦合的优化模块技术,研究无缝的中间表示衔接方法以及策略构建时的正确性和效率保证方法。通过本项目的研究,提出一种新的领域专家协同的并行编译方法,提高硬件资源的利用率。
传统编译方法由于缺少对程序高层抽象语义的理解,因此丧失了很多优化机会,导致编译器取得的性能远远落后于领域专家,这一情况在多核、众核平台上尤为突出。本项目以此为出发点,研究如何从编译方法学本身取得突破,解决传统编译方法在适配性、成长性、可控性方面的局限性,构建一个能够持续集成领域专家经验的并行编译系统。研究内容包括:1.针对适配性,研究领域专家优化经验的的形式化表达方法。该方法以程序高层抽象语义作为载体,研究语义的表达机制及向编译器的传递机制;2.针对成长性,研究可扩展语义的并行编译框架。该框架以程序语义作为优化策略的指导,研究自动根据语义为其选择最匹配编译优化策略的方法;3.针对可控性,研究细粒度的优化策略调整机制。利用组件化松耦合的优化模块技术,研究无缝的中间表示衔接方法以及策略构建时的正确性和效率保证方法。通过本项目的研究,提出一种新的领域专家协同的并行编译方法,提高硬件资源的利用率。项目执行顺利,完成了预期的研究目标,取得的研究成果包括:1.提出利用语义作为领域专家和编译协同的桥梁,并据此构建编译基础设施EPOD;2.提出利用语义间的相似性来快速的构建新的语义,取得良好的可扩展性;3.提出一种利用符号执行来自动识别语义模式的方法;4.提出松散耦合的优化组件池和基于模式匹配的源源翻译技术来实现语义到优化的映射;5.提出数据中心中有co-runner的情况下如何预测核间的干扰,为将该方法推广到数据中心探明了道路。项目资助下在国内外著名会议和期刊上发表论文17篇,包括领域国际著名会议PACT2013、CGO2013、ISCA2014、ICS2015、CF2014等,国际著名期刊TC、TPDS、TACO等,国内核心期刊计算机学报、软件学报、计算机研究与发展等。申请专利4项,并基于Open64构建EPOD原型系统。通过本项目的研究,从一定程度上解决了传统编译方法在适配性、成长性和可控性方面的局限性。
{{i.achievement_title}}
数据更新时间:2023-05-31
涡度相关技术及其在陆地生态系统通量研究中的应用
硬件木马:关键问题研究进展及新动向
端壁抽吸控制下攻角对压气机叶栅叶尖 泄漏流动的影响
基于公众情感倾向的主题公园评价研究——以哈尔滨市伏尔加庄园为例
栓接U肋钢箱梁考虑对接偏差的疲劳性能及改进方法研究
可执行代码的指令级并行编译方法研究
并行化编译与并行程序排错
基于OpenMP的多范例、多粒度并行模型及并行编译优化
并行化编译关键技术的研究与开发