一种针对图卷积加速的执行系统技术方案

技术编号:37964036 阅读:10 留言:0更新日期:2023-06-30 09:39
本说明书公开了一种针对图卷积加速的执行系统,系统包括:聚合引擎、组合引擎、缓存区,系统可以通过多核设备运行聚合引擎和组合引擎,聚合引擎与组合引擎并行处理任务,聚合引擎获取原始图数据,将原始图数据进行划分,得到若干子图数据,并从若干子图数据中,选取出至少部分子图数据存储在缓存区中,根据缓存区中的子图数据,构建各聚合任务,并将每个聚合任务分配给各核,不同核之间并行处理各聚合任务,在聚合任务完成后将得到的节点对应的聚合特征存入缓存区中;组合引擎可以针对每个节点,从缓存区中获取该节点的聚合特征,并根据该节点的历史节点特征以及对应的聚合特征,执行组合任务,从而,本系统可以在一定程度上提高图卷积的效率。高图卷积的效率。高图卷积的效率。

【技术实现步骤摘要】
一种针对图卷积加速的执行系统


[0001]本说明书涉及神经网络
,尤其涉及一种针对图卷积加速的执行系统。

技术介绍

[0002]当前,图(Gragh)数据可以应用在多种领域中,如信息推荐、链路预测等,为有效地挖掘图数据的特性,业界提出了图卷积神经网络。图卷积神经网络将图数据转化到一个低维空间,同时能够最大化保持结构和属性信息,为后续通过图数据的特征来执行相关业务,提供了有效的途径。
[0003]图卷积有两个主要的执行阶段:聚合和组合。聚合阶段依赖于固有的稀疏的图结构。针对每个顶点需要从其所有的源邻居中聚合特征。而这些源邻居的数量和位置在不同顶点之间存在显著差异。组合阶段更像神经网络,它使用多层感知器将每个顶点的特征向量转换为一个新的感知器,通常使用矩阵向量乘法表示。在常规的图卷积处理中,通常将整个图存在磁盘或者内存中,在需要进行节点聚合时,需要加载出整个图,并从整个图中搜索出需要的节点等相关数据,从而开始进行聚合、组合等,但是这种方式需要加载出整个图,效率较低。
[0004]因此,如何提高进行图卷积的效率,则是一个亟待解决的问题。

技术实现思路

