CN109992413A - 一种面向宽度优先搜索算法的加速装置、方法及存储介质 - Google Patents

一种面向宽度优先搜索算法的加速装置、方法及存储介质 Download PDF

Info

Publication number
CN109992413A
CN109992413A CN201910155053.3A CN201910155053A CN109992413A CN 109992413 A CN109992413 A CN 109992413A CN 201910155053 A CN201910155053 A CN 201910155053A CN 109992413 A CN109992413 A CN 109992413A
Authority
CN
China
Prior art keywords
vertex
memory
search algorithm
module
accelerator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910155053.3A
Other languages
English (en)
Other versions
CN109992413B (zh
Inventor
曹华伟
张承龙
安学军
叶笑春
范东睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201910155053.3A priority Critical patent/CN109992413B/zh
Publication of CN109992413A publication Critical patent/CN109992413A/zh
Application granted granted Critical
Publication of CN109992413B publication Critical patent/CN109992413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Image Generation (AREA)

Abstract

本发明涉及一种面向宽度优先搜索算法的加速装置、方法及存储介质,其中,该装置包括:内存模块,用于存储图数据与搜索结果;执行单元模块,用于根据所述面向宽度优先搜索算法的内在特征,构架多级流水线以执行遍历搜索任务;访存复用模块,用于根据设定的优先级处理所述流水线的访存请求;调度模块,用于将所述内存模块的响应数据分发到空闲的执行单元;控制模块用于控制与管理所述各个模块。该方法与装置可以提高图数据处理的计算效率。

Description

一种面向宽度优先搜索算法的加速装置、方法及存储介质
技术领域
本发明涉及大数据、图计算及计算机体系结构领域,尤其涉及一种面向宽度优先搜索算法的加速方法与装置。
背景技术
在涉及大数据、图计算及计算机体系结构领域,图是描述事物关联属性最常用的一种数据结构,现实生活中的诸多应用场景都可以用图结构来表示,例如社交网络、交通网络、生物信息网络和知识图谱等。为了满足图应用及图处理技术的需求,各种图算法也是层出不穷。
宽度优先搜索(Breadth First Search,BFS)算法是解决图遍历问题的经典算法,也是很多重要图算法的基础。其基本思想是,对于图结构G=(V,E),顶点集合V以及边集合E,给定源顶点后,BFS算法将开始搜索图G中源顶点所有可达的邻居顶点。在算法开始时,将源顶点放入当前层的活跃顶点队列。如果当前层队列存在活跃顶点,依次检查队列中活跃顶点的所有邻居顶点;如果某一个邻居顶点没有被访问过,则更新该邻居顶点的父亲和距离信息,然后将该邻居顶点放入下一层的活跃顶点队列。循环迭代,直到处理完当前层队列中的所有顶点,开始下一层的搜索。传统的BFS算法以一种类似树的层次遍历的方式自上而下进行搜索,即由父节点来搜索子节点,称之为“自顶向下”方法。
为了提升算法性能,Beamer等人开创性的提出了一种“自底向上”和“自顶向下”相结合的BFS算法。“自底向上”BFS算法每次让所有未访问过的顶点检查所有入边的邻居,即由子节点来搜索父节点。如果找到一个处于当前层队列的父节点,则将该顶点加入下一层的活跃顶点队列,并结束对该顶点的处理。通过动态的选择两种方法,可以大幅度的提升BFS算法的执行效率。
除了上述针对算法本身的改进之外,选多工作采用专用硬件的方式进一步加速BFS算法的处理。与基于通用CPU的优化手段相比,采用专用的硬件加速器在性能和功耗等方面都更具有优势。现有基于加速器的图计算优化方案主要集中于提升内存子系统的性能,缺乏对提升加速器自身计算性能的研究。
随着图数据规模的持续爆炸式增长,面向BFS的图计算因其所具有的数据规模大但局部性差、计算-访存比小等特点,对以控制流体系结构为主的现代计算机系统带来了严峻的挑战,如何高效的进行图数据处理成为近年来的研究重点。
综上可知,现有技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种面向宽度优先搜索算法的加速装置,极大地提高了图数据处理的计算效率。
为了实现上述目的,本发明提供了一种面向宽度优先搜索(BFS)算法的加速装置,其特征在于,包括:
一内存模块(Dram Memory),用于存储图数据与搜索结果;
一执行单元模块,又包括多个执行单元(Processing Element,PE),用于根据所述面向宽度优先搜索算法的内在特征,构架多级流水线以执行遍历搜索任务;
一访存复用模块(Request Multiplexer),用于根据设定的优先级处理所述流水线的访存请求;
一调度模块(Dispatch),用于将所述内存模块的响应数据分发到空闲的所述执行单元;
一控制模块(Control Unit),用于控制与管理所述内存模块、执行单元模块、访存复用模块和/或调度模块。
上述的面向宽度优先搜索算法的加速装置,其中,所述控制模块,包括一执行环境的初始化模块,用于将图数据集G=(V,E)划分并分配给不同的所述执行单元处理,其中V为顶点集合,E为边集合。
上述的面向宽度优先搜索算法的加速装置,其中,所述控制模块,又包括一执行同步模块,用于负责在每一层遍历搜索任务结束后控制所述执行单元间同步。
上述的面向宽度优先搜索算法的加速装置,其中,所述面向宽度优先搜索算法的内在特征为访存类型,所述执行单元模块根据所述访存类型,定制化所述多级流水线,所述各级流水均持续地从FIFO缓存队列中读取上级流水的内存响应,同时向所述内存模块发出新的访存请求,以实现高并发的流水机制。
上述的面向宽度优先搜索算法的加速装置,其中,所述多级流水线包括依优先级从低到高的探视检查(Visitation Check)、邻居集合(Neighbor Gathering)和级别更新(Level Update)三级流水。
上述的面向宽度优先搜索算法的加速装置,其中,所述探视检查流水级,用于依次检查子集Vi中每一个顶点vj的访问状态,如果发现未访问过的顶点v,则向所述内存模块发起访存请求,以获取所述顶点v的地址信息,并将所述访存请求缓存于FIFO队列中;如果没有发现,则持续检查后续的顶点v,直到子集Vi的每一个顶点vj检查完毕;其中i,j为正整数。
上述的面向宽度优先搜索算法的加速装置,其中,所述邻居集合流水级,用于获取上一级响应的邻居信息,根据地址信息,持续不断地向所述内存模块发起访存请求,获取顶点中所有邻居顶点的识别地址ID。
上述的面向宽度优先搜索算法的加速装置,其中,所述级别更新流水级,用于依次检查所述邻居顶点在当前层队列中的访问状态,判断顶点v是否是下一层待处理的活跃顶点;所述控制模块根据下一层活跃顶点的数目决定是否需要开始新一轮的优先搜索。
上述的面向宽度优先搜索算法的加速装置,其中,所述访存复用模块,用于将所述各级流水的访存请求复用到所述内存模块的一个内存控制器上,以使所述内存控制器每一个时钟周期都在进行读或写操作。
上述的面向宽度优先搜索算法的加速装置,其中,所述调度模块,用于在获取内存的响应数据后,根据所述内存的标识信息,将所述响应数据分配到空闲的对应流水级。
为了实现本发明的另一发明目的,本发明还提供一种专用图处理器,包括上述面向宽度优先搜索算法的加速装置,其可以充分利用专用的硬件加速器在性能和功耗等方面的优势。
为了实现本发明的另一发明目的,本发明还提供一种面向宽度优先搜索算法的加速方法,通过优化处理的并发度和带宽利用率,极大地提高算法的执行效率。
为了实现上述目的,本发明提供了一种面向宽度优先搜索算法的加速方法,其中,包括:
设置一内存的步骤,用于存储图数据与搜索结果;
设置多个执行单元的步骤,用于根据所述面向宽度优先搜索算法的内在特征,构架多级流水线以执行遍历搜索任务;
设置一访存复用步骤,用于根据设定的优先级处理所述流水线的访存请求;
设置一调度步骤,用于将所述内存步骤的响应数据分发到空闲的所述执行单元;
设置一控制步骤模块,用于实现对上述各步骤的控制与管理。
上述的面向宽度优先搜索算法的加速方法,其中,所述控制步骤,包括一执行环境的初始化步骤,用于将图数据集G=(V,E)划分并分配给不同的所述执行单元处理,其中V为顶点集合,E为边集合。
上述的面向宽度优先搜索算法的加速方法,其中,所述控制步骤,又包括一执行同步控制步骤,用于负责在每一层遍历搜索任务结束后控制所述执行单元间同步。
上述的面向宽度优先搜索算法的加速方法,其中,所述面向宽度优先搜索算法的内在特征为访存类型,所述多个执行单元根据所述访存类型,定制化所述多级流水线,所述各级流水均持续地从FIFO缓存队列中读取上级流水的内存响应,同时向所述内存发出新的访存请求,以实现高并发的流水机制。
上述的面向宽度优先搜索算法的加速方法,其中,所述多级流水线为:探视检查、邻居集合和级别更新三级流水。
上述的面向宽度优先搜索算法的加速方法,其中,所述探视检查流水级,用于依次检查子集Vi中每一个顶点vj的访问状态,如果发现未访问过的顶点v,则向所述内存模块发起访存请求,以获取所述顶点v的地址信息,并将所述访存请求缓存于FIFO队列中;如果没有发现,则持续检查后续的顶点v,直到子集Vi的每一个顶点vj检查完毕;其中i,j为正整数。
上述的面向宽度优先搜索算法的加速方法,其中,所述邻居集合流水级,用于获取上一级响应的邻居信息,根据地址信息,持续不断地向所述内存模块发起访存请求,获取顶点中所有邻居顶点的识别地址ID。
上述的面向宽度优先搜索算法的加速方法,其中,所述级别更新流水级,用于依次检查所述邻居顶点在当前层队列中的访问状态,判断顶点v是否是下一层待处理的活跃顶点;所述控制模块根据下一层活跃顶点的数目决定是否需要开始新一轮的优先搜索。
上述的面向宽度优先搜索算法的加速方法,其中,所述访存复用步骤,用于将所述各级流水的访存请求复用到所述内存的一个内存控制器上,以使所述内存控制器每一个时钟周期都在进行读或写操作。
上述的面向宽度优先搜索算法的加速方法,其中,所述调度步骤,用于在获取内存的响应数据后,根据所述内存的标识信息,将所述响应数据分配到空闲的对应流水级。
为了实现本发明的另一发明目的,本发明还提供了一种存储介质,用于存储一种用于执行上述加速方法的计算机程序。
本发明设计的上述面向宽度优先搜索算法的加速装置与方法。本发明的总体思路是结合宽度优先搜索算法的阶段性处理特点,设计定制化的多级流水线,同时对各级流水线的访存请求按照不同的优先级进行处理,提高外部存储的带宽利用率,在计算过程中,根据图数据规模进行并行扩展,实现宽度优先搜索算法的加速。
附图说明
图1是本发明的总体架构示意图;
图2是一种采用本发明所示加速装置的图处理器示意图;
图3是本发明一种执行单元PE的模块示意图;
图4是本发明一种面向宽度优先搜索算法的加速方法示意图。
附图标记:
1-加速装置(面向BFS算法)
11-控制模块(Control Unit)
12-执行模块
121-执行单元(Processing Element,PE)
1211-探视检查(Visitation Check)流水线
1212-邻居集合(Neighbor Gathering)流水线
1213-级别更新(Level Update)流水线
13-访存复用模块(RequestMultiplexer)
14-调度模块(Dispatch)
15-内存模块(Dram Memory)
151-内存控制器
152-内存
主机接口(Host interface)
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,说明书中针对“一个实施例”、“实施例”、“示例实施例”等的引用,指的是描述的该实施例可包括特定的特征、结构或特性,但不必然包含这些特定特征、结构或特性。此外,这种表述并非指的是同一个实施例。进一步,在结合实施例描述特定的特征、结构或特性时,无论有没有明确的描述,已经表明将这样的特征、结构或特性结合到其它实施例中是在本领域技术人员的知识范围内的。
在说明书及后续的权利要求书中使用了某些词汇来指称特定模块、组件或部件,本领域普通技术的员应可理解,技术使用者或制造商可以不同的名词或术语来称呼同一个模块、组件或部件。本说明书及后续的权利要求书并不以名称的差异来作为区分模块、组件或部件的方式,而是以模块、组件或部件在功能上的差异来做为区分的准则。在通篇说明书及后续的权利要求项中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。
此外,在下面的说明书和权利要求中,将提及许多术语,其应当被定义为具有以下含义。单数形式“一”和“所述”包括复数指代物,除非上下文另外明确规定。“可选的”或“可选地”表示随后描述的事件或情况可能发生或不发生,并且该描述包括事件发生的情况以及事件不发生的情况。
在本发明的一个实施例中,本发明的总体架构如图1所示一种面向宽度优先搜索算法的加速装置1,包括:控制模块(Control Unit)11、执行模块12、访存复用模块13(Request Multiplexer)、调度模块14(Dispatch)和内存模块15(Dram Memory),其中,执行模块12又包括多个执行单元121(Processing Element,PE),其中,该控制模块(ControlUnit)11控制与管理该加速装置1中各个模块(执行模块12、访存复用模块13、调度模块14或内存模块15)。其中,执行单元模块12结合BFS算法的内在特征,设计了定制化的多级流水线,用于执行主要的遍历搜索任务;访存复用模块13,按照一定优先级处理执行单元121各级流水的访存请求;调度模块14,用于将该内存模块15的响应数据分发到空闲的执行单元121;该内存模块15,用于存储图数据和搜索结果。
在图1、图3和图4中,该控制模块11作为控制单元对该加速装置1的各模块进行管理,具体包括执行环境的初始化,将图数据集划分并分配给不同的执行单元121处理;控制各执行单元间同步,使每一层遍历结束后负责执行单元间的同步。
该执行单元121根据BFS算法的访存类型,进行了定制化的多级流水线设计,具体划分为探视检查流水线1211(Visitation Check),邻居集合流水线1212(NeighborGathering)以及级别更新流水线(Level Update)三级流水。各级流水都会持续地从FIFO缓存队列中读取上级流水的内存响应,同时向内存控制器发出新的访存请求,实现高并发的流水机制。
该探视检查流水线1211将依次检查子集中每一个顶点v的访问状态。如果顶点v没有访问过,该探视检查流水线1211向该内存模块15发起访存请求,获取该顶点邻居的地址信息。该邻居集合流水线1212获取上一级响应的邻居信息后,根据地址信息,持续不断的向该内存模块15发起访存请求,获取v所有邻居顶点的ID。该级别更新流水线依次检查上述邻居顶点在当前层队列中的访问状态,判断顶点v是否为下一层待处理的活跃顶点。该控制模块11根据下一层活跃顶点的数目决定是否需要开始新一轮的宽度优先搜索。
该访存复用模块13的主要功能是将执行单元121各级流水的访存请求复用到一个内存控制器151上,充分利用内存带宽,保证内存控制器151每一个时钟周期都在进行读或写操作,提高内存带宽的利用率。
该调度模块14获得该内存模块15的响应数据后,根据其内部的标识tag信息,随后将响应数据分配到空闲执行单元121的对应流水级。
在图2中,本发明的该加速装置1可以用于一种图处理器GPU。
在图4中,本发明揭示一种面向宽度优先搜索算法的加速方法,包括如下:
步骤S100,从主机(Host)将图数据G=(V,E)写入加速器的内存模块,其中顶点集合为V以及边集合为E。
步骤S200,假设PE的数目为n,在初始化阶段,控制模块首先随机选择一个顶点s作为遍历的源顶点,并将s设为当前层的活跃顶点;然后控制模块根据执行单元(PE)121的数目,把顶点集合V划分为n份互不相交的子集Vi分配给不同的执行单元(PE)121,同时向执行单元(PE)121发送激活信息,每个执行单元(PE)121将会处理其对应分配的子集Vi,其中,n,s,i,j均为正整数。
步骤S300,根据BFS算法的特点,执行单元(PE)121上设计了三级流水,如图2所示。当执行单元(PE)121接受到控制模块11的激活信号后,首先由探视检查(VisitationCheck)流水线1211检查子集Vi中每一个顶点的访问状态。如果发现未访问过的顶点vj,探视检查(Visitation Check)流水线1211将向内存发起vj邻居信息的访存请求,并将访存请求缓存于FIFO队列中;如果没发现,则持续检查后续的顶点,直到子集Vi的每一个顶点都检查完毕。
步骤S400,邻居集合(Neighbor Gathering)流水线1212获得探视检查(Visitation Check)流水线1211请求的邻居信息后,具体为顶点vj所有邻居顶点在内存中的地址信息,会持续不断的向该内存模块15发起邻居顶点ID的访存请求,这些访存请求也将先缓存于该流水级的FIFO队列中。
步骤S500,级别更新(Level Update)流水线1213获取了vj的邻居顶点识别地址(ID)后,会依次检查是否有邻居顶点属于当前层的活跃顶点。如果存在,则更新顶点vj的父亲信息和距离信息,并将vj设置为下一层的活跃顶点。
步骤S600,执行单元121的三级流水(步骤S300~S500)在工作过程中,会持续不断的向该内存模块15发起并发的访存请求(存储于图3左侧的3个FIFO队列中),该访存复用模块13则负责将执行单元的各级流水的访存请求复用到一个内存上,保证该内存每一个时钟周期都在进行读或写操作。该访存复用模块13采用一种基于优先级的算法来处理各级流水中FIFO队列的访存请求。级别更新(Level Update)流水线1213的访存请求拥有最高优先级,而探视检查(Visitation Check)流水线1211的访存请求优先级最低,这样做的目的是避免各级流水中FIFO队列里的数据积压。
步骤S700,该访存复用模块13在处理过程中给每一条请求都会分配一个标识(tag)信息,标明该访存请求所属的执行单元识别地址(ID),以及其目的流水级。当这些请求得到内存的响应后,该调度模块14会基于该标识信息(tag),将响应数据分发到空闲执行单元的对应流水级,以进一步提高算法执行效率。
步骤S800,当执行单元结束对子集中顶点的遍历搜索后(步骤S300~S700),向该控制模块11发送结束信息,并且告知该控制模块11下一层是否有待处理的活跃顶点。假如下一层有待处理的活跃顶点,该控制模块11将向执行单元发送激活信号,开始新一层的BFS遍历。
步骤S900,BFS算法的最终遍历结果将存储于该内存模块15,并经由主机接口(Host Interface)写回主机。
本发明的另一实施例中,进一步包括一种存储介质,用于存储执行图4所示方法的计算机处理程序。
在本发明的具体实施例中,涉及的计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
本发明的有益效果在于:通过匹配图计算特征的定制化流水线设计,支持多执行单元和执行单元内部多级流水线的高并发处理;通过对访存请求的优先级划分,提高外部存储的带宽利用率,实现高性能的宽度优先搜索算法。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (13)

1.一种面向宽度优先搜索算法的加速装置,其特征在于,包括:
内存模块,用于存储图数据与搜索结果;
执行单元模块,又包括多个执行单元,用于根据所述面向宽度优先搜索算法的内在特征,构架多级流水线以执行遍历搜索任务;
访存复用模块,用于根据设定的优先级处理所述流水线的访存请求;
调度模块,用于将所述内存模块的响应数据分发到空闲的所述执行单元;
控制模块,用于控制与管理所述内存模块、执行单元模块、访存复用模块和/或调度模块。
2.根据权利要求1所述的面向宽度优先搜索算法的加速装置,其特征在于,所述控制模块,包括执行环境的初始化模块,用于将图数据集G=(V,E)划分并分配给不同的所述执行单元处理,其中V为顶点集合,E为边集合。
3.根据权利要求2所述的面向宽度优先搜索算法的加速装置,其特征在于,所述控制模块,又包括执行同步模块,用于负责在每一层遍历搜索任务结束后控制所述执行单元间同步。
4.根据权利要求2所述的面向宽度优先搜索算法的加速装置,其特征在于,所述面向宽度优先搜索算法的内在特征为访存类型,所述执行单元模块根据所述访存类型,定制化所述多级流水线,所述各级流水均持续地从FIFO缓存队列中读取上级流水的内存响应,同时向所述内存模块发出新的访存请求,以实现高并发的流水机制。
5.根据权利要求4所述的面向宽度优先搜索算法的加速装置,其特征在于,所述多级流水线包括依优先级从低到高的探视检查、邻居集合和级别更新三级流水。
6.根据权利要求5所述的面向宽度优先搜索算法的加速装置,其特征在于,
所述探视检查流水级,用于依次检查子集Vi中每一个顶点vj的访问状态,如果发现未访问过的顶点v,则向所述内存模块发起访存请求,以获取所述顶点v的地址信息,并将所述访存请求缓存于FIFO队列中;如果没有发现,则持续检查后续的顶点v,直到子集Vi的每一个顶点vj检查完毕;其中i,j为正整数。
7.根据权利要求6所述的面向宽度优先搜索算法的加速装置,其特征在于,
所述邻居集合流水级,用于获取上一级响应的邻居信息,根据地址信息,持续不断地向所述内存模块发起访存请求,获取顶点中所有邻居顶点的识别地址ID。
8.根据权利要求7所述的面向宽度优先搜索算法的加速装置,其特征在于,
所述级别更新流水级,用于依次检查所述邻居顶点在当前层队列中的访问状态,判断顶点v是否是下一层待处理的活跃顶点;
所述控制模块根据下一层活跃顶点的数目决定是否需要开始新一轮的优先搜索。
9.根据权利要求4、5、6、7或8所述的面向宽度优先搜索算法的加速装置,其特征在于,
所述访存复用模块,用于将所述各级流水的访存请求复用到所述内存模块的一个内存控制器上,以使所述内存控制器每一个时钟周期都在进行读或写操作。
10.根据权利要求9所述的面向宽度优先搜索算法的加速装置,其特征在于,
所述调度模块,用于在获取内存的响应数据后,根据所述内存的标识信息,将所述响应数据分配到空闲的对应流水级。
11.一种图处理器,包括权利要求1至10中任意一种所述加速装置。
12.一种用于权利要求1至10中任意一种所述加速装置的实施方法。
13.一种存储介质,用于存储执行权利要求12所述方法的程序。
CN201910155053.3A 2019-03-01 2019-03-01 一种面向宽度优先搜索算法的加速装置、方法及存储介质 Active CN109992413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910155053.3A CN109992413B (zh) 2019-03-01 2019-03-01 一种面向宽度优先搜索算法的加速装置、方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910155053.3A CN109992413B (zh) 2019-03-01 2019-03-01 一种面向宽度优先搜索算法的加速装置、方法及存储介质

Publications (2)

Publication Number Publication Date
CN109992413A true CN109992413A (zh) 2019-07-09
CN109992413B CN109992413B (zh) 2021-09-24

Family

ID=67130404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910155053.3A Active CN109992413B (zh) 2019-03-01 2019-03-01 一种面向宽度优先搜索算法的加速装置、方法及存储介质

Country Status (1)

Country Link
CN (1) CN109992413B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737540A (zh) * 2020-05-27 2020-10-02 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质
WO2021008258A1 (zh) * 2019-07-15 2021-01-21 北京一流科技有限公司 协处理器的数据处理路径中的数据流动加速构件及其方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652092A (zh) * 2003-12-09 2005-08-10 国际商业机器公司 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
US7313683B2 (en) * 2003-06-17 2007-12-25 Nec Corporation Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
CN102609378A (zh) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN103838552A (zh) * 2014-03-18 2014-06-04 北京邮电大学 4g宽带通信系统多核并行流水线信号的处理系统和方法
CN103927277A (zh) * 2014-04-14 2014-07-16 中国人民解放军国防科学技术大学 Cpu和gpu共享片上高速缓存的方法及装置
CN104834630A (zh) * 2014-02-10 2015-08-12 瑞萨电子株式会社 运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备
CN106484955A (zh) * 2016-09-14 2017-03-08 中国科学院计算技术研究所 一种基于Voronoi图的室内布局评价方法及系统
US20170139751A1 (en) * 2015-11-16 2017-05-18 Industrial Technology Research Institute Scheduling method and processing device using the same

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313683B2 (en) * 2003-06-17 2007-12-25 Nec Corporation Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
CN1652092A (zh) * 2003-12-09 2005-08-10 国际商业机器公司 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN102609378A (zh) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN104834630A (zh) * 2014-02-10 2015-08-12 瑞萨电子株式会社 运算控制装置、运算控制方法、存储有程序的非瞬时计算机可读介质以及OpenCL设备
CN103838552A (zh) * 2014-03-18 2014-06-04 北京邮电大学 4g宽带通信系统多核并行流水线信号的处理系统和方法
CN103927277A (zh) * 2014-04-14 2014-07-16 中国人民解放军国防科学技术大学 Cpu和gpu共享片上高速缓存的方法及装置
US20170139751A1 (en) * 2015-11-16 2017-05-18 Industrial Technology Research Institute Scheduling method and processing device using the same
CN106484955A (zh) * 2016-09-14 2017-03-08 中国科学院计算技术研究所 一种基于Voronoi图的室内布局评价方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XU TAN ET AL: "A Pipelining Loop Optimization Method for Dataflow Architecture", 《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》 *
史圣卿等: "基于FPGA 的稀疏网络关键节点计算的硬件加速方法研究", 《电子与信息学报》 *
王强: "基于FPGA的宽度优先搜索硬件加速方法研究", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集(下册》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021008258A1 (zh) * 2019-07-15 2021-01-21 北京一流科技有限公司 协处理器的数据处理路径中的数据流动加速构件及其方法
CN111737540A (zh) * 2020-05-27 2020-10-02 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质
CN111737540B (zh) * 2020-05-27 2022-11-29 中国科学院计算技术研究所 一种应用于分布式计算节点集群的图数据处理方法和介质

Also Published As

Publication number Publication date
CN109992413B (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
Sethi et al. RecShard: statistical feature-based memory optimization for industry-scale neural recommendation
CN108196935B (zh) 一种面向云计算的虚拟机节能迁移方法
CN110196851A (zh) 一种数据存储方法、装置、设备及存储介质
WO2023050712A1 (zh) 一种深度学习业务的任务调度方法及相关装置
CN108932150B (zh) 基于ssd和磁盘混合存储的缓存方法、装置及介质
CN108183947A (zh) 分布式缓存方法及系统
CN110084363B (zh) 一种基于fpga平台的深度学习模型加速方法
CN104219318A (zh) 一种分布式文件存储系统及方法
JP2011170774A (ja) 決定木生成装置、決定木生成方法、及びプログラム
WO2022057310A1 (zh) 一种图神经网络训练的方法、装置及系统
CN109992413A (zh) 一种面向宽度优先搜索算法的加速装置、方法及存储介质
US20230281157A1 (en) Post-exascale graph computing method, system, storage medium and electronic device thereof
Awad et al. A swarm intelligence-based approach for dynamic data replication in a cloud environment
CN114817648A (zh) 一种高能效协同图计算方法及装置
Wang et al. Exploiting dark cores for performance optimization via patterning for many-core chips in the dark silicon era
CN104050189B (zh) 页面共享处理方法及装置
CN116541160A (zh) 函数部署方法、装置、服务器及云计算平台
CN105306547A (zh) 提高云计算系统能量有效性的数据摆放及节点调度方法
CN106453656B (zh) 一种集群主机选取方法及装置
CN105912404B (zh) 一种基于磁盘的大规模图数据中寻找强连通分量的方法
CN106033434B (zh) 基于数据规模和流行程度的虚拟资产数据副本处理方法
CN112100446B (zh) 搜索方法、可读存储介质和电子设备
Maashi et al. Elevating Survivability in Next-Gen IoT-Fog-Cloud Networks: Scheduling Optimization With the Metaheuristic Mountain Gazelle Algorithm
KR102054068B1 (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
CN110941396A (zh) 一种面向云数据中心的基于气流组织的副本放置方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant