当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于FPGA的图卷积神经网络的流水线结构制造技术

技术编号:37203060 阅读:10 留言:0更新日期:2023-04-20 22:57
本发明专利技术公开了一种基于FPGA的图卷积神经网络的流水线结构。其用一个流水线形式的缓存来链接结合模块和聚合模块,同时每一层图卷积神经网络先进行结合模块的计算,然后将其结果送入中间的流水线中,再进入聚合模块。所述各个模块的输入和输出都是矩阵的形式,结合模块一列一列地依次输出,一次输出一列的数据进入流水线,再将这一列的数据进入聚合模块,以使得聚合模块直接计算矩阵和一列数据的乘法,也就是矩阵和向量的乘法。本发明专利技术的结构中结合模块以及聚合模块内部能够并行计算,并且这两个模块之间使用流水线的方式相连,能减少整个神经网络的推理过程的延迟。经网络的推理过程的延迟。经网络的推理过程的延迟。

【技术实现步骤摘要】
一种基于FPGA的图卷积神经网络的流水线结构


[0001]本专利技术属于FGPA
,具体的说,涉及一种基于FPGA的图卷积神经网络的结合、聚合模块的流水线结构。

技术介绍

[0002]图卷积神经网络(Graph Convolutional Network, GCN)是一种针对图结构(Graph)的数据的特征提取器。图结构数据包含三个基本元素,结点、结点之间的连线、每个结点的特征向量。GCN通过对每个结点的全部邻点提取特征向量,进行线性计算,从而提取出整个图的特征。GCN的计算过程比较简单,可以分为结合(Combination)和聚合(Aggregation)两个步骤,总共包括了稀疏矩阵乘法、密集矩阵乘法以及激活函数Relu三种计算。其中,结合的步骤包含了密集矩阵的乘法,聚合的步骤包含了稀疏矩阵的乘法,不同的GCN层之间则通过Relu激活函数连接起来。
[0003]现场可编程门阵列(Field Programmable Gate Array,FPGA)有着低功耗、低成本、高可重构性、高稳定性等特点,现在有着广阔的发展前景。此外,FPGA有着很大的并行度。FPGA中的硬件资源统一受时钟信号的控制,不同的计算单元可以相互之间独立运行,对于并行的程序有着很强的加速能力。我们可以通过FPGA,来对GCN的推理过程进行加速。
[0004]GCN的主要计算难点,在于矩阵的数据量非常庞大,并且还包含了稀疏矩阵的乘法计算,使得GCN的推理过程变得难以优化。普通矩阵乘法以及稀疏矩阵乘法的串行,是GCN的一个显著的特点。如何处理稀疏矩阵乘法和密集矩阵乘法,是GCN加速器面临着的一个很大的问题。
[0005]稀疏矩阵的乘法和密集矩阵的乘法有着很大的不同。密集矩阵在做乘法运算时,复杂度和矩阵的行数、列数都成正比,在矩阵规模变大时,乘法的复杂度也会快速上升。而稀疏矩阵的乘法的复杂度和矩阵的大小无关。由于稀疏矩阵的非零元素非常少,在存储时只会保留其中的非零元素及其行号、列号,因此稀疏矩阵的乘法的复杂度和稀疏矩阵中的非零元素的个数成正比,而与矩阵的行数、列数无关。在硬件实现时,对于稀疏矩阵乘法和密集矩阵乘法通常是分开来计算的。用不同的硬件模块来分别实现。
[0006]对于图卷积神经网络来说,想要通过硬件来实现GCN推理过程的加速,就必须要协调好稀疏矩阵乘法和密集矩阵乘法这两大模块,尽可能减少二者之间的延迟。
[0007]图卷积神经网络可以划分为两个主要的模块:结合(Combination)和聚合(Aggregation)。聚合模块完成了稀疏矩阵乘法的运算,结合模块完成了密集矩阵乘法的运算,而这两个模块是串行的,两者之间也需要有数据传输的过程。
[0008]现有的图卷积神经网络的硬件加速器,大体上可以分为两种实现方式。其一是统一式架构,结合模块和聚合模块都有同一个硬件模块来实现,由控制信号来控制具体的功能。统一式架构中,比较具有代表性的是Engn。其二是分段式的架构,聚合模块和结合模块分别用两个硬件模块来实现,用缓冲来储存中间的结果,从而实现两个模块之间的通信。分段式的架构中,比较有代表性的是Hygcn。
[0009]从硬件实现的角度,使用分段式的架构更加便于开发,因为这种实现方式思路明确,也更加容易优化和加速。不过现有的架构中,结合模块和聚合模块之间都是串行连接的。以Hygcn为例,这个架构是先运行聚合模块,再运行结合模块,两个模块之间有一个比较大的缓存,用来储存中间的结果,两个模块的计算是串行的。我们认为这种计算方式还是有着一定的优化空间,可以使用流水线的方式连接图卷积神经网络的两个模块,可以进一步降低延迟,实现图卷积神经网络推理过程的加速。

