掌桥专利:专业的专利平台
掌桥专利
首页

一种Pointwise卷积计算装置与方法

文献发布时间:2024-04-18 19:44:28


一种Pointwise卷积计算装置与方法

技术领域

本发明属于芯片数据计算处理技术领域,具体涉及一种Pointwise卷积计算装置与方法。

背景技术

在硬件芯片中存在多个通过神经网络处理数据的处理芯片,而神经网络的推理过程中会产生大量的矩阵运算,需要耗费大量的计算资源与计算时间。为实现神经网络的模型部署,专用的神经网络加速器通过定制化的硬件设计与算法优化大幅提升神经网络的计算速度与能耗效率。

Pointwise卷积是一种轻量化的卷积方法,通过使用1*1卷积核实现特征图通道间的信息交互。然而,PW卷积计算时发生大量的矩阵乘法运算,需要从外部存储器中读取所需的权值与特征图数据,并将计算的中间结果写回存储器,造成大量片上资源的浪费,同时产生高额的访存功耗与延迟。由于Pointwise卷积计算中存在多种通道变换形式,运算过程中产生不同规模的乘法运算,当前的计算加速平台缺乏针对Pointwise卷积的计算单元优化与数据控制策略,限制了Pointwise卷积计算的效率与速度。

发明内容

为了解决现有技术中存在的上述问题,本发明提供了一种Pointwise卷积计算装置与方法。本发明要解决的技术问题通过以下技术方案实现:

本发明提供了一种Pointwise卷积计算装置包括:

数据缓存单元用于,通过总线从外部存储器中获取特征图的数据矩阵及相关尺寸信息,并按照卷积计算需求和计算资源对数据矩阵进行划分得到数据子矩阵;

数据传输单元用于,将数据子矩阵按照周期并行送入Pointwise卷积计算核中,并根据卷积运算任务划分情况决定是否送入上一周期的卷积运算结果至Pointwise卷积计算核;

控制单元,用于产生控制信号从而控制Pointwise卷积计算核从权值阵列中循环移位读取当前周期的权值;

Pointwise卷积计算核,用于将当前周期并行送入的特征图数据与对应的权值进行卷积运算,得到卷积运算结果;

数据路由器,用于接收Pointwise卷积计算核的卷积运算结果,并在控制单元的控制下将卷积运算结果通过总线接口输出至外部存储器或数据传输单元;

总线与总线接口用于实现数据缓存单元、控制单元、数据路由器与外部存储器的信息交互。

本发明提供了一种Pointwise卷积计算方法,利用Pointwise卷积计算装置实现,Pointwise卷积计算方法包括:

S100,数据获取单元从外部存储器中权值阵列、偏置数据、输入特征图数据及尺寸信息;

S200,根据Pointwise卷积计算核的规模,将特征图数据矩阵划分为多个数据子矩阵;

S300,控制单元预先加载权值阵列至权值存储器,并在Pointwise卷积计算核需要运算时广播对应的权值至Pointwise卷积计算核;

S400,数据传输单元将数据子矩阵按照周期并行输入Pointwise卷积计算核;

S500,Pointwise卷积计算核将并行输入的数据与对应的权值进行卷积运算得到计算结果;

S600,Pointwise卷积计算核将卷积运算结果通过总线接口输出。

本发明提出了一种Pointwise卷积计算装置与方法,通过优化Pointwise卷积计算核的架构和数据流,实现在Pointwise卷积运算过程中实现输入特征值数据与权值数据的重用。与现有技术相比,本发明通过特征图数据流安排与PE阵列内移位电路实现特征图数据的重用,计算过程数据仅发生一次加载,减少计算过程的数据加载时间,提高计算单元利用率;并且通过权值存储策略优化与输入特征图数据流安排实现计算过程中的权值广播,提高计算并行度;通过内部PE单元构成的加法器链实现Pointwise计算中间值数据的缓存与求和,避免了额外的存储开销;本发明通过设计基于该Pointwise卷积计算装置的计算方法,利用控制单元、数据路由器实现对计算核中多计算阵列的配置,实现计算重构,保证了计算装置的通用性。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1为本发明实施例提供的一种Pointwise卷积计算装置结构示意图;

