深度可分离卷积神经网络处理架构/方法/系统及介质技术方案

技术编号:20243098 阅读:32 留言:0更新日期:2019-01-29 23:33
本发明专利技术提供一种深度可分离卷积神经网络处理架构/方法/系统及介质,处理架构包括:片上缓存器,用于缓存通过主机接口和直接存储器访问从深度可分离卷积神经网络的处理设备的片外存储器读取到的深度可分离卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;至少一个深度可分离卷积运算引擎,用于对深度可分离卷积神经网络进行深度卷积运算,生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,生成逐点卷积的输出值。本发明专利技术针对深度可分离卷积神经网络的并行特点,重点对卷积层中深度卷积和逐点卷积进行了硬件优化设计,在速度、资源消耗及功耗上取得了平衡,提高计算速度,减少了系统运行延时。

【技术实现步骤摘要】
深度可分离卷积神经网络处理架构/方法/系统及介质
本专利技术属于集成电路处理器芯片架构及电路设计
,涉及一种处理架构、方法及系统,特别是涉及一种深度可分离卷积神经网络处理架构/方法/系统及介质。
技术介绍
人工神经网络为代表的人工智能近年来取得了快速的发展,其已经广泛应用在了诸如安防、自动驾驶、无人机、智能音箱、医疗影像及消费电子等诸多领域。各国也都高度重视人工智能技术的发展,学术界和工业界都投入了大量的人力和物力来进行技术研发和产品落地。卷积神经网络是最常见也是目前应用最为广泛的一种人工神经网络算法模型,具有计算密集型和存储密集型的特征。然而由于车载边缘计算等应用场景中的低延迟和低功耗的限制,现有深度可分离卷积神经网络的实现技术存在严重不足。深度神经网络技术在应用过程中存在占用计算量大、占用存储资源多、运算速度慢和消耗能量高的问题。基于传统通用处理器(CPU)的计算平台越来越难以满足应用过程中的性能要求。采用硬件加速器来代替CPU软件计算以此来提高深度神经网络运算速度和计算能耗,但是目前一些基于CPU+GPU(图形处理器),CPU+FPGA现场可编程门阵列(FieldProgrammableGateArray,FPGA)或CPU+ASIC(深度学习专用芯片ASIC)的深度学习异构计算平台主要在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗;中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优。上述问题限制了其在低功耗、低延迟、高性能的移动边缘计算场景中的应用。因此,如何提供一种深度可分离卷积神经网络处理架构/方法/系统及可读存储介质,以解决现有技术在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗,且中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优,导致限制在低功耗、低延迟、高性能的移动边缘计算场景中的应用等缺陷,实已成为本领域技术人员亟待解决的技术问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种卷积神经网络处理架构/方法/系统及介质,用于解决现有技术在运行深度神经网络时,需要大量的数据计算和传输,其频繁地片外与片上间的数据传输造成了大量的能量消耗,且中间计算结果和输出数据的片外存取也消耗了大量的功耗和数据带宽,无法实现能耗的最优,导致限制在低功耗、低延迟、高性能的移动边缘计算场景中的应用的问题。为实现上述目的及其他相关目的,本专利技术一方面提供一种深度可分离卷积神经网络的处理架构,包括:片上缓存器,用于缓存通过主机接口和直接存储器访问从所述深度可分离卷积神经网络的处理设备的片外存储器读取到的深度可分离卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;至少一个深度可分离卷积运算引擎,与所述片上缓存器通信连接,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。于本专利技术的一实施例中,所述深度可分离卷积神经网络处理架构还包括与所述深度可分离卷积运算引擎和主机接口通信连接的输出缓存器组。于本专利技术的一实施例中,所述片上缓存器包括:特征值片上输入缓存器,用于缓存所述深度可分离卷积神经网络的输入特征值;权重值片上缓存器,用于缓存与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;卷积运算结果片上缓存器,与所述深度可分离卷积运算引擎和输出缓存器组连接,用于缓存深度卷积的输出值和/或逐点卷积的输出值。于本专利技术的一实施例中,每一所述深度可分离卷积运算引擎两侧都设置有特征值片上输入缓存器和输出缓存器组;其中特征值片上输入缓存器和输出缓存器组包括有若干独立的RAM组成的存储单元,其数量和输入通道的并行度相关。于本专利技术的一实施例中,所述深度可分离卷积运算引擎包括:与所述特征值片上输入缓存器和权重值片上缓存器连接的深度卷积引擎和与所述深度卷积引擎和权重值片上缓存器连接的逐点卷积引擎。于本专利技术的一实施例中,所述深度卷积引擎包括:线缓存输入可重用结构,包括若干路线缓存单元和与每一路线缓存单元连接的多路选择器,用于缓存所述卷积神经网络的输入特征值;乘加运算结构,包括乘法器组和加法器,其中,所述乘法器组将输入的卷积神经网络的输入特征值和深度卷积权重值进行乘法运算;接着通过所述加法器对乘法器组的乘法运算的结果进行加法运算,以输出深度卷积的输出值。于本专利技术的一实施例中,每路线缓存单元由若干移位寄存器构成。于本专利技术的一实施例中,所述逐点卷积引擎包括:乘法器组,与所述权重值片上缓存器和乘加运算结构连接,用于将深度卷积的输出值与其对应的逐点卷积权重值进行乘法运算;加法器组,与所述乘法器组连接,将深度卷积的输出值与其对应的逐点卷积权重值的乘法运算结果加上偏置值再截断至预设的位长;累加器及FIFO,用于将所述加法器运算结果进行累计,以先入先出队列输出。于本专利技术的一实施例中,所述深度可分离卷积神经网络处理架构还包括:与所述片上缓存器通信连接的直接存储器访问;与所述直接存储器访问通信连接的主机接口;与所述卷积运算引擎、片上缓存器及主机接口通信连接的控制器,用于接收通过所述主机接口接收的控制指令,将该控制指令转换成控制信号,以使所述卷积运算引擎执行卷积运算,且若所述处理架构包括若干卷积运算引擎时,用于控制各个卷积运算引擎的运算步调一致。本专利技术另一方面提供一种深度可分离卷积神经网络处理方法,包括:对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。于本专利技术的一实施例中,所述对所述深度可分离卷积神经网络进行深度卷积运算,以生成深度卷积的输出值的步骤包括:读取所述深度可分离卷积神经网络的输入特征值;读取与输入特征值一一对应的深度卷积权重值;将所述深度可分离卷积神经网络的输入特征值和深度卷积权重值进行卷积运算后,以获取深度卷积的结果;对所述度卷积的结果进行非线性激活,以生成所述深度卷积的输出值。于本专利技术的一实施例中,所述对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值的步骤包括:读取逐点卷积权重值;将所述逐点卷积权重值与所述深度卷积的输出值进行卷积运算后,以获取逐点卷积的结果;对所述逐点卷积的结果进行非线性激活,以生成所述逐点卷积的输出值。于本专利技术的一实施例中,所述深度可分离卷积神经网络处理方法还包括:对所述逐点卷积的输出值进行最大值池化,缓存最大值池化后的结果。一种深度可分离卷积神经网络处理系统,其特征在于,包括:深度卷积模块,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;逐点卷积模块,用于对深度可分离深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。于本专利技术的一实施例中,所述深度可分离卷积神经网络处理系统还包括:输入缓存模块,与所述深度卷积模块连接,用于缓存所述卷积神经网络的输入特征值;深度卷积权重值缓存模块,与所述深度卷积模块连接,用于缓存与输入特征值一一对应的深度卷积权重值;及逐点卷积权重值缓存模块,与所述逐点卷积模块连接的,用于缓存逐点卷积权本文档来自技高网
...

