项目名称: 基于多版本技术的自适应编译优化方法研究
项目编号: No.60873057
项目类型: 面上项目
立项/批准年度: 2009
项目学科: 金属学与金属工艺
项目作者: 吴承勇
作者单位: 中国科学院计算技术研究所
项目金额: 31万元
中文摘要: 现有的编译器依赖于对微体系结构和程序特征的静态建模,所产生的目标代码缺乏对于不同运行时上下文的自适应性。本项目研究利用迭代编译和多版本技术提高程序的自适应性和性能的方法。主要研究内容包括:(1)研究上下文特征量的分析、提取、及表示方法,提供对上下文进行抽象的手段;(2)研究快速衡量版本在特定上下文中的相似度的方法,以利用Memoization等技术加速对版本空间的搜索;(3)研究抽取程序核心单元及其上下文特征量实现受控运行的机制,支持以核心单元为单位的调优;(4)研究利用机器学习和数据挖掘方法拟合版本选择函数,从适用范围、效果、和开销等几方面对包括决策树、实例学习、贝叶斯学习等在内的多种学习方法进行评价,利用多种学习方法的组合来改进版本映射的精度;(5)研究多版本导致的代码膨胀及其对I-Cache访问的影响。通过本项目的研究,能够提高程序对不同运行时上下文的自适应性,从而提高其性能。
中文关键词: 迭代编译;自动调优;多版本;自适应优化;机器学习
英文摘要: Modern Compilers rely on statical modeling of microarchitecture and program characteristics. And the code generated in this way lack adaptability to different runtime contexts. This project study methods and apporaches of impoving program's adaptability and performance using iterative compilation and multi-versioning techniques. It consists of: (1) study of methods of context abstraction, i.e. analyzing, aqusition, and representation of characteristics of runtime context. (2) study of methods of quickly determining the similarity of multiple versions on a specific context and accelerating the search of version space using memoization. (3) study of mechanisms of extracting program kernels and its contexts to implement controlled execution and to support kernel-level tuning. (4) study of methods of fitting version selection funtions using machine learning and Bayesion learning. Evaluation of various machine learning methods from applicability, performance, and cost. (5) study of code inflation caused by multi-versioning and its impact on I-Cache. The major purpose of this project is to improve program's adaptability to various runtime contexts, and thus improve their performance.
英文关键词: Iterative compilation; Auto-tuning; Multi-versioning; Adaptive optimization; Machine learning