基于多阶段事件驱动的动态重构神经网络加速电路及系统技术方案

技术编号:38735697 阅读:12 留言:0更新日期:2023-09-08 23:22
本发明专利技术公开了一种基于多阶段事件驱动的动态重构神经网络加速电路及系统,属于信号处理技术领域。本发明专利技术的基于多阶段事件驱动的动态重构神经网络加速电路包括动态可重构计算电路和外围的数据流控制电路,动态可重构计算电路在数据流控制电路的控制下完成神经网络模型的层级重构计算,获取神经网络模型各层的计算输出结果。该加速电路基于可扩展宏指令集实现了对不同神经网络算法在硬件上的动态重构,并结合低功耗电路优化技术实现电路的低功耗处理。基于该动态重构神经网络加速电路本发明专利技术还公开了一种基于多阶段事件驱动神经网络加速系统,其结合信号预处理和多阶段神经网络推理实现细粒度的事件驱动,切换灵敏度高且无需大量额外硬件开销。需大量额外硬件开销。需大量额外硬件开销。

【技术实现步骤摘要】
基于多阶段事件驱动的动态重构神经网络加速电路及系统


[0001]本专利技术属于信号处理
,具体涉及一种基于多阶段事件驱动的动态重构神经网络加速电路及系统。

技术介绍

[0002]在信号处理领域,常常存在多种信号事件并存的情况,比如雷达信号、声音信号和生理信号等信号中噪声干扰的有无、以及目标信号的有无等等信号事件,此外还有多种任务(也可以看作不同事件)的信号处理,如语音识别需要先进行语音唤醒再进行语音关键词识别或者语言识别,往往单一算法难以同时处理各类事件下的信号,而采用多种算法并行处理的方式会带来很大的冗余运算、硬件开销和功耗等等,这在能源和算力受限的边缘处理设备领域是不可接受的。但是这类场景往往可以被拆分成若干个时间独立的子事件(如噪声只可能存在或不存在、强或弱,且很多噪声往往具有一定的短时平稳性),因此,这类情况会使用事件驱动型算法,通过根据信号事件动态切换不同处理算法来同时实现高处理性能和低运算复杂度。此外,近年来随着神经网络的兴起,越来越多算法通过结合神经网络或者完全基于神经网络达到了更好的处理效果或准确率,同时神经网络带来了一个新的优势:基于神经网络的算法有着类似的算子(如卷积层、全连接层、池化层、激活层等),在基于神经网络的事件驱动型算法的硬件实现方面,能使用更少的硬件资源实现不同阶段事件处理算法的加速处理。
[0003]为了满足基于神经网络的事件驱动型算法的实时性、高能效和高准确率要求,存在以下几大挑战:
[0004]1)神经网络算法准确率高但是带来了大量的运算复杂度,为满足实时性要求需要消耗大量硬件资源,而单纯降低数据精度来节省资源又会造成准确率的大幅度下降;
[0005]2)事件驱动型算法意味着多种神经网络结构需要在硬件层面兼容和动态切换,通过可重构设计可以达到该要求,但是可重构往往意味着更多资源消耗和更低处理能效;
[0006]3)针对不同的应用场景,事件驱动的策略大不相同、能够容忍的硬件资源消耗也各不相同,设计的硬件架构需要有较好的扩展性。而市面上常见的神经网络边缘处理硬件的解决方案是基于神经网络硬件加速器,通过专用集成电路(ASIC)技术设计专用的神经网络加速器,但这类神经网络加速器需要仅支持静态可重构,即复位后配置一次,之后一直加速当前配置神经网络,直到下次复位,这类方案需要结合一个处理器内核才能实现动态可重构,但需要花费大量时间实现神经网络切换,并且需要占用处理器核心大量时钟周期。

技术实现思路

