论文部分内容阅读
在计算机芯片飞速发展的同时,计算机软件性能成为计算机系统的重要短板,在计算机科学进入多核/众核时代之后,随着片上并行度和复杂度的增加,这一问题变得更加严峻,如何将芯片潜力转换为软件效率,是编译研究人员亟待解决的问题。
传统的编译方法出于通用性的考虑,无法为应用程序定制优化策略,因此远远不能满足用户对多核/众核平台的性能预期。与此同时,领域专家程序员在针对特定程序挖掘芯片潜能方面积累了丰富的经验,这些经验成为编译开发人员不可忽视的性能来源。然而,传统编译方法由于受代价模型的限制,无法将这些经验持续的集成在编译器中。因此,本文针对这一现状,提出一种新的领域专家协同的编译方法,以解决传统方法中的适配性、成长性、可控性问题。
本文的主要成果和创新性贡献如下:
在实验的基础上,深入详细的分析了在多核/众核平台上编译器取得的性能远远落后于领域专家优化效果的现象,指出了编译器性能损失的深层次原因。
提出领域专家协同的“语义模式构建”编译方法,由编译开发人员使用语义模式构建接口来持续的将领域专家的经验集成在通用编译器中,并由大众应用程序员通过语义表达机制来引导编译器针对不同的语义模式实施不同的优化策略。
提出一个支持上述方法的编译框架EPOD(ExtendablePattern-OrientedOptimizationDirectives),以两种基于不同中间表示的优化组件池为基础,设计了新编译方法中关键的语义表达机制(EPOD制导)和语义构建机制(优化编程接口和EPOD脚本)。
实现了一个EPOD的原型系统,从科学计算领域提取出了5个抽象的语义并集成在EPOD中。在三个有代表性的多核/众核平台上对EPOD方法进行了评测,实验表明EPOD能够达到领域专家通过精细调优才能取得的峰值性能。与Intel多核平台上的商用编译器相比,这五个语义能够分别获得平均2.37倍、5.25倍、143.85倍、1.35倍和1.77倍的性能提升。
利用语义之间存在相似性这一特点,提出一种“优化适配器”OA(OptimizationAdaptor)的理念和支撑框架,从而进一步改善新编译方法的成长性。实验表明,由于适配器编译理念的加入,OA能够取得比厂商提供的数学库好得多的性能(在三个NVIDIAGPU平台上最高的性能提升分别为5.4倍、2.8倍和3.4倍,平均性能提升为2.09倍、1.86倍和2.59倍)。