用于粗粒度可重构处理器的编译优化方法

文档序号:8298902阅读:375来源:国知局
用于粗粒度可重构处理器的编译优化方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种用于粗粒度可重构处理器的编译优化 方法。
【背景技术】
[0002] 可重构处理器(reconfigurableprocessor) -般由主处理器和可重构计算阵 列(ReconfigurableComputingArray,RCA)親合而成。移动时代的大部分应用包含大量 计算密集型的程序,因此特别适合在可重构处理器上执行,其中主处理器负责给RCA进行 配置以改变其功能来运行计算密集型程序。可编程逻辑阵列(fieldprogrammablegate array,FPGA)是可重构处理器的一个良好范例,但是FPGA架构在比特级(bit-level)重构 的基础之上,即数据通路是由许多个比特级处理单元互联而成。这种复杂互联带来几个缺 陷,一是布线功耗开销极大,二是资源利用率低。另外复杂互联需要巨大的配置信息,较长 时间的准备配置信息限制了进行动态可重构的可能性。
[0003]粗粒度可重构处理器(coarse-grainedreconfigurableprocessor,CGRA)将比 特级重构单元扩大为多比特可重构数据通路,称之为处理单元(processingelement,PE), 每个PE经重构后能执行完整的算子。这样就避免了FPGA的几点缺陷。同时CGRA的粗粒 度也带来了编译器设计的挑战。与传统处理器相比,CGRA的分布式寄存器分布还有RCA阵 列的网状互联结构带来了布局布线的要求。与FPGA相比,CGRA的有限布线资源对布局布 线的要求更加严格。因此编译器的设计在粗粒度可重构处理器领域相当关键。
[0004] 由于编译后得到的程序有高性能和低功耗是矛盾的两面,因此前面的研宄都仅仅 集中于优化其中一点。在高性能领域,常用的方法是移植自多核处理器的软件流水技术, 该技术通过重叠不同循环实例之间的算子,形成循环内核,从而获得并行性,缩短程序执行 时间。其中不同循环之间的启动间隔(InitialInterval,II)的长度就等于循环内核的长 度,由于循环内核包含一次循环所有的算子,因此II的长度就等于并行化以后程序的执行 时间,因此II越短,程序执行时间越短。又通过分析知百分之九十的执行时间花费百分之 十的循环代码上,因此对关键循环的并行化处理是提高性能的良好方法。在CGRA上比较有 效的是子图同胚,子图满同态,图子式模调度方法。在低功耗方面,常用的是减少配置功耗 和可重构阵列的计算功耗两种,其中后者的通用性更强。后者引入固定双供电电压,减少 RCA上运行非关键算子的PE的供电电压,由于此类PE数量不少,因此能够减少功耗。但上 述的研宄中未能把这两种理念结合起来。

【发明内容】