图2为本发明实施例提供的一种PE单元结构示意图;

图3为本发明实施例提供的一种基于的Pointwise卷积计算装置的计算方法流程示意图;

图4为本发明实施例提供的输入特征图数据划分示意图;

图5为本发明实施例提供的Pointwise卷积权值划分示意图;

图6为本发明实施例提供的Pointwise权值存储空间安排示意图;

图7为本发明实施例提供的输入特征图数据时序安排示意图;

图8-12为本发明实施例提供的PE阵列Pointwise卷积算过程示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

请参见图1,图1为本发明实施例提供的一种Pointwise卷积计算装置结构示意图,包括:数据缓存单元,数据传输单元,控制单元,数据路由器,Pointwise卷积计算核和用于与外部存储器进行信息交互的总线与总线接口。

数据缓存单元用于,通过总线从外部存储器中获取特征图的数据矩阵及相关尺寸信息,并按照卷积计算需求和计算资源对数据矩阵进行划分得到数据子矩阵;

数据传输单元用于,将数据子矩阵按照周期并行送入Pointwise卷积计算核中,并根据卷积运算任务划分情况决定是否送入上中间运算结果至Pointwise卷积计算核;

值得说明的是,数据传输单元对数据路由器输入的Pointwise卷积计算核的中间数据进行读取与发送;如果数据矩阵的最后一个周期的特征图数据完成卷积运算则整个特征图的卷积过程完成。如果不是最后一个周期则卷积运算过程中,Pointwise卷积计算核需要上一个周期的卷积运算结果参与,此时数据传输单元则需要读取上一周期的卷积运算结果,并作为中间运算结果,再次参与下一次的卷积运算直至完成整个数据矩阵的运算过程。

控制单元,用于产生控制信号从而控制Pointwise卷积计算核从权值阵列中循环移位读取当前周期的权值;

值得说明的是:在计算开始前通过输入控制单元将权值进行存储空间安排后存储在片上权值存储器中,并在计算过程循环读取,与经数据传输单元输入卷积计算核的特征图数据发生Pointwise卷积的并行计算。

控制单元,用于预先通过总线结果接收权值阵列,并从权值阵列中循环移位读取当前周期的权值,并将当前周期的权值拼接重排组成权值矩阵;

Pointwise卷积计算核,用于将当前周期并行送入的特征图数据与对应的权值进行卷积运算,得到卷积运算结果;

其中,数据子矩阵按周期送入,每个周期送入的数据称为特征图数据。

Pointwise卷积计算核,用于将每个周期作为当前周期均重复,根据上一周期的卷积运算结果、当前周期内的特征图数据、对应的权值进行卷积运算,并将当前周期的卷积运算结果传输至数据路由器的过程,直至完成数据矩阵的卷积运算。

数据路由器,用于接收Pointwise卷积计算核的卷积运算结果,并在控制单元的控制下将卷积运算结果通过总线接口输出至外部存储器或数据传输单元;

总线与总线接口用于实现数据缓存单元、控制单元、数据路由器与外部存储器的信息交互。

继续参考图1,作为本发明一种可选的实施例,Pointwise卷积计算核包括并行的8个PE计算阵列,每个PE计算阵列均在数据缓存单元,数据传输单元,控制单元,数据路由器的配合下,将每个周期的特征图数据与对应的权值进行卷积运算。

值得说明的是:对于Pointwsie卷积计算,数据矩阵有的时候仅通过一次所提出的PE阵列进行计算即可获得最终的目标输出结果;但有仅通过一个PE阵列没有办法获得最终的结果,需要多个PE阵列参与计算,这与当前Pointwise卷积计算任务的卷积输入通道数相关。

