适用于电力系统边缘计算的智能加速芯片的制作方法

文档序号:18028761发布日期:2019-06-28 22:25阅读:164来源:国知局
适用于电力系统边缘计算的智能加速芯片的制作方法

本发明是电力边缘计算领域,特别是关于一种适用于电力系统边缘计算的智能加速芯片。



背景技术:

随着智能电网的不断深入发展,作为人工智能和物联网相结合的边缘计算在电力系统中的作用十分重要,如何在边缘侧电力终端上完成人工智能深度神经网络推理过程是电力技术人员一直困扰的问题。由于人工智能模型计算量大而边缘计算的实时性要求又高,针对终端所运行的深度神经网络模型进行加速成为了亟需。当前,主要有两种方法,一种是将网络模型进行压缩,另外一种则是设计专门的智能加速芯片。

由于深度神经网络的流行,很多硬件平台就深度神经网络处理的特性进行了针对性的开发。无论是云服务端硬件还是边缘端嵌入式soc硬件都在快速发展。目前,神经网络硬件大体按照功能来看,分为训练和推理两类功能。从性能需求角度来说,训练需要处理器具备高性能计算力,高精度,高灵活性;推理则需要低延时,高吞吐率,低功耗。而从电力系统应用场景角度则可以分成:1,云端或数据中心-完成训练任务或提供在线推理功能,主要是各种云服务器;2,边缘端或嵌入式移动终端-完成前端推理功能,主要有采集终端、配用电终端、监控终端、充电桩、电力巡检机器人等。因此,研究电力专用处理器神经网络加速芯片,首先了解深度神经网络所需计算的组成部分,然后针对计算部分设计深度神经网络专用加速芯片,尤其根据电力应用场景需要的专用智能加速芯片显得尤为重要。

随着人工智能技术的发展,特别是深度学习技术取得的巨大成果,促使音视频、图像等分析能力有了大幅度提高,使得边缘端智能分析功能成为可能,而不仅仅是依靠云服务。边缘端智能处理需要相应的计算能力以及低功耗约束,在计算机视觉、图像处理、语音识别中,由于配用电终端、电力巡检机器人等硬件能力有限且难以在边缘端设备上实现智能判断或决策,所以需要设计专用智能加速芯片来解决这些问题。

在边缘端设备上实施智能系统必须经受住成本,准确性和计算速度的挑战,由于神经网络的超大计算量仍然难以满足实时性要求,另外,电池供电对功耗要求也很高,这样必然带来终端的成本大大增加。神经网络计算主要是卷积计算,常见的有im2col,winograd,脉动阵列,fft快速傅里叶变换等,但是在嵌入式低功耗芯片级实现这些操作不利于边缘计算电池供电终端的部署。即在边缘侧电力终端上执行深度神经网络推断对计算力、功耗、成本都要求较高。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种适用于电力系统边缘计算的智能加速芯片,其结构简单,功耗低,运算速度快。

为实现上述目的,本发明提供了一种适用于电力系统边缘计算的智能加速芯片,包括:axi4.0双向总线、ddrsdram加速模块、嵌入式微控制器、axi4.0双向总线。ddrsdram用于存储轻量级神经网络模型。加速模块与所述axi4.0双向总线以及所述ddrsdram均相连,用于根据所述轻量级神经网络模型执行卷积、非线性化以及池化操作。嵌入式微控制器与所述axi4.0双向总线相连,所述嵌入式微控制器通过axi4.0双向总线与所述加速模块进行命令交互从而控制所述加速模块的操作。

在一优选的实施方式中,所述加速模块包括:寄存器配置模块、内存接口模块、样本输入缓冲区、卷积操作模块、激活操作模块、池化操作模块、ddr控制器。寄存器配置模块与所述axi4.0双向总线相连,用于配置所述axi4.0双向总线的访问顺序。内存接口模块与所述axi4.0双向总线相连,用于存储数据。样本输入缓冲区与所述内存接口模块相连,用于存储从所述内存接口模块获取的样本数据。卷积操作模块与所述样本输入缓冲区相连,用于执行卷积操作。激活操作模块与所述卷积操作模块相连,用于执行非线性操作。池化操作模块与所述激活操作模块相连,用于执行池化操作。ddr控制器与所述ddrsdram相连,用于控制所述ddrsdram的操作。

