当前位置: 首页 > 专利查询>之江实验室专利>正文

一种基于FPGA的图构建加速方法和系统技术方案

技术编号:37814344 阅读:8 留言:0更新日期:2023-06-09 09:44
本发明专利技术涉及一种基于FPGA的图构建加速方法和系统,其中,图构建加速方法包括:对存储数据内所有顶点的邻域逐个进行采样,并记录所有顶点的遍历顺序;依据所述顶点遍历顺序,将所有顶点划分为多个块,按照块的粒度进行处理,以至少求得每个块内每个顶点的采样邻居之间的距离;根据所述每个顶点的采样邻居之间的距离,更新这两个顶点的邻域;处理完毕所有顶点块,从步骤一开始执行下一轮迭代,直到构建的图的精度达到精度要求或迭代次数限制。本发明专利技术利用FPGA平台可重构、低功耗以及并行度高的优势,并结合图构建算法的特点,不仅大幅提升图的构建速度,同时还能够降低处理功耗,使得在数据中心处理大规模图构建任务成为可能。数据中心处理大规模图构建任务成为可能。数据中心处理大规模图构建任务成为可能。

【技术实现步骤摘要】
一种基于FPGA的图构建加速方法和系统


[0001]本专利技术涉及高性能计算
,尤其涉及一种基于FPGA的图构建加速方法和系统。

技术介绍

[0002]图是现实世界广泛采用的数据结构,能够表达实体间复杂的关系,在现代计算系统中越来越受欢迎。由于机器学习技术的广泛应用,文本、图像、音频、视频等类型数据常常被表示为高维向量形式,如何从这些大规模高维向量中挖掘出需要的信息是一个棘手的问题。当前使用最广泛的方法就是将这些数据转换为图,其中每个向量都是图中的顶点。
[0003]在构建的图结构上,可以使用许多强大的图学习或图处理算法来高效处理复杂的数据。最流行的图结构是k最近邻图(kNN),其中每个节点都连接到它的k个最近的邻居,但是由于现实应用中的向量数据的维度高达数百维,并且数据规模可达数十亿,构建图的过程中会涉及大量的随机访存以及高维向量计算,这导致图构建过程非常耗时耗能。如何在大规模数据上快速构建出满足精度要求的kNN图并且维持较低的能耗是一个具有挑战性的问题。
[0004]CN115374398A公开了一种基于FPGA的并行超图构建方法:计算机系统向FPGA发送表示普通图的无向邻接矩阵;FPGA接收无向邻接矩阵并存储后,依据无向邻接矩阵生成每个目标顶点对应的邻接顶点集合,并行依据邻接顶点集合构建每个目标顶点对应的超边,并将所有超边传输至计算机系统;计算机系统接收FPGA发送的所有超边,并依据所有超边构建超图。
[0005]已有的对图构建进行加速的方法主要有两类。一类是图构建算法层优化,这类方法减少了图构建过程中大量的重复计算,并且通过引入树等新结构优化了初始图的精度从而加快图构建过程的收敛速度,但是算法层面的优化很难有进一步的提升,而且图的构建速度不能满足现实需要。另一类是使用硬件加速图构建,如基于GPU的图构建加速系统,然而这种方式有很大的缺陷:(1)GPU平台功耗较高,在数据中心使用GPU加速图构建会导致较高的能耗,从节约成本的角度考虑,GPU平台不适合用于大规模图构建。(2)GPU的片上缓存较小,难以充分利用图构建过程中顶点之间的潜在的局部性,这限制了图构建的效率。并且这些方法都没有解决图构建过程中存在的大量访存以及计算开销问题。
[0006]FPGA平台具有可重构,功耗低和并行度高的特点。可重构的特点允许在FPGA上灵活定制各种参数设置的图构建算法。功耗低的特点可以为处理大规模图构建任务的数据中心节省可观的成本。并行度高的特点能够大幅度提升图构建的性能。最重要的是,目前还没有方法使用FPGA来加速图构建。
[0007]如上所述,FPGA是最适合加速图构建的平台,已公开的方法还没有研究过如何充分结合图构建算法本身的特性与FPGA的优势来加速图构建。本专利技术旨在提出一种基于FPGA的图构建加速方法和系统。
[0008]此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出
本专利技术时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本专利技术不具备这些现有技术的特征,相反本专利技术已经具备现有技术的所有特征,而且申请人保留在
技术介绍
中增加相关现有技术之权利。

技术实现思路