输入特征图经过时序安排后,(下一行比当前行延后传入一个周期)横向传入,在对应各PE行移位,之后与循环读取的权值数据在PE中发生乘法与累加的操作过程。当前PE阵列计算结束的标志是所有从阵列右侧输入特征图数据经过移位完全从阵列左侧移出。卷积计算生成的最终目标结果或者中间运算结果是纵向传播的,至于最后一行PE单元输出至路由器的数据是最终的目标结果还是中间运算结果需要取决于预先的任务划分(即当前Pointwise卷积的输入通道数量,设当前Pointwise卷积通道数量为n,则目标输出数据需要经过n个PE处理得到,因此需要进行n次纵向传播),若在一个PE阵列中可以完成计算(n小于等于8时)则使用单个PE阵列即可计算完成,若在一个PE阵列中无法完成计算,则需要经过多个PE阵列配合计算。例如当前Pointwise卷积输入通道为16时,则目标计算结果的获得需要经过两个PE阵列进行配合。第一个PE阵列输出至数据路由器的数据为中间运算结果,经过数据路由器传递至第二个PE阵列的继续参与计算。

示例性的,在一个乘加求和运算过程中,有的情况下仅需实现8个输入特征图数据与8个对应的权值的乘加求和操作,那么在一个PE阵列就能满足计算需求,从第8行PE单元向下输出至数据路由器的结果就是目标结果,经过总线接口3输出。但是如果要实现输入通道为16的Pointwise卷积运算,就需要数据经过两个PE阵列做处理,第一个PE阵列的第八行PE单元向下输出至数据路由器的数据为中间运算结果。因为当前的输出结果仅为8个输入特征图数据与8个对应的权值的乘加求和操作,之后要将这个中间运算结果通过数据路由器传输至另一个PE阵列中,作为初始偏置输入至阵列中第一行PE继续参与运算,这个PE阵列的最后一行的PE单元的输出即完成了16个输入特征图数据与16个对应的权值的乘加求和操作。

请参见图2,作为本发明一种可选的实施例,每个PE计算阵列由8*8个同构的PE单元排布而成;

其中,每个PE单元包括权值输入接口、特征图数据输入接口、特征图数据输出接口、上方PE运算结果输入接口、PE运算结果输出接口、特征图数据寄存器、运算结果寄存器、乘法器和加法器;

每个PE单元在卷积运算过程中通过数据接口进行信息交互,通过乘法器与加法器发生数据运算,通过寄存器实现数据缓存;权值输入接口用于输入参与Pointwise卷积运算的权值;特征图输入接口用于将特征图数据缓存至特征图数据寄存器中;特征图输出接口用于将特征图数据寄存器中存储的特征图数据输出;特征图数据寄存器用于缓存输入特征图数据;乘法器用于实现特征图数据与对应的权值的相乘,将乘法结果输入加法器;按照同一列自上而下,上方PE单元的运算结果输入接口用于输入由上方PE单元的中间值数据,作为加法器输入;加法器用于将乘法器运算结果与由上方PE单元中间值数据进行相加求和;运算结果寄存器用于缓存加法器求和结果;PE运算结果输出接口用于将结果寄存器内缓存的当前PE单元的运算结果输出至同列下一行PE单元。

示例性的,若所求最终目标结果为一个16个数与16个数对应乘加求和的结果,PE单元所做即为乘加操作,即每个周期将输入的权值与特征图数据相乘,之后与之前得到的中间运算结果相加,由此经过16个周期,即可完成16个数与16个数的相乘与累加操作,此时获得的结果为目标结果数据,之前所有的中间运算结果就是中间值数据。

请参见图2,作为本发明一种可选的实施例,PE计算阵列中的每个PE单元在控制单元的控制下,将PE单元内缓存的特征图数据向该PE单元所在行的左侧PE单元传递;

