[发明专利]一种面向宽度优先搜索算法的加速装置、方法及存储介质有效
申请号: | 201910155053.3 | 申请日: | 2019-03-01 |
公开(公告)号: | CN109992413B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 曹华伟;张承龙;安学军;叶笑春;范东睿 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/53 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 宽度 优先 搜索 算法 加速 装置 方法 存储 介质 | ||
1.一种面向宽度优先搜索算法的加速装置,其特征在于,包括:
内存模块,用于存储图数据与搜索结果;
执行单元模块,又包括多个执行单元,用于根据所述面向宽度优先搜索算法的内在特征,构架多级流水线以执行遍历搜索任务;
访存复用模块,用于根据设定的优先级处理所述流水线的访存请求;
调度模块,用于将所述内存模块的响应数据分发到空闲的所述执行单元;
控制模块,用于控制与管理所述内存模块、执行单元模块、访存复用模块和/或调度模块;
其中所述控制模块,包括执行环境的初始化模块,用于将图数据集G=(V,E)划分并分配给不同的所述执行单元处理,其中V为顶点集合,E为边集合;
所述面向宽度优先搜索算法的内在特征为访存类型,所述执行单元模块根据所述访存类型,定制化所述多级流水线,各级流水线均持续地从FIFO缓存队列中读取上级流水的内存响应,同时向所述内存模块发出新的访存请求,以实现高并发的流水线机制;
所述多级流水线包括依优先级从低到高的探视检查、邻居集合和级别更新三级流水;
探视检查流水级,用于依次检查顶点集合V的子集Vi中每一个顶点vj的访问状态,如果发现未访问过的顶点vj,则向所述内存模块发起访存请求,以获取所述顶点vj的地址信息,并将所述访存请求缓存于FIFO队列中;如果没有发现,则持续检查后续的顶点vj+1,直到子集Vi的每一个顶点检查完毕;其中i,j为正整数;
邻居集合流水级,用于获取上一级响应的邻居信息,根据地址信息,持续不断地向所述内存模块发起访存请求,获取顶点中所有邻居顶点的识别地址ID;
级别更新流水级,用于依次检查所述邻居顶点在当前层队列中的访问状态,判断顶点vj是否是下一层待处理的活跃顶点;
所述控制模块根据下一层活跃顶点的数目决定是否需要开始新一轮的优先搜索。
2.根据权利要求1所述的面向宽度优先搜索算法的加速装置,其特征在于,所述控制模块,又包括执行同步模块,用于负责在每一层遍历搜索任务结束后控制所述执行单元间同步。
3.根据权利要求1所述的面向宽度优先搜索算法的加速装置,其特征在于,所述访存复用模块,用于将各级流水的访存请求复用到所述内存模块的一个内存控制器上,以使所述内存控制器每一个时钟周期都在进行读或写操作。
4.根据权利要求1所述的面向宽度优先搜索算法的加速装置,其特征在于,所述调度模块,用于在获取内存的响应数据后,根据所述内存的标识信息,将所述响应数据分配到空闲的对应流水级。
5.一种图处理器,包括权利要求1至4中任意一种所述加速装置。
6.一种用于权利要求1至4中任意一种所述加速装置的实施方法。
7.一种存储介质,用于存储执行权利要求6所述方法的程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910155053.3/1.html,转载请声明来源钻瓜专利网。