[0005] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006] 为此,本发明的目的在于提出一种高性能、低功耗的用于粗粒度可重构处理器的 编译优化方法。
[0007] 为了实现上述目的,本发明实施例的用于粗粒度可重构处理器的编译优化方法, 包括以下步骤:对原始数据流图进行预处理,以获取修改后的数据流图,计算最小启动间隔 并将所述最小启动间隔设置为映射起点;创建所述粗粒度可重构处理器的三维布线资源模 限制图;对所述布线资源模限制图进行图子式检测,以获取相应的所述修改后的数据流图 的映射图;保存所述修改后的数据流图的映射图的所有调度方案;依据功耗函数从所述所 有调度方案中选择功耗最小的路径作为最优方案。
[0008] 根据本发明实施例的用于粗粒度可重构处理器的编译优化方法,从采用分层电压 优化的方法从所有的映射图中选择最优的方案,有效地将分层电压架构与循环映射并行化 结合起来,具有高效能、低功耗的优点。
[0009] 在一些示例中,所述预处理具体包括:根据预设的出度限制和层级限制改变原始 数据流图,以获取修改后的数据流图。
[0010] 在一些示例中,所述出度限制为:每个算子的出度小于布线资源模限制图中处理 单元的出度。
[0011] 在一些示例中,所述层级限制为:所述原始数据流图中每一层的算子的数目小于 所述粗粒度可重构处理器的处理单元的数目。
[0012] 在一些示例中,还包括:对所述修改后的数据流图的算子进行排序,使得关键路径 的算子的优先级高于其他路径的算子的优先级。
[0013] 在一些示例中,所述图子式检测过程具体如下:将所述修改后的数据流图中的一 个节点映射到所述布线资源模限制图上,以获取映射路径,并对该映射路径进行预测,以便 确定是否选择该映射路径;采用重复计算的方法对获取到的多条映射路径进行处理;将获 取的多条映射路径构造成数据流图,并对所述将其与所述修改后的数据流图进行图子式检 测,若成功,则进行下一个节点的检测,反之,则对该节点进行修复。
[0014] 在一些示例中,采用扩展图的方法修复所述节点的图子式检测失败。
[0015] 在一些示例中,利用功耗函数从所述所有调度方案中选择功耗最小的路径,所述 功耗函数的定义如下:
【主权项】
1. 一种用于粗粒度可重构处理器的编译优化方法,其特征在于,包括以下步骤: 对原始数据流图进行预处理,以获取修改后的数据流图,计算最小启动间隔并将所述 最小启动间隔设置为映射起点; 创建所述粗粒度可重构处理器的三维布线资源模限制图; 对所述布线资源模限制图进行图子式检测,以获取相应的所述修改后的数据流图的映 射图; 保存所述修改后的数据流图的映射图的所有调度方案; 从所述所有调度方案中选择功耗最小的路径作为最优方案。
2. 根据权利要求1所述的方法,其特征在于,所述预处理具体包括: 根据预设的出度限制和层级限制改变原始数据流图,以获取修改后的数据流图。
3. 根据权利要求2所述的方法,其特征在于,所述出度限制为:每个算子的出度小于布 线资源模限制图中处理单元的出度。
4. 根据权利要求2所述的方法,其特征在于,所述层级限制为:所述原始数据流图中每 一层的算子的数目小于所述粗粒度可重构处理器的处理单元的数目。
5. 根据权利要求1所述的方法,其特征在于,还包括:对所述修改后的数据流图的算子 进行排序,使得关键路径的算子的优先级高于其他路径的算子的优先级。
6. 根据权利要求1所述的方法,其特征在于,所述图子式检测过程具体如下: 将所述修改后的数据流图中的一个节点映射到所述布线资源模限制图上,以获取映射 路径,并对该映射路径进行预测,以便确定是否选择该映射路径; 采用重复计算的方法对获取到的多条映射路径进行处理; 将获取的多条映射路径构造成数据流图,并将其与所述修改后的数据流图进行图子式 检测,若成功,则进行下一个节点的检测,反之,则对该节点进行修复。
7. 根据权利要求6所述的方法,其特征在于,采用扩展图的方法修复所述节点的图子 式检测失败。
8. 根据权利要求1-7任意一项所述的方法,其特征在于,利用功耗函数从所述所有调 度方案中选择功耗最小的路径,所述功耗函数的定义如下:
其中,PA,卩工和P LS分另lj是运算器(arithmetic logical unit,ALU),互连 (interconnect)和电平转换器(level shifter)相应的功耗,VDDH指施加的高电压,VDDI;为 施加的低电压,D A,D^ALU和互连的延时,Dc是关键路径的延时,u(i,VDIJ是延时随电压 变化的函数,V(i)是互连的供电电压,PEs代表粗粒度可重构处理器中的各个处理单元,i 表示单个所述处理单元。
9.根据权利要求1-7任意一项所述的方法,其特征在于,按照分层电压优化的方法从 所述所有调度方案中选择功耗最小的路径作为最优方案。
【专利摘要】本发明提出一种用于粗粒度可重构处理器的编译优化方法,包括以下步骤:对原始数据流图进行预处理,以获取修改后的数据流图,计算最小启动间隔并将最小启动间隔设置为映射起点;创建粗粒度可重构处理器的三维布线资源模限制图;对布线资源模限制图进行图子式检测,以获取修改后的数据流图的映射图;保存对应于最小启动间隔的映射图的所有调度方案;从所有调度方案中选择功耗最小的路径作为最优方案。本发明的方法,具有高性能、低功耗的优点。
【IPC分类】G06F9-45
【公开号】CN104615474
【申请号】CN201410443909
【发明人】尹首一, 徐兵, 刘雷波, 魏少军, 朱建峰
【申请人】清华大学
【公开日】2015年5月13日
【申请日】2014年9月2日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1