PE计算阵列的首行PE单元的上方PE运算结果输入接口用于输入预设初始偏置;最后一行PE单元的结果输出接口用于输出PE阵列的卷积运算结果至数据路由器或者作为中间值数据继续参与运算;最右侧一列PE单元的特征图输入接口用于输入特征图数据。

请参见图2,作为本发明一种可选的实施例,控制单元用于通过总线接口接收权值阵列,并通过循环移位方式读取权值阵列的权值,将读取到的权值按照PE单元位置进行拼接重排得到权值矩阵;将权值矩阵加载至权值存储器中;

Pointwise卷积计算核在时钟信号的控制下从权值存储器中读取对应的权值数据,并广播至对应行PE单元,每个PE计算阵列中同行PE单元的权值输入接口与同一个权值存储器的权值输出接口相连接,共用同一个权值。

值得说明的是:PE阵列从片上权值存储器中获取权值数据进行Pointwise卷积操作,位于同行PE单元共用同一个权值数据,权值寄存器中的权值数据经过拼接在Pointwise计算开始前进行加载,在计算过程中根据存储地址在一个时钟周期内实现读取与数据拆分,并广播至对应PE计算单元列。

请参见图2,作为本发明一种可选的实施例,在PE阵列中的同列PE单元通过PE运算结果输入接口、PE运算结果输出接口连接构成加法器链,实现PE计算阵列进行卷积运算的数据累加,并将PE阵列的运算结果通过末级PE单元的运算结果输出接口输出至数据路由器。

作为本发明一种可选的实施例,Pointwise卷积计算装置由FPGA或ASIC实现,作为神经网络加速器中的计算部分。

请参见图3,图3为本发明实施例提供的一种基于的Pointwise卷积计算装置的计算方法流程示意图,包括以下步骤:

S100,数据获取单元从外部存储器中权值阵列、偏置数据、输入特征图数据及尺寸信息;

S200,根据Pointwise卷积计算核的规模,将特征图数据矩阵划分为多个数据子矩阵;

S300,控制单元预先加载权值阵列至权值存储器,并在Pointwise卷积计算核需要运算时广播对应的权值至Pointwise卷积计算核;

S400,数据传输单元将数据子矩阵按照周期并行输入Pointwise卷积计算核;

S500,Pointwise卷积计算核将并行输入的数据与对应的权值进行卷积运算得到计算结果;

S600,Pointwise卷积计算核将卷积运算结果通过总线接口输出。

作为本发明一种可选的实施例,Pointwise卷积计算核用于:

并行接收数据传输单元在当前周期发送的特征图数据;

其中,所有周期的特征图数据组成特征图的数据矩阵;

在时钟信号控制下从权值矩阵中读取当前周期的特征图数据对应的权值;其中,权值矩阵通过从权值阵列中循环移位读取当前周期的权值,并将当前周期的权值拼接重排组成;

将每个周期作为当前周期均重复根据上一周期的卷积运算结果、当前周期内的特征图数据、对应的权值进行卷积运算,并将当前周期的卷积运算结果传输出去的过程,直至完成数据矩阵的卷积运算。

以下结合具体示例,对本申请实施例公开的一种基于Pointwise卷积计算装置的卷积计算方法进行说明。

首先,获取计算所需数据,设获取的输入特征图矩阵通道数为16,特征图矩阵维度为8*8*16,发生Pointwise卷积后特征图通道数为16,则权值矩阵的维度为16*16,通道偏置为16*1,相关数据均通过总线从外部存储器中进行获取。

其次,为保证Pointwise卷积的高效处理,需要对于输入数据进行划分与计算任务分配。请参见图4,图4为本发明实施例提供的输入特征图数据划分示意图,预设Pointwise卷积计算核中PE阵列个数为8,各PE阵列由8*8个同构的PE单元排列而成,因此PE阵列所能处理的输入特征图通道数最大为8,将输入特征图数据按照通道数以8通道为单位划分为两个子矩阵,同时将非通道维度降至1,此时子矩阵的尺寸为8*64,由计算核中两个PE阵列进行Pointwise卷积运算。

