可编程卷积神经网络处理器、方法、设备、介质、终端技术

技术编号:30148224 阅读:10 留言:0更新日期:2021-09-25 14:53
本发明专利技术属于信号处理技术领域,公开了一种可编程卷积神经网络处理器、方法、设备、介质、终端,所述可编程卷积神经网络处理器,包括用于指示执行单元地址与数据地址的Move指令,在嵌入式环境下实现卷积神经网络推理运算加速,并完成对目标数据的识别分类;所述可编程卷积神经网络处理器,包括数据存储控制模块、数据缓存模块、处理单元阵列、程序存储模块、数据传输交换网络和指令译码

【技术实现步骤摘要】
可编程卷积神经网络处理器、方法、设备、介质、终端
[0001]

[0002]本专利技术属于信号处理
,尤其涉及一种可编程卷积神经网络处理器、方法、设备、介质、终端。
[0003]
技术介绍

[0004]目前,针对嵌入式场景环境下对目标数据的识别分类任务,首先嵌入式场景下对系统的功能、可靠性、成本、体积、速度、功耗等有严格限制。其次在信号辨识和图像分类领域,卷积神经网络是目前应用最广且精度最高的算法之一。而一个典型的卷积神经网络最主要包括的就是乘累加运算。大量的乘累加运算就需要耗费大量的运算时间。传统个人电脑PC的中央处理器CPU和高速的图形处理器GPU的功耗都在几百瓦量级,使其都难以满足在嵌入式场景下进行信号辨识或目标图像分类任务的功耗要求。因此,有必要针对嵌入式场景中信号处理任务开发一套更加注重实时性、低功耗,且在易用性和价格方面更有优势的可编程卷积神经网络处理器。
[0005]西安电子科技大学在其申请的专利文献“可编程神经网络处理器”(申请号201710805918.7,公开号107590535)中公开了一种可编程的神经网络处理器。该处理器包括了存储控制模块、数据缓存模块、处理单元阵列、指令存储模块、数据传输网络和全局控制模块。该处理器根据需求选择合适层数和类型的神经网络,根据神经网络结构编程产生指令和配置参数,将指令和配置参数载入处理器,处理器根据配置参数设置全局控制模块中的配置寄存器,依据指令和配置寄存器,读入待处理目标数据、权重和偏置,逐层计算,最后输出目标检测或识别结果。该处理器的不足之处是:第一,该处理器的卷积结构仅支持基本卷积神经网络结构,可实现的网络结构单一;第二,该处理器在池化部分未复用处理单元内的运算单元B,设计了另外控制单元C内的比较器来进行池化运算,资源消耗多。
[0006]周军在其申请的专利文献“可编程深度神经网络处理器”(申请号201810281984.3,公开号108520297)中公开了一种可编程深度神经网络处理器。该处理器包括程序控制单元、滤波器缓存区、特征图缓存区。该处理器通过对乘累加单元的复用控制、特征图数据读取控制、特征图累加控制、以及冗余数据剔除控制,实现了一种低功耗、低成本的可编程深度神经网络。该处理器的不足之处是:第一,该处理器的乘累加单元仅为5x5的乘加阵列,运算的并行度较低;第二,该处理器单次可处理的特征图数据有限,数据传输效率低,导致其控制池化运算步骤繁琐,系统的可重构性较低。
[0007]通过上述分析,现有技术存在的问题及缺陷为:(1)大量的乘累加运算需要耗费大量的运算时间,传统个人电脑PC的中央处理器CPU和高速的图形处理器GPU的功耗都在几百瓦量级,使其都难以满足在嵌入式场景下进行信号辨识或目标图像分类任务的功耗要求。
[0008](2)现有处理器的卷积结构仅支持基本卷积神经网络结构,可实现的网络结构单一;现有在池化部分未复用处理单元内的运算单元B,设计了另外控制单元C内的比较器来进行池化运算,资源消耗多。
[0009](3)现有处理器的乘累加单元仅为5x5的乘加阵列,运算的并行度较低;现有处理器单次可处理的特征图数据有限,数据传输效率低,导致其控制池化运算步骤繁琐,系统的可重构性较低。
[0010]解决以上问题及缺陷的难度为:(1)卷积神经网络包含运算种类繁多,且运算数量庞大,要求软件具有更高的灵活性,但是在嵌入式应用中要实现其所有功能对处理器架构设计有着极高的要求。
[0011](2)卷积神经网络结构复杂,可变结构参数很多,对于硬件电路来说兼容多种卷积神经网络结构十分困难。而且卷积神经网络所包含的运算形式也较多,现有设计往往是分别针对各单一功能分别实现,再将其组合起来,这样对处理器的资源就造成了较大浪费,每一步运算仅有其中一部分电路处在工作状态。如何复用核心运算部件完成卷积神经网络所有运算比较困难。
[0012](3)运算阵列越大处理器的并行度越高,其控制也越困难。卷积神经网络中包含大量的相似运算,若要提高处理器运算速率就应最大程度提高其并行度。
[0013]解决以上问题及缺陷的意义为:(1)嵌入式领域的实现在实际应用中更有价值,在可靠性、成本、体积、速度、功耗等方面更易满足应用场景中的应用要求。
[0014](2)通过复用核心运算部件完成卷积神经网络所有运算,可以节省电路资源消耗。
[0015](3)本设计中所设计的N*M的运算阵列用户可以根据具体应用指标要求进行灵活设定,以满足不同的功能和指标要求,从而适应不同的应用场景。同时,若对功耗和电路规模没有严格要求,可以尽可能扩大N*M的阵列,从而提高处理器的计算速度。

