一种用于执行多任务卷积神经网络预测的装置和方法与流程

文档序号:25724211发布日期:2021-07-02 21:09阅读:130来源:国知局
一种用于执行多任务卷积神经网络预测的装置和方法与流程

本发明涉及计算机和图像处理领域,并且更具体地,涉及一种用于执行多任务卷积神经网络预测的装置和方法。



背景技术:

近年来计算机技术和人工智能技术高速发展,随着摩尔定律几近失效,新的芯片物理材料始终没有取得重大突破之前,常规处理器的计算性能也逼近极限,2012年alexnet开启这一轮深度学习热潮的时候,网络只有8层,但就算只有8层也需要大量的计算,2016年153层的resnet以及最近甚至出现了上千层的网络结构,需要更强大的计算资源来支撑网络训练。但是随着现在云计算,大数据,移动互联网,人工智能,5g的蓬勃兴起,尤其是计算机视觉技术应用中对于图像处理能力的高要求,对于处理器的算力要求越来越高,因此这两者存在的矛盾将不可避免且亟待解决。与此同时,随着图像处理算法的日益复杂,有的负责算法(程序),同时具有通用计算、并行计算、卷积计算其中的一种或者是几种,但是现世面上的并没有一种通用的硬件架构,可以在不需要增加硬件架构规模的基础上同时加速上述描述的复杂算法。随着人工智能、智能识别、超级计算等算法的日益复杂,对于具备同时加速通用计算、并行计算、卷积计算的要求也越来越紧迫。

神经网络和深度学习目前为处理图像识别的许多问题提供了最佳解决方案,而基于多任务卷积神经网络(mtcnn)的图像检测技术可以解决传统算法对环境要求高、人脸要求高、检测耗时高的弊端,但依然需要硬件提供较高的算力和内存带宽,现有技术中,基于fpga平台和ris-v处理器的硬件可以实现小型化模块和一定程度的加速效果,但针对图像卷积计算过程,还是存在多任务处理速度慢、内存带宽占用效率低、外部数据兼容性较差、卷积运算速度慢等问题。



技术实现要素:

本发明针对上述技术问题,提出了一种用于执行多任务卷积神经网络预测的装置和方法,通过硬件架构优化实现对多任务卷积神经网络预测的加速,将多任务卷积神经网络中的各级任务,优化处理器对卷积核计算、池化运算等复杂计算的处理过程,在小型化、高兼容性和高集成性硬件的基础上,缓解处理器的整体算力要求,并可以有效地利用内存的最大带宽,从而使得多任务卷积神经网络的训练过程更加顺畅且高速。

为了实现本发明的目的,本发明采用的技术方案是:

一种用于执行多任务卷积神经网络预测的装置和方法,其特征在于,所述装置包括:控制接口、内存单元、总线复用器和加速器单元,所述控制接口,用于接收指令输入,并发送至加速器单元;所述内存单元,用于存储数据信息、卷积层参数和激活函数;所述总线复用器,用于连接各单元,传输数据和指令信息;所加速器单元含数据缓存器、卷积核缓存器、卷积核控制器、卷积调度器和若干组乘加阵列,所述加速器单元用于分配处理多任务卷积神经网络执行过程中的各类任务,通过所述总线复用器访问所述内存单元中存储的数据和指令信息,所述卷积调度器通过所述总线复用器调取并分配卷积控制指令,所述数据缓存器根据卷积控制指令驱动进行数据预取和存储,所述卷积核缓存器根据卷积控制指令驱动进行卷积核预取和存储,所述卷积核控制器根据卷积控制指令驱动分别访问并读取所述数据缓存器和卷积核缓存器中相应数据信息,并将所述数据信息发送至所述乘加阵列完成卷积核运算,完成运算后通过量化回写经总线复用器将结果输入内存单元相应地址。

本发明基于多任务卷积神经网络预测过程中的复杂计算特性,将内存访问指令和卷积运算指令独立执行,可以实现对内存访问带宽的最优化利用,可有效地减少多任务卷积神经网络预测过程的耗时。简化了多任务卷积神经网络预测的处理流程,并可以根据卷积核计算量,有目的性的配置乘加阵列的数量,有效提高了现有神经网络预测的执行效率和适用性。

本发明提出一种用于执行多任务卷积神经网络预测的装置和方法。发明所述装置和方法对于提高多任务卷积神经网络预测的效率具有重要的意义,其有益效果具体体现在以下几个方面:

1、本发明的内存和运算指令分配,能实现缓存器对数据的逐段预取和卷积运算的同时执行,从而简化了传统方法中需要先将图像数据全部读取后,再完成卷积计算的耗时处理过程。

