CN117223005A - 加速器、计算机系统和方法 - Google Patents
加速器、计算机系统和方法 Download PDFInfo
- Publication number
- CN117223005A CN117223005A CN202280029712.9A CN202280029712A CN117223005A CN 117223005 A CN117223005 A CN 117223005A CN 202280029712 A CN202280029712 A CN 202280029712A CN 117223005 A CN117223005 A CN 117223005A
- Authority
- CN
- China
- Prior art keywords
- graph
- node
- nodes
- key
- updated
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 88
- 238000004364 calculation method Methods 0.000 claims abstract description 56
- 238000013528 artificial neural network Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 12
- 239000013598 vector Substances 0.000 claims description 95
- 230000002123 temporal effect Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 16
- 238000013527 convolutional neural network Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 7
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 230000007787 long-term memory Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 7
- 230000006403 short-term memory Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 150000002500 ions Chemical class 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种加速器、计算机系统和方法。该加速器,包括:关键图存储器,被配置为存储关键图;节点分类电路,被配置为:从关键图存储器提取关键图;接收用于利用关键图执行时间图神经网络计算的当前图;以及基于关键图和当前图之间的比较,识别当前图的一个或多个节点;以及节点重构电路,被配置为:对节点分类电路识别的一个或多个节点执行空间计算,以获得更新节点;基于关键图和更新节点,生成更新的关键图;以及在关键图存储器中存储更新的关键图以处理下一个图。本公开实施例提高了时间GNN计算的性能,优化了时间GNN计算的能效,节省了时间GNN在处理器的高速缓存/存储器空间中的存储空间占用量。
Description
本申请要求了申请日为2021年4月23日、申请号为US17/238,620、名称为“METHOD AND SYSTEM FOR TEMPORAL GRAPH NEURAL NETWORK ACCELERATION”的美国申请的优先权,并且通过参照上述美国申请的全部说明书、权利要求、附图和摘要的方式,将其引用于本申请。
本公开通常涉及加速时间图神经网络(temporal graph neural network,temporal GNN)。更具体地,本公开涉及通过硬件软件协同设计加速时间图神经网络的性能和能效(energy efficiency)的方法和系统。
虽然传统的深度学习模型擅长于通过捕获欧几里得数据(Euclidean data,例如,图像、文本、视频)的隐藏模式来进行模式识别和数据挖掘,图神经网络(GNN)已经证明可以将机器学习的能力扩展到表示为具有对象之间复杂的关系和相互依赖的图的非欧几里得领域。研究表明,GNN在从分子推理到社区检测等的应用中可以超过现有水平的最佳性能。
时间GNN是一种新型的GNN,其已广泛应用于涉及时空数据处理(spatial-temporal data processing)的各种实际应用,例如,交通流量预测、天气预报、基于骨骼的动作识别(skeleton-based action recognition)、视频理解等。时间GNN扩展了具有时间连接的静态图结构,并将传统GNN应用于扩展图(extended graph)。本公开描述了一种用于提高时间GNN的性能和能效的新型方法。
发明内容
本说明书的各种实施例可以包括用于加速时间GNN的系统、方法和非暂时性计算机可读介质。
根据一个方面,提供了一种用于加速时间图神经网络(GNN)计算的硬件加速器。硬件加速器可以包括:关键图存储器(key-graph memory),被配置为存储关键图;节点分类电路,被配置为:从关键图存储器提取关键图;接收用于利用关键图执行时间GNN计算的当前图;以及基于关键图和当前图之间的比较,识别当前图的一个或多个节点;以及节点重构电路,被配置为:对由节点分类电路识别的一个或多个 节点执行空间计算(spatial computation),以获得更新节点;基于关键图和更新节点,生成更新的关键图;以及将更新的关键图存储在关键图存储器以处理下一个图。
在一些实施例中,为了识别当前图的一个或多个节点,节点分类电路被配置为:对于当前图中的每个节点,识别关键图中的对应节点;确定当前图中该节点的第一特征向量和关键图中所述对应节点的第二特征向量之间的距离;以及如果距离大于阈值,则选择当前图中的该节点。
在一些实施例中,所述距离是汉明距离。
在一些实施例中,为了确定当前图中该节点的第一特征向量和关键图中所述对应节点的第二特征向量之间的距离,节点分类电路还被配置为:基于第一特征向量和第二特征向量内的数据类型,确定第一特征向量和第二特征向量之间待比较的位单元(a unit of bits);对于第一特征向量内的每个位单元,将每个位单元内的指数位(exponent bit)和一个或多个小数位(fraction bit)与第二特征向量内的对应位进行比较,以获得多个匹配位;以及基于所述多个匹配位,确定第一特征向量与第二特征向量之间的距离。
在一些实施例中,节点分类电路还被配置为:响应于从关键图存储器接收的关键图为空,将接收的当前图发送给节点重构电路;其中节点重构电路还被配置为:对当前图中每个节点执行空间计算以获取新关键图,其中空间计算包括:GNN计算;以及将新关键图发送到关键图存储器中进行存储。
在一些实施例中,为了对识别的一个或多个节点执行空间计算,节点重构电路还被配置为:获取识别的一个或多个节点中的一个节点的特征向量和当前图的邻接矩阵(adjacency matrix);基于邻接矩阵识别一个或多个邻居节点(neighboring node);递归地聚合和转换一个或多个邻居节点的特征向量和所述节点的特征向量,以获得所述节点的更新的特征向量。
在一些实施例中,硬件加速器还可以包括时间计算电路,被配置为基于关键图和更新的关键图执行时间计算。
在一些实施例中,时间计算包括:使用卷积神经网络(convolutional neural network,CNN)确定关键图和更新的关键图之间的时间特征。
在一些实施例中,时间计算包括:使用长短期记忆(Long Short-Term Memory,LSTM)神经网络确定关键图和更新的关键图之间的时间特征。
在一些实施例中,为了基于关键图和更新节点,生成更新的关键图,节点重构电路被配置为:识别关键图中对应于一个或多个更新节点的一个或多个第一节点;以及通过将关键图中的一个或多个第一节点的特征向量替换为一个或多个更新节点的特征向量,生成更新的关键图。
根据其它实施例,提供了一种系统,系统包括:一个或多个处理器;一个或多个计算机可读存储器,一个或多个计算机可读存储器与一个或多个处理器耦合且具有存储在其上的指令,一个或多个处理器执行所述指令以执行上述任何实施例的方法。
根据其它实施例,提供了一种非暂时性计算机可读存储介质,非暂时性计算机可读存储介质配置有指令,一个或多个处理器可以执行指令,使一个或多个处理器执行上述任何实施例的方法。
根据其他实施例,提供了一种用于加速时间图神经网络(Temporal GNN)计算的计算机系统。计算机系统包括:第一存储器,被配置为存储关键图;第二存储器,被配置为存储用于时间GNN计算的当前图;接收电路,被配置为接收来自第一存储器的关键图和来自第二存储器的当前图;识别电路,被配置为基于关键图与当前图之间的比较,识别当前图中的一个或多个节点;计算电路,被配置为对识别的一个或多个节点执行空间计算,以获得更新节点;以及更新电路,被配置为基于关键图和更新节点,生成更新的关键图,第一存储器存储用于时间GNN计算的更新的关键图。
本说明书中公开的实施例具有多种技术效果。正如背景技术部分简要提到的,时间GNN通常处理从多个连续的时间步长(timestep)收集的数据,例如,交通流量数据的视频。因为从相邻时间步长收集的版本可能不会显著地变化,该数据可能是高度冗余的。当执行时间GNN计算时,存储冗余数据可以导致额外的存储开销,并且对这些冗余数据执行计算可以导致较差的性能和能耗尖峰。在本文描述的一些实施例中,利用这种数据冗余来有效地减少时间GNN中要处理的数据量。例如,假设从多个时间步长收集的数据表示为一系列图(即,数据结构),一系列图中的一个图可被识别为关键图,其他图可以被识别为辅助图(secondary graph)。可以使用传统GNN对关键图中的所有节点进行空间计算,以得到更新的关键图。对于辅助图,可以只对辅助图中的节点子集执行空间计算(以避免对与关键图中的节点类似的节点进行冗余计算),以获得相应的更新节点。辅助图中的其他节点可以跳过使用传统GNN的空间计算。这些更新节点可以被合并到关键图中以获得更新的关键图。然后,更新的关键图可以用作新关键图以用于处理下一个进来的输入图。在一些实施例中,通过比较关键图和辅助图来确定节点子集。例如,如果辅助图中的节点和关键图中的对应节点之间的距离大于阈值,则该节点可以被选择到子集中。之后,关键图的不同版本(例如,来自两个相邻时间步长的两个关键图)可以进行时间计算来探索数据中的时间特征。然后可以使用这些时间特征来对未来时间步长进行预测(例如,预测未来时间步长的关键图)。与其中每个图中所有节点都需要进行空间 和时间计算的现有的时间GNN设计相比,上述实施例显著地减少了要处理的所有辅助图的数据量,从而提高了时间GNN计算的性能,优化了时间GNN计算的能效。在一些实施例中,可以阻止将辅助图中跳过的节点发送到处理器进行缓存(例如,在片上存储器或高速缓存中),从而节省了时间GNN在处理器的高速缓存/存储器空间中的存储空间占用量。
在考虑下述描述和所附权利要求书后,本公开的系统、方法和非暂时性计算机可读介质的这些和其他特征,以及结构的相关元件的操作方法和功能,以及部件的组合和制造经济性将变得更加显而易见。所附权利要求书参考构成本说明书一部分的附图,在各种附图中相似的参考编号表示相应部分。然而,应当理解,附图仅用于说明和描述,并不旨在作为本公开的限制的定义。
图1示出了实现本公开的实施例和特征的示例性硬件环境的示意图。
图2示出了根据本公开实施例的用于实现时间图神经网络(temporal graph neural network,temporal GNN)加速器的硬件设备的示意图。
图3示出了根据本公开实施例的时间GNN的示意性框架。
图4示出了根据本公开实施例的利用重复数据去除(deduplication)加速时间GNN计算的示例性工作流。
图5示出了根据本公开实施例的时间GNN加速器的内部结构图。
图6示出了根据本公开实施例的用于加速时间GNN预处理的示例性方法。
图7示出了根据本公开实施例的用于加速时间GNN的计算机系统设备的框图。
提出本说明书是为了使本领域的任何技术人员能够制造和使用所述实施例,且在特定应用的背景及其环境中提供本说明书。对那些本领域技术人员来说,对本公开实施例的各种修改将是显而易见的,并且在不脱离本说明书的精神和范围的情况下,本文定义的一般原理可应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而被授予与本文公开的原理和特征一致的最广泛范围。
图神经网络(GNN)在包括社交网络、知识图、推荐系统、甚至生命科学的各个领域越来越受欢迎。在较高水平上,GNN涉及对图结构G=(V,E)的计算,图结构G=(V,E)表示(无向或有向的)图,其中V表示顶点,E表示边。在一些实施例中,图中每个节点可以与多个特征相关联。根据用例,图可以具有不同的实际意义。例如,GNN可以应用于挖掘社交媒体网络上的用户特征和/或学习用户之间的关系。作 为另一个示例,纳米级分子具有将离子或原子作为节点以及将离子或原子之间的键作为边的固有的图状结构。GNN可以应用于两种情况:学习现有的分子结构以及发现新的化学结构。
时间GNN是GNN的扩展,具有附加的时间维度,用于处理数据的图表示随时间演变的用例,例如,交通流量预测、视频理解、基于骨骼的动作识别等。社交网络可以是动态图的很好说明:当用户加入平台时,创建新的顶点。当用户跟随另一个用户时,创建边。当用户更改其配置文件时,更新顶点。通常,时间GNN可以涉及对图结构G=(V,E,T)的计算,其中V表示顶点,E表示边,T表示时间维度。现有时间GNN对从每个时间步长收集的数据的每个图表示执行传统GNN计算(例如,挖掘特征)。GNN计算涉及递归地聚合和转换图中节点的特征向量,GNN计算既是计算密集型的,也是存储密集型的。此外,在实际应用中,图的体积通常很大(例如,表示社交网络上数以百万计的用户及其交互的图),这使得现有时间GNN不适用于对时间敏感的用例,例如,实时或近乎实时的预测。为了解决这个问题,本公开描述了一种通过减少冗余计算来提高时间GNN的性能的新型方法。
图1示出了实现本公开的实施例和特征的示例性硬件环境的示意图。图1中的硬件环境包括用于说明性目的的计算设备140。取决于实现方式,计算设备140可以包括更少、更多或替代组件。
如图1所示,计算设备140包括与调度器集群270和加速器集群280相连的存储器(storage/memory)210组件。调度器集群270可以包括多个调度器220,加速器集群280可以包含多个加速器230。在一些实施例中,加速器230可指被设计用于加速神经网络模型在不同阶段(例如,输入数据预处理、卷积操作、池化操作等)的处理速度的专用处理单元。加速器可以被实现为图形处理单元(graphic processing unit,GPU)、专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)等,以实现加速神经网络运算的逻辑。调度器220可以指用于确定加速器230的调度行程并将要执行的指令和/或数据分发给每个加速器230的处理单元。在一些实施例中,调度器220可以被实现为中央处理单元(Central Processing Unit,CPU)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、或其他合适的形式。
相比之下,传统的CPU架构将其大部分资源分配给控制单元和存储单元,而计算单元往往资源不足。尽管CPU在逻辑控制方面是非常有效的,但在大规模的并行计算中却不是很有效。因此,各种硬件加速器已经被开发以改善不同功能和不同领域的计算处理速度。本说明书中提出的硬件加速器包括致力于加速GNN计算性能的 处理单元。该硬件加速器是用于处理大量操作(例如,图分割、行/列重排序、硬件感知-粒度感知矩阵分割、卷积、池化、另外适合的操作、或其任何组合)的数据驱动并行计算结构。在整个GNN处理过程中,这些操作的数据和中间结果可以彼此密切相关,并且被频繁使用。在没有加速器的情况下,现有的CPU框架在CPU的核中具有小的存储容量,将导致对外部(例如,CPU外部)存储器的大量频繁存储器访问。这些存储器访问成本高且会造成低处理效率。使用致力于加速GNN的数据处理速度的加速器可以大大提高处理效率和计算性能,这至少有以下原因:(1)输入数据(图)可以被分割成多个子矩阵以对相似节点(具有相似特征向量的节点)进行聚类,(2)可以对每个子矩阵的行和列进行重排序,从而对具有相似稀疏度的数据进行聚类,和(3)基于用于执行GNN计算(例如,卷积、聚合、转换、池化等)的底层处理器的数据处理粒度,每个子矩阵可以进一步被分割为较小的被称为瓦片(tile)的单元。因为瓦片被仔细地确定其尺寸大小以适应底层处理器,每个处理器中的片上存储器可以被用在GNN计算中,并且可以避免对片外存储器的频繁存储器访问。
在一些实施例中,存储器210可以存储各种神经网络模型(例如,这些模型的节点和这些节点的权重或参数)和这些模型的输入数据(例如,GNN的输入图,诸如,节点、节点的特征向量、边等)。本说明书中的加速器230可以对模型的输入数据执行预处理以加速后续神经网络的计算。例如,调度器220可以以指令形式将存储器210内的输入图的地址发送到加速器230。随后,加速器可以(例如,在预定时间点)直接从存储器210定位和获取输入数据,并将输入数据暂时存储在其片上存储器中以预处理输入数据。预处理的输出可包括具有不同稀疏度的数据的多个瓦片。在一些实施例中,可以将这些瓦片分配给用于加速计算的多个底层处理器。可以优化不同的底层处理器以对具有不同稀疏度的数据集执行神经网络计算。将瓦片分配到底层处理器可以包括将每个瓦片分配给针对处理每个瓦片中具有特定稀疏度的数据集而优化的一个底层处理器。可以聚合底层处理器的输出以生成最终计算结果。在一些实施例中,这些底层处理器可以被实现为加速器230的一部分或与加速器230分开。如果底层处理器实现为加速器的一部分,则调度器220可以以指令的形式将存储器210中对应神经网络模型的参数的地址发送到加速器230。随后,加速器230可在存储器210直接定位这些参数(例如,权重),并将这些参数临时存储在其用于底层处理器的片上存储器中,以基于上述瓦片执行计算。
图2示出了根据本公开实施例的用于实现硬件加速器的硬件设备的示意图。图2中的硬件设备示出了图1中的调度器220和加速器230的内部结构,以及在调度器220、加速器230和存储器210之间的数据/指令流。
如图2所示,调度器220可包括多个处理器222和由多个处理器222共享的高速缓存221。每个处理器222可以包括指令获取单元(instruction fetching unit,IFU)223、指令解码单元(instruction decoding unit,IDU)224、指令发送单元(instruction transmitting Unit,ITU)225和指令执行单元(instruction execution unit,IEU)226。
在一些实施例中,指令获取单元(IFU)223可以从存储器210将待执行指令或数据提取到寄存器堆229。在获得指令或数据后,调度器220进入指令解码阶段。指令解码单元(IDU)224根据预定指令格式对所获得的指令进行解码,以确定操作数获取信息,其中操作数是执行所获得的指令所需的。在一些实施例中,操作数获取信息可以包括立即数、寄存器或提供操作数的其他软件/硬件的指针或地址。
在一些实施例中,指令发送单元(ITU)225可以被配置为在指令解码单元(IDU)224和指令执行单元(IEU)226之间进行指令调度和管理。指令发送单元(ITU)225可以有效地将指令分配给用于并行处理的不同指令执行单元(IEU)226。
在一些实施例中,在指令发送单元(ITU)225将指令分配给一个指令执行单元(IEU)226之后,指令执行单元(IEU)226可以执行指令。然而,如果指令执行单元(IEU)226确定指令应该由加速器230执行,则其可以将指令转发到用于执行的对应加速器230。例如,如果指令指向基于输入图的GNN计算,则指令执行单元(IEU)226可以通过用于加速器230的总线231将指令发送到加速器230以执行指令。
在一些实施例中,加速器230可包括多个核236(图2A中示出4个核,但本领域技术人员可以理解,加速器230还可以包括其它数目的核236)、命令处理器237和直接存储访问(direct storage access,DMA)接口235和总线通道231。
总线通道231可以包括指令/数据通过其进出加速器230的通道。直接存储访问(DMA)接口235可以指由一些计算机总线架构提供的功能,其使设备能够从存储器210直接读取和/或写入数据。与设备间所有数据传输都通过调度器220的方法相比,图2中所示的架构大大提高了数据访问效率。例如,加速器230的核可以直接访问存储器210且读取神经网络模型的参数(例如,每个节点的权重)和/或输入数据。
命令处理器237可被配置为将由调度器220通过指令执行单元(IEU)226发送到加速器230的指令分配给核236以执行。在待执行指令从总线通道231进入加速器230之后,可以将待执行指令高速缓存在命令处理器237中,并且命令处理器237可以选择核236并将指令分配给核236以供执行。此外,命令处理器237还可以负责核236之间的同步操作。
在一些实施例中,由命令处理器237分配的指令可以包括预处理用于加速GNN计算的输入图。该指令可被发送到图预处理核238以执行预处理。在一些实施例中,可以直接分配输入图以及通过直接存储访问(DMA)接口235从存储器210提取输入 图。在一些实施例中,输入图可以表示为邻接矩阵。输入图中的每个节点可以对应于邻接矩阵中的行和列,每个节点的特征可以表示为邻接矩阵中的特征向量。
图3示出了根据本公开实施例的时间图神经网络(GNN)的示例性框架300。图3所示框架描绘了时间GNN的工作流。根据实现方式和用例,时间GNN可以具有更多、更少或替代的层或组件。
框架300中的时间GNN可以被训练以基于输入数据310进行预测340。根据实际的用例,输入数据310和预测340可以具有各种实际意义。例如,输入数据310可以包括交通流量的视频记录。可以从在一个或多个路口进行交通监控的一个或多个摄像机收集视频。在此上下文中,预测340可以包括基于从输入数据310学习的空间特征320和时间特征330预测的未来交通情况。
在一些实施例中,输入数据310可以包括跨多个时间步长收集的多个输入数据集。每个输入数据集可以表示为具有顶点(表示对象)和边(表示对象之间的关系)的图。在交通流量预测的上下文中,每个输入数据集可以包括在一个时间步长的一个或多个路口的交通情况的“快照(snapshot)”。假设当前时间为t,从先前的n个时间步长收集的交通数据可以分别表示为n个图,表示为图3中的X
t-n、……、X
t-1、X
t。
n个图的每个图可以包括顶点和边之中的多个空间特征320。在一些实施例中,可以通过使用GNN来探索这些空间特征320。例如,一个输入图可以包括具有初始特征向量的多个顶点。顶点的初始特征向量可以包括顶点的特征值。例如,在社交网络设置中,每个用户可以表示为节点,并且用户的特征(例如,简介信息、当前状态、最近的活动等)可以表示为特征向量。在对输入图执行GNN计算之后,可以生成更新的图,并且更新的图可以包括具有更新的特征向量的多个节点。更新的特征向量可以被嵌入邻居节点的特征。GNN计算可以遵循邻域聚合方案(neighborhood aggregation scheme),其中可以通过递归地聚合和转换顶点的邻居节点的特征向量,计算顶点的特征向量。
在学习多个图的每个图中的空间特征320之后,可以生成一个或多个更新的图。可以通过对每个更新的图执行时间计算来探索时间特征330。在一些实施例中,可以通过使用卷积神经网络(convolution neural network,CNN)或长短期记忆(Long Short-Term Memory,LSTM)神经网络执行时间计算。例如,在更新图X
t-n、……、X
t-1、X
t(例如,通过GNN更新节点的特征向量)之后,可以对更新的图执行时间计算,以学习更新的图中节点和/或边的演变趋势。CNN或LSTM可以用于接收作为输入的图和输出下一个时间步长的预测340,其表示为X
t+1。
图4示出了根据本公开实施例的利用重复数据去除(deduplication)加速时间 GNN计算的示例性工作流400。工作流400仅仅是为了说明性的目的。工作流400可以在图1所示的硬件环境中通过图2中所示的硬件设备来实现,以提高图3中所示的时间GNN计算的性能和能效。根据实现方式,工作流400可能包括更少、更多或替代步骤。一些步骤可以被拆分或合并,并且一些步骤可以以不同的顺序或并行地执行。工作流400展示了重复数据删除如何提高时间GNN中空间计算的效率。
时间GNN可用于探索在不同时间步长的对象的多个快照(例如,对象的特征/状态)之中的空间特征和时间特征。这些快照可以在图数据结构中表示。例如,每个对象都可以指交通控制的上下文中的车辆或路口、社交网络的上下文中用户或组织、或用于学习现有分子结构以及发现新化学结构的纳米级分子的上下文中的离子或原子。例如,对象可以指一个或多个地理位置,并且在一个时间步长的对象的特征/状态可以包括从在一个时间步长的一个或多个地理位置捕获的交通图像。
在一些实施例中,从一个时间步长收集的一个图可以被选择作为关键图,并且其他图可以被视作关键图的衍生版本,也可以指辅助图(secondary graph)。关键图中所有顶点都可以进行空间计算,但辅助图中只有顶点的子集可能需要被处理。如上所述,由于可以从多个连续时间步长收集多个图,两个相邻时间步长的图之间的变化可以是限于少量顶点和/或边。也就是说,图可以包括大量的重复数据,可以在计算中跳过重复数据以加速空间计算。例如,关键图经过完整的空间计算后,与关键图共享一个或多个顶点的下一个(辅助)图可能只需要对更新的顶点执行空间计算。这样,显著地降低了对辅助图执行空间计算的计算成本以及处理器要高速缓存/处理的数据量。
在一些实施例中,可以以各种方式确定关键图。例如,从最早时间步长收集的图可以被确定为关键图。作为另一个示例,可以通过以下步骤从接收的多个图选择关键图:对于多个图中每个图,基于该图和每个其他图之间的每个图距离,确定总体图距离(overall graph distance);将具有最小总体图距离的图确定为关键图。可以使用各种技术来确定图距离,例如,编辑距离/图同构(edit distance/graph isomorphism)、特征提取、和迭代方法等。
参考图4中的工作流400。在步骤410,第一步骤可以包括接收表示为X
t的输入图数据,其中,t指的是时间戳(timestamp)t。接着,在步骤420,分类单元可用于对输入图数据X
t是关键图还是辅助图进行分类。如果输入图数据X
t是关键图430,则可以在步骤432,对输入图数据X
t中所有节点执行一组完整的空间计算。在步骤434,空间计算可以生成输入图数据X
t的表示为关键空间GNN的更新版本。在对输入图数据X
t执行空间计算后,该关键空间GNN可以被输出为空间图数据450。在一些实施例中,关键空间GNN可以作为用于下一轮计算的关键图430的更新版本 存储在缓冲器中。
如果输入图数据X
t是辅助图440,则在步骤442,可以将辅助图440中每个节点与关键图430(例如,来自先前时间步长的更新的关键图)中对应节点进行比较。在一些实施例中,步骤442中的比较可以包括确定辅助图440中每个节点与关键图430中对应节点之间的距离。该距离可以指通过例如两个节点的特征向量之间的汉明距离确定的特征向量距离。在一些实施例中,步骤442中的比较可以包括识别辅助图440的不存在于关键图430中的一个或多个节点。
在一些实施例中,如果两个节点之间的距离小于阈值,则在步骤445,辅助图440中的节点可以跳过空间计算。如果两个节点之间的距离大于阈值,则辅助图440中的节点可以被识别为“已改变的”,因此在步骤446进行空间计算。这样,可以通过跳过辅助图440中的重复的或未改变的节点提高空间计算的效率。在一些实施例中,阈值可以确定空间计算的精确度和效率提高之间的折衷。例如,较高的阈值可以导致辅助图440中较少量的节点被识别为“已改变的”和已处理的(例如,提取空间特征),这可以导致输出图的精度较低,但处理速度较快。因此,可以通过机器学习算法来确定阈值,以找到最优的折衷平衡。
在一些实施例中,空间计算也可称为GNN计算,其可包括:获得节点(例如,来自辅助图440的节点)的特征向量和节点所属的图(例如,辅助图440)的邻接矩阵;基于邻接矩阵确定图中节点的邻居节点;递归地聚合和转换邻居节点的特征向量和节点的特征向量;以及获取节点的更新的特征向量。
在辅助图440中的“已改变的”节点经过GNN计算之后,它们的特征向量可以被更新。在一些实施例中,接着,在步骤448,这些“已改变的”节点(具有更新的特征向量)和其他“未改变的”的节点(具有原始特征向量,也可称为被跳过的节点)可以被合并为输出辅助图。为了生成辅助图440中所有节点的更新的特征向量,辅助图440中“未改变的”节点可以直接采用关键图430中对应节点的更新的特征向量,而不经过GNN计算。这样,辅助图440中的所有节点可以被合并为空间图输出450。例如,可以通过将更新节点插入到关键图430中来获得空间图输出450(例如,更新的辅助图)。该过程可以包括:在关键图430中识别对应于一个或多个更新节点的一个或多个第一节点;以及通过将一个或多个第一节点的特征向量替换为一个或多个更新节点的特征向量,生成空间图数据输出450。
该空间图输出450可以被认为是对输入图数据X
t执行空间计算的输出。在一些实施例中,在步骤446中对“已改变的”节点执行空间计算之前,可以基于关键图430中对应节点更新“未改变的”节点的特征向量。通过这样做,如果辅助图440中“已改变的”节点具有作为邻居的多个“未改变的”节点,则“已改变的”节点的特征更新可以 基于其邻居节点的更新的特征向量。在这里,“未改变的”不一定意味着“相同的”。在某些情况下,两个特征向量之间的距离在阈值内可以指示两个对应的节点是“未改变的”。因此,使用“未改变的”节点的更新特征可以提高空间计算的精确度。
在生成多个输入图数据(例如,X
t-1和X
t)的空间图输出450之后,可以执行时间计算来探索时间特征。在一些实施例中,时间计算可以包括:基于第一更新图(例如,基于在时间步长t-1的X
t-1的空间图输出450)和第二更新图(例如,基于在时间步长t的X
t的空间图输出450),训练时间神经网络;以及基于时间神经网络生成表示在下一个时间步长的一个或多个对象的状态的预测图。在一些实施例中,时间神经网络可以是卷积神经网络(convolution neural network,CNN)或长短期记忆(Long Short-Term Memory,LSTM)神经网络。在一些实施例中,在两个连续的时间步长的空间图数据输出450可以被称为可以经历时间运算的两个更新的关键图。滚动缓冲器(rolling buffer)可以存储用于执行时间运算的两个最近更新的关键图。当通过空间运算计算关键图的新版本时,关键图的新版本将替换滚动缓冲器中的旧版本。
在一些实施例中,可以基于重复数据删除加速步骤460中的时间计算。例如,不是基于来自X
t-1和X
t的两个完全的更新的关键图来训练时间神经网络,而可以基于第一更新关键图(例如,X
t-1的空间图数据输出)和第二更新关键图中“已改变的”节点(例如,X
t中“已改变的”节点)进行训练。
在一些实施例中,在每个辅助图440进行空间计算之后,可以更新关键图430。例如,假定X
t-n被选择为关键图430。在基于关键图430对辅助图X
t-n+1进行空间计算之后,可以生成更新的辅助图X’
t-n+1。在处理图X
t-n+2之前,关键图430可以被更新为X’
t-n+1。
空间GNN计算涉及迭代过程。工作流400示出了迭代过程中一轮的步骤。可以缓存空间图数据输出450(更新的关键图)以对新接收的辅助图进行下一轮的时间GNN计算。
图5示出了根据本公开实施例的时间GNN加速器的内部结构图500。图5中的时间GNN加速器500仅仅是为了说明性的目的,并且根据实现方式,可以包括更少、更多或替代的组件/数据通信通道。例如,图5中的存储器堆520可以被实现为片上存储器(在时间GNN加速器500的内部)或片外存储器(在时间GNN加速器500的外部)。时间GNN加速器500示出了两个硬件层之间的数据交换,使用任何类型的暂时性计算机存储器和非暂时性计算机存储器实现存储器堆520,处理电路530被配置为使用GNN执行空间计算并且使用CNN或LSTM执行时间计算。
如图3和图4中所描述的,时间GNN的输入可以包括从一系列时间步长收集的 一系列输入数据。在一个时间步长的输入数据可以包括在该时间步长的表示为图的多个对象的特征。时间GNN的输出可以包括预测(例如,预测的在下一个时间步长对象的特征)。在一些实施例中,可以依次将一系列图馈送到存储器堆520中。可以将一系列图中的一个图选择为关键图。关键图中的节点可以进行一组完整的空间计算以获得更新的关键图。其他图(也称为辅助图)可以与关键图进行比较。辅助图中“已改变的”节点可以进行空间计算,“未改变的”(也称为重复的)节点可以跳过计算密集型的空间计算。
在一些实施例中,图5中的存储器堆520可以从另一个存储介质(例如,持久存储器)或直接从输入设备(例如,照相机)获取在图中表示的一系列输入数据。存储器堆520可以包括关键图缓冲器524(例如,第一存储器)和当前图缓冲器522(例如,第二存储器)。当前图缓冲器522可以被配置为存储新接收的输入图数据,关键图缓冲器524可以被配置为存储最近更新的关键图。例如,当通过存储器堆520接收到从最早时间步长收集的第一图时,第一图可以被选择为关键图并且被存储在关键图缓冲器524中。随后,可以将第一图发送到处理电路530以执行一组完整的空间计算来生成更新的关键图。该更新的关键图可以被发送回存储器堆520并且被存储在关键图缓冲器524中以用于下一轮处理。
当存储器堆520接收到第二图时,可以将其存储在当前图缓冲器522。然后,可以将当前图缓冲器522中的第二图和关键图缓冲器524中更新的关键图均发送到处理电路530以进行处理。在一些实施例中,可以首先将第二图和更新的关键图发送到节点分类电路532以确定第二图中哪个节点或哪个部分节点需要进行空间计算。节点分类电路532可以由称为节点分类电路的硬件电路来实现。例如,如果第二图中的节点与更新的关键图中对应节点之间的汉明距离大于阈值,则第二图中的节点可以被选择进行空间计算。作为计算机技术领域中的一种数据结构,图中每个节点可以表示为特征向量。特征向量可以包括各种数据类型的一个或多个值。这些值可以作为位序列(a sequence of bits)存储在计算机内部。例如,32位浮点数的值可以包括作为符号位(sign bit)的第一位、作为指数位(exponent bit)的接下来的8位、和作为小数位(fraction bit)的其余23位。作为另一个示例,64位浮点数的值可以包括作为符号位的第一位、作为指数位的接下来的11位、和作为小数位的其余52位。对第二图中节点和更新的关键图中对应节点进行比较可以包括:基于节点的第一特征向量和其他节点的第二特征向量内的数据类型,确定节点的第一特征向量和其他节点的第二特征向量之间待比较的位单元(a unit of bits);对于第一特征向量内的每个位单元,将每个位单元内的指数位和一个或多个小数位与第二特征向量内的对应位进行比较,获取多个匹配位;以及基于多个匹配位,确定第一特征向量和 第二特征向量之间的距离。
在一些实施例中,可以将辅助图中识别为超过阈值(例如,具有与更新的关键图中对应节点的距离大于阈值)的一个或多个节点发送到节点重构电路534以执行空间计算。节点重构电路534可以通过称为节点重构电路的硬件电路来实现。第二图中的其他节点可以跳过空间计算,并且可以通过直接从更新的关键图中对应节点的特征向量进行复制来更新第二图中的其他节点。随后,超过阈值的节点和跳过的节点可以被合并以生成新的关键图。该新的关键图可以被发送回存储器堆并且被存储在关键图缓冲器中以进行下一轮处理。
下一轮处理可以以从多个图中读取第三图并替换当前图缓冲器522中的第二图为开始。可以基于比较第三图与关键图缓冲器中存储的新关键图,识别第三图的一个或多个节点。可以基于相应节点之间的汉明距离和/或第三图中的节点是否是新节点(例如,不存在于新关键图中)进行比较。然后,可以通过GNN计算(例如,空间计算)更新一个或多个节点,以获得一个或多个更新的特征向量。这些更新的特征向量和新关键图可以被合并以构造更新的第三图。在一些实施例中,合并步骤可以发生在对识别的节点执行GNN计算之前或之后。新生成的更新的第三图可以被发送到关键图缓冲器进行存储,并成为用于下一轮计算的最近更新的关键图。
在一些实施例中,可以在关键图缓冲器中存储关键图的至少两个最新版本。可以执行时间计算以探索存储的关键图之中的时间特征。可以通过处理电路530内称为时间计算电路(图5中未示出)的硬件电路,执行时间计算。在一些实施例中,时间计算可以包括使用训练好的卷积神经网络(convolution neural network,CNN)或长短期记忆(Long Short-Term Memory,LSTM)神经网络学习时间特征并且对未来时间步长进行预测(例如,预测图)。在一些实施例中,关键图缓冲器可以是保存两个最近更新的关键图的FIFO存储器。当生成新更新的关键图时,关键图缓冲器中两个关键图的相对较旧版本可以被新更新的关键图所替代。
在一些实施例中,上述电路可以以各种硬件形式实现,例如,中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphic Processing Unit,GPU)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他合适的形式。
图6示出了根据本公开实施例的用于利用重复数据去除(deduplication)加速时间GNN计算的示例性方法600。可以在图1所示的硬件环境中实现方法600。可以通过图2至图5所示的装置、设备或系统执行方法600。根据实现方式,方法600可包括以各种顺序或并行执行的附加的、较少的或替代的步骤。
方框610包括接收从当前时间步长收集的当前图。
方框620包括确定当前图是关键图还是辅助图。在一些实施例中,确定当前图是关键图还是辅助图包括:如果当前图是第一次接收到的图,则确定当前图是关键图。
方框630包括响应于当前图是关键图,对关键图中的节点执行空间计算以获得更新的关键图。
方框640包括响应于当前图是辅助图:基于关键图和辅助图之间的比较,识别辅助图的一个或多个节点;对识别的一个或多个节点执行空间计算以获取更新节点;以及基于关键图和一个或多个更新节点,生成更新的关键图。在一些实施例中,识别辅助图的一个或多个节点包括:对于辅助图中的每个节点,识别关键图中的对应节点;确定辅助图中节点的第一特征向量和关键图中对应节点的第二特征向量之间的距离;以及如果距离大于阈值,则选择辅助图中节点。
方框650包括基于关键图和更新的关键图执行时间计算,以预测未来时间步长的图。在一些实施例中,时间计算包括利用卷积神经网络(convolution neural network,CNN)或长短期记忆(Long Short-Term Memory,LSTM)神经网络,确定关键图和更新的关键图之间的时间特征。
图7示出了根据本公开实施例的用于加速时间GNN的计算机系统700的框图。下面呈现的计算机系统700的组件旨在说明性。系统700可以包括附加的、较少的或替代的组件。计算机系统700可以是图1至图2所示的硬件设备的实施例并且可以实现图3至图6所示的方法或工作流。
计算机系统700可以包括各种电路,例如,计算机系统700由一个或多个处理器和一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器)实现,一个或多个非暂时性计算机可读存储介质耦合到一个或多个处理器并且配置有指令,一个或多个处理器可执行指令,使得系统或设备(例如,处理器)执行上述实施例。计算机系统700可包括对应于指令(例如,软件指令)的各种单元/模块。
在一些实施例中,计算机系统700可包括第一存储器710、第二存储器720、接收电路730、识别电路740、计算电路750和更新电路760。在一些实施例中,第一存储器710可以被配置为存储最近更新的关键图。第二存储器720可以被配置为存储用于空间GNN计算的当前图。第一存储器710和第二存储器720可以在不同地址的相同计算机存储器内实现或者可以作为两个独立的存储器实现。
在一些实施例中,接收电路730可以被配置为接收来自第一存储器710的关键图和来自第二存储器720的当前图。识别电路740可被配置为基于关键图和当前图之间的比较,识别当前图的一个或多个节点。计算电路750可以被配置为对识别的一个或多个节点执行空间计算以获取更新节点。更新电路760可以被配置为基于关 键图和更新节点生成更新的关键图,第一存储器存储用于时间GNN计算的更新的关键图。在一些实施例中,上述电路可以在同一处理器内实现或通过多个处理器实现。电路和存储器可以在相同的硬件加速器内实现或作为不同的硬件设备实现。
在一些实施例中,计算机系统700还可以包括被配置为基于关键图和更新的关键图(即,关键图的两个连续版本)执行时间计算的计算电路,以学习在不同关键图之间的时间特征/趋势并且预测未来时间步长的关键图。
本公开中描述的一些操作的性能可以分布在处理器之间,其不仅驻留在单个设备中,而且部署在多个设备。在一些示例性实施例中,处理器或处理器实现的电路可以位于单个裸片(die)或不同裸片中。在其他示例性实施例中,处理器或处理器实现的引擎可以分布在多个地理位置。
在前面部分中描述的每个过程、方法和算法可以被嵌入代码模块中并且可以通过代码模块全部或部分地自动化实现,可以通过包括计算机硬件的一个或多个计算机系统或计算机处理器执行代码模块。可以部分或全部地在专用电路中实现过程和算法。
当以软件功能单元的形式实现本公开的功能并且作为独立产品售卖或使用本公开的功能时,它们可以存储在处理器可执行的非易失性计算机可读存储介质。本公开的特定技术方案(全部或部分地)或有助于当前技术的方面可以以软件产品的形式体现。软件产品可以存储在存储介质中,该存储介质包括多个指令,以使计算设备(可以是个人计算机、服务器、网络设备等)执行本公开实施例的方法的全部或部分步骤。存储介质可以包括闪存驱动器、便携式硬盘驱动器、ROM、RAM、磁盘、光盘、可存储程序代码的另一介质、或其任何组合。
特定实施例还提供了一种系统,系统包括:处理器;非暂时性计算机可读存储介质,其存储可由处理器执行的指令,使系统执行对应于上述公开的实施例的任何方法的步骤的操作。特定实施例还提供了一种非暂时性计算机可读存储介质,其配置有可由一个或多个处理器执行的指令,使得一个或多个处理器执行对应于上述公开的实施例的任何方法的步骤的操作。
上述各种特征和过程可以彼此独立使用或可以以各种方式组合使用。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法或过程方框。这里描述的方法和过程也不限于任何特定的序列,并且与之相关的方框或状态可以以其他适当的序列执行。例如,所述的方框或状态可以按照与具体公开的顺序不同的顺序执行,或者多个方框或状态可以组合在单个方框或状态中。示例方框或者状态可以以串行、并行、或其他方式执行。方框或状态可以被添加到本公开的示例实施例中或从本公开的示例实施例中移除。这里所述的示例性系统和组件 可以与所描述的方式不同地配置。例如,与本公开的示例性实施例相比,可以添加、移除、或重布置元件。
这里描述的示例性方法的各种操作可以通过算法至少部分地被执行。算法可以包括在存储在存储器(例如,上述非暂时性计算机可读存储介质)的程序代码或指令中。这些算法可以包括机器学习算法。在一些实施例中,机器学习算法可以不显式地编程计算机以执行功能,但其可以从训练数据中学习以建立执行该功能的预测模型。
这里描述的示例性方法的各种操作可以至少部分地由被(例如,通过软件)临时配置或永久配置为执行相关操作的一个或多个处理器来执行。无论被临时配置还是被永久配置,这样的处理器可以构成处理器实现的引擎,该引擎运行以执行这里描述的一个或多个操作或功能。
类似地,使用特定处理器或作为示例性硬件的处理器,这里描述的方法可以至少部分地由处理器实现。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的引擎来执行。此外,一个或多个处理器还可以运行以支持在“云计算”环境中或作为“软件即服务”(software as a service,SaaS)的相关操作的性能。例如,至少一些操作可以由计算机集群(作为包括处理器的示例性机器)来执行,可以通过网络(例如,因特网)和通过一个或多个适当接口(例如,应用程序接口(Application Program Interface,API))访问这些操作。
某些操作的性能可以分布在处理器之间,其不仅可以驻留在单个机器中,而且可以部署在多个机器之间。在一些示例性实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公环境、或服务器农场(server farm))。在其他示例性实施例中,处理器或处理器实现的引擎可以分布在多个地理位置。
在本说明书中,多个实例可以实现被描述为单个实例的组件、操作、或结构。尽管一个或多个方法的单个操作被示出并描述为单独的操作,但是一个或多个单个操作可以同时执行,并且不要求按照所示顺序执行操作。在示例配置中作为单独组件呈现的结构和功能可以实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为单独的组件。这些以及其他变化、修改、添加和改进落入本文主题的范围。
尽管已经参考特定示例性实施例描述了主题的概述,但是可以对这些实施例进行各种修改和改变,而不脱离本公开实施例的更广泛范围。在这里可以通过术语“本公开”单独或共同地引用本主题的这些实施例,这仅为方便起见,而不旨在将本公开的范围自愿限制在任何单个公开或概念。事实上,如果存在多个公开或概念,则公开了多个公开或概念。
本文所示的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中衍生出其他实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和更改。因此,不以限制性的意义来使用具体实施方式部分,并且各种实施例的范围仅由所附权利要求以及这些权利要求所享有的全部等同物来定义。
本文描述和/或附图中描述的流程图中的任何过程描述、元素或方框应理解为潜在地表示模块、代码段或代码部分,其中包括用于实现过程中的特定逻辑功能或步骤的一个或多个可执行指令。替代实现包括在本文描述的实施例的范围内,其中如本领域技术人员所理解的,根据所涉及的功能,可以从所示或所讨论的内容中删除、无序执行(包括基本上同时或以相反的顺序执行)元素或功能。
如本文所使用的,“或”是包容性的,而非排他性的,除非明确指出以其他方式或上下文以其他方式指示。因此,在此,“A、B或C”指“A、B、C、A和B、A和C、B和C,或A、B和C”,除非另有明确说明或上下文另有说明。此外,“和”是连带的,除非另有明确说明或上下文另有说明。因此,这里,“A和B”指“A和B,共同地或各自地”,除非另有明确说明或上下文另有说明。此外,可以为本文描述为单个实例的资源、操作或结构提供多个实例。此外,各种资源、操作、引擎和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中说明了特定操作。设想了功能的其他分配,并且其可以属于本公开的各种实施例的范围。一般来说,在示例配置中作为单独资源呈现的结构和功能可以实现为组合结构或资源。类似地,作为单个资源呈现的结构和功能可以作为单独的资源来实现。这些和其他变化、修改、添加和改进落入由所附权利要求书表示的本公开实施例的范围。因此,说明书和附图应被视为说明性的,而不是限制性的。
术语“包括”或“包含”用于表示随后声明的特征,但不排除添加其他特征。条件语言,例如,除其他外,“可以”、“可能”或“能够”,除非另有明确说明,或在所使用的上下文中以其他方式理解,一般旨在传达某些实施例包括,而其他实施例不包括某些特征、元素和/或步骤。因此,这些条件语言通常并不意在暗示一个或多个实施例以任何方式需要特征、元素和/或步骤,或者一个或多个实施例必然包括用于决定在有或没有用户输入或提示的情况下,这些特征、元素和/或步骤是否包括在任何特定的实施例中或是否将在任何特定的实施例中执行的逻辑。
Claims (20)
- 一种用于加速时间图神经网络计算的加速器,包括:关键图存储器,被配置为存储关键图;节点分类电路,被配置为:从所述关键图存储器提取关键图;接收用于利用所述关键图执行时间图神经网络计算的当前图;以及基于所述关键图和所述当前图之间的比较,识别所述当前图的一个或多个节点;以及节点重构电路,被配置为:对所述节点分类电路识别的所述一个或多个节点执行空间计算,以获得更新节点;基于所述关键图和所述更新节点,生成更新的关键图;以及在所述关键图存储器中存储所述更新的关键图以处理下一个图。
- 根据权利要求1所述的加速器,其中,为了识别所述当前图的一个或多个节点,所述节点分类电路被配置为:对于所述当前图中每个节点,识别所述关键图中的对应节点;确定所述当前图中该节点的第一特征向量和所述关键图中所述对应节点的第二特征向量之间的距离;如果所述距离大于阈值,则选择所述当前图中的该节点。
- 根据权利要求2所述的加速器,其中,所述距离是汉明距离。
- 根据权利要求2所述的加速器,其中,为了确定所述当前图中该节点的第一特征向量和所述关键图中所述对应节点的第二特征向量之间的距离,所述节点分类电路被配置为:基于所述第一特征向量和所述第二特征向量内的数据类型,确定所述第一特征向量和所述第二特征向量之间待比较的位单元;对于所述第一特征向量内的每个位单元,将所述每个位单元内的指数位和一个或多个小数位与所述第二特征向量内的对应位进行比较,以获得多个匹配位;以及基于所述多个匹配位,确定所述第一特征向量和所述第二特征向量之间的距离。
- 根据权利要求1所述的加速器,其中,所述节点分类电路还被配置为:响应于从所述关键图存储器接收的关键图为空,将接收的所述当前图发送到所述节点重构电路;其中所述节点重构电路还被配置为:对所述当前图中每个节点执行空间计算以获取新关键图,其中所述空间计算包括图神经网络计算;以及将所述新关键图发送到所述关键图存储器进行存储。
- 根据权利要求1所述的加速器,其中,为了对识别的所述一个或多个节点执行空间计算,所述节点重构电路还被配置为:获取来自识别的所述一个或多个节点的一个节点的特征向量和所述当前图的邻接矩阵;基于所述邻接矩阵识别一个或多个邻居节点;递归地聚合和转换所述一个或多个邻居节点的特征向量和所述节点的特征向量,以获得所述节点的更新的特征向量。
- 根据权利要求1所述的加速器,其中,还包括:时间计算电路,被配置为基于所述关键图和所述更新的关键图执行时间计算。
- 根据权利要求7所述的加速器,其中,所述时间计算包括:利用卷积神经网络确定所述关键图和所述更新的关键图之间的时间特征。
- 根据权利要求7所述的加速器,其中,所述时间计算包括:利用长短期记忆神经网络确定所述关键图和所述更新的关键图之间的时间特征。
- 根据权利要求1所述的加速器,其中,为了基于所述关键图和所述更新节点,生成更新的关键图,所述节点重构电路被配置为:识别所述关键图中对应于所述一个或多个更新节点的一个或多个第一节点;以及通过将所述关键图中一个或多个第一节点的特征向量替换为所述一个或多个更新节点的特征向量,生成所述更新的关键图。
- 一种用于加速时间图神经网络计算的计算机系统,包括:第一存储器,被配置为存储关键图;第二存储器,被配置为存储用于时间图神经网络计算的当前图;接收电路,被配置为接收来自所述第一存储器的所述关键图和来自所述第二存储器的所述当前图;识别电路,被配置为基于所述关键图和所述当前图之间的比较,识别所述当前图的一个或多个节点;计算电路,被配置为对识别的所述一个或多个节点执行空间计算,以获取更新节点;以及更新电路,被配置为基于所述关键图和所述更新节点生成更新的关键图,所述第一存储器存储用于所述时间图神经网络计算的所述更新的关键图。
- 根据权利要求11所述的计算机系统,其中,为了识别所述当前图的一个或多个节点,所述识别电路被配置为:对于所述当前图中每个节点,识别所述关键图中的对应节点;确定所述当前图中该节点的第一特征向量和所述关键图中所述对应节点的第二特征向量之间的距离;如果所述距离大于阈值,则选择所述当前图中的该节点。
- 根据权利要求12所述的计算机系统,其中,为了确定所述当前图中该节点的第一特征向量和所述关键图中所述对应节点的第二特征向量之间的距离,所述识别电路被配置为:基于所述第一特征向量和所述第二特征向量内的数据类型,确定所述第一特征向量和所述第二特征向量之间待比较的位单元;对于所述第一特征向量内的每个位单元,将所述每个位单元内的指数位和一个或多个小数位与所述第二特征向量内的对应位进行比较,以获得多个匹配位;以及基于所述多个匹配位,确定所述第一特征向量和所述第二特征向量之间的距离。
- 根据权利要求11所述的计算机系统,其中,所述识别电路还被配置为:响应于从所述第一存储器接收的关键图为空,将从所述第二存储器接收的所述当前图作为新关键图发送到所述第一存储器。
- 根据权利要求11所述的计算机系统,其中,所述识别电路还被配置为:响应于从所述第一存储器接收的关键图为空,识别所述当前图中所有节点;以及所述计算电路还被配置为:对所述当前图中所有节点进行空间计算,以获得所述更新的关键图。
- 根据权利要求11所述的计算机系统,其中,为了对识别的所述一个或多个节点执行空间计算,所述计算电路还被配置为:获取来自识别的所述一个或多个节点的一个节点的特征向量和所述当前图的邻接矩阵;基于所述邻接矩阵识别一个或多个邻居节点;递归地聚合和转换所述一个或多个邻居节点的特征向量和所述节点的特征向量,以获得所述节点的更新的特征向量。
- 根据权利要求11所述的计算机系统,其中,还包括:第二计算电路,被配置为基于所述关键图和所述更新的关键图执行时间计算。
- 一种用于加速时间图神经网络计算的计算机实现方法,包括:接收从当前时间步长收集的当前图;确定所述当前图是关键图还是辅助图;响应于所述当前图是关键图,对所述关键图中的节点执行空间计算以获得更新的关键图;响应于所述当前图是辅助图,执行:基于所述关键图和所述辅助图之间的比较,识别所述辅助图的一个或多个节点;对识别的所述一个或多个节点执行空间计算,以获得更新节点;以及基于所述关键图和所述一个或多个更新节点,生成更新的关键图;以及基于所述关键图和所述更新的关键图执行时间计算,以预测未来时间步长的图。
- 根据权利要求18所述的方法,其中,所述确定所述当前图是关键图还是辅助图包括:如果所述当前图是第一次接收到的图,则确定所述当前图是关键图。
- 根据权利要求18所述的方法,其中,所述时间计算包括:利用卷积神经网络或长短期记忆神经网络,确定所述关键图和所述更新的关键图之间的时间特征。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/238,620 US20220343146A1 (en) | 2021-04-23 | 2021-04-23 | Method and system for temporal graph neural network acceleration |
PCT/CN2022/091180 WO2022223052A1 (zh) | 2021-04-23 | 2022-05-06 | 加速器、计算机系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117223005A true CN117223005A (zh) | 2023-12-12 |
Family
ID=83694362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280029712.9A Pending CN117223005A (zh) | 2021-04-23 | 2022-05-06 | 加速器、计算机系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220343146A1 (zh) |
CN (1) | CN117223005A (zh) |
WO (1) | WO2022223052A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116304749B (zh) * | 2023-05-19 | 2023-08-15 | 中南大学 | 基于图卷积的长文本匹配方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210049467A1 (en) * | 2018-04-12 | 2021-02-18 | Deepmind Technologies Limited | Graph neural networks representing physical systems |
US11522881B2 (en) * | 2019-08-28 | 2022-12-06 | Nec Corporation | Structural graph neural networks for suspicious event detection |
CN111726243B (zh) * | 2020-05-14 | 2021-10-22 | 华为技术有限公司 | 预测节点状态的方法和装置 |
-
2021
- 2021-04-23 US US17/238,620 patent/US20220343146A1/en active Pending
-
2022
- 2022-05-06 CN CN202280029712.9A patent/CN117223005A/zh active Pending
- 2022-05-06 WO PCT/CN2022/091180 patent/WO2022223052A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220343146A1 (en) | 2022-10-27 |
WO2022223052A1 (zh) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Deep learning for real-time crime forecasting and its ternarization | |
US20230107574A1 (en) | Generating trained neural networks with increased robustness against adversarial attacks | |
CN109478144B (zh) | 一种数据处理装置和方法 | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
US11983903B2 (en) | Processing images using self-attention based neural networks | |
KR20110049643A (ko) | 한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자 | |
CN113449839A (zh) | 一种分布式训练方法、梯度通信方法、装置以及计算设备 | |
US11295236B2 (en) | Machine learning in heterogeneous processing systems | |
CN116594748A (zh) | 针对任务的模型定制处理方法、装置、设备和介质 | |
WO2022223052A1 (zh) | 加速器、计算机系统和方法 | |
CN113452655A (zh) | 一种分布式训练方法、梯度通信方法、装置以及计算设备 | |
CN112966754B (zh) | 样本筛选方法、样本筛选装置及终端设备 | |
CN112560731B (zh) | 特征聚类方法、数据库更新方法、电子设备及存储介质 | |
US20210027064A1 (en) | Parallel video processing neural networks | |
CN115605862A (zh) | 训练用于3d模型数据库查询的可微分渲染器和神经网络 | |
CN114638823B (zh) | 基于注意力机制序列模型的全切片图像分类方法及装置 | |
Kharinov et al. | Object detection in color image | |
CN116579460A (zh) | 信息预测方法、装置、计算机设备和存储介质 | |
AU2022221413A1 (en) | Domo v2: on-device object detection and instance segmentation for object selection | |
CN115131633A (zh) | 一种模型迁移方法、装置及电子设备 | |
CN116127685A (zh) | 使用机器学习执行模拟 | |
CN103891272A (zh) | 用于视频分析和编码的多个流处理 | |
CN113570053A (zh) | 一种神经网络模型的训练方法、装置以及计算设备 | |
CN112906728A (zh) | 一种特征比对方法、装置及设备 | |
WO2022223051A1 (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 |