[0009]针对现有技术之不足,本专利技术提供了一种基于FPGA的图构建加速方法和系统,旨在解决现有技术中存在的至少一个或多个技术问题。
[0010]为实现上述目的,本专利技术提供了一种基于FPGA的图构建加速方法,包括:
[0011]步骤1:对存储数据内所有顶点的邻域逐个进行采样,并记录所有顶点的遍历顺序;
[0012]步骤2:依据顶点遍历顺序,将所有顶点划分为多个块,按照块的粒度进行处理,以至少求得每个块内每个顶点的采样邻居之间的距离;
[0013]步骤3:根据每个顶点的采样邻居之间的距离,更新这两个顶点的邻域。
[0014]步骤4:处理完毕所有顶点块,从步骤1开始执行下一轮迭代,直到构建的图的精度达到精度要求或迭代次数限制。
[0015]优选地,本专利技术中,步骤1包括如下步骤:
[0016]步骤11:对每个顶点的邻域进行采样。具体操作是将该顶点的部分邻居顶点的编号加入到采样列表,并且将该顶点的编号加入到采样的邻居顶点的反向列表。同时在采样过程中记录所有顶点的遍历顺序;
[0017]步骤12:重复步骤11,直到所有顶点处理完毕,并合并每个顶点的采样列表以及反向列表。
[0018]优选地,本专利技术中,步骤2包括如下步骤:
[0019]步骤21:加载一个块内所有顶点的采样邻居的编号以及这些采样邻居对应的特征向量;
[0020]步骤22:通过对步骤21加载的数据的计算,求得每个顶点的采样邻居之间的距离。
[0021]优选地,本专利技术中,步骤3包括如下步骤:
[0022]步骤31:读取每个距离值对应两个顶点的邻居列表;
[0023]步骤32:将每个距离值与各顶点现有邻居的距离值做比较,以判断是否将新邻居加入到各顶点的邻居列表。
[0024]优选地,步骤21包括如下步骤:
[0025]步骤211:根据记录的每个块内的所有顶点的编号,读取这些顶点的采样列表数据;
[0026]步骤212:根据读取的顶点的采样列表数据,读取这些采样点的特征向量。
[0027]优选地,步骤22包括如下步骤:
[0028]步骤221:根据加载的每个顶点的采样邻居信息和这些采样点的特征向量,生成计算任务;
[0029]步骤222:处理生成的计算任务,并在计算过程中记录每个点邻居的当前最大距离,其中,当计算中间结果超过这个最大中间距离时,计算任务提前中止,中间结果直接丢弃,不参与后续步骤。
[0030]优选地,本专利技术涉及一种基于FPGA的图构建加速系统,包括能够和DRAM通讯的读取部、处理部和更新部,其中,
[0031]读取部,用于读取DRAM中每个顶点的邻居列表,并进行采样操作,其中,每个顶点的采样数据被写回DRAM,且各顶点的遍历顺序被记录;
[0032]处理部,能够响应于接收到的各采样顶点的遍历顺序,将所有顶点划分为多个块,按照块的粒度进行处理,以至少求得每个块内每个顶点的采样邻居之间的距离值;
[0033]更新部,能够响应于接收到的每个顶点的采样邻居之间的距离值,从DRAM读取每个距离值对应两个顶点的邻居列表,并更新这两个顶点的邻居列表,将其写回DRAM。
[0034]特别地,本专利技术提供的图构建加速系统以块的粒度处理DRAM中所有顶点,通过将块内所需的所有向量数据预取到片上,可以大大减少高延迟的片外内存访问量。一旦顶点的邻居数据完全加载完毕,系统立即将这些数据调度到空闲的处理模块进行处理,而不需要等待块中所有邻域的所有数据加载完毕,以最大化流水线的效率。
[0035]进一步地,系统处理模块内部的计算是在向量维度上执行的。系统将每个顶点对的现有邻居的最大相似值缓存在处理模块内部。系统处理模块在处理完点对数据的每个维度后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的图构建加速方法,其特征在于,包括:步骤1:对存储数据内所有顶点的邻域逐个进行采样,并记录所有顶点的遍历顺序;步骤2:依据所述顶点遍历顺序,将所有顶点划分为多个块,按照块的粒度进行处理,以至少求得每个块内每个顶点的采样邻居之间的距离;步骤3:根据所述每个顶点的采样邻居之间的距离,更新这两个顶点的邻域;步骤4:处理完毕所有顶点块,从步骤1开始执行下一轮迭代,直到构建的图的精度达到精度要求或迭代次数限制。2.根据权利要求1所述的基于FPGA的图构建加速方法,其特征在于,所述步骤1包括如下步骤:步骤11:对每个顶点的邻域进行采样,将各顶点的部分邻居顶点的编号加入到采样列表,并且将各顶点的编号加入到采样的邻居顶点的反向列表,在采样过程中记录所有顶点的遍历顺序;步骤12:重复步骤11,直到所有顶点处理完毕,并合并每个顶点的采样列表以及反向列表。3.根据权利要求1或2所述的基于FPGA的图构建加速方法,其特征在于,所述步骤2包括如下步骤:步骤21:加载一个块内所有顶点的采样邻居的编号以及这些采样邻居对应的特征向量;步骤22:通过对步骤21加载的数据的计算,求得每个顶点的采样邻居之间的距离。4.根据权利要求1~3任一项所述的基于FPGA的图构建加速方法,其特征在于,所述步骤3包括如下步骤:步骤31:读取每个距离值对应两个顶点的邻居列表;步骤32:将每个距离值与各顶点现有邻居的距离值做比较,以判断是否将新邻居加入到各顶点的邻居列表。5.根据权利要求1~4任一项所述的基于FPGA的图构建加速方法,其特征在于,所述步骤21包括如下步骤:步骤211:根据记录的每个块内的所有顶点编号,读取这些顶点的采样列表数据;步骤212:根据读取的顶点的采样列表数据,读取这些采样点的特征向量。6.根据权利要求1~5任一项所述的基于FPGA的图构建加速方法,其特征在于,所述步骤22包括如下步骤:步骤221:根据加载的每个顶点的采样邻居信息和这些采样点的特征向量,生成计算任务;步骤222:处理生成的计算任务,并在计算过程中记录每个点邻居的当前最大距离,其中,当计算中间结果超过这个最大中间距离时,计算任务提前中止,中间结果直接丢弃,不参与后续步骤。7....

【专利技术属性】
技术研发人员:郑龙刘超强廖小飞金海黄禹安昭增
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1