[0007]本专利技术提供了一种基于多阶段事件驱动的动态重构神经网络加速电路及系统,以实现对不同神经网络算法在硬件上的动态重构和电路的低功耗处理,以及实现事件驱动切换灵敏度高且无需大量额外硬件开销。
[0008]一方面,本专利技术提供了一种基于多阶段事件驱动的动态重构神经网络加速电路,
包括动态可重构计算电路和外围的数据流控制电路;
[0009]所述动态可重构计算电路用于在数据流控制电路的控制下完成神经网络模型的层级重构计算,获取神经网络模型的每一神经网络层的计算输出结果;
[0010]所述数据流控制电路包括:总数据流控制器、指令地址控制器、宏指令随机存取存储器和宏指令解码器;
[0011]所述总数据流控制器接收动态可重构计算电路发送的电路重构请求信号,并基于该电路重构请求信号生成发送给指令地址控制器的指令;所述电路重构请求信号中携带有神经网络模型的神经网络层标识;
[0012]指令地址控制器基于当前接收到的指令生成读取地址,所述读取地址用于从宏指令随机存取存储器读取出当前神经网络层对应的宏指令,并将读取到的宏指令送入宏指令解码器。
[0013]宏指令解码器对当前收到的宏指令进行解码,并将解码结果送入总数据流控制器,总数据流控制器生成对应的运算模块控制信号并返回给动态可重构计算电路,以控制动态可重构计算电路的工作模式。
[0014]进一步的,所述动态可重构计算电路包括:乒乓特征图随机存取存储器、输入层特征图随机存取存储器、权重和偏置值乒乓交互存储电路、输入数据和权重门控分配电路、输出数据累加和整型分配电路、激活函数/池化层控制电路,以及至少两个运算引擎;
[0015]所述输入数据和权重门控分配电路用于从输入层特征图随机存取存储器或乒乓特征图随机存取存储器中读取当前神经网络层运算所需的输入数据,从权重和偏置值乒乓交互存储电路中读取当前网络运算所需的网络权重和偏置值,并将读取到的输入数据和权重和偏置值根据当前神经网络层结构和计算复杂度分配到不同的运算引擎中,实现神经网络层运算的并行计算;
[0016]如果当前神经网络层的层级为输入层,则输入数据和权重门控分配电路将从输入层特征图随机存取存储器中读取神经网络模型的输入数据作为当前神经网络层的输入,否则从乒乓特征图随机读取存储器的指定分区中读取上一层的计算输出结果作为当前神经网络层的输入数据;
[0017]各运算引擎的运算输出结果将并行发送到输出数据累加和整型分配电路中,输出数据累加和整型分配电路按照设置的控制信号对多个运算输出结果进行合并累加与整型分配;输出数据累加和整型分配电路将根据当前神经网络层的后级神经网络层类型执行不同的数据传输:若后级神经网络层类型包含激活函数或池化层,则将输出数据累加和整型分配电路的输出数据送入激活函数/池化层控制电路;否则,输出数据累加和整型分配电路的输出数据被作为当前神经网络层的计算输出结果并写入乒乓特征图随机存取存储器的指定分区中。
[0018]进一步的,所述乒乓特征图随机存取存储器包括第一分区和第二分区,其中,第一分区用于存储上一神经网络层的计算输出结果,第二分区用于存储当前神经网络层的计算输出结果,在当前神经网络层的运算过程中,第一分区的读写状态为读,第二分区的读写状态为写;当前神经网络层的计算结束并准备进行下一神经网络层的计算时,乒乓特征图随机存取存储器将内部两个分区的读写状态翻转。
[0019]进一步的,所述权重和偏置值乒乓交互存储电路包括:权重和偏置值乒乓交互随
机存储器、交互状态控制电路、片下交互请求控制电路,以及信号解码和存储电路;
[0020]所述权重和偏置值乒乓交互随机存储器包括两个分区,通过乒乓操作实现当前神经网络层的权重和偏置值的读取和下一神经网络层的权重和偏置值写入交替进行;
[0021]所述权重和偏置值乒乓交互随机存储器通过交互状态控制电路控制权重和偏置值乒乓交互随机存储器与片外的交互以及存储器读写状态的切换,在交互当前神经网络层的网络权重和偏置值的同时,片下交互请求控制电路会向外部的神经网络参数交互控制模块产生神经网络参数的交互请求信号;所述神经网络参数包括权重和偏置值;
[0022]所述神经网络参数交互控制模块基于收到的神经网络参数的交互请求信号将下一神经网络层所需的权重和偏置值送入权重和偏置值乒乓交互存储电路,经信号解码和存储电路执行信号解码操作后存储到权重和偏置值乒乓交互随机存储器的指定分区。
[0023]进一步的,每个运算引擎包括:数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于多阶段事件驱动的动态重构神经网络加速电路,其特征在于,包括动态可重构计算电路和外围的数据流控制电路;所述动态可重构计算电路用于在数据流控制电路的控制下完成神经网络模型的层级重构计算,获取神经网络模型的每一神经网络层的计算输出结果;所述数据流控制电路包括:总数据流控制器、指令地址控制器、宏指令随机存取存储器和宏指令解码器;所述总数据流控制器接收动态可重构计算电路发送的电路重构请求信号,并基于该电路重构请求信号生成发送给指令地址控制器的指令;所述电路重构请求信号中携带有神经网络模型的神经网络层标识;所述指令地址控制器基于当前接收到的指令生成读取地址,所述读取地址用于从宏指令随机存取存储器读取出当前神经网络层对应的宏指令,并将读取到的宏指令送入宏指令解码器;所述宏指令解码器对当前收到的宏指令进行解码,并将解码结果送入总数据流控制器,总数据流控制器生成对应的运算模块控制信号并返回给动态可重构计算电路,以控制动态可重构计算电路的工作模式。2.如权利要求1所述的基于多阶段事件驱动的动态重构神经网络加速电路,其特征在于,所述动态可重构计算电路包括:乒乓特征图随机存取存储器、输入层特征图随机存取存储器、权重和偏置值乒乓交互存储电路、输入数据和权重门控分配电路、输出数据累加和整型分配电路、激活函数/池化层控制电路,以及至少两个运算引擎;所述输入数据和权重门控分配电路用于从输入层特征图随机存取存储器或乒乓特征图随机存取存储器中读取当前神经网络层运算所需的输入数据,从权重和偏置值乒乓交互存储电路中读取当前网络运算所需的网络权重和偏置值,并将读取到的输入数据和权重和偏置值根据当前神经网络层结构和计算复杂度分配到不同的运算引擎中进行并行计算;如果当前神经网络层的层级为输入层,则输入数据和权重门控分配电路将从输入层特征图随机存取存储器中读取神经网络模型的输入数据作为当前神经网络层的输入数据,否则从乒乓特征图随机读取存储器的指定分区中读取上一神经网络层的计算输出结果作为当前神经网络层的输入数据;各运算引擎的运算输出结果将并行发送到输出数据累加和整型分配电路中,输出数据累加和整型分配电路按照设置的控制信号对多个运算输出结果进行合并累加与整型分配;输出数据累加和整型分配电路将根据当前神经网络层的后级神经网络层类型执行不同的数据传输:若后级神经网络层类型包含激活函数或池化层,则将输出数据累加和整型分配电路的输出数据送入激活函数/池化层控制电路;否则,输出数据累加和整型分配电路的输出数据被作为当前神经网络层的计算输出结果并写入乒乓特征图随机存取存储器的指定分区中。3.如权利要求2所述的基于多阶段事件驱动的动态重构神经网络加速电路,其特征在于,所述乒乓特征图随机存取存储器包括第一分区和第二分区;其中,第一分区用于存储上一神经网络层的计算输出结果,第二分区用于存储当前神经网络层的计算输出结果,在当前神经网络层的运算过程中,第一分区的读写状态为读,第二分区的读写状态为写;当前神经网络层的计算结束并准备进行下一神经网络层的计算
时,乒乓特征图随机存取存储器将内部两个分区的读写状态翻转。4.如权利要求2所述的基于多阶段事件驱动的动态重构神经网络加速电路,其特征在于,所述权重和偏置值乒乓交互存储电路包括:权重和偏置值乒乓交互随机存储器、交互状态控制电路、片下交互请求控制电路,以及信号解码和存储电路;所述权重和偏置值乒乓交互随机存储器包括两个分区,通过乒乓操作实现当前神经网络层的权重和偏置值的读取与下一神经网络层的权重和偏置值写入的交替进行;所述权重和偏置值乒乓交互随机存储器通过交互状态控制电路控制...

【专利技术属性】
技术研发人员:周军朱世健肖剑彪张旭辉杜勐
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1