CN108563808B - 基于fpga的异构可重构图计算加速器系统的设计方法 - Google Patents

基于fpga的异构可重构图计算加速器系统的设计方法 Download PDF

Info

Publication number
CN108563808B
CN108563808B CN201810011291.2A CN201810011291A CN108563808B CN 108563808 B CN108563808 B CN 108563808B CN 201810011291 A CN201810011291 A CN 201810011291A CN 108563808 B CN108563808 B CN 108563808B
Authority
CN
China
Prior art keywords
data
graph
fpga
chip
calculation
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.)
Active
Application number
CN201810011291.2A
Other languages
English (en)
Other versions
CN108563808A (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.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
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 University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201810011291.2A priority Critical patent/CN108563808B/zh
Publication of CN108563808A publication Critical patent/CN108563808A/zh
Application granted granted Critical
Publication of CN108563808B publication Critical patent/CN108563808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种基于FPGA的异构可重构图计算加速器系统的设计方法,整个加速器系统包括PC和FPGA两大异构模块,具体步骤:首先加载启动FPGA所需要的驱动模块,将FPGA的PCIe DMA等设备打开;根据所需要处理的图数据的顶点数和边数进行图计算加速器引擎的选择;在选择好加速器引擎之后对图数据进行预处理;将预处理好的图数据通过PCIe DMA传输给FPGA开发板的板载DDR;启动加速器从板载DDR指定的地址开始读取图数据;控制器将图数据分配给不同的处理单元进行处理和计算;在各个处理单元计算和处理完数据之后,将结果发送给计算结果收集模块;收集模块将结果写回板载DDR,在整个图数据处理完之后,PC将结果从板载DDR中读取出。本发明具有高性能、高能效、低功耗等特点。

Description

基于FPGA的异构可重构图计算加速器系统的设计方法
技术领域
本发明涉及计算机硬件加速领域,具体地涉及一种基于FPGA的图计算加速器系统设计方法。
背景技术
现实世界中,图可以用来表征不同实体间的关系,它是实体之间关系模型的抽象,许多的信息可以存储在图结构中,因而其在实际中有着很广泛的应用,例如:社交网络分析、网页图搜索、商品推荐系统建立、交通网络分析以及生物医学信息分析等等。在现今大数据时代,图的规模变得越来越大,例如:Facebook在2014年7月的用户数达到22亿,用户之间的关系数量达到几百甚至上千亿,如果这些用户的关系以图的边的形式进行存储,存储量将达到几百GB甚至TB级。因此如何来对大规模图在可接受的时间内进行有效的分析、搜索和计算成为当前研究的一大难点,也是当前研究的一大热点。
从计算的角度来看,图计算系统常常被分成vertex-centric(以顶点为中心)和edge-centric(以边为中心)的计算模型。前者将所有的计算迭代在顶点上,每个顶点从起in-neighbors获取相应的数据,然后再执行user-defined函数,更新自身的状态或者属性值,最后每个顶点将自身更新好的状态或者属性值分发其out-neighbors,直到图算法收敛或者达到预先设置的迭代次数。后者将所有的计算迭代在边上,依次遍历图中所有的边,将source vertices产生的更新值通过边传递给每条边的destination vertices,然后遍历destination vertices,将更新值更新到destination vertices上,直到图算法收敛或者达到预先设置的迭代次数。两种计算模型存在着明显的不同之处:前者顺序的访问顶点,导致对边的随机访问;后者顺序的访问边,导致对顶点的随机访问。
通常来说,对于大规模的数据的计算会采用分布式计算的思想,图计算也不例外。随着图数据规模的不断增长,国内外研究者们设计并实现了很多分布式图计算系统,例如:Pregel、GraphLab、PowerGraph、GraphX、Giraph。这些分布式图计算系统大多数采用的是vertex-centric的计算模型,而PowerGraph采取的是edge-centric的计算模型。直观的来说,分布式图计算系统随着图数据规模的增大表现出良好的可扩展性,但是在其他方面面临着很多的挑战,概括的说有以下几点:(1)图划分:要使得分布式系统能够很好的处理大规模图,首先就需要将图进行划分,但是在划分的时候需要考虑负载均衡的问题,使得分布式集群中各节点间的通信量最少,而这是一个NP-hard的问题;(2)网络依赖:分布式图计算中,集群中的各个节点间的通信依赖于当前处于的网络环境,网络环境有可能成为整个系统的延迟瓶颈;(3)容错:在分布式图计算系统中,不能因为某个节点的故障而导致整个系统的崩溃,因而,分布式图计算系统中需要设计容错机制;(4)编程、维护困难:分布式系统的程序设计、优化需要具有专业人员进行开发与实现,而且维护起来较为困难。
随着单机系统的资源的增加和性能的提升,近年来,研究者们也设计并开发了许多单机平台上的图计算系统,研究结果显示,在单机上实现大规模图的处理可以极大的降低成本开销,同时在很多情况下能达到甚至超过分布式图计算系统的性能。一些典型的单机图计算系统如下:GraphChi、X-Stream、Ligra、VENUS、GridGraph,其中GraphChi、Ligra和VENUS采取的是vertex-centric的计算模型,而X-Stream和GridGraph采取的是edge-centric的计算模型。在单机图计算系统的设计中,设计人员应该考虑以下几点设计原则:(1)局部性:图数据的不规则性导致其在计算机中的存储和计算过程中表现出较差的局部性,因此在设计之初需要考虑局部性的开发;(2)多线程的利用:现今使用的计算机采用的处理器大多数为多核多线程,因此如何利用硬件平台的并行度,设计高效的并行多线程程序也非常重要;(3)磁盘数据传输量:在单机图计算系统中,图数据都是存储在磁盘或者固态硬盘上,在计算之前需要把整个图或者图数据的一部分导入到内存中,因此如何设计有效的数据存储方式,减少磁盘数据的传输成为一大难点;(4)尽可能采用顺序访问模式:在单机图计算系统中,对顶点和边的访问都有着两种访问模式:顺序访问和随机访问,有研究[14]表明,由于顺序访问能够利用硬件平台提供的访存级并行(MLP)和硬件预取(HardwarePrefetcher),因此顺序访问数据的速度明显快于随机访问的速度,而且前者功耗也明显低于后者。
此外,近年来国内外研究者们也越来越热衷于用硬件来加速算法或者应用,随着FPGA资源的增加和性能的提升,采用FPGA来实现图计算硬件加速器也成为当前计算机领域的研究热点之一。FPGA平台相对于CPU平台和GPU平台来说具有可重构、可定制、并行度高、低功耗、高能效等优点,并且相对于多核CPU平台,FPGA上的图计算加速器也表现出良好的加速比。目前典型的FPGA平台上的图计算加速器有:FPGP、GraVF、GraphOps和GraphGen等。
若是按照软硬件层次进行划分,分布式图计算系统和单机图计算系统属于软件系统框架的范围,基于FPGA的图计算加速器系统则属于硬件系统框架的范围。在软件层次设计与实现图计算系统常常存在一些软件层次低效、不可规避的问题,例如片外带宽利用率低下和有效计算率低下等问题。
发明内容
有鉴于此,本发明目的是:设计图计算系统的硬件加速器,通过硬件电路的可重构性来重新设计适用于图计算的存储系统和计算模式,以此克服软件层次上存在的问题;另一方面,FPGA相对于ASIC和GPU表现出良好的可重构、低功耗、高能效等特点,是加速器设计中一个折中的选择,因此本课题拟采取FPGA实现图计算加速器系统。
本发明的技术方案是:
一种基于FPGA的异构可重构图计算加速器系统的设计方法,所述系统包括PC、FPGA两大异构模块,其特征在于,设计方法包括以下步骤:
S01:PC端完成数据准备和预处理及硬件端设备初始化等工作;PC端加载FPGA所需的驱动、选择适用于对应图数据规模的图计算引擎、图数据的预处理和划分、图数据的传输;
S02:FPGA端完成数据计算和处理以及计算结果的写回等工作;FPGA对图数据进行存储、对图数据进行处理、处理单元之间的控制以及计算结果的收集;
S03:同步模块实现软件端和硬件端之间同步的过程。
优选技术方案中,所述步骤S01包括以下步骤:
在软件端加载硬件端设备的驱动程序;
根据所需要处理的图数据的规模选择对应的计算引擎:vertices on-chip&&edges on-chip engine、vertices on-chip&&edges off-chip engine和vertices off-chip&&edges off-chip engine;
若选择的计算引擎为vertices off-chips&&edges off-chip engine,则对所需要处理的图数据进行数据的预处理,也即子图的划分;
在数据准备工作完成之后,将数据通过PCIe DMA传输至FPGA开发板的板载DDR。
优选技术方案中,所述步骤S02包括以下步骤:
加速器在接收到待处理的数据之后,由控制器将数据分发给各个不同的处理单元;
在处理单元计算和处理完成之后,将结果发送给结果收集模块;
结果收集模块在将结果收集之后,将整理好的结果通过AXI DMA发送至板载DDR。
优选技术方案中,所述步骤S03中确定了软件端和硬件端的同步模式,包括:采用轮询的方式实现软件端和硬件端的同步,也即在软件端将数据发送至硬件端之后,轮询板载DDR上的特定的标志位end_flag,若end_flag置位,则表示着硬件端已经结束当前轮次的计算,并且将结果发送至DDR,至此,软件端可将结果从DDR读取回来。
优选技术方案中,PC和FPGA通过PCIe总线互联,两者之间的数据传输通过PCIeDMA实现,在具体实现中,将PCIe DMA作为PC的外设映射在其内存中,并且映射空间的大小保证将硬件端所有的设备都映射在PC的内存空间,软件端对硬件端设备进行读写控制;在软件端根据所需要处理的图数据的顶点数和边数对硬件端的计算引擎进行选择,软件端在选择好计算引擎之后,硬件端根据软件端的要求对硬件资源进行配置,使得可以满足软件端的要求。
优选技术方案中,不同的计算引擎下,在片上重构出多个数据处理单元,处理单元之间的数据分发及控制均由控制器完成。
优选技术方案中,在各个处理单元将数据处理完成之后,将结果发送至结果收集模块,结果收集模块对结果进行整合之后,将结果写回到板载DDR。
优选技术方案中,软件端和硬件端异构形成整个系统,在执行过程中,同步协议是整个系统正确实现完整功能的基础,所述同步模块基于轮询的方式实现,在板载DDR上设定一个特殊的标志位end_flag,硬件端每次输出结果完成之后,会随后输出-1标志,软件端不断轮询end_flag,直至其为-1才读回正确的结果。
优选技术方案中,整个系统包含三类计算引擎:
vertices on-chip&&edges on-chip engine;
vertices on-chip&&edges off-chip engine;
vertices off-chip&&edges off-chip engine;
不同的计算引擎针对不同规模的图数据,若选择第一种计算引擎,则意味着软件端只需要将顶点数据和边数据向硬件端传输一次,并且在硬件端完成处理之后,可以一次将结果读取回;若选择第二种计算引擎,则意味着顶点数据可以一次从软件端传输给硬件端,并且存储在片内的缓冲区中,而边数据则需要从板载DDR分批次的往硬件端传输,最后结果也分批次的从板载DDR中读取;若选择第三种计算引擎,则意味着FPGA片内不能缓存下整个图数据的所有顶点和边集,那么需要将顶点和边都进行划分,划分按照Interval-Shard进行,保证图数据的局部性,以减少片外访存的次数。
优选技术方案中,三类计算引擎,内部均是基于GAS模型而实现的,在面对不同的图算法的时候,只需要对Apply模块进行相应的算法实现,能够适用于多种不同的图算法。
优选技术方案中,所述FPGA的结构包括:
控制器,将软件端传来的数据进行分发,通过控制器可以实现动态负载均衡;
源顶点缓冲区,缓存从软件端传输的源顶点数据;
目标顶点缓冲区,缓存重软件端传输的目标顶点数据;
入边缓冲区,缓存以当前处理的顶点区间中顶点为目标顶点的边;
出边缓冲区,缓存以当前处理的顶点区间中顶点位源顶点的边;
处理单元,用于计算和处理分发到其的图数据;
结果收集模块,用于收集各个处理单元计算完成之后的结果,并且将结果传输到板载DDR。
与现有技术相比,本发明的优点是:
本发明可以有效的加速图算法,并且具备处理不同规模等级的图数据的能力,处理单元相对于通用处理器有高性能、低功耗特点。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1是本发明实施例的FPGA平台上加速图计算的流程图;
图2是本发明计算引擎选择算法示意图;
图3是本发明实施例中图数据预处理示意图;
图4是本发明实施例的图数据由PC传输至板载DDR的传输模块示意图;
图5是本发明实施例的片上处理单元结构示意图;
图6是本发明实施例处理单元编程模型算法示意图;
图7是本发明实施例的PC和FPGA同步示意图;
图8是本发明实施例的异构可重构计算平台上图计算加速器框架示意图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例:
本发明实施例中的FPGA指现场可编程门阵列(Field Programmable GateArrays),本发明设计的系统是一个基于PC-FPGA的异构系统,其中,PC和FPGA之间的数据通路可以采用PCI-E总线协议。FPGA片上加速器内部的数据通路本发明实施例附图数据通路采用AXI总线协议为例说明,但本发明并不限于此。
图1为本发明实施例的基于FPGA的图计算加速器设计方法100的流程图。该方法100包括:
S110,加载硬件设备模块所需的驱动程序,根据需要处理的图数据选择合适的计算引擎,若选择第三类计算引擎,则对图数据进行预处理,将预处理好的图数据传输给加速器进行计算;
S120,将需要处理的图数据的顶点和边分别存放在对应的缓冲区,加速器IP核采取GAS计算模型对图数据进行处理;
S130,加速器在处理完图数据之后,将结果写回板载DDR,PC从板载DDR上读取结果数据。
下文中将结合图2至图7,对本发明实施例基于FPGA的图计算加速器设计方法进行详细描述。
图2为计算引擎选择算法的示意图,本系统包含着三类计算引擎供用户选择调用,用户根据需要处理的图数据的顶点数和边数选择合适的计算引擎进行处理。本系统根据具体的硬件平台的资源设定了默认的VerticesThreshold和EdgesThreshold,根据图2所示的算法,若是所需要处理的图数据顶点数和边数均小于VerticesThreshold和EdgesThreshold,那么选择计算引擎1;若是所需要处理的图数据顶点数小于VerticesThreshold而边数大于EdgesThreshold,那么选择计算引擎2;若是所需要处理的图数据顶点数和边数均大于VerticesThreshold和EdgesThreshold,那么选择计算引擎3。
图3为大规模图数据的预处理过程,如图所示,图数据中的顶点被划分成若干个一维的线性区间,每个顶点区间对应着一个shard文件,该shard文件中包含着目标顶点在当前区间中的边集,并且在shard文件内部,将边集按照源顶点进行进一步的划分,每个shard文件包含着若干个edge block。
图4为本发明实例中PC端与FPGA端的数据传输过程,数据在PC端的内存和FPGA开发板的板载DDR之间进行传输,在传输过程中,每次传输的数据量根据加速器内部能够处理的数据量确定,并且在加速器将数据处理完成之后,加速器需要将结果写回板载DDR,之后,PC端启动读取结果模块进行结果的读回。
图5为加速器片上系统结构,结构包括:
计算引擎,本系统在片上设计并实现三类计算引擎供用户选择调用,分别对应着不同的图数据的规模;
控制器(Controller)2100,负责控制数据的分发以及获取处理单元的处理状态,在本系统中,片上集成了多个处理单元,不同的处理单元之间并行的处理从PC端传输来的子图数据,控制器轮询处理单元的计算状态,处理单元若是处理结束,则控制器将下一批需要处理的数据分发给处理单元;
聚合器(Aggregator)2200,负责收集处理单元计算完成之后的结果,并对结果进行相应的整理,在结果收集整理完成之后,将最新的结果写回板载DDR;
同步栅栏(Barrier)2300,负责对处理单元进行同步,因为每个处理单元的计算过程都是按轮进行,因此两次迭代之间需要将所有的处理单元的状态进行同步;
处理单元(PEs)2400,PE是片上加速器处理图数据的单元,其本质为硬件IP核,PE的输入为控制器分发的子图数据,输出为执行特定算法之后的结果,并且在每个PE内部采取的计算模型均为GAS模型;
片上缓存2600,负责存储片上的图数据以及计算结果,主要包括以下几部分:
1)高度顶点缓冲区:负责存储顶点集中度数较高的顶点数据,以此获取较好的局部性来减少片外访存的次数;
2)源顶点缓冲区:负责存储图数据中的源顶点数据;
3)目标顶点缓冲区:负责存储图数据中的目标顶点数据;
4)入边缓冲区:负责存储当前处理顶点区间的入边集;
5)出边缓冲区:负责存储当前处理顶点区间的出边集。
图6为处理单元采取的GAS计算模型算法示意图,处理单元处理图数据的过程分为三个部分,分别是Gather、Apply和Scatter,在Gather阶段中,处理单元遍历当前顶点区间的inEdges,并且将对应的源顶点的属性值gather;在Apply阶段中,处理单元执行对应的用户自定义的程序,并且更新当前处理的顶点的属性值;在Scatter阶段中,处理单元将当前处理的顶点的属性值传播给其出边的目标顶点,该计算过程直至满足收敛条件或者达到最大的迭代次数。
图7是本发明实例中多个加速器和PC端之间的同步过程,在设计了多个加速器之后,加速器之间并行的处理图数据,在PC端创建多个进程来控制相应的加速器,进程轮询特定的标志位,当标志位置位之后,进程将结果从板载DDR读取回PC端。
图8是本发明实施例的整体系统结构。主要包括预处理,数据传输,数据处理以及结果写回等过程。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的方法和硬件结构,能够以FPGA和CPU的结合来实现。具体FPGA内部固化IP核的数量看具体应用和FPGA芯片资源限制。专业技术人员可以对每个特定的应用或特定的FPGA芯片来使用不同方式或不同并行度来实现上述所描述的功能,但是这种实现不应认为超出本发明的范围。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种基于FPGA的异构可重构图计算加速器系统的设计方法,所述系统包括PC、FPGA两大异构模块,其特征在于,设计方法包括以下步骤:
S01:PC端完成数据准备和预处理及硬件端设备初始化工作;PC端加载FPGA所需的驱动、选择适用于对应图数据规模的图计算引擎、图数据的预处理和划分、图数据的传输;PC和FPGA通过PCIe总线互联,两者之间的数据传输通过PCIe DMA实现,在具体实现中,将PCIeDMA作为PC的外设映射在其内存中,并且映射空间的大小保证将硬件端所有的设备都映射在PC的内存空间,软件端对硬件端设备进行读写控制;在软件端根据所需要处理的图数据的顶点数和边数对硬件端的计算引擎进行选择,软件端在选择好计算引擎之后,硬件端根据软件端的要求对硬件资源进行配置,使得可以满足软件端的要求;
S02:FPGA端完成数据计算和处理以及计算结果的写回工作;FPGA对图数据进行存储、对图数据进行处理、处理单元之间的控制以及计算结果的收集;
S03:同步模块实现软件端和硬件端之间同步的过程;所述步骤S03中确定了软件端和硬件端的同步模式,包括:采用轮询的方式实现软件端和硬件端的同步,也即在软件端将数据发送至硬件端之后,轮询板载DDR上的特定的标志位end_flag,若end_flag置位,则表示着硬件端已经结束当前轮次的计算,并且将结果发送至DDR,至此,软件端将结果从DDR读取回来;
整个系统包含三类计算引擎:
第一种计算引擎:vertices on-chip&&edges on-chip engine;
第二种计算引擎:vertices on-chip&&edges off-chip engine;
第三种计算引擎:vertices off-chip&&edges off-chip engine;
不同的计算引擎针对不同规模的图数据,若选择第一种计算引擎,则意味着软件端只需要将顶点数据和边数据向硬件端传输一次,并且在硬件端完成处理之后,一次将结果读取回;若选择第二种计算引擎,则意味着顶点数据一次从软件端传输给硬件端,并且存储在片内的缓冲区中,而边数据则需要从板载DDR分批次的往硬件端传输,最后结果也分批次的从板载DDR中读取;若选择第三种计算引擎,则意味着FPGA片内不能缓存下整个图数据的所有顶点和边集,那么需要将顶点和边都进行划分,划分按照Interval-Shard进行,保证图数据的局部性,以减少片外访存的次数。
2.根据权利要求1所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,所述步骤S01包括以下步骤:
在软件端加载硬件端设备的驱动程序;
根据所需要处理的图数据的规模选择对应的计算引擎:vertices on-chip&&edgeson-chip engine、vertices on-chip&&edges off-chip engine和vertices off-chip&&edges off-chip engine;
若选择的计算引擎为vertices off-chips&&edges off-chip engine,则对所需要处理的图数据进行数据的预处理,也即子图的划分;
在数据准备工作完成之后,将数据通过PCIe DMA传输至FPGA开发板的板载DDR。
3.根据权利要求1所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,所述步骤S02包括以下步骤:
加速器在接收到待处理的数据之后,由控制器将数据分发给各个不同的处理单元;
在处理单元计算和处理完成之后,将结果发送给结果收集模块;
结果收集模块在将结果收集之后,将整理好的结果通过AXIDMA发送至板载DDR。
4.根据权利要求3所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,不同的计算引擎下,在片上重构出多个数据处理单元,处理单元之间的数据分发及控制均由控制器完成。
5.根据权利要求3所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,在各个处理单元将数据处理完成之后,将结果发送至结果收集模块,结果收集模块对结果进行整合之后,将结果写回到板载DDR。
6.根据权利要求1所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,软件端和硬件端异构形成整个系统,在执行过程中,同步协议是整个系统正确实现完整功能的基础,所述同步模块基于轮询的方式实现,在板载DDR上设定一个特殊的标志位end_flag,硬件端每次输出结果完成之后,会随后输出-1标志,软件端不断轮询end_flag,直至其为-1才读回正确的结果。
7.根据权利要求2所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,三类计算引擎,内部均是基于GAS模型而实现的,在面对不同的图算法的时候,只需要对Apply模块进行相应的算法实现,能够适用于多种不同的图算法。
8.根据权利要求2所述的基于FPGA的异构可重构图计算加速器系统的设计方法,其特征在于,所述FPGA的结构包括:
控制器,将软件端传来的数据进行分发,通过控制器实现动态负载均衡;
源顶点缓冲区,缓存从软件端传输的源顶点数据;
目标顶点缓冲区,缓存重软件端传输的目标顶点数据;
入边缓冲区,缓存以当前处理的顶点区间中顶点为目标顶点的边;
出边缓冲区,缓存以当前处理的顶点区间中顶点为源顶点的边;
处理单元,用于计算和处理分发到其的图数据;
结果收集模块,用于收集各个处理单元计算完成之后的结果,并且将结果传输到板载DDR。
CN201810011291.2A 2018-01-05 2018-01-05 基于fpga的异构可重构图计算加速器系统的设计方法 Active CN108563808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810011291.2A CN108563808B (zh) 2018-01-05 2018-01-05 基于fpga的异构可重构图计算加速器系统的设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810011291.2A CN108563808B (zh) 2018-01-05 2018-01-05 基于fpga的异构可重构图计算加速器系统的设计方法