在一优选的实施方式中,所述卷积操作模块包括:双缓冲区、模型参数输入缓冲区、乘加操作单元、输出缓冲区、求和操作单元。双缓冲区与所述样本输入缓冲区相连,用于存储卷积核以及获取所述所述样本输入缓冲区的所述样本数据。n个模型参数输入缓冲区用于存储所述轻量级神经网络模型的权重参数和输入特征。每个所述乘加操作单元连接一个所述模型参数输入缓冲区,且每个所述乘加操作单元与所述双缓冲区均相连,所述乘加操作单元用于根据所述轻量级神经网络模型的权重参数和输入特征以及所述样本数据执行乘加操作。每个所述输出缓冲区连接一个所述乘加操作单元,所述输出缓冲区用于将所述乘加操作单元的计算结果进行累加并且进行存储。求和操作单元与n个所述输出缓冲区均相连,用于将n个所述输出缓冲区的数据进行求和。

在一优选的实施方式中,所述激活操作单元的激活函数为relu函数f(x)=max(0,x),所述激活操作单元包括第一比较器、第一缓存器。第一比较器与所述卷积操作模块相连,用于将所述卷积操作模块输入的每个数值与0作比较,小于0的数值输出0,大于0的数值输出该数值本身。第一缓存器与所述第一比较器相连,用于缓存所述第一比较器输出的数值。

在一优选的实施方式中,所述池化操作单元包括最大池化操作模块,所述最大池化操作模块包括第二比较器和第二缓存器。第二比较器与所述激活操作模块相连,所述第二比较器用于将所述激活操作模块输入至所述最大池化操作单元的每个数值进行比较,输出最大值。第二缓存器与所述第二比较器相连,用于缓存所述第二比较器输出的值。

在一优选的实施方式中,所述池化操作单元还包括平均池化操作模块,所述平均池化操作模块包括:累加器、除法器。累加器与所述激活操作模块相连,用于将所述激活操作模块输入至所述平均池化操作模块的所有值进行累加运算。除法器与所述累加器相连,用于将所述累加器输出的运算结果进行除法运算,并输出商值。第三缓存器与所述除法器相连,用于缓存所述商值。

在一优选的实施方式中,所述池化操作单元还包括选择器。选择器与所述最大池化操作模块以及所述平均池化操作模块均相连,用于选通所述最大池化操作模块或所述平均池化操作模块。

在一优选的实施方式中,axi4.0双向总线包括请求通道,读数据通道和写响应通道:在请求通道中,所述axi4.0双向总线在来自所述嵌入式微控制器的有效信号和来自所述加速模块的就绪信号在相同时钟周期中被声明时在请求通道上发生数据事务;在读数据通道中遵循axi4.0双向总线协议,按照请求顺序返回读取响应数据,写操作被设置为0,每个读请求数据包上有一个读响应,该读响应不能向前或向后跳转;在写响应通道中遵循axi4.0双向总线协议,按照请求顺序写完成后返回。

在一优选的实施方式中,所述嵌入式微处理器的一个控制通道操作一个寄存器文件和中断接口。

与现有技术相比,根据本发明的适用于电力系统边缘计算的智能加速芯片,针对轻量级深度神经网络模型设计一款智能加速芯片完成配用电物联网边缘端的智能推断的任务,加速模块通过嵌入式微控制器的控制,主要完成深度学习的推理工作,主要包括卷积、激活和池化操作。实现了卷积操作、激活操作以及池化操作的芯片级的加速,芯片结构简单,功耗低,运算速度快,适用于电力系统边缘端设备运行的神经网络模型的计算需要。

附图说明

图1是根据本发明一实施方式的智能加速芯片的结构示意图;

图2是根据本发明一实施方式的智能加速芯片的加速方法示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

为了追求功耗与计算速度的均衡性,本发明提出了一种适用于电力系统边缘计算的智能加速芯片,其主要设计思路为:针对轻量级深度神经网络模型设计一款智能加速芯片完成配用电物联网边缘端的智能推断的任务,主要完成深度学习的推理工作,主要包括卷积、激活和池化操作。该智能加速芯片用于推理功能,而不是作为训练的目的。首先从量化分析的角度给出具体设计参数,结合电力系统应用的需求,给出具体的功能模块,最终完成智能加速芯片的架构设计。

