The present invention provides an operator mapping method and system for coarse-grained reconfigurable architecture, including data flow graph generation step, minimum cycle start interval calculation step, operator scheduling step, scheduling judgment step, array graph construction step, sorting step, forward mapping step, current mapping judgment step, reverse backtracking step, all mapping judgment step and configuration generation step. Step by step. The invention can achieve better mapping performance in shorter compilation time, obtain higher acceleration ratio, and have smaller area and energy consumption. The ordered operator nodes are mapped forward sequentially. When the current mapping fails, a new mapping path is entered by backtracking, and a successful mapping scheme is found as far as possible without degrading the performance.
【技术实现步骤摘要】
粗粒度可重构体系结构的算子映射方法及系统
本专利技术涉及计算机编译器领域,具体地,涉及粗粒度可重构体系结构的算子映射方法及系统。
技术介绍
粗粒度可重构体系结构的典型应用是加速最内层循环的执行。编译器将循环体的算子提取出来构建数据依赖图,然后映射到粗粒度PE阵列上以软流水的方式执行循环体。两次循环间隔的机器周期称为循环启动间隔II(II,InitiationInterval),II越小,循环执行的速度越快,加速性能就越好。衡量编译器好坏的指标一个是映射后的II,一个是编译时间。已有的REGIMap方法首先在数据流图和时间扩展的PE(ProcessElement)阵列图之间构建兼容图,然后计算兼容图中每条边的权重,最后在兼容图中找到大小与数据流图节点数量相同的最大子团。这种基于子图匹配的方法搜索空间较大,编译时间较长。而且使用这种方法需要为PE增加若干数量的寄存器,大量寄存器的加入会增加功耗和面积开销。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种粗粒度可重构体系结构的算子映射方法及系统。根据本专利技术提供的一种粗粒度可重构体系结构的算子映射方法,包括:数据流图生成步骤:根据编译器前端的中间语言文件生成对应的数据流图;最小循环启动间隔计算步骤:根据数据流图的算子数量和PE阵列的数量计算最小循环启动间隔,以最小循环启动间隔作为循环启动间隔的初始值;算子调度步骤:根据当前循环启动间隔,对数据流图的算子进行调度;调度判断步骤:判断算子调度是否成功,若判断结果为否则循环启动间隔加1,并返回所述算子调度步骤,若判断结果为是则进入阵列图构建步骤;阵列图构建 ...
【技术保护点】
1.一种粗粒度可重构体系结构的算子映射方法,其特征在于,包括:数据流图生成步骤:根据编译器前端的中间语言文件生成对应的数据流图;最小循环启动间隔计算步骤:根据数据流图的算子数量和PE阵列的数量计算最小循环启动间隔,以最小循环启动间隔作为循环启动间隔的初始值;算子调度步骤:根据当前循环启动间隔,对数据流图的算子进行调度;调度判断步骤:判断算子调度是否成功,若判断结果为否则循环启动间隔加1,并返回所述算子调度步骤,若判断结果为是则进入阵列图构建步骤;阵列图构建步骤:以当前循环启动间隔构建时间扩展的PE阵列图;排序步骤:选择入度与出度和最大的算子作为根节点对算子进行排序;前向映射步骤:对排序后的节点按序前向映射;当前映射判断步骤:判断当前算子节点是否映射成功,若判断结果为否则进入反向回溯步骤,若判断结果为是则进入所有映射判断步骤;反向回溯步骤:反向回溯到当前节点的前一个映射成功的相邻节点,若所述相邻节点为根节点则循环启动间隔加1,并返回所述算子调度步骤,若所述相邻节点为非根节点则返回所述前向映射步骤;所有映射判断步骤:判断所有算子节点是否映射成功,若判断结果为否则反回前向映射步骤,若判断结果 ...
【技术特征摘要】
1.一种粗粒度可重构体系结构的算子映射方法,其特征在于,包括:数据流图生成步骤:根据编译器前端的中间语言文件生成对应的数据流图;最小循环启动间隔计算步骤:根据数据流图的算子数量和PE阵列的数量计算最小循环启动间隔,以最小循环启动间隔作为循环启动间隔的初始值;算子调度步骤:根据当前循环启动间隔,对数据流图的算子进行调度;调度判断步骤:判断算子调度是否成功,若判断结果为否则循环启动间隔加1,并返回所述算子调度步骤,若判断结果为是则进入阵列图构建步骤;阵列图构建步骤:以当前循环启动间隔构建时间扩展的PE阵列图;排序步骤:选择入度与出度和最大的算子作为根节点对算子进行排序;前向映射步骤:对排序后的节点按序前向映射;当前映射判断步骤:判断当前算子节点是否映射成功,若判断结果为否则进入反向回溯步骤,若判断结果为是则进入所有映射判断步骤;反向回溯步骤:反向回溯到当前节点的前一个映射成功的相邻节点,若所述相邻节点为根节点则循环启动间隔加1,并返回所述算子调度步骤,若所述相邻节点为非根节点则返回所述前向映射步骤;所有映射判断步骤:判断所有算子节点是否映射成功,若判断结果为否则反回前向映射步骤,若判断结果为是则进入配置生成步骤;配置生成步骤:输出映射结果,生成粗粒度可重构体系结构的配置信息。2.根据权利要求1所述的粗粒度可重构体系结构的算子映射方法,其特征在于,所述中间语言文件包括:从编译器前端生成的中间代码中提取的待加速的循环体内核部分。3.根据权利要求1所述的粗粒度可重构体系结构的算子映射方法,其特征在于,所述排序步骤包括:选择入度与出度和最大的算子作为根节点,采用深度优先搜索算法对算子进行排序。4.根据权利要求3所述的粗粒度可重构体系结构的算子映射方法,其特征在于,所述前向映射步骤包括:依次计算每个节点可映射到时间扩展的PE阵列图上的所有槽的优先级,将当前节点映射到具有最大优先级的槽;每个槽的优先级为当前节点的未映射的相邻节点数量除以该槽可访问的未映射的槽的数量;将当前节点的映射结果保存到映射表中,并把该节点其他未使用的槽存储到回溯表中。5.根据权利要求4所述的粗粒度可重构体系结构的算子映射方法,其特征在于,所述反向回溯步骤包括:定位到距离当前节点最近的已映射的相邻节点作为回溯节点;查询回溯表,将该回溯节点重新映射到回溯表中所记录的优先级最高的槽;更新回溯表,继续前向映射;如果回溯节点也没有可映射的槽,则继续回溯到该回溯节点的前一个已映射的相邻节点;如果已回溯到根节点,则循环启动间隔加...
【专利技术属性】
技术研发人员:尹文志,赵仲元,绳伟光,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。