Publications (2)

Publication Number Publication Date
CN108563808A CN108563808A (zh) 2018-09-21
CN108563808B true CN108563808B (zh) 2020-12-04

Family

ID=63530613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810011291.2A Active CN108563808B (zh) 2018-01-05 2018-01-05 基于fpga的异构可重构图计算加速器系统的设计方法

Country Status (1)

Country Link
CN (1) CN108563808B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090611A (zh) * 2018-10-24 2020-05-01 上海雪湖信息科技有限公司 一种基于fpga的小型异构分布式计算系统
CN109949202B (zh) * 2019-02-02 2022-11-11 西安邮电大学 一种并行的图计算加速器结构
CN110175056B (zh) * 2019-05-30 2022-02-11 西安微电子技术研究所 一种异构平台远程动态加载多目标fpga的控制装置及控制方法
CN110619595B (zh) * 2019-09-17 2021-04-13 华中科技大学 一种基于多fpga加速器互联的图计算优化方法
CN110704360B (zh) * 2019-09-29 2022-03-18 华中科技大学 一种基于异构fpga数据流的图计算优化方法
CN110852930B (zh) * 2019-10-25 2021-06-29 华中科技大学 一种基于OpenCL的FPGA图处理加速方法和系统
CN111736966B (zh) * 2020-05-11 2022-04-19 深圳先进技术研究院 基于多板fpga异构系统的任务部署方法及设备
CN111783378B (zh) * 2020-06-30 2022-05-17 迈普通信技术股份有限公司 数据处理方法及fpga
CN112000598B (zh) * 2020-07-10 2022-06-21 深圳致星科技有限公司 用于联邦学习的处理器、异构处理系统及隐私数据传输方法
CN111813526A (zh) * 2020-07-10 2020-10-23 深圳致星科技有限公司 用于联邦学习的异构处理系统、处理器及任务处理方法
CN112380158B (zh) * 2020-10-20 2022-02-11 广东电网有限责任公司中山供电局 一种面向深度学习的计算平台
CN112667562B (zh) * 2021-01-22 2024-04-05 北京工业大学 一种基于cpu-fpga的大规模图上的随机游走异构计算系统
CN113312283B (zh) * 2021-05-28 2023-05-02 北京航空航天大学 一种基于fpga加速的异构图学习系统
CN116627887A (zh) * 2022-02-14 2023-08-22 华为技术有限公司 图数据处理的方法和芯片
CN114640630B (zh) * 2022-03-31 2023-08-18 苏州浪潮智能科技有限公司 一种流量管控方法、装置、设备及可读存储介质
CN115190175B (zh) * 2022-07-18 2023-07-14 浪潮(北京)电子信息产业有限公司 连接处理方法、系统、电子设备、服务器及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367658B2 (en) * 2011-06-22 2016-06-14 Maxeler Technologies Ltd. Method and apparatus for designing and generating a stream processor
CN107103113A (zh) * 2017-03-23 2017-08-29 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367658B2 (en) * 2011-06-22 2016-06-14 Maxeler Technologies Ltd. Method and apparatus for designing and generating a stream processor
CN107103113A (zh) * 2017-03-23 2017-08-29 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
OmniGraph: A Scalable Hardware Accelerator for Graph Processing;Chongchong Xu等;《IEEE Xplore》;20170930;第623-624页 *
一种面向FPGA异构计算的高效能KV加速器;孙征征;《计算机工程与科学》;20160831;第38卷(第8期);第1574-1580页 *
面向大数据应用的异构可重构平台关键技术研究;陈鹏;《中国博士学位论文全文数据库信息科技辑》;20150915;第三、四章 *

