CN116451755A - 一种图卷积神经网络的加速方法及装置、电子设备 - Google Patents
一种图卷积神经网络的加速方法及装置、电子设备 Download PDFInfo
- Publication number
- CN116451755A CN116451755A CN202310352823.XA CN202310352823A CN116451755A CN 116451755 A CN116451755 A CN 116451755A CN 202310352823 A CN202310352823 A CN 202310352823A CN 116451755 A CN116451755 A CN 116451755A
- Authority
- CN
- China
- Prior art keywords
- matrix
- sparse
- row
- ccl
- feature matrix
- 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 33
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 26
- 230000001133 acceleration Effects 0.000 title claims description 19
- 239000011159 matrix material Substances 0.000 claims abstract description 215
- 239000013598 vector Substances 0.000 claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 238000013527 convolutional neural network Methods 0.000 claims description 12
- 238000005096 rolling process Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000003491 array Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000001360 synchronised 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种图卷积神经网络的加速方法,将邻接矩阵和特征矩阵使用全新的稀疏格式CCL表示,将使用CCL表示的稀疏数据按照PE个数来进行优先调度排列并存入到片外存储器,加速器通过总线获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与权重矩阵行向量进行外积计算,根据特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕,当特征矩阵和权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中,根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
Description
技术领域
本申请涉及图卷积神经网络技术领域,尤其涉及一种图卷积神经网络的加速方法及装置、电子设备。
背景技术
近年来图神经网络被广泛应用于流量预测、对象检测、疾病分类、自动驾驶等。其中图卷积神经网络作为最成功的模型之一,其运行主要由两个阶段构成:聚合和组合。组合阶段的计算与传统神经网络类似,然而聚合阶段依赖于图结构,而图结构通常是稀疏和不规则的。稀疏性和不规则性将是设计图卷积神经网络结构的新挑战。
聚合和组合需要连续计算三个矩阵,分别是:邻接矩阵,特征矩阵,权重矩阵。其中邻接矩阵和特征矩阵属于稀疏矩阵,是指其非零元素只占矩阵元素总数的小部分,其余大部分为零。其中邻接矩阵为极稀疏矩阵,是指非零元素所占矩阵比例不到1%。权重矩阵通常是密集矩阵。
通常在图卷积神经网络的计算中,将计算顺序变为先进行聚合,再进行组合。也就变成了两次稀疏-密集矩阵乘法(SpMM,sparse-densematrix multiplication)。在深度学习的计算中,特别是图卷积神经网络,高效处理SpMM已经成为提高模型训练和推理速度的关键,也是缩减模型参数量的重要手段之一。为了实现高性能训练和推理图卷积神经网络,加速SpMM具有十分重要的意义。
在硬件中,为了减少稀疏矩阵占用的存储空间以及提高计算效率,通常采用稀疏格式来表示稀疏矩阵。在基于pytorch的图神经网络框架PyG(Pytorch Geometric)中,通常采用CSR,CSC,COO等常用稀疏格式来表示稀疏矩阵。但对于邻接矩阵这样密集度低于1%的稀疏矩阵来说,上述稀疏格式不能很好的表示这类矩阵。其局限性主要有:①这类稀疏矩阵在1%密集度的大矩阵时所占用的内存量较大,需要较多冗余字节来表示行或列的信息;②加速器在运算上述稀疏格式表达的稀疏矩阵时,因为其主要以行或列为信息,容易使运算单元分配到的非零值不等,进而导致负载不平衡。
发明内容
本申请实施例的目的是提供一种图卷积神经网络的加速方法及装置、电子设备,以解决现有稀疏格式针对图卷积神经网络中极稀疏矩阵的低效率,以及PE负载不平衡的问题,本发明能够提高PE阵列的运算利用率,提高图卷积神经网络中SpMM的运算效率。
根据本申请实施例的第一方面,提供一种图卷积神经网络的加速方法,其特征在于,包括:
将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
可选的,所述将邻接矩阵和特征矩阵使用稀疏格式CCL表示,包括:
将邻接矩阵和特征矩阵使用稀疏格式CCL表示,其中CCL稀疏格式包括VAL、COL、HAT三个数组;
其中VAL数组按行顺序存储稀疏矩阵中的非零值;COL数组按照VAL数组的顺序存储其非零元素的列坐标;HAT数组按照VAL数组的顺序存储其非零元素的行位置信息。
可选的,HAT数组按照VAL数组的顺序存储其非零元素的行位置信息,包括:
HAT数组由2bits表示,其中2'b10表示该非零元素所在位置为所在行中非零元素的首位,2'b01表示该非零元素所在位置为所在行中非零元素的末位,2'b11表示该非零元素为该行唯一的非零元素,2'b00表示该非零元素所在位置为所在行中非零元素的中间位置。
可选的,将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,包括:
将稀疏矩阵按照行顺序依次分配给PE,当存在PE先计算完成时,立马为PE分配新的一行,而不是等待所有的PE运算完后再集中读取。
可选的,加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算,包括:
PE收到以CCL稀疏格式表示的稀疏数据,将VAL数组中的数据传入到先进先出;
将COL数组中的数据读取出来,并使用特征矩阵非零值的列坐标索引权重矩阵的行向量;
加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
将读取到的行向量与先进先出中的非零值进行标量×向量计算,得到的结果暂存在PE的输出缓存中。
可选的,根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕,包括:
当HAT位为2'b01或2'b11时,表示该外积运算输出矩阵的行向量计算完毕,把该中间矩阵行发送到向量存储器群,等待下一次的外积运算;
当HAT位为2'b10或2'b00时,表示该外积运算输出矩阵的行向量仍然需要计算,PE继续读取该稀疏矩阵行的非零元素值,来进行外积运算和累加。
可选的,根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果,包括:
根据邻接矩阵的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
根据本申请实施例的第二方面,提供一种图卷积神经网络的加速装置,包括:
CCL编码模块,用于将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
CCL调度模块,用于将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
数据分配模块,用于加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
判断模块,用于根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
数据计算模块,用于当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
片上网络模块,用于根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
根据本申请实施例的第三方面,提供一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如第一方面所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本申请采用CCL编码格式及优先调度算法,克服了传统稀疏编码格式导致的对冗余字节过多表示,以及在多个PEs进行并行计算时所导致的负载不平衡现象。进而充分对密集度小于1%的极稀疏矩阵进行压缩,充分节省片上存储资源,并且使PEs之间负载平衡,充分利用硬件资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本发明实施例提供的一种图卷积神经网络的加速方法的流程图。
图2是本发明实施例提供的CCL稀疏格式表示方法示意图。
图3是本发明实施例提供的对稀疏矩阵采用优先调度处理方法示意图。
图4是本发明实施例提供的一种图卷积神经网络的加速装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种图卷积神经网络的加速方法的流程图,所述图卷积神经网络的加速方法,包括:
S1、将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
S2、将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
S3、加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
S4、根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
S5、当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
S6、根据邻接矩阵的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
由上述实施例可知,本申请通过采用稀疏格式CCL对密集度小于1%的极稀疏矩阵进行压缩,充分节省片上资源,并利于对稀疏矩阵和密集矩阵进行计算。并且通过采用优先调度,改变了稀疏矩阵运算所导致了负载不平衡现象,大大提升矩阵运算效率。并通过设计针对CCL相应的硬件模块,完成GCN三个矩阵计算。
具体地,在步骤S1将邻接矩阵和特征矩阵使用全新稀疏格式CCL表示之前,所述图卷积神经网络的加速方法还包括:
将邻接矩阵、特征矩阵划分为小块,具体大小取决于硬件架构的设计;
具体地,在步骤S1中,所述GCN模型为最经典的双层GCN模型,经过PyG网络框架训练而得到的GCN模型。
具体地,在步骤S1中,所述矩阵数据为推理过程中需要计算的数据,数据格式为FP32,对于图卷积神经网络训练方法和训练加速器本发明暂不涉及。
示例性地,在步骤S1中,稀疏矩阵的大小为4*4,如图2所示,图2为一个4*4的稀疏矩阵使用CCL稀疏格式表示后的结果。该实例中,稀疏矩阵中的大写字母表示矩阵里的非零值,CCL使用三个数组来对齐进行表示,分别是:VAL、COL和HAT。其中VAL数组按行顺序存储稀疏矩阵中的非零值;COL数组按照VAL数组的顺序存储其非零元素的列坐标;HAT数组按照VAL数组的顺序存储其非零元素的行位置信息,HAT数组由2bits表示,其中2'b10表示该非零元素所在位置为所在行中非零元素的首位,2'b01表示该非零元素所在位置为所在行中非零元素的末位,2'b11表示该非零元素为该行唯一的非零元素,2'b00表示该非零元素所在位置为所在行中非零元素的中间位置。
具体地,在步骤S2中,所述片外存储器为双倍速率同步动态随机存储器(DoubleDataRateSDRAM,DDR),其存储方式为连续存储。
示例性地,在步骤S2中,稀疏矩阵大小为8*8,PE数量为4,如图3所示,图3为一个8*8的稀疏矩阵通过优先调度分配到4个PE。该实例中,稀疏矩阵按照行顺序依次分配给PE,如果未经处理,当PE1和PE2先计算完成后,还需要等待PE0和PE3计算完成;当一个周期后PE0完成时,PE0、PE1和PE2还需等待PE3计算完成。当PE3完成后,PE1和PE2等待了两个周期,PE0等待了一个周期。而经过优先调度的后,当PE1和PE2计算完稀疏矩阵的第一行和第二行时,立马为其分配稀疏矩阵的第四行和第五行;当PE0计算完稀疏矩阵的第零行时,立马为其分配稀疏矩阵的第六行;当PE3计算完稀疏矩阵的第三行时,立马为其分配稀疏矩阵的第七行。
优选地,在步骤S2中,提前将稀疏矩阵按照优先调度的方式排列,并将排列好的数据存储到片外存储器中。
具体地,在步骤S3中,加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算,包括:
S31、PE收到以CCL稀疏格式表示的稀疏数据,将VAL数组中的数据传入到先进先出;
S32、将COL数组中的数据读取出来,并使用特征矩阵非零值的列坐标索引权重矩阵的行向量;
S33、将读取到的行向量与先进先出中的非零值进行标量×向量计算,得到的结果暂存在PE的输出缓存中。
具体地,在步骤S33中,将读取到的行向量与FIFO中的非零值进行标量×向量计算,得到的结果暂存在PE的输出缓存中,包括:
优选地,通过MAC阵列来进行标量×向量运算,其中MAC阵列中MAC的个数取决于读取到的权重矩阵向量长度,本发明使用的MAC个数为16。
具体地,在步骤S4中,根据特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕,包括:
当HAT位为2'b01或2'b11时,表示该外积运算输出矩阵的行向量计算完毕,把该中间矩阵行发送到向量存储器群,等待下一次的外积运算;
当HAT位为2'b10或2'b00时,表示该外积运算输出矩阵的行向量仍然需要计算,PE继续读取该稀疏矩阵行的非零元素值,来进行外积运算和累加;
具体地,在步骤S5中,当特征矩阵和权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中,包括:
当特征矩阵和权重矩阵计算完成后,生成的中间矩阵存储到向量存储器群,方便下一轮SpMM计算时被PE阵列读取;
具体地,在步骤S6中,根据邻接矩阵的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。本发明实施例所提供的图卷积神经网络加速方法,通过将稀疏数据采用CCL稀疏格式表示,并通过优先调度排列后存储到DDR中供加速器读取,有利于输出重用的外积运算方法,并且提高了PE阵列进行标量×向量运算的资源利用率,达到了负载平衡,进而提高了数据运行效率。
与前述的图卷积神经网络的加速方法的实施例相对应,本申请还提供了图卷积神经网络的加速装置的实施例。
图4是根据一示例性实施例示出的一种图卷积神经网络的加速装置框图。
参照图4,该装置包括:
CCL编码模块,用于将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
CCL调度模块,用于将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
数据分配模块,用于加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
判断模块,用于根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
数据计算模块,用于当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
片上网络模块,用于根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的图卷积神经网络的加速方法。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的图卷积神经网络的加速方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种图卷积神经网络的加速方法,其特征在于,包括:
将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
2.如权利要求1所述的图卷积神经网络加速方法,其特征在于,所述将邻接矩阵和特征矩阵使用稀疏格式CCL表示,包括:
将邻接矩阵和特征矩阵使用稀疏格式CCL表示,其中CCL稀疏格式包括VAL、COL、HAT三个数组;
其中VAL数组按行顺序存储稀疏矩阵中的非零值;COL数组按照VAL数组的顺序存储其非零元素的列坐标;HAT数组按照VAL数组的顺序存储其非零元素的行位置信息。
3.如权利要求2所述的图卷积神经网络加速方法,其特征在于,HAT数组按照VAL数组的顺序存储其非零元素的行位置信息,包括:
HAT数组由2bits表示,其中2'b10表示该非零元素所在位置为所在行中非零元素的首位,2'b01表示该非零元素所在位置为所在行中非零元素的末位,2'b11表示该非零元素为该行唯一的非零元素,2'b00表示该非零元素所在位置为所在行中非零元素的中间位置。
4.如权利要求1所述的图卷积神经网络加速方法,其特征在于,将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,包括:
将稀疏矩阵按照行顺序依次分配给PE,当存在PE先计算完成时,立马为PE分配新的一行,而不是等待所有的PE运算完后再集中读取。
5.如权利要求1所述的图卷积神经网络加速方法,其特征在于,加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算,包括:
PE收到以CCL稀疏格式表示的稀疏数据,将VAL数组中的数据传入到先进先出;
将COL数组中的数据读取出来,并使用特征矩阵非零值的列坐标索引权重矩阵的行向量;
加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
将读取到的行向量与先进先出中的非零值进行标量×向量计算,得到的结果暂存在PE的输出缓存中。
6.如权利要求1所述的图卷积神经网络加速方法,其特征在于,根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕,包括:
当HAT位为2'b01或2'b11时,表示该外积运算输出矩阵的行向量计算完毕,把该中间矩阵行发送到向量存储器群,等待下一次的外积运算;
当HAT位为2'b10或2'b00时,表示该外积运算输出矩阵的行向量仍然需要计算,PE继续读取该稀疏矩阵行的非零元素值,来进行外积运算和累加。
7.如权利要求1所述的图卷积神经网络加速方法,其特征在于,根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果,包括:
根据邻接矩阵的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
8.一种图卷积神经网络的加速装置,其特征在于,包括:
CCL编码模块,用于将邻接矩阵和特征矩阵使用稀疏格式CCL表示,所述邻接矩阵和特征矩阵为GCN模型通过PyG框架得到的原始数据;
CCL调度模块,用于将使用CCL表示的稀疏数据按照PE数来进行优先调度排列,并将经过优先调度排列好的数据存储在片外存储器;
数据分配模块,用于加速器获取特征矩阵,并按照优先调度的顺序分发到每个PE中,与PE内部缓存的权重矩阵进行输出优先的外积计算;
判断模块,用于根据所述特征矩阵的HAT位来判断该稀疏矩阵行是否计算完毕;
数据计算模块,用于当所述特征矩阵和所述权重矩阵计算完毕生成中间矩阵后,加速器继续获取邻接矩阵,并按照优先调度的顺序分发到每个PE中;
片上网络模块,用于根据稀疏数据的列坐标,PE从向量存储器群读取相应的行向量,并进行外积运算,最终得到三个矩阵相乘的计算结果。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310352823.XA CN116451755A (zh) | 2023-04-04 | 2023-04-04 | 一种图卷积神经网络的加速方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310352823.XA CN116451755A (zh) | 2023-04-04 | 2023-04-04 | 一种图卷积神经网络的加速方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116451755A true CN116451755A (zh) | 2023-07-18 |
Family
ID=87119532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310352823.XA Pending CN116451755A (zh) | 2023-04-04 | 2023-04-04 | 一种图卷积神经网络的加速方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116451755A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454930A (zh) * | 2023-12-22 | 2024-01-26 | 苏州元脑智能科技有限公司 | 一种针对图神经网络的表达特征数据输出方法和装置 |
-
2023
- 2023-04-04 CN CN202310352823.XA patent/CN116451755A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454930A (zh) * | 2023-12-22 | 2024-01-26 | 苏州元脑智能科技有限公司 | 一种针对图神经网络的表达特征数据输出方法和装置 |
CN117454930B (zh) * | 2023-12-22 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种针对图神经网络的表达特征数据输出方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
US9529590B2 (en) | Processor for large graph algorithm computations and matrix operations | |
WO2017156968A1 (zh) | 神经网络的计算方法、系统及其装置 | |
CN107886167A (zh) | 神经网络运算装置及方法 | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
WO2022134465A1 (zh) | 加速可重构处理器运行的稀疏化数据处理方法和装置 | |
CN116451755A (zh) | 一种图卷积神经网络的加速方法及装置、电子设备 | |
US20230061425A1 (en) | Sparse matrix calculations utilizing tightly coupled memory and gather/scatter engine | |
CN112835552A (zh) | 一种外积累加求解稀疏矩阵与稠密矩阵内积的方法 | |
CN116720549A (zh) | 一种基于cnn输入全缓存的fpga多核二维卷积加速优化方法 | |
CN109615067B (zh) | 一种卷积神经网络的数据调度方法及装置 | |
CN113806261A (zh) | 一种面向向量处理器的池化向量化实现方法 | |
CN111797985B (zh) | 一种基于gpu的卷积运算内存访问优化方法 | |
US11061621B2 (en) | Data processing method, electronic apparatus, and computer-readable storage medium | |
CN116167425B (zh) | 一种神经网络加速方法、装置、设备及介质 | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速系统 | |
CN116170601B (zh) | 基于四列列向量分块奇异值分解的图像压缩方法 | |
CN111667052A (zh) | 专用神经网络加速器的标准与非标准卷积一致性变换方法 | |
CN111191774B (zh) | 面向精简卷积神经网络的低代价加速器架构及其处理方法 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
WO2019182059A1 (ja) | モデル生成装置、モデル生成方法及びプログラム | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
CN113962378A (zh) | 一种基于rs数据流的卷积硬件加速器及其方法 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
CN112001492A (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 |
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 |