技术实现思路

[0016]针对现有技术存在的问题,本专利技术提供了一种可编程卷积神经网络处理器、方法、设备、介质、终端。
[0017]本专利技术是这样实现的,一种可编程卷积神经网络处理器,所述可编程卷积神经网络处理器,包括用于指示执行单元地址与数据地址的Move指令,在嵌入式环境下实现卷积神经网络推理运算加速,并完成对目标数据的识别分类;所述可编程卷积神经网络处理器,包括数据存储控制模块、数据缓存模块、处理单元阵列、程序存储模块、数据传输交换网络和指令译码

状态机控制模块;其中,所述数据存储控制模块与数据缓存模块通过数据传输交换网络连接;所述程序存储模块与指令译码

状态机控制模块通过数据传输交换网络连接;所述处理单元阵列由N个处理单元簇组成,每个处理单元簇由M个处理单元组成,每个处理单元簇包含一个局部数据缓存单元,该处理单元阵列单次可并行计算N个特征图卷积窗口的数据,M个卷积核的数据;所述数据缓存模块与处理单元阵列通过数据传输交换网络连接;所述指令译码

状态机控制模块通过控制总线连接其他所有模块。
[0018]进一步,所述数据存储控制模块,用于控制存储器进行数据读写操作。包括将存储
器中读取的待处理数据或网络权重参数数据发送到数据缓存模块;将数据缓存模块中产生的运算结果回写到存储器中;所述数据缓存模块,用于暂存存储控制模块发送的待处理数据、网络权重参数数据或残差块连接的特征图数据,并转发到处理单元阵列;用于暂存处理单元阵列产生的运算结果,并回写到存储控制模块;所述处理单元阵列,用于接收数据缓存模块发送的待处理数据或网络权重参数数据,用于接收指令译码

状态机控制模块的控制指令完成对应的运算操作,并将运算结果发送到数据缓存模块;所述程序存储模块,包括1块程序存储器及其寻址电路,用于存储指导该处理器完成运算的程序所有指令;所述数据传输交换网络,用于连接数据存储控制模块、数据缓存模块、处理单元阵列和程序存储模块并为其提供宽带数据通路;用于高效传输待处理数据、网络权重参数数据、运算结果和指令码;所述指令译码

状态机控制模块,用于根据指令中所指示的执行机构的地址及数据地址完成数据的Move指令,控制所述的数据存储控制模块、数据缓存模块、处理单元阵列、程序存储模块和数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可编程卷积神经网络处理器,其特征在于,所述可编程卷积神经网络处理器,包括用于指示执行单元地址与数据地址的Move指令,在嵌入式环境下实现卷积神经网络推理运算加速,并完成对目标数据的识别分类;所述可编程卷积神经网络处理器,包括数据存储控制模块、数据缓存模块、处理单元阵列、程序存储模块、数据传输交换网络和指令译码

状态机控制模块;其中,所述数据存储控制模块与数据缓存模块通过数据传输交换网络连接;所述程序存储模块与指令译码

状态机控制模块通过数据传输交换网络连接;所述处理单元阵列由N个处理单元簇组成,每个处理单元簇由M个处理单元组成,每个处理单元簇包含一个局部数据缓存单元,该处理单元阵列单次可并行计算N个特征图卷积窗口的数据,M个卷积核的数据;所述数据缓存模块与处理单元阵列通过数据传输交换网络连接;所述指令译码

