[发明专利]一种针对粗粒度可重构结构的降低多类访存冲突编译方法有效
申请号: | 202011375400.2 | 申请日: | 2020-11-30 |
公开(公告)号: | CN112306500B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 绳伟光;陈雨歌;蒋剑飞;景乃锋;王琴;毛志刚 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 上海旭诚知识产权代理有限公司 31220 | 代理人: | 郑立 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 粒度 可重构 结构 降低 多类访存 冲突 编译 方法 | ||
1.一种访存压力分摊方法,作为CGRA编译器后端调度过程中的一个步骤,其特征在于,通过增加控制周期的数量,并调整DFG内不同子图之间的启动时间,将循环内核中每一个控制周期访存操作数量降低,减少每一个控制周期内发生访存冲突的可能性,提升可重构处理器应用加速比;
编译器后端对DFG中位于不同控制周期中的节点数量和访存节点数量计数,通过贪婪算法调整不同子图的启动时间,在放置每一个子图时,将节点数量和访存节点数量平均地分配到不同的控制周期中;
在当前策略得到的结果不满足每个控制周期内的节点数量限制的情况下,算法在分配启动时间时同时考虑分摊节点数量和访存节点操作数量,在保证单控制周期内节点数量约束下,分摊访存压力。
2.一种数据放置方法,作为CGRA编译器后端处理的一个步骤,其特征在于,固定存储体数量,不进行线性变换,仅通过调整数组起始地址来降低多存储体冲突;
同一控制周期内两个对不同数组的访存操作和不发生多存储体冲突的条件为:
其中,循环内核访存的数组数量为K,数组名记为A1,A2,…,AK,当控制周期为r时,对第k个数组Ak中位置为Ak[a0i0+a1i1+…an-1in-1+an]元素的访存被记作的向量形式,i0,i1,…,in-1为循环索引,a0,a1,…,an-1为线性变换系数;
对数组Ak的访存操作所访问的片上存储器Bank编号如下所示,
数组Ak的所有元素将会被放置到片上存储器首地址为Ok的位置,BankNum为片上存储器存储体数量;
已分配的数组占据了前Q的位置,则数组Ak在片上存储器的起始地址Ok为:
3.如权利要求2的数据放置方法,其特征在于,其目标为选取各数组在片上存储器存储的首地址Ok,降低在循环内核执行全过程中下式满足的次数,其中,定义两次访问之间的曼哈顿距离为访问索引之间的距离,即
在遍历所有数组偏置组合情况下,算法复杂度达到Θ(BankNumK)。
4.如权利要求3的数据放置方法,其特征在于,选取各数组在片上存储器存储的首地址Ok时基于贪婪算法,算法复杂度降低至Θ(BankNum×K)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011375400.2/1.html,转载请声明来源钻瓜专利网。