2、本发明对内存单元中的数据预先进行地址段化处理,便于缓存器有序地持续性访问、读取和缓存数据,可实现内存带宽负荷的有效利用,进而减少了内存带宽集中占用和内存带宽空闲。同时,该方法又能实时写入卷积结果,最大限度的利用内存带宽复,从而减少训练耗时。

3、本发明的乘加阵列可根据具体的计算规模,更合理的进行配置数量,可以在保证计算能力的基础上,最大限度的节省装置内部的空间和硬件材料,减少成本的同时,进一步提升了细节上的能耗优化。

4、本发明的装置和方法还具有较强的集成性,可以广泛地应用于移动设备、智能终端、各类人工智能装置等。

得益于上述优点,本发明可以对用于执行多任务卷积神经网络的预测进行加速,不仅耗时短,且可大程度的降低人工智能设备的硬件成本,可有效提高了现有神经网络预测的执行效率和适用性,可以推广到各类多任务神经网络预测或基于多任务神经网络的图像识别系统中。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种用于执行多任务卷积神经网络预测的装置的结构示意图;

图2为本发明实施例提供的一种用于执行多任务卷积神经网络预测的装置的硬件架构示意图;

图3为本发明实施例提供的一种用于执行多任务卷积神经网络预测的方法流程图;

图4为本发明实施例提供的内存数据段化存储模式示意图;

图5为本发明实施例提供的一种组合加速单元的硬件架构示意图。

具体实施方式

以下描述了本发明的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种替代形式。附图不一定按比例绘制;某些功能可能被夸大或最小化以显示特定部件的细节。因此,本文公开的具体结构和功能细节不应被解释为限制性的,而仅仅是作为用于教导本领域技术人员以各种方式使用本发明的代表性基础。如本领域普通技术人员将理解的,参考任何一个附图所示出和描述的各种特征可以与一个或多个其他附图中所示的特征组合以产生没有明确示出或描述的实施例。所示特征的组合为典型应用提供了代表性实施例。然而,与本发明的教导相一致的特征的各种组合和修改对于某些特定应用或实施方式可能是期望的。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

基于上述目的,本发明的实施例提出了一种用于执行多任务卷积神经网络预测的装置,图1为本发明实时例提供的一种用于执行多任务卷积神经网络预测的装置结构示意图,如图1所示,所述装置包括:控制接口、内存单元、总线复用器和加速器单元。

其中,所述控制接口,用于指令输入,并发送至并存储于所述存储单元对应数据地址。

其中,所述内存单元,用于存储数据信息、卷积层参数和激活函数。

具体的,所述内存单元为双倍速率同步动态随机存储器(doubledatarate,ddr),内存单元采用段化存储模式,如图4所示,待测图像数据为m*n的特征矩阵,每间隔特定长度的步长进行一次分段,使待测图像数据存在若干个段化标记。

其中,所述总线复用器,用于连接各单元,传输数据和指令信息。

其中,所述加速器单元用于执行训练中的卷积运算加速,包括:数据缓存器、卷积核缓存器、卷积核控制器、卷积调度器和若干组乘加阵列。

具体的,所述卷积调度器通过所述总线复用器调取并分配卷积控制指令,包括:数据预取指令、卷积核预取指令和卷积计算指令。所述数据预取指令驱动数据缓存器通过总线复用器访问内存单元,对卷积计算所需数据进行预取缓存;所述卷积核预取指令驱动卷积核缓存器通过总线复用器访问内存单元,对卷积核进行预取缓存;所述卷积计算指令包括但不限于:卷积层计算(卷积层)、池化计算(池化层)、激活函数(激励层)等。

具体的,所述数据缓存器根据卷积控制指令驱动进行数据预取和存储。

具体的,所述所述卷积核缓存器根据卷积控制指令驱动进行卷积核预取和存储。

具体的,所述乘加阵列根据卷积控制指令驱动完成卷积核运算,完成运算后通过量化回写经总线复用器将结果输入内存单元相应地址。

在一些实施例中,所述一种用于执行多任务卷积神经网络预测的装置为fpga。图2为本发明实施例提供的一种用于执行多任务卷积神经网络预测的装置的硬件架构示意图,如图2所示,内存单元从属于fpga芯片。开发者根据fpga芯片资源特点,设置控制接口,在fpga芯片内部,形成不同的硬件架构。基于fpga平台和risc-v处理器的高度可配硬件加速架构,依托不同级别的risc-v处理器核,形成具有通用级(性能较高、面积较大的risc-v)、并行级(性能较低、单核面积较小的risc-v)、专用级(卷积计算)三级加速结构。可根据不同的应用场景,灵活配置加速器单元,形成具备支持执行多任务卷积神经网络预测的硬件架构,避免了之前不同的应用场景要选择不同硬件平台的弊端,这也是fpga的灵活性的表现。