【技术保护点】
1.一种深度可分离卷积神经网络处理架构,其特征在于,包括:片上缓存器,用于缓存通过主机接口和直接存储器访问从所述深度可分离卷积神经网络的处理设备的片外存储器读取到的深度可分离卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;至少一个深度可分离卷积运算引擎,与所述片上缓存器通信连接,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。

【技术特征摘要】
1.一种深度可分离卷积神经网络处理架构,其特征在于,包括:片上缓存器,用于缓存通过主机接口和直接存储器访问从所述深度可分离卷积神经网络的处理设备的片外存储器读取到的深度可分离卷积神经网络的输入特征值、与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;至少一个深度可分离卷积运算引擎,与所述片上缓存器通信连接,用于对所述卷积神经网络进行深度卷积运算,以生成深度卷积的输出值;及用于对深度卷积的输出值进行逐点卷积运算,以生成逐点卷积的输出值。2.根据权利要求1所述的深度可分离卷积神经网络处理架构,其特征在于,所述深度可分离卷积神经网络处理架构还包括与所述深度可分离卷积运算引擎和主机接口通信连接的输出缓存器组。3.根据权利要求2所述的深度可分离卷积神经网络处理架构,其特征在于,所述片上缓存器包括:特征值片上输入缓存器,用于缓存所述深度可分离卷积神经网络的输入特征值;权重值片上缓存器,用于缓存与输入特征值一一对应的深度卷积权重值及逐点卷积权重值;卷积运算结果片上缓存器,与所述深度可分离卷积运算引擎和输出缓存器组连接,用于缓存深度卷积的输出值和/或逐点卷积的输出值。4.根据权利要求2所述的深度可分离卷积神经网络处理架构,其特征在于,每一所述深度可分离卷积运算引擎两侧都设置有特征值片上输入缓存器和输出缓存器组;其中特征值片上输入缓存器和输出缓存器组包括有若干独立的RAM组成的存储单元,其数量和输入通道的并行度相关。5.根据权利要求2所述的深度可分离卷积神经网络处理架构,其特征在于,所述深度可分离卷积运算引擎包括:与所述特征值片上输入缓存器和权重值片上缓存器连接的深度卷积引擎和与所述深度卷积引擎和权重值片上缓存器连接的逐点卷积引擎。6.根据权利要求5所述的卷积神经网络处理架构,其特征在于,所述深度卷积引擎包括:线缓存输入可重用结构,包括若干路线缓存单元和与每一路线缓存单元连接的多路选择器,用于缓存所述卷积神经网络的输入特征值;乘加运算结构,包括乘法器组和加法器,其中,所述乘法器组将输入的卷积神经网络的输入特征值和深度卷积权重值进行乘法运算;接着通过所述加法器对乘法器组的乘法运算的结果进行加法运算,以输出深度卷积的输出值。7.根据权利要求6所述的深度可分离卷积神经网络处理架构,其特征在于,每路线缓存单元由若干移位寄存器构成。8.根据权利要求5所述的卷积神经网络处理架构,其特征在于,所述逐点卷积引擎包括:乘法器组,与所述权重值片上缓存器和乘加运算结构连接,用于将深度卷积的输出值与其对应的逐点卷积权重值进行乘法运算;加法器组,与所述乘法器组连接,将深度卷积的输出值与其对应的逐点卷积权重值的乘法运算结果加上偏置值再截断至预设的位长;累加器及FIFO,用于将所述加法器运算结果进行累计,以先入先出队列输出。9.根据权利要求5所述的深度可分离卷积神经网络处理架构,其特征在于,所述深度可分离卷积神经网络的处理架构还包括:与所述片上缓存器通信连接的直接存储器访问;与所述直接存储器访问通信连接的主机接口;与所述卷积运算引擎、片上缓存器及主机接口通信连接的控制器,用于接收通过所述主机接口接收的控制指令,将该控制指令转换成控制信号,以使所述卷积运算引擎执行卷积运算,且若所述处理架构包括若干卷积运算引擎时,用于控制各个卷积运算引擎的运算步调一致。1...

【专利技术属性】
技术研发人员:汪辉丁伟祝永新田犁黄尊恺
申请(专利权)人:中国科学院上海高等研究院
类型:发明
国别省市:上海,31

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

1