Also Published As

Publication number Publication date
CN108563808A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN108563808B (zh) 基于fpga的异构可重构图计算加速器系统的设计方法
Zhang et al. GraphP: Reducing communication for PIM-based graph processing with efficient data partition
Ma et al. Garaph: Efficient {GPU-accelerated} Graph Processing on a Single Machine with Balanced Replication
CN110619595B (zh) 一种基于多fpga加速器互联的图计算优化方法
US8189001B2 (en) Method and apparatus for parallel ray-tracing employing modular space division
Chen et al. A flow-guided file layout for out-of-core streamline computation
US8621151B2 (en) Active memory processor system
CN103281376A (zh) 一种云环境下海量时序遥感影像的自动缓存构建方法
CN107122244A (zh) 一种基于多gpu的图数据处理系统及方法
US20140176574A1 (en) Method and Apparatus for Interprocessor Communication Employing Modular Space Division
CN112686379B (zh) 集成电路装置、电子设备、板卡和计算方法
CN112799726A (zh) 数据处理装置、方法及相关产品
CN115605907A (zh) 分布式图形处理器单元架构
CN111488051A (zh) 基于cpu和fpga协同计算的云端深度神经网络优化方法
Min et al. NeuralHMC: An efficient HMC-based accelerator for deep neural networks
CN103903295B (zh) 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
Liu et al. OBFS: OpenCL based BFS optimizations on software programmable FPGAs
CN111680791B (zh) 适用于异构环境中的通信方法、装置、系统
Prabhakar et al. Sambanova sn10 rdu: A 7nm dataflow architecture to accelerate software 2.0
CN113419861A (zh) 一种面向gpu卡群的图遍历混合负载均衡方法
CN112667562A (zh) 一种基于cpu-fpga的大规模图上的随机游走异构计算系统
CN110222410B (zh) 一种基于Hadoop MapReduce的电磁环境仿真方法
Jiang et al. Swiftspatial: Spatial joins on modern hardware
US20190324909A1 (en) Information processing apparatus and information processing method
CN110704693A (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