【技术实现步骤摘要】
一种可重构阵列映射方法和装置
本专利技术涉及数据处理领域,具体为一种可重构阵列映射方法和装置。
技术介绍
粗粒度可重构计算架构(Coarse-GrainedReconfigurableArchitecture,简称CGRA)又称可重构计算架构,在加速计算密集型应用中有着极大的应用潜力。CGRA在保留了硬件可编程性的同时,还拥有着接近专用集成电路(ASIC)的性能。CGRA一般由多个处理单元(ProcessingElement,简称PE)组成,处理单元执行类似算术逻辑单元(ALU)的功能,比如加法,乘法等。不同的CGRA架构中,PE功能可能不同,PE之间的互联方式也可能不同。用户可以根据不同的运算需求,将CGRA中的PE配置为不同的功能。在实际应用中,编译器需要将用户编写的高级语言程序转换成以数据依赖图(DataDependenceGraph,简称DDG)表示的数据流形式,DDG由运算节点以及各个运算节点(vertex)之间表示数据依赖关系的边(edge)组成,将DDG中的vertex以及edge映射到CGRA ...
【技术保护点】
1.一种可重构阵列映射方法,其特征在于,包括:/nS1:获取数据依赖图,分析所述数据依赖图以获取最大时间步为TS_max以及最小启动间隔;/nS2:将所述最小启动间隔作为初始的启动间隔;/nS3:获取可重构计算架构,所述可重构计算架构包括处理单元和link;所述处理单元到输出link的关系通过第一邻接矩阵表示;输入link到处理单元的关系通过第二邻接矩阵表示;/nS4:将所述第一邻接矩阵和所述第二邻接矩阵复制与TS_max相同的层数作为映射空间;/nS5:设置约束条件以建立整数线性规划模型;在所述整数线性规划模型下将所述数据依赖图中循环结构的运算节点、循环内依赖的边、循环间 ...
【技术特征摘要】
1.一种可重构阵列映射方法,其特征在于,包括:
S1:获取数据依赖图,分析所述数据依赖图以获取最大时间步为TS_max以及最小启动间隔;
S2:将所述最小启动间隔作为初始的启动间隔;
S3:获取可重构计算架构,所述可重构计算架构包括处理单元和link;所述处理单元到输出link的关系通过第一邻接矩阵表示;输入link到处理单元的关系通过第二邻接矩阵表示;
S4:将所述第一邻接矩阵和所述第二邻接矩阵复制与TS_max相同的层数作为映射空间;
S5:设置约束条件以建立整数线性规划模型;在所述整数线性规划模型下将所述数据依赖图中循环结构的运算节点、循环内依赖的边、循环间依赖的边分别映射至所述映射空间;其中,所述整数线性规划模型中所述循环内依赖的边对TS_max求模运算;所述循环间依赖的边对启动间隔求模运算;
S6:判断表示循环的数据依赖图与可重构计算架构之间的映射在整数线性规划模型下是否有解,若是,则执行S8;若否,则执行S7;
S7:所述启动间隔自增1,执行步骤S5;
S8:获取所述数据依赖图中的运算节点和边到扩展了TS_max层的处理单元与link上的映射关系;
S9:将所述映射关系对启动间隔求模生成配置信息;根据所述配置信息生成输入到可重构计算架构的配置文件,所述可重构计算架构根据所述配置文件执行运算。
2.根据权利要求1所述的可重构阵列映射方法,其特征在于,所述S5包括:
S51:设置第一组二元映射变量和第二组二元映射变量;所述第一组二元映射变量为数据依赖图中运算节点到可重构计算架构上处理单元的映射变量;所述第二组二元映射变量为所述数据依赖图中边到所述可重构计算架构上处理单元之间连接link的映射变量;
S52:设置目标函数以使映射使用到的link数目最少;
S53:设置所述数据依赖图中每一个运算节点都映射到一个处理单元上,且同一层配置上的同一个处理单元最多映射一个运算节点;
S54:设置所述数据依赖图中一个运算节点只能映射到可以执行该运算的处理单元上;
S55:设置所述数据依赖图中每一条边至少映射到一条link上;
S56:设置在同一层配置上一条link上至多映射一条边;
S57:设置所述循环内依赖中边的第一连接性约束,所述第一连接性约束以使第i个运算节点映射到第j个处理单元上时,从所述第i个运算节点连出的边也映射到从第j个处理单元连出的link上;
S58:设置所述循环内依赖中边的第二连接性约束,所述第二连接性约束确保第i个运算节点映射到第j个处理单元上时,连入到所述第i个运算节点的边也映射到连入到所述第j个处理单元的link上;
S59:设置所述循环间依赖的边的第三连接性约束,所述第三连接性约束使第i个运算节点映射到第j个处理单元上时,从所述第i个运算节点连出的边也映射到从第j个处理单元连出的link上;所述第三连接性约束的求解对象为数据依赖图中表示循环间依赖的边,以及对启动间隔求模;
S510:设置所述循环间依赖的边的第四连接性约束,所述第四连接性约束确保第i个运算节点映射到第j个处理单元上时,连入到所述第i个运算节点的边也映射到连入到所述第j个处理单元的link上,所述第三连接性约束中求解对象为数据依赖图中表示循环间依赖的边,以及对启动间隔求模;
S511:设置所述循环内依赖的边的第一连续性约束,所述第一连续性约束对于第j个处理单元,如果第i个运算节点有一条输入的第a个边且所述第a个边映射到所述第j个处理单元的一条输入link上,要么所述第i个运算节点映射到所述第j个处理单元上,要么所述第a个边同时映射到所述第j个处理单元的一条输出link上;
S512:设置所述循环内依赖的边的第二连续性约束,所述第二连续性约束对于第j个处理单元,如果第i个运算节点有一条输出的第a个边,且所述第a个边映射到所述第j个处理单元的一条输出link上,要么所述第i个运算节点映射到所述第j个处理单元上,要么所述第a个边同时映射到第j个处理单元的一条输入link上;
S513:设置所述循环间依赖中边的第三连续性约束,所述第三连续性约束对于第j个处理单元,如果第i个运算节点有一条输入的第a个边且所述第a个边映射到所述第j个处理单元的一条输入link上,要么所述第i个运算节点映射到所述第j个处理单元上,要么所述第a个边同时映射到所述第j个处理单元的一条输出link上;第三连续性约束中求解对象为数据依赖图中表示循环间依赖的边,以及对启动间隔求模;
S514:设置所述循环间依赖的边的第四连续性约束,所述第四连续性约束对于第j个处理单元,如果第i个运算节点有一条输出的第a个边,且所述第a个边映射到所述第j个处理单元的一条输出link上,要么所述第i个运算节点映射到所述第j个处理单元上,要么所述第a个边同时映射到第j个处理单元的一条输入link上,所述第四连续性约束中求解对象为数据依赖图中表示循环间依赖的边,以及对启动间隔求模;
S515:设置如果所述数据依赖图中的一条边同时映射到一个处理单元的输入link以及输出link上,则所述处理单元上不能映射数据依赖图中的运算节点;
S516:设置同一层配置上的同一个处理单元只能映射一个路由。
3.根据权利要求2所述可重构阵列映射方法,其特征在于,所述S51中设置第一组二元映射变量通过公式(1)实现;
公式(1)
其中,V2M()表示数据依赖图中的运算节点与可重构计算架构上的处理单元之间映射关系的一组二元变量;V为数据依赖图中运算节点的...
【专利技术属性】
技术研发人员:王重阳,张振,欧阳鹏,
申请(专利权)人:北京清微智能科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。