论文部分内容阅读
粗粒度可重构结构(CGRA)为多媒体处理程序等数据密集型应用提供了灵活且高效的加速方式。CGRA应用映射决定了应用程序在其体系结构上的实现方式,其针对给定的CGRA应用功能和体系结构,在满足系统约束的前提下,将应用程序映射到CGRA体系结构上,对CGRA处理性能和效率有重要影响。目前应用映射技术已成为CGRA研究领域的热点与难点。本文研究CGRA应用映射关键技术。先分析了已有应用映射方法及其存在的不足。在此基础上重点研究了面向CGRA应用映射的程序特征分析方法、基于循环仿射划分的并行任务生成方法、应用处理任务到CGRA体系结构的高效分配与任务调度方法等。完成的主要工作和取得的创新性成果如下: ⑴提出一种基于仿真与解析方法相结合的应用特征分析方法。根据CGRA应用映射对应用特征信息的需求,基于模拟器、程序中间表示和多面体模型等工具构建了应用特征分析框架,通过动态仿真、中间表示解析和基于多面体建模分析等多种方法,分析得到了各种程序特征,包括:应用结构特征、控制流/数据流特征、计算/操作数特征、存储需求特征、数据依赖关系、执行时间等。特别针对应用中核心关键循环,通过基于执行时间和工作量估算相结合的方法,产生不同的核心循环识别因子,从而实现核心循环的识别与提取。实验表明:该方法可以为CGRA应用映射提供较为全面的程序特征信息,为后续的并行任务生成、任务分配与调度等过程提供了有力的特征信息支持。 ⑵提出一种基于存储需求分析的关键循环任务映射方法MALP。该方法首先定义RCP_CGRA体系结构模型,利用已提取的循环特征信息构建循环的PIA-CDTG模型来阐述关键循环到CGRA的映射问题。通过引入结合数组分簇的多面体数据域划分方法进行循环存储分析,随后根据分析结果,结合体系结构资源约束实现了循环的有效映射。实验结果表明,通过利用多面体模型进行循环数据依赖分析和存储需求分析,此方法能够有效降低循环映射时的资源占用率,提高数据吞吐量,进一步提升CGRA上循环映射的性能。与已有的方法相比,MALP方法进一步提升了CGRA上循环映射的性能。 ⑶提出一种新颖的面向CGRA循环流水映射的数据并行优化方法。为了在CGRA上最大程度开发应用并行性,降低循环访存开销,提高硬件资源利用率,该方法通过定义一种新的可重构计算模型TMGC2以实现对循环的多条数据流水线并行加速。为避免并行化执行带来的额外存储体冲突问题影响 CGRA执行性能,为后续循环映射创造了良好数据条件,引入存储体消除对数据进行重组,并结合数据重用图实现数据并行优化。实验表明,采用此方法对已有CGRA循环流水映射方法进行优化,可以提高37.2%的数据吞吐量及41.3%的资源利用率。 ⑷提出了一种基于多面体模型的程序多级仿射划分的并行任务生成方法该方法引入程序特征(如:数据依赖关系、各数据的使用频率等)和体系结构信息(如:计算资源、存储层次、重构开销等),分步设置循环多级仿射划分的参数。基于关注元采用程序多级仿射划分对核心循环进行并行性和局部性转换,得到可并行执行的各个循环子块,作为各并行子任务提供给后续任务分配与调度过程。实验表明,通过在任务生成时引入了循环特征和体系结构信息,通过CGRA约束函数指导仿射划分,使得生成的并行任务更适于在CGRA目标体系结构上运行,减少了后续任务分配和调度的限制。 ⑸提出了一种基于图着色模型的高效蚁群进化任务分配与调度方法。针对任务的分配与调度问题,提出了一种应用任务到CGRA的高效分配与调度方法。通过用图节点多着色模型描述CGRA任务分配与调度问题,使用高效的进化蚁群算法进行任务调度,通过引入遗传算法控制参数,从而在任务映射空间中实现高效、快速的全局寻优。任务调度过程引入了循环特征信息和体系结构约束参数,构成了任务分配与调度问题的目标适应度函数,有利于保证任务分配与调度的质量并有效提高搜索全局最优解的效率。实验表明,该方法可以获得高质量的任务分配与调度方案,并较大幅度地加快了任务分配与调度空间探索的收敛速度,对提高CGRA应用映射的质量和效率具有重要作用。