[0005]本说明书提供一种针对图卷积加速的执行系统,以部分的解决现有技术存在的上述问题。
[0006]本说明书采用下述技术方案:
[0007]本说明书提供了一种针对图卷积加速的执行系统,所述系统包括:聚合引擎、组合引擎、缓存区,其中,所述系统通过多核设备运行所述聚合引擎和所述组合引擎,所述聚合引擎与所述组合引擎并行处理任务;
[0008]所述聚合引擎用于,获取原始图数据,将所述原始图数据进行划分,得到若干子图数据,并从所述若干子图数据中,选取出至少部分子图数据存储在缓存区中,根据所述缓存区中的子图数据,构建针对所述原始图数据中包含的节点的各聚合任务,并将得到的每个聚合任务分配给各核,不同核之间并行处理各聚合任务,在聚合任务完成后将得到的节点对应的聚合特征存入所述缓存区中,其中,针对每个节点,该节点对应的聚合特征是通过对与该节点具有预设邻接关系的节点的节点特征聚合得到的;
[0009]所述组合引擎用于,针对每个节点,从所述缓存区中获取该节点的聚合特征,并根据该节点的历史节点特征以及对应的聚合特征,执行组合任务。
[0010]可选地,所述组合引擎用于,执行组合任务得到此次迭代中该节点的节点特征后,确定此次迭代是否为最后一次迭代,若否,则将该节点特征存入到所述缓存区中,以使所述聚合引擎继续针对该节点执行聚合任务。
[0011]可选地,一个子图数据包括:节点区间以及边区间,节点区间用于表示该子图数据
对应的子图中包含的节点,所述边区间用于表示该子图数据对应子图中包含的节点对应的边,所述节点区间和所述边区间分别通过压缩稀疏列进行表示。
[0012]可选地,所述系统中还包括:内存,所述内存用于存储所述若干子图数据;
[0013]所述聚合引擎用于,确定每个节点的度,从所述若干子图数据中,选取出度的数值高于预设数值的节点对应的子图数据存储在所述缓存区中;根据所述缓存区中的子图数据,以及所述内存中的子图数据,构建所述各聚合任务;
[0014]若需要针对节点执行聚合任务,确定所述缓存区中是否存在与该节点相关的子图数据,若是,根据所述子图数据构建该节点对应的聚合任务,若否,从所述内存中读取与该节点相关的子图数据,以确定出与该节点相关的聚合元素,并根据与该节点相关的聚合元素,构建出该节点的聚合任务。
[0015]可选地,所述聚合引擎用于,针对每个边区间,在该边区间内创建预设大小的窗口,所述窗口向下滑动,直到所述窗口顶部一行内存在有边,所述窗口停止,并且所述窗口的底部一行向上收缩,直到所述窗口的底部一行内存在有边。将该边区间按照所述窗口的顶部一行以及所述窗口的底部一行进行调整,得到调整后的边区间,并将调整后的边区间进行存储。
[0016]可选地,所述缓存区中包括用于存储度的数值高于预设数值的节点对应的子图数据的第一缓存区,还包括用于存储聚合特征的第二缓存区。
[0017]可选地,所述组合引擎中包含有若干收缩阵列,所述组合引擎包括独立工作模式以及合作工作模式;
[0018]在所述独立工作模式下,不同节点的组合任务在所述组合引擎中的不同收缩阵列中执行;
[0019]在所述合作工作模式下,所述组合引擎中的各收缩阵列共同执行节点的组合任务。
[0020]可选地,若所述组合引擎为所述独立工作模式,所述聚合引擎执行完成少于第一设定数量的聚合任务后,将得到的少于所述第一设定数量的聚合特征存入所述缓存区;
[0021]所述组合引擎监测到所述缓存区中存储有少于第一设定数量的聚合特征,获取到所述少于第一设定数量的聚合特征,按照所述独立工作模式通过收缩阵列执行组合任务。
[0022]可选地,若所述组合引擎为所述组合工作模式,所述聚合引擎执行完成不少于第二设定数量的聚合任务后,将得到的少于所述第二设定数量的聚合特征存入所述缓存区;
[0023]所述组合引擎监测到所述缓存区中存储有不少于第二设定数量的聚合特征,获取到所述不少于第二设定数量的聚合特征,按照所述合作工作模式通过收缩阵列执行组合任务。
[0024]可选地,所述系统针对所述内存以及缓存区预设有访问优先级。
[0025]本说明书中提供一种针对图卷积加速的执行方法,所述执行方法通过包括有聚合引擎、组合引擎、缓存区以及内存的系统进行执行,所述系统通过多核设备运行所述聚合引擎和所述组合引擎,所述聚合引擎与所述组合引擎并行处理任务,包括:
[0026]获取原始图数据;
[0027]通过所述聚合引擎将所述原始图数据进行划分,得到若干子图数据;
[0028]从所述若干子图数据中,选取出至少部分子图数据存储在缓存区中;
[0029]通过所述聚合引擎根据所述缓存区中的子图数据,构建针对所述原始图数据中包含的节点的各聚合任务,并将得到的每个聚合任务分配给各核,不同核之间并行处理各聚合任务;
[0030]在聚合任务完成后将得到的节点对应的聚合特征存入所述缓存区中,其中,针对每个节点,该节点对应的聚合特征是通过对与该节点具有预设邻接关系的节点的节点特征聚合得到的;
[0031]通过所述组合引擎针对每个节点,从所述缓存区中获取该节点的聚合特征,并根据该节点的历史节点特征以及对应的聚合特征,执行组合任务。
[0032]本说明书提供一种针对图卷积加速的执行装置,所述执行装置中包括聚合引擎、组合引擎、缓存区,所述装置通过多核设备运行所述聚合引擎和所述组合引擎,所述聚合引擎与所述组合引擎并行处理任务,包括:
[0033]获取模块,用于获取原始图数据;
[0034]划分模块,用于通过所述聚合引擎将所述原始图数据进行划分,得到若干子图数据;
[0035]选取模块,用于从所述若干子图数据中,选取出至少部分子图数据存储在缓存区中;
[0036]构建模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对图卷积加速的执行系统,其特征在于,所述系统包括:聚合引擎、组合引擎、缓存区,其中,所述系统通过多核设备运行所述聚合引擎和所述组合引擎,所述聚合引擎与所述组合引擎并行处理任务;所述聚合引擎用于,获取原始图数据,将所述原始图数据进行划分,得到若干子图数据,并从所述若干子图数据中,选取出至少部分子图数据存储在缓存区中,根据所述缓存区中的子图数据,构建针对所述原始图数据中包含的节点的各聚合任务,并将得到的每个聚合任务分配给各核,不同核之间并行处理各聚合任务,在聚合任务完成后将得到的节点对应的聚合特征存入所述缓存区中,其中,针对每个节点,该节点对应的聚合特征是通过对与该节点具有预设邻接关系的节点的节点特征聚合得到的;所述组合引擎用于,针对每个节点,从所述缓存区中获取该节点的聚合特征,并根据该节点的历史节点特征以及对应的聚合特征,执行组合任务。2.如权利要求1所述的系统,其特征在于,所述组合引擎用于,执行组合任务得到此次迭代中该节点的节点特征后,确定此次迭代是否为最后一次迭代,若否,则将该节点特征存入到所述缓存区中,以使所述聚合引擎继续针对该节点执行聚合任务。3.如权利要求1所述的系统,其特征在于,一个子图数据包括:节点区间以及边区间,节点区间用于表示该子图数据对应的子图中包含的节点,所述边区间用于表示该子图数据对应子图中包含的节点对应的边,所述节点区间和所述边区间分别通过压缩稀疏列进行表示。4.如权利要求1所述的系统,其特征在于,所述系统中还包括:内存,所述内存用于存储所述若干子图数据;所述聚合引擎用于,确定每个节点的度,从所述若干子图数据中,选取出度的数值高于预设数值的节点对应的子图数据存储在所述缓存区中;根据所述缓存区中的子图数据,以及所述内存中的子图数据,构建所述各聚合任务;若需要针对节点执行聚合任务,确定所述缓存区中是否存在与该节点相关的子图数据,若是,根据所述子图数据构建该节点对应的聚合任务,若否,从所述内存中读取与该节点相关的子图数据,以确定出与该节点相关的聚合元素,并根据与该节点相关的聚合元素,构建出该节点的聚合任务。5.如权利要求3所述的系统,其特征在于,所述聚合引擎用于,针对每个边区间,在该边区间内创建预设大小的窗口,所述窗口向下滑动,直到所述窗口顶部一行内存在有边,所述窗口停止,并且所述窗口的底部一行向上收缩,直到所述窗口的底部一行内存在有边,将该边区间按照所述窗口的顶部一行以及所述窗口的底部一行进行调整,得到调整后的边区间,并将调整后的边区间进行存储。6.如权利要求4所述的系统,其特征在于,所述缓存区中包括用于存储度的数值高于预设数值的节点对应的子图数据的第一缓存区,还包括用于存储聚合特征的第二缓存区。7.如权利要求1所述的系统,其特征在于,所述组合引擎中包含有若干收缩阵列,所述组合引擎包括独立工作模式以及合作工作模式;在所述独立工作模式下,不同节点的组合任务在所述组合引擎中的不同收缩阵列中执行;在所述合作工作模式下,所述组合引擎中的各收缩阵列共同执行节点的组合任务。
8.如权利要求7所述的系统,其特征在于,若所述组合引擎为所述独立工作模式,所述聚合...

【专利技术属性】
技术研发人员:张宇黄浚赵进余辉张湛
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1