可重构计算循环映射优化方法_3

文档序号:9929381阅读:来源:国知局

[0074] 首先,根据决定好的内层11(2、2、3、1),对内层各个部分分别进行流水调度,得到 各个内层kernel (inner-level kernel,ILK) qILq的流水如图3(A)中的(b)所示,其余的IL 以此类推。
[0075] 然后,将各个内层流水线首尾相接,得到一整条完整的内层流水,也就是一个外层 迭代所包含的全部操作,如图3 (A)中的(c)所示。
[0076] 最后,我们根据决定好的外层11(2005),将外层迭代也重叠起来,得到外层kernel (outer-level kernel,0LK),如图3(B)中的(d)所不。
[0077] 步骤3: kernel的压缩。
[0078] 本示例的迭代次数(trip count,TC)比较大,多层流水得到的0LK有2005行。这会 导致配置信息过大,超出了配置信息存储器的限制,因此需要对0LK进行压缩:
[0079]首先,根据包含内层的不同,把0LK分割成3段(segment),每一段都由不同的ILK重 复一定次数构成。如图3(B)中的(d)所示,Segment 0包含了ILK2和ILK〇,Segment 1包含了 10(3和11^(),56811161^2包含了10(1。
[0080] 然后,我们抽取出每一段的重复单元(segment kernel JKhSegment 0由于ILK2 和ILKo的行数分别是3和2,最小公倍数为6,所以SKo的行数为6,如图3(B)中的(d)所示。另外 两个segment由于行数小于等于其中的ILK行数的公倍数,所以它们的SK的行数等于各自 Segment的行数。
[0081 ] 如图3(B)中的(e)所示,我们将SKo进一步压缩成SKEo和SKE^SKEo是ILK2的一份拷 贝,5耶1是10(()的一份拷贝。另外两个SK以此类推。Sh的其中一个SKE也是ILKo的一份拷贝, 但是它的映射方式可以与SKEi不同。
[0082]步骤 4:P&R。
[0083]为了将0LK映射到可重构计算阵列上,以SK为单位,依次对每个SK进行P&R。
[0084]以SKo为例,我们首先按照REGMap的方法,为其构造原始兼容图。SKo包含21个算 子,映射到16个PE上,原始兼容图中一共有21X16个点。
[0085] 然后对其进行压缩,映射元素之间只有在压缩前全部兼容,在压缩合并后才可兼 容,例如,虽然fl算子与b0算子都使用PE1的点是兼容的,但是f2算子与bl算子都使用PE1的 点是冲突的(因为这两个算子出现在同一个控制步,不能同时占用同一个PE),因此压缩后 得到的f算子使用PE1的点和b算子使用PE1的点是冲突的。
[0086] 最后本申请使用启发式算法在压缩后的兼容图中搜索最大团,找到了大小为9的 最大团,也就为SKo的两个SKE的所有算子找到了合法映射,完成了P&R。得到的算子在可重 构计算阵列上的配置情况如图3(B)中的(f)所示。
[0087] SKdPSK2比SKo简单很多,用同样的方法处理即可。由于SKdPSK2仅包含其中ILK的 一次迭代甚至不到一次迭代,原始兼容图都已经不需要压缩,最后映射到计算阵列上的方 案也可以很快地搜索出来。当所有的SK都完成P&R,整个0LK的配置方案都得以完成,我们成 功地将目标循环映射到可重构计算阵列上。
[0088] 另外,本发明实施例的可重构计算循环映射优化方法的其它构成以及作用对于本 领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
[0089] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
[0090] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不 脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本 发明的范围由权利要求及其等同限定。
【主权项】
1. 一种可重构计算循环映射优化方法,其特征在于,包括以下步骤: S1:建立内外层循环模型,根据所述内外层循环模型确定最优内层迭代时间间隔和最 优外层迭代时间间隔; S2:根据所述最优内层迭代时间间隔得到内层流水,以及根据所述最优外层迭代时间 间隔得到外层流水核心; S3:将所述外层流水核心分割为第一预设数量的段落,抽取每个段落的重复单元,将每 个所述重复单元压缩为第二预设数量的拷贝; S4:对每个重复单元,根据REGIMap算法,构建原始兼容图,对所述原始兼容图进行压 缩,在压缩后的兼容图中搜索大小等同于需要生成配置信息的算子数量的最大团。2. 根据权利要求1所述的重构计算循环映射优化方法,其特征在于,步骤S1进一步包 括: S101:建立所述内外层循环模型: min L〇= Σ {Ldxl + Σ {IIix · (TCix-l)}+II〇 · (TC〇-l) s.t. IIix > RecMIIix IURecMII。 IIix,II〇eN+x= 1,2,…,m 其中,ILX表示第x个内层循环,L。表示总延时,Ldx表示的DFG的延时,Wdx表示的DFG 的宽度,Πix表不ILx的内层迭代时间间隔,II。表不外层迭代时间间隔,TCix表不IL x的内层 TC,TC。表示外层TCJpe表示可用的计算单元数量,m表示内层循环的个数,RecMIIix表示ILX 在依赖约束下的最优迭代时间间隔,RecMII。表示外层在依赖约束下的最优迭代时间间隔; S102:内层流水的宽度Wi、外层流水的宽度W。与各个II之间有如下关系: ffi=max{ffix}ff〇 < Npe 固定内层流水的宽度I,然后让最内层迭代时间间隔取最小,使得外层II。的下限也最 小,最终使得L。也能取到最小值。3. 根据权利要求2所述的重构计算循环映射优化方法,其特征在于,步骤S2进一步包 括: S201:使用单层流水的方式,根据所述最优内层迭代时间间隔,对内层各个部分分别进 行流水调度,得到各个内层流水核心; S202:将各个内层流水线首尾相接,得到一整条完整的内层流水; S203:根据所述最优外层迭代时间间隔得到所述外层流水核心。4.根据权利要求3所述的可重构计算循环映射优化方法,其特征在于,步骤S3进一步包 括: S301:把所述外层流水核心分割成所述第一预设数量的段落,每个段落有不同的内层 流水核心重复一定次数构成; S302:从每个段落中任意截取行数相当于内层流水核心的行数的公倍数的部分,其中, 如果是装入和排空阶段,需要补全算子;如果段的行数小于所述公倍数,把整段全部截取; S303:将每个所述重复单元进一步压缩为所述重复单元的元素,在配置信息中包含述 重复单元的元素的数量。
【专利摘要】本发明公开了一种可重构计算循环映射优化方法,包括步骤:建立内外层循环模型,根据模型确定最优内层迭代时间间隔和最优外层迭代时间间隔;根据最优内层迭代时间间隔得到内层流水,以及根据最优外层迭代时间间隔得到外层流水核心;将外层流水核心分割为第一预设数量的段落,抽取每个段落的重复单元压缩为第二预设数量的拷贝;对每个重复单元,根据REGIMap算法,构建原始兼容图并进行压缩,在压缩后的兼容图中搜索大小等同于需要生成配置信息的算子数量的最大团。本发明具有如下优点:降低非完美多层嵌套循环在可重构计算阵列上的计算时间和配置信息量,从而提高了可重构处理器的性能;算法复杂度是多项式时间,满足实际的编译要求。
【IPC分类】G06F9/38
【公开号】CN105718245
【申请号】CN201610031827
【发明人】尹首一, 林鑫瀚, 刘雷波, 魏少军
【申请人】清华大学
【公开日】2016年6月29日
【申请日】2016年1月18日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1