之后,在计算开始前需要将权值输入网络实现对计算阵列的配置。请参见图5,图5为本发明实施例提供的Pointwise卷积权值划分示意图,输入权值矩阵根据PE阵列尺寸被划分为4个8*8权值子矩阵,根据计算需求在计算开始前实现对于PE阵列权值存储器的配置,并在配置过程中通过权值拼接实现了对权值存储器中的存储空间优化。

请参见图6,图6为本发明实施例提供的Pointwise权值存储空间安排示意图,以图5中经划分所得权值矩阵(0,0)所例,将对于8*8的权值矩阵按照副对角线方向进行重新分组与拼接,存储在权值存储器中的8个存储空间内,运算过程中通过一个存储地址即可在一个周期内从权值存储器中读取8个权值数据,通过8个权值数据线分别传输至PE阵列各行PE单元。

请参见图7,图7为本发明实施例提供的输入特征图数据时序安排示意图,计算过程中8通道输入特征图数据,通过各行最右侧PE单元的特征图数据输入接口并行输入PE阵列中,各行输入数据输入时序在数据传输模块的控制下相差一个周期,以尺寸为8*64个输入特征图数据矩阵为例,第二行输入数据落后第一行数据一个周期,对应延迟可以通过插入数据0进行等效,输入特征图数据矩阵传输共需72个时钟周期。

请参见图8-12,图8至图11为本发明实施例提供的PE阵列Pointwise卷积算过程示意图,展示了该Pointwise卷积计算装置与方法的计算流程,计算过程中特征图数据以图7所示的时序输入PE阵列,并通过阵列内部构成的寄存器链进行移位;权值数据以图6所示在计算开始前预先存储在权值寄存器中,计算过程中按照地址进行循环移位读取。循环移位的规则为按照按照下对角线的方向循环移位。下对角线即从右上角至左下角形成的对角线。PW计算通过同列PE单元内部乘法器实现求解部分和,通过构成的加法器链实现部分和相加,并输出最后一行PE单元运算结果至数据路由器,第8个时钟周期计算结果输出,第15个时钟周期所有PE单元全部进行工作,计算过程中所有输入特征图数据仅被读取一次,权值存储器中的权值数据被循环读取使用。PE阵列中发生的计算过程中,不存在由于计算数据准备与中间运算结果存储产生的延时,且实现了64个PE单元对于PW卷积的并行计算,极大地节省了计算时间。

本发明提出了一种Pointwise卷积计算装置与方法,通过优化Pointwise卷积计算核的架构和数据流,实现在Pointwise卷积运算过程中实现输入特征值数据与权值数据的重用。与现有技术相比,本发明通过特征图数据流安排与PE阵列内移位电路实现特征图数据的重用,计算过程数据仅发生一次加载,减少计算过程的数据加载时间,提高计算单元利用率;并且通过权值存储策略优化与输入特征图数据流安排实现计算过程中的权值广播,提高计算并行度;通过内部PE单元构成的加法器链实现Pointwise计算中间值数据的缓存与求和,避免了额外的存储开销;本发明通过设计基于该Pointwise卷积计算装置的计算方法,利用控制单元、数据路由器实现对计算核中多计算阵列的配置,实现计算重构,保证了计算装置的通用性。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 一种卷积神经网络中计算资源的调度方法及装置
  • 一种矩阵卷积计算模块及矩阵卷积计算方法
  • 一种卷积神经网络的基本计算单元及计算方法
  • 卷积计算方法及装置
  • 卷积神经网络计算的加速方法、装置、设备及存储介质
  • 一种卷积计算方法、卷积计算装置及其应用
  • 一种卷积计算方法、卷积计算装置及其应用
技术分类

06120116298343