技术实现思路

[0010]针对上述现有技术的不足,本专利技术的目的在于提供一种基于FPGA的图卷积神经网络的结合、聚合模块的优化流水线结构。该结构对图卷积神经网络的几个模块进行优化,使得结合模块以及聚合模块内部能够并行计算,并且这两个模块之间使用流水线的方式相连,能进一步降低两个模块之间的数据传输延迟,实现图卷积神经网络推理过程的加速。
[0011]本专利技术中,每一层图卷积神经网络先进行结合模块的计算,然后将其结果送入中间的流水线进行储存中,再进入聚合模块。各个模块的输入和输出都是矩阵的形式,为了实现这一目标,结合模块的需要一列一列地依次输出,一次输出一列的数据进入流水线,再将这一列的数据进入聚合模块。这样一来,聚合模块就可以直接来计算矩阵和一列数据的乘法,也就是矩阵和向量的乘法,而不需要等待结合模块输出一个完整的矩阵之后再进行稀疏矩阵乘法的计算。本专利技术的技术方案具体介绍如下。
[0012]本专利技术提供一种基于FPGA的图卷积神经网络的流水线结构,其部署在FPGA上,用于对图卷积神经网络中的数据流进行优化,使结合模块和聚合模块之间的数据形成流水线,从而降低延迟,加速图卷积神经网络的推理过程;其包括结合模块、流水线形式的缓存和聚合模块;所述各个模块的输入和输出都是矩阵的形式,结合模块一列一列地依次输出,一次输出一列的数据进入缓存储存,缓存再将这一列的数据按照流水线形式进入聚合模块,以使得聚合模块直接计算稀疏邻接矩阵和缓存中一列数据的乘法,也就是矩阵和向量的乘法,实现稀疏矩阵的乘法运算。本专利技术中,结合模块采用多个计算单元并行的方式实现矩阵乘法运算。
[0013]本专利技术中,结合模块中,将输入的特征矩阵按列进行分块,每一块交由一个或多个计算单元进行计算;在推理的过程中,每个分块内的数据一行一行地进行处理,和权重矩阵进行乘法计算,这样,输入的矩阵在每个计算周期内就能处理完一整行的数据,从而在输出端能够输出一整列的数据。
[0014]本专利技术中,聚合模块中,稀疏矩阵按行进行分块,每个行向量和缓存的矩阵中的列向量相乘,得到稀疏矩阵和缓存矩阵乘法的结果。
[0015]本专利技术中,聚合模块中的稀疏矩阵和缓存矩阵的乘法设计成流水线的形式:稀疏矩阵中的每一块数据和缓存矩阵中的所有列向量进行乘法,在某一块数据和某一列向量数据的乘法计算完成之后,保留这一块的数据,读取下一列向量的数据,并且重复进行之前的乘法计算。
[0016]和现有技术相比,本专利技术的有益效果在于:本专利技术公开了一种图卷积神经网络的分段式架构的流水线优化结构,其用一个流水线形式的缓存来链接结合模块和聚合模块,从而降低在数据传输带来的延迟,加速图卷
积神经网络的推理过程。此外,本专利技术对结合模块和聚合模块也做了一定的优化,使其能够适配这个流水线形式的中间缓存,从而使得数据传输更加便利。
附图说明
[0017]图1 结合模块的并行化优化。
[0018]图2是聚合模块的稀疏矩阵乘法。
[0019]图3数据流通流水线。
具体实施方式
[0020]下面结合附图和实施例对本专利技术的技术方案进行详细阐述.本专利技术设计了一种图卷积神经网络的模块的结构优化方法,可以对其中的数据流进行优化,使结合模块和聚合模块之间的数据形成流水线,从而降低延迟,加速图卷积神经网络本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的图卷积神经网络的流水线结构,其特征在于,其部署在FPGA上,用于对图卷积神经网络中的数据流进行优化,使结合模块和聚合模块之间的数据形成流水线,从而降低延迟,加速图卷积神经网络的推理过程;其包括结合模块、流水线形式的缓存和聚合模块;所述各个模块的输入和输出都是矩阵的形式,结合模块一列一列地依次输出,一次输出一列的数据进入缓存储存,缓存再将这一列的数据按照流水线形式进入聚合模块,以使得聚合模块直接计算稀疏矩阵和缓存中一列数据的乘法,也就是矩阵和向量的乘法,实现稀疏矩阵的乘法运算。2.根据权利要求1所述的流水线结构,其特征在于,结合模块采用多个计算单元并行的方式实现密集矩阵的乘法运算。3.根据权利要求2所述的流水线结构,其特征在于,结合模块中,...

【专利技术属性】
技术研发人员:叶景格王堃
申请(专利权)人:复旦大学
类型:发明
国别省市:

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

1