状态机控制模块通过控制总线连接其他所有模块。2.如权利要求1所述的可编程卷积神经网络处理器,其特征在于,所述数据存储控制模块,用于控制存储器进行数据读写操作,包括将存储器中读取的待处理数据或网络权重参数数据发送到数据缓存模块;将数据缓存模块中产生的运算结果回写到存储器中;所述数据缓存模块,用于暂存存储控制模块发送的待处理数据、网络权重参数数据或残差块连接的特征图数据,并转发到处理单元阵列;用于暂存处理单元阵列产生的运算结果,并回写到存储控制模块;所述处理单元阵列,用于接收数据缓存模块发送的待处理数据或网络权重参数数据,用于接收指令译码

状态机控制模块的控制指令完成对应的运算操作,并将运算结果发送到数据缓存模块;所述程序存储模块,包括1块程序存储器及其寻址电路,用于存储指导该处理器完成运算的所有指令;所述数据传输交换网络,用于连接数据存储控制模块、数据缓存模块、处理单元阵列和程序存储模块并为其提供宽带数据通路;用于高效传输待处理数据、网络权重参数数据、运算结果和指令码;所述指令译码

状态机控制模块,用于根据指令中所指示的执行机构的地址及数据地址完成数据的Move指令,控制所述的数据存储控制模块、数据缓存模块、处理单元阵列、程序存储模块和数据传输交换网络,对于读入的待处理数据或网络权重参数数据完成所有神经网络相关运算,并输出运算结果。3.如权利要求1所述的可编程卷积神经网络处理器,其特征在于,所述数据缓存模块,包括4块简单双端口块随机存取存储器BRAM;其中,所述BRAM1,用于暂存存储控制模块发送来的待处理数据,并转发到处理单元阵列;所述BRAM2,用于暂存存储控制模块发送来的权重参数数据,并转发到处理单元阵列;所述BRAM3,用于暂存存储控制模块发送来的残差块连接的特征图数据,并转发到处理单元阵列;所述BRAM4,用于暂存处理单元阵列产生的运算结果,并回写到存储控制模块;其中,BRAM1存储器数据位宽=(最大特征图宽度/n)*数据位宽bit;BRAM1存储器深度=(最大卷积核尺寸+最大步长)*特征图的最大通道数*n;BRAM2存储器数据位宽=阵列深度*数据位宽bit;
BRAM2存储器深度=最大卷积核尺寸*最大卷积核尺寸*最大卷积核通道数+1;BRAM3存储器数据位宽=(最大残差块的特征图宽度/n)*数据位宽bit;BRAM3存储器深度=阵列深度*n;BRAM4存储器数据位宽=(最大特征图宽度/n)*数据位宽bit;BRAM4存储器深度=阵列深度*n;n为整数,其大小根据存储器资源情况、数据传输交换网路带宽及数据传输速度与效率要求进行选择。4.如权利要求1所述的可编程卷积神经网络处理器,其特征在于,所述处理单元阵列,包括N个处理单元簇,其中一个处理单元簇包括M个处理单元,每个处理单元都可以单独完成卷积神经网络所包含的所有运算;所述处理单元阵列用于接收数据缓存模块发送的待处理数据、网络权重参数数据或残差块连接的特征图数据,完成指令所指示的运算目的类型的运算操作,再依据指令将运算结果发送到数据缓存模块;所述处理单元阵列支持的运算目的类型是指可以选择以下运算目的类型中的任意一种,包括卷积层的乘累加运算、残差块之间的加法运算、全连接层的乘累加运算、池化运算和非线性函数运算;所述处理单元阵列支持的运算数制为浮点数制或定点数制;所述非线性函数运算是指,通过将斜率和截距由分段线性表读取后发送至核心运算部件,完成非线性函数运算;所述处理单元被分为N个簇,分别编号为:第0簇、第1簇、

第N

1簇,每个簇内包含M个处理单元,分别编号为:第0个、第1个、

第M

1个,为完成池化运算,第0个和第1个对应,2个和第3个对应,依次类推,处理单元阵列内部设计多个池化操作的专用池化通道,每个簇内偶数处理单元和对应的奇数处理单元之间有M/2个池化专用通道;卷积运算完成时,偶数运算单元和奇数运算单元都会产生一个卷积运算结果,奇数运算单元利用所述专用池化通道将运算结果发送到偶数运算单元进行池化操作。5.如权利要求1所述的可编程卷积神经网络处理器,其特征在于,所述处理单元,包括分段线性表、核...

【专利技术属性】
技术研发人员:张犁刘夏杨伯杨胡海虹闫战伟陈治宇
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1