【技术实现步骤摘要】
可编程卷积神经网络处理器、方法、设备、介质、终端
[0001]
[0002]本专利技术属于信号处理
,尤其涉及一种可编程卷积神经网络处理器、方法、设备、介质、终端。
[0003]
技术介绍
[0004]目前,针对嵌入式场景环境下对目标数据的识别分类任务,首先嵌入式场景下对系统的功能、可靠性、成本、体积、速度、功耗等有严格限制。其次在信号辨识和图像分类领域,卷积神经网络是目前应用最广且精度最高的算法之一。而一个典型的卷积神经网络最主要包括的就是乘累加运算。大量的乘累加运算就需要耗费大量的运算时间。传统个人电脑PC的中央处理器CPU和高速的图形处理器GPU的功耗都在几百瓦量级,使其都难以满足在嵌入式场景下进行信号辨识或目标图像分类任务的功耗要求。因此,有必要针对嵌入式场景中信号处理任务开发一套更加注重实时性、低功耗,且在易用性和价格方面更有优势的可编程卷积神经网络处理器。
[0005]西安电子科技大学在其申请的专利文献“可编程神经网络处理器”(申请号201710805918.7,公开号107590535)中公开了一种可编程的神经网络处理器。该处理器包括了存储控制模块、数据缓存模块、处理单元阵列、指令存储模块、数据传输网络和全局控制模块。该处理器根据需求选择合适层数和类型的神经网络,根据神经网络结构编程产生指令和配置参数,将指令和配置参数载入处理器,处理器根据配置参数设置全局控制模块中的配置寄存器,依据指令和配置寄存器,读入待处理目标数据、权重和偏置,逐层计算,最后输出目标检测或识别结果。该处理器的不足之处是: ...
【技术保护点】
【技术特征摘要】
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所述的可编程卷积神经网络处理器,其特征在于,所述处理单元,包括分段线性表、核...
【专利技术属性】
技术研发人员:张犁,刘夏,杨伯杨,胡海虹,闫战伟,陈治宇,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。