图3为本发明实施例提供的一种用于执行多任务卷积神经网络预测的方法流程图,如图所示,该过程包括:将用于执行多任务卷积神经网络预测的数据信息、卷积层参数、激活函数及阈值预存储于所述内存单元,用于执行多任务卷积神经网络预测的一系列指令通过所述控制接口输入到所述卷积调用器,所述卷积调用器发送数据预取指令,进行数据和卷积核预取,并分别存储于数据缓存器和卷积核缓存器中,所述卷积控制器通过所述卷积调度器发出的卷积控制指令调用所述两缓存器中的卷积数据,并通过所述乘加阵列执行数据计算,通过量化回写存储。

具体的,预先将图像数据、卷积核、激活函数及阈值储存于内存单元(ddr),当卷积控制指令经控制接口输入时,卷积调度器经由总线复用器获取卷积控制指令,并将卷积控制指令分解为数据预取指令和卷积计算指令。

其中,数据预取指令驱动数据缓存器和卷积核缓存器进行图像数据预取和卷积核预取,数据缓存器通过总线复用器访问内存单元并读取待卷积特征图,卷积核缓存器通过总线复用器访问内存单元并读取卷积核信息。

由于内存单元预先采用段化存储模式,每当缓存器预取数据到达段尾时,预取数据中断,此时中断信号激活卷积控制器执行卷积计算指令,卷积计算指令驱动乘加阵列组开始执行卷积乘加运算,同时缓存器继续预取下一段数据。当乘加阵列组完成运算后,通过总线复用器将卷积结果回写至内存单元供下阶段网络层使用。在本发明实施例中计算每个卷积核的卷积结果,确定目标卷积结果是现有技术,不再进行赘述。

需要说明的是,开发者可根据训练任务的具体需求,调整内存单元中每段数据的长度,以得到最佳的加速训练效果,例如:若当装置无法装载足够数量的乘加阵列时,可通过减少内存单元数据段化长度的方式,降低过程中的计算量,同时又可以最大限度地利用内存单元的访问带宽;若当装置可装载足够量的乘加阵列时,可根据内存单元的最大访问带宽设定内存单元数据段化长度,并根据此段化长度需要的预取耗时,在相同耗时内可完成相应卷积运算的规模的乘加阵列组即为优化配置,同样可做到条件内对硬件材料的节省和装置体积优化。

图5为本发明实施例提供的一种组合加速单元的硬件架构示意图,如图所示:可以通过以并联的形式同时装载多个加速器单元,以增强本发明所述装置在处理多任务神经网络预测过程中的加速效果,同时可通过usb/pcie等外部接口实现多数据源输入。

具体的,在多任务神经网络的预测过程中,主要分为三个部分:人脸二元分类、边界框回归和标记定位。

在现有技术中,常用的方法是先通过全卷机神经网络(proposalnetwork,p-net)获得了人脸区域的候选窗口和边界框的回归向量,并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制法(non-maximumsuppression,nms)来合并高度重合的候选框。为了更好的抑制false-positive的作用,再通过比p-net多一层的优化网络(refinenetwork,r-net)去掉false-positive区域。最后通过比r-net更多一层的输出网络(outputnetwork,o-net)输出精细结果及经区域监督的标记定位。将三个网络串联即完成了多任务神经网络的训练。

基于多任务神经网络中,r-net比p-net多一层,o-net比r-net多一层,这一逐渐增加层数的特点,本发明实施例提供的一种组合加速单元的硬件架构可以实现更为明显的加速效果:当执行p-net时,使用第一、第二、第三加速单元完成计算,当执行r-net时,使用第一、第二、第三、第四加速单元完成计算,当执行o-net时,使用第一、第二、第三、第四、第五加速单元完成计算。相比现有技术,通过本发明可以显著提升内存带宽利用率,减少计算耗时,从而提升预测效率,同时可以极大限度优化装置材料成本。

所述执行所述一种用于执行多任务卷积神经网络预测的装置及方法的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

此外,根据本发明实施例的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例中的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

此外,应该理解的是,本文所述的计算机可读存储介质(例如,存储器)也可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以通过多种形式体现,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

还需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的内存单元可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

此外,典型地,本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如移动手机、个人数字助理(pda)、平板电脑(pad)、智能穿戴设备等,也可以是大型终端设备,如服务器等,因此本发明实施例的保护范围不应限定为某种特定类型的装置、设备。本发明实施例所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在asic中。asic可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。

此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。

上述内容的组合也应当包括在计算机可读介质的范围内。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

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