[发明专利]针对负载均衡的片上网络增量任务映射方法有效
申请号: | 202210385320.8 | 申请日: | 2022-04-13 |
公开(公告)号: | CN114816739B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 陈亦欧;何秋璇;胡剑浩 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 曾磊 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 负载 均衡 网络 增量 任务 映射 方法 | ||
1.一种针对负载均衡的片上网络增量任务映射方法,其特征在于,该方法包括以下步骤:
S1)获取资源流图以及待映射功能1和功能2的任务流图;
S2)输入功能1的任务流图,利用遗传算法得到功能1任务的映射方案,并由此得到映射了功能1任务后的片上网络NoC平台各处理单元PE的负载度,即为功能1映射结果;
S3)将步骤S2)得到的功能1映射结果以及步骤S1)获取的功能2的任务流图作为增量映射功能2任务的输入;
S4)将NoC平台上的所有PE根据负载度升序排列,同时将功能2任务根据各任务的权值降序排列,得到排序后的PE集合和排序后的功能2的任务集合;在所述排序后的PE集合中PE排序越靠前,表示其优先级越高;在所述排序后的功能2的任务集合中任务排序越靠前表示该任务优先级越高,若两个任务的权值相同,则功能2的任务流图中序号越小的任务优先级越高;
S5)找到功能2任务的最大并行集;
S6)判断功能2任务的最大并行集中的任务数量是否大于NoC平台的PE数量M,若不大于则执行S7),否则执行S8);
S7)按任务权值排列好的顺序依次将功能2任务的最大并行集任务一对一分配给排序后的PE,即将权值最大的任务分配给负载度最低的PE,将权值次大的任务分配给负载度次低的PE,以此类推,直至功能2任务的最大并行集中的任务被全部分配给排序后的PE,然后更新当前NoC平台上所有PE的负载度并根据更新后的负载度对NoC平台上所有PE进行重新排序后执行S9);
S8)将功能2任务的最大并行集中前M个任务按任务的权值排列好的顺序一对一分配给排序后的PE,即将功能2任务的最大并行集中前M个任务中权值最大的任务分配给负载度最低的PE,将权值次大的任务分配给负载度次低的PE,以此类推,直至功能2任务的最大并行集中前M个任务被全部分配给排序后的PE,更新当前NoC平台上所有PE的负载度并根据更新后的负载度对NoC平台上所有PE进行重新排序,得到新的排序后的PE集合,然后从功能2任务的最大并行集中删除已分配任务,重复上述分配过程直至功能2任务的最大并行集中所有任务都分配完成,接着执行S9);
S9)将功能2的最大并行集以外的其他所有任务根据关联度进行最终分配,得到功能2任务的完整增量映射结果;
其中,任务流图DFG是有向无环的赋权图G1=G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合,G1的每个节点va代表一个任务,任务个数为|V|,节点权值代表该任务所需要的处理时间;每条边ek=ea,b代表一条数据传输通路,直连边数目为|E|,边ek=ea,b的权值代表从节点va到节点vb的有向链路上传输的数据量大小,a,b=1,2,...,|V|;
资源流图是抽象化NoC结构的有向图G2=G(T,R),其中G表示一个图,其中T是图G中顶点的集合,R是图G中边的集合,G2的每个节点ta′∈T,a′=1,2,...,|T|代表NoC的一个网格,由一个处理单元和一个路由节点连接组成,网格个数为|T|;每条边ra′,b′∈R,a′,b′=1,2,...,|T|代表从节点ta′到节点tb′的单向链路,链路数目为|R|;
其中,所述片上网络NoC平台中各处理单元PE的负载度计算方法为:
假设NoC平台上的M个PE分别表示为PEj,j=1,2,...,M;N个任务分别表示为vi,i=1,2,...,N;则PEj的负载度Lj如公式(1)所示,σij表示任务vi是否分配到PEj上:若任务vi分配到PEj上,σij=1;否则σij=0;
所述步骤S4)计算功能2任务中各任务的权值的具体方法为:
首先得到每个功能2任务的处理时间及其邻接任务间的通信时间之和,即为功能2中各任务的开销;然后将任务按开销大小升序排列得到一个任务集合,此时的集合对应的任务序号集为A;接着求得每个功能2任务的度数:度数=出度数+入度数,再将任务按度数升序排列,此时得到的集合对应的任务序号集为B;最后将功能2任务中各任务对应的两个集合A和B的序号取平均即为各任务的权值;
所述步骤S5)找到功能2任务的最大并行集的方法为:
所述最大并行集表示集合中的各任务间没有数据依赖关系,即彼此间不存在直接通信关系,各任务能够同时分配到不同PE上执行且互不影响;
最大入度值表示在任务流图中指向某一任务的最大边数;
寻找最大并行集首先初始化最大并行集为空集,然后判断功能2任务流图的最大入度值Q:若Q为1则表示不存在任务并行集,直接进入步骤S9);若Q大于1,则要找到所有入度值为Q的最大度任务,将这些任务的所有前驱任务不重复地合并到最大并行集;
为了避免使NoC路由陷入死锁,规定任务间不能反向传输数据,任务流图对应的邻接矩阵始终为上三角矩阵,只存在序号小的任务向序号大的任务传数据,因此若有多个最大度任务,则需要检查各最大度任务是否与其他最大度任务的前驱任务存在通信关系:若两任务间存在通信关系,则删掉二者中的前驱任务;在排除最大并行集中任务间的所有通信关系后得到需要的最大并行集,该最大并行集中的任务数量为P;
所述步骤S9)的具体步骤为:
31)根据步骤S4)得到的排序后的功能2的任务集合中待映射任务的优先级顺序依次得到当前未分配任务的关联度向量;
32)若当前未分配任务关联度向量中的关联度全为0,则将该当前未分配任务分配至当前优先级最高的PE上;若关联度不全为0,则找到关联度向量中关联度最大的PE,若此PE不是所有PE中负载度最大的,则将该任务分配到该PE上;若此PE是负载度最大的,为了均衡负载,将该任务分配到当前优先级最高的PE上;
33)得到当前PE的负载度并更新其优先级进行重新排序,重复步骤31)-步骤32)直至功能2任务除去其最大并行集任务的所有剩余任务分配完毕,得到针对负载均衡的片上网络增量任务映射结果,即已映射功能1的NOC平台上得到功能2的任务映射方案;
其中,关联度和关联度向量的计算方法为:
对于待分配任务Tp,任务Tp可能与多个任务存在数据关联性,任务Tp的评价函数如公式(2)所示,表示任务Tp相对于PEx的数据关联性强度,PEx表示第x个PE,x的取值范围为[1,M]中任意整数,表示任务Tp与前驱及后继关联任务间的通信时间,其中表示任务Tp分别与m个前驱关联任务Tui′间的通信时间,表示任务Tp分别与n个后继关联任务Tvj′间的通信时间,这里的前驱任务指任务Tp直接关联的所有父节点任务,即任务Tp从前驱任务中获得数据;后继任务指任务Tp直接关联的所有子节点任务,即任务Tp输出数据到后继任务中;
σui′表示任务Tp的前驱任务Tui′是否被分配在PEx中:若Tui′分配在PEx中,则σui′为1,否则为0;σvj′表示任务Tp的后继任务Tvj′是否被分配在PEx中:若Tvj′分配在PEx中,则σvj′为1,否则为0;
由于片上网络上含有M个PE,对于待分配任务Tp,通过式(2)能够获得一个M维的关联度向量,其表示为公式(3)的形式,用于描述任务Tp相对于每个PE的数据关联性强度,任务Tp相对于单个PE的数据关联性强度称为关联度,
R(Tp)=(R0(Tp),R1(Tp),…,RM-1(Tp)) (3)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210385320.8/1.html,转载请声明来源钻瓜专利网。