图1是根据本发明一实施方式的智能加速芯片。该智能加速芯片内核工作在单个时钟域和单一电源域,总线适配器允许从内部时钟到总线时钟的时钟域交叉。该智能加速芯片包含嵌入式微控制器100、axi(高级可扩展接口)4.0双向总线200、加速模块300、ddrsdram(双倍速率同步动态随机存储器)400。加速模块300中包括:寄存器配置模块301、内存接口模块302、样本输入缓冲区303、卷积操作模块304、激活操作模块305、池化操作模块306。

其中,嵌入式微控制器100通过axi4.0双向总线200与加速模块300进行命令交互,寄存器配置模块301用于配置总线访问顺序,一个控制通道操作一个寄存器文件和中断接口,嵌入式微控制器100通过axi4.0双向总线200接口与内存接口模块302相连接。ddrsdram400的操作通过ddr控制器307来实现,ddrsdram400用于存储轻量级神经网络模型的数据,可以通过ddr控制器307导入内存接口模块302中,可以加快数据处理速度。样本输入缓冲区303用于输入待推理的样本数据。

智能加速芯片被编程为独立运行模式,只接受嵌入式微控制器100发来的指令,执行相应的操作任务,每个功能模块都配置执行时间和执行内容,各自处理其分配的任务(如深度神经网络模型中的独立层),总线接口采用标准的axi4.0双向总线200,每个单元的调度操作由嵌入式微控制器100完成。

整个推理过程从嵌入式微控制器100开始,向下发送一个硬件层配置和激活命令。当输入不依赖于前一层的输出时,则将多个硬件层向下发送到不同的处理块并同时被激活。例如,若激活操作模块305不依赖于前一层(池化操作模块306)的输出时,那么这两个模块可以同时激活执行,虽然逻辑上激活层是在池化层的前一层。

本实施方式中,通过卷积操作模块304、激活操作模块305以及池化操作模块306等组合完成卷积计算,从而实现了电力边缘计算的加速。

具体地,在一实施方式中,加速方法如图2所示,在卷积操作模块304中,还包括n个模型参数输入缓冲区304a、双缓冲区304b、n个乘加操作单元304c、n个输出缓冲区304d、求和操作单元304e。

双缓冲区304b与样本输入缓冲区303相连,用于存储卷积核以及获取样本输入缓冲区303的样本数据。n个模型参数输入缓冲区304a用于存储轻量级神经网络模型的权重参数和输入特征。每个乘加操作单元304c连接一个模型参数输入缓冲区304a,且每个乘加操作单元304c与双缓冲区304b均相连,乘加操作单元304c用于根据轻量级神经网络模型的权重参数和输入特征以及样本数据执行乘加操作。每个输出缓冲区304d连接一个乘加操作单元304c,输出缓冲区304d用于将乘加操作单元304c的计算结果进行累加后存储。求和操作单元304e与n个输出缓冲区304d均相连,用于将n个输出缓冲区304d的数据进行求和。

在一实施方式中,每个处理块(卷积操作模块304、激活操作模块305以及池化操作模块306)分别采用一个双缓冲区304b来存放配置寄存器,以捕获第二层的配置,在激活层完成时立即开始处理。一旦硬件引擎完成其激活任务,就会向嵌入式微控制器100发出一个中断来报告完成情况,然后嵌入式微控制器100再次开始这个过程,命令执行中断流程重复,直到整个神经网络推理完成。通过双缓冲区304b可以确保任务能够即时执行和连续性,进一步地加速数据处理过程。

模型参数输入缓冲区304a用于存储权重参数和输入特征,这样可以避免重复访问系统内存,每个独立的时间都有一个权重参数或特征向系统存储器控制器发送一个请求。其中,权重参数包括神经网络模型的权重值w和偏移值b。

卷积操作包含一组输入权重和一组输入特征数据,并将不同大小的卷积映射到硬件上。卷积操作模块304只支持朴素卷积实现。激活操作是在卷积操作之后进行,支持relu非线性函数f(x)=max(0,x)。池化操作支持最大池化和全局平均池化操作两种。

在一实施方式中,激活操作单元305的激活函数为relu函数f(x)=max(0,x),激活操作单元305包括第一比较器、第一缓存器。第一比较器与卷积操作模块304相连,用于将卷积操作模块304输入的每个数值与0作比较,小于0的数值输出0,大于0的数值输出该数值本身。第一缓存器与第一比较器相连,用于缓存第一比较器输出的数值。

在一实施方式中,池化操作单元306包括最大池化操作模块,最大池化操作模块包括第二比较器和第二缓存器。第二比较器与激活操作模块相连,第二比较器用于将激活操作模块输入至最大池化操作单元306的每个数值进行比较,输出最大值。第二缓存器与第二比较器相连,用于缓存第二比较器输出的值。

在一实施方式中,池化操作单元306还包括平均池化操作模块,平均池化操作模块包括:累加器、除法器。累加器与激活操作模块相连,用于将激活操作模块输入至平均池化操作模块的所有值进行累加运算。除法器与累加器相连,用于将累加器输出的运算结果进行除法运算,并输出商值。第三缓存器与除法器相连,用于缓存商值。在一实施方式中,池化操作单元306还包括选择器。选择器与最大池化操作模块以及平均池化操作模块均相连,用于选通最大池化操作模块或平均池化操作模块。

在一实施方式中,卷积加速过程如下:首先,输入样本数据传输到样本输入缓冲区303中,权重和特征数据输入到模型参数输入缓冲区304a。然后数据流入多个乘加操作单元304c完成乘加操作,并实现卷积操作。嵌入式微控制器100完成序列化、寻址、分发数据到每个乘加操作单元304c。最后进行累加操作后将累加结果发送到输出缓冲区304d,并将各输出缓冲区304d的累加结果进入求和操作单元304e完成求和后进行激活操作或者池化操作,将计算输出再次送入样本输入缓冲区303用于下一轮的计算。

嵌入式微控制器100通过axi4.0双向总线200接口访问智能加速芯片的寄存器。接口设计成低性能简单型,axi4.0双向总线200由请求通道,读数据通道和写响应通道三个通道组成:请求通道、读数据通道以及写响应通道。

在请求通道中,遵循有效/就绪协议,只在来自嵌入式微控制器100的有效信号和来自加速模块300的就绪信号都在相同时钟周期中被声明时,才在请求通道上发生数据事务。总线axi4.0不支持任何形式的突发请求,发送到请求通道的每个分组独立于任何其它分组。

在读数据通道中,读数据通道遵循总线协议,按照请求顺序向主机返回读取响应数据,写操作被设置为0,每个读请求数据包上只有一个读响应,相对于其它读取,该响应不能向前或向后跳转。

在写响应通道中,写响应通道也遵循axi4.0双向总线协议,按照请求顺序写完成后返回给主机。

除配置空间总线外,智能加速芯片还设计一个异步返回通道,即中断驱动,便于将事件通知发送给嵌入式微控制器。中断信号是一个电平驱动的中断,只要智能加速芯片内核有待处理的中断,就被置为高电平,且中断信号与配置总线接口位于同一时钟域。

为了更加适用于电力系统边缘计算的需求,满足功耗以及计算速度的均衡,在一具体的实施方式中,深度神经网络模型采用轻量级的,并要求深度神经网络模型在32位浮点精度下完成训练任务,并将模型精度量化为8位整数。根据运行每层数据的输入、输出时间,以及执行乘累加(mac)运算所需时间和的最大值来设计硬件参数,运行整个网络所需的时间等于所有层运行时间的总和。在加速模块中,模型参数输入缓冲区、乘加操作单元、输出缓冲区各为16个。每个模型参数输入缓冲区设计为27*1024个字节大小,缓存权重数据和特征数据,每个输出缓冲区设计为512个字节大小;每个处理单元设计为8*1024个字节大小;样本输入缓冲区设计为4行缓冲区,每行大小为8*1024个字节。

综上,根据本实施方式的适用于电力系统边缘计算的智能加速芯片,针对轻量级深度神经网络模型设计一款智能加速芯片完成配用电物联网边缘端的智能推断的任务,加速模块通过嵌入式微控制器的控制,主要完成深度学习的推理工作,主要包括卷积、激活和池化操作。实现了卷积操作、激活操作以及池化操作的芯片级的加速,芯片结构简单,功耗低,运算速度快,适用于电力系统边缘端设备运行的神经网络模型的计算需要。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1