CN112488908B - 一种计算装置、计算方法、存储介质及终端 - Google Patents

一种计算装置、计算方法、存储介质及终端 Download PDF

Info

Publication number
CN112488908B
CN112488908B CN202011505009.XA CN202011505009A CN112488908B CN 112488908 B CN112488908 B CN 112488908B CN 202011505009 A CN202011505009 A CN 202011505009A CN 112488908 B CN112488908 B CN 112488908B
Authority
CN
China
Prior art keywords
data
module
unit
calculation
multiply
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011505009.XA
Other languages
English (en)
Other versions
CN112488908A (zh
Inventor
曹英杰
尹仁超
于欣
蒋寿美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Time Intelligence Technology Shanghai Co ltd
Original Assignee
Time Intelligence Technology Shanghai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Time Intelligence Technology Shanghai Co ltd filed Critical Time Intelligence Technology Shanghai Co ltd
Priority to CN202011505009.XA priority Critical patent/CN112488908B/zh
Publication of CN112488908A publication Critical patent/CN112488908A/zh
Application granted granted Critical
Publication of CN112488908B publication Critical patent/CN112488908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Abstract

本发明提供了一种计算装置、计算方法、存储介质及终端,计算装置包括本地存储单元;存储控制单元,存储控制单元与本地存储单元通信连接;乘累加计算单元,乘累加计算单元用于执行各类卷积计算和累加计算;像素计算引擎单元,像素计算引擎单元用于执行池化和滤波操作;任务控制单元,任务控制单元用于配置计算装置的计算模式和输入输出地址;其中,任务控制单元均与存储控制单元、乘累加计算单元和像素计算引擎单元通信连接以输出控制信息,乘累加计算单元和像素计算引擎单元均与存储控制单元通信连接以实现信息传输,本发明不仅降低了视觉处理成本,而且增大了计算的灵活性,同时有效节省了数据搬运,降低了系统功耗。

Description

一种计算装置、计算方法、存储介质及终端
技术领域
本发明涉及图像处理技术领域,尤其涉及一种计算装置、计算方法、存储介质及终端。
背景技术
深度学习算法近年来被广泛应用于计算机器视觉类的人工智能应用中,特别是卷积神经网络。相比较于传统计算机视觉算法,深度学习在如图像分类、物体识别、语音分析等应用领域能够达到更高的准确率,且相较于需依靠人工设计检测特征的传统计算机视觉算法,深度学习算法模型的训练更容易被大规模复制。但由于深度学习算法计算复杂度较高,传统处理器如CPU,GPU等无法高效执行,故各类深度神经网络硬件加速器应运而生。
然而在实际计算机视觉应用当中,深度学习算法一般只能较好的完成整个应用当中的检测部 分,比如在车牌检测中,识别车牌中的车牌号。而从摄像头传入的图像数据中,去除图像噪声,对图像质量进行处理、增强甚至找到车牌的位置等操作,一般还是由传统计算机视觉算法来完成。或者说,传统计算机视觉算法在图像去噪、增强、以及部分检测等方面仍有其不可替代性。
为了完成计算机视觉智能处理的应用需求,当下的主流计算机视觉芯片很多都采用DSP运行传统计算机视觉算法,NPU运行深度学习算法。如酷芯微电子的AR9201芯片,搭载了一颗CEVA的通用DSP处理器,以及一颗NPU。由于通用DSP处理器的性能、成本、功耗针对某一类特定应用,一般无法达到最佳,也有一些方案采用了专用图像处理器加NPU的解决方案,如海思的Hi3516CV500(及其他一些型号)使用了专用的IVE(Intelligent VideoEngine)处理器来处理传统计算机视觉算法,以及专用NPU(NNIE)来处理深度神经网络算法。
但是目前的方案中同时使用两种不同运算单元时,都存在较大的数据搬运,导致功耗较大。
因此,有必要提供一种新型的计算装置、计算方法、存储介质及终端以解决现有技术中存在的上述问题。
发明内容
本发明的目的在于提供一种计算装置、计算方法、存储介质及终端,能够有效降低系统工作时的功耗。
为实现上述目的,本发明的所述一种计算装置,包括:
本地存储单元;
存储控制单元,所述存储控制单元与所述本地存储单元通信连接并用于控制所述本地存储单元的读写访问;
乘累加计算单元,所述乘累加计算单元用于执行各类卷积计算和累加计算;
像素计算引擎单元,所述像素计算引擎单元用于执行池化和滤波操作;
任务控制单元,所述任务控制单元用于配置所述计算装置的计算模式和输入输出地址;
其中,所述任务控制单元均与所述存储控制单元、所述乘累加计算单元和所述像素计算引擎单元通信连接以输出控制信息,所述乘累加计算单元和像素计算引擎单元均与所述存储控制单元通信连接以实现信息传输。
本发明的有益效果在于:通过将乘累加计算单元和像素计算引擎单元集成在一起,不仅可以使得整个计算装置能够被传统计算机视觉算法和神经网络算法这两种算法复用,使得计算机视觉处理成本大幅降低,而且乘累加计算单元和像素计算引擎单元这两个计算通路都可以被单独调用,大幅增加了计算过程的灵活性,同时通过分时复用的方式使得输入输出数据能够保存在本地存储单元中,有效减少了数据搬运,提升了性能并降低了系统功耗。
进一步的,所述存储控制单元包括访存控制模块和存储接口模块,所述访存控制模块用于生成读存储和写存储的访问控制,所述存储接口模块用于连接所述访存控制模块与本地存储单元,所述存储接口模块与所述本地存储单元通信连接,所述本地存储单元用于接收输入的参数数据并存储。其有益效果在于:通过访存控制模块实现存储接口模块与本地存储单元之间的连接,以实现输入输出数据的传输过程,不仅便于控制,而且通过分时复用的方式能够将输入输出数据保存在本地存储单元之中,有效减少了数据搬运,提升了性能并降低了功耗。
进一步的,所述乘累加计算单元包括乘加阵列模块和累加模块,所述乘加阵列模块用于执行卷积计算,所述累加模块用于执行累加计算,所述访存控制模块的输出端分别与所述乘加阵列模块、所述累加模块和所述像素计算引擎单元通信连接以输出存储的参数数据,所述乘加阵列模块的输出端与所述累加模块的输入端通信连接,所述累加模块的输出端和所述像素引计算擎单元的输出端均与所述访存控制模块的输入端通信连接以输出最终计算结果。其有益效果在于:乘累加计算单元通过乘加阵列模块执行乘累加运算,而通过累加模块执行深度方向累加和后处理过程,有效提高计算效率。
进一步的,所述最终计算结果包括所述乘加阵列模块和所述累加模块计算得到的乘累加计算结果、所述像素计算引擎单元计算后得到的逐点计算结果。
进一步的,所述访存控制模块包括多次数据读取部、单次数据读取部、偏置数据读取部和数据写回部,所述多次数据读取部用于获取权重数据并与所述乘加阵列模块和所述像素计算引擎单元通信连接,所述单次数据读取部用于获取特征图数据并分别与所述乘加阵列模块、所述像素计算引擎单元通信连接,所述偏置数据读取部用于获取偏置数据并与所述累加模块通信连接,所述数据写回部分别与累加模块的输出端和像素计算引擎单元的输出端通信连接,并将所述最终计算结果输出至所述存储接口模块。其有益效果在于:分别通过多次数据读取器获取权重数据,通过单次数据读取器获取特征图数据,通过偏置数据读取器获取偏置数据,通过数据写回部将最终计算结果传输到存储接口模块,在整个计算装置分别通过乘累加计算单元和像素计算引擎单元进行计算的时候,分别通过多次数据读取部、单次数据读取部、偏置数据读取部以获取不同的数据作为输入,同时通过数据写回部将最终计算结果输出以便于在本地存储单元中进行存储。
进一步的,所述多次数据读取部、所述单次数据读取部和所述偏置数据读取部均包括第一数据请求发生器、第一数据地址发生器和数据缓存寄存器,所述第一数据请求发生器、所述第一数据地址发生器和所述数据缓存寄存器均与所述任务控制单元通信连接以接收所述控制信息,所述第一数据地址发生器与所述第一数据请求发生器通信连接,所述第一数据请求发生器的输出端与所述存储接口模块的输入端通信连接,所述存储接口模块的输出端与所述数据缓存寄存器通信连接,所述数据缓存寄存器用于暂存所述参数数据,所述多次数据读取部内的所述数据缓存寄存器与所述乘加阵列模块通信连接,所述单次数据读取部内的所述数据缓存寄存器分别与所述乘加阵列模块、所述像素计算引擎单元通信连接,所述偏置数据读取部内的所述数据缓存寄存器与所述累加模块通信连接。其有益效果在于:在多次数据读取部、所述单次数据读取部和所述偏置数据读取部获取输入数据的时候,通过第一数据地址发生器确定需要输入的数据,同时第一数据请求发生器产生对应的数据请求,使得存储接口模块将本地存储单元中存储的输入数据传输到数据缓存寄存器之中,并分别传输到乘加阵列模块、累加模块和像素计算引擎单元中进行计算处理,使得整个数据传输过程便于控制,提高了数据的传输效率。
进一步的,所述数据写回部包括第二数据请求发生器、第二数据地址发生器和数据缓存器,所述第二数据请求发生器、所述第二数据地址发生器和所述数据缓存器均与所述任务控制单元通信连接以接收所述控制信息,所述第二数据地址发生器的输出端与所述第二数据请求发生器通信连接,所述第二数据请求发生器的输出端与所述存储接口模块通信连接以发送数据存储请求,所述数据缓存器的输入端分别与所述累加模块、所述像素计算引擎单元通信连接以接收计算处理后得到的所述最终计算结果,所述数据缓存器的输出端与所述存储接口模块通信连接以传输所述最终计算结果至所述本地存储单元。其有益效果在于:通过数据写回部将累加模块和像素计算引擎单元的最终计算结果稳定输出,并通过存储接口模块存储到本地存储单元之中,实现输出结果的快速存储,减少了输出结果的数据搬运过程。
进一步的,所述乘加阵列模块包括至少一个用于执行乘累加运算的乘累加处理部,且所述乘累加处理部包括乘法运算器和累加运算器。其有益效果在于:通过乘累加处理部能够快速执行各类卷积处理,同时每一个乘累加处理部分别通过乘法运算器和累加运算器分别完成乘法运算和加法运算,提高整个乘加阵列模块的运算效率。
进一步的,所述累加模块包括偏置加法部、数据截位部和激活部中的至少一个。其有益效果在于:根据输入的参数数据,选择累加模块中的不同功能不以执行不同的操作处理。
进一步的,所述任务控制单元包括相互通信连接的指令发生模块和寄存器文件模块,所述任务控制单元通过编写寄存器文件模块的值对计算模式、输入输出地址进行配置,所述指令发生模块根据配置的所述计算模式生成控制微指令和程序计数器,并将所述控制微指令和程序计数器译码成控制信号分别传输至所述存储控制单元和所述乘累加计算单元。其有益效果在于:通过任务控制单元的指令发生模块译码的控制信号分别实现对存储控制单元、所述乘累加计算单元和所述像素计算引擎单元的控制,便于控制整个计算装置。
进一步的,所述像素计算引擎单元包括技术控制逻辑模块、像素运算模块、中间结果缓存模块和截位模块,所述控制逻辑模块分别与所述像素运算模块、所述中间结果缓存模块和所述截位模块通信连接,所述像素运算模块与所述中间结果缓存模块之间通信连接,所述中间结果缓存模块的输出端与所述截位模块的输入端通信连接,所述截位模块的输出端与所述数据写回部通信连接。
本发明进一步提供了一种计算方法,包括如下步骤:
S1、任务控制单元配置计算装置的计算模式和输入输出地址,输入参数数据至本地存储单元,并根据所述计算模式选择乘累加计算单元或像素计算引擎单元作为运算器件;
S2、存储控制单元访问所述本地存储单元获取参数数据,并通知所述运算器件输入已经准备就绪;
S3、选择的所述运算器件从所述存储控制单元获取所述参数数据,并通过所述运算器件执行计算处理以获得最终计算结果;
S4、所述运算器件将所述最终计算结果输出至所述存储控制单元,所述存储控制单元将所述最终计算结果输出至所述本地存储单元。
本方法的有益效果在于:通过配置不同的计算模式以选择不同的运算器件对数据进行计算处理,通过将乘累加计算单元和像素计算引擎单元集成为一个公共通路,并根据不同的情况进行选择以单独调用,大幅提高了计算的灵活性,同时将最终的计算结果通过存储控制单元传输到本地存储单元之中,有效节省了算法中的数据搬运,提高了整体的运行速度,降低了运行功耗。
进一步的,所述计算模式包括神经网络卷积、深度卷积、图像卷积、池化和图像滤波中的任意一种。
进一步的,在所述步骤S1中,当所述任务控制单元配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式时,选择所述乘累加计算单元作为所述运算器件。
进一步的,在所述步骤S1中,当所述任务控制单元配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式,选择所述乘累加计算单元作为所述运算器件,所述参数数据包括权重数据、特征图数据和偏置数据,输入权重数据、特征图数据和偏置数据至本地存储单元,后续的处理过程包括:
Sa1、访存控制模块生成访问请求并通过存储接口模块访问本地存储单元以获得所述权重数据、特征图数据和偏置数据,并将所述参数数据存储在访存控制模块中的数据缓存器中,并通知所述乘累加计算单元输入已经准备就绪;
Sa2、通过乘加阵列模块获取所述权重数据和所述特征图数据进行乘加运算得到乘加结果,所述乘加阵列模块将所述乘累加结果输出至累加模块并根据所述计算模式进行二次处理以得到所述最终计算结果;
Sa3、所述累加模块将所述最终计算结果输出至访存控制模块中的数据写回部,所述数据写回部缓存所述最终计算结果,所述数据写回部向存储接口模块发起写数据请求,使得所述最终计算结果输出到所述本地存储单元中存储。其有益效果在于:在配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式时,通过乘加阵列模块和累加模块分别对输入的权重数据、特征图数据和偏置数据进行处理,以得到运算后的最终计算结果并存储在本地存储单元之中,从而减少了数据搬运,能够实现数据的快速计算处理。
进一步的,所述步骤Sa2的过程包括:
确定所述计算模式的类型,当所述计算模式为神经网络卷积,则对所述乘加结果进行一次深度累加,再对所述乘加结果进行二次处理,以得到所述最终计算结果;
当所述计算模式为深度卷积或者图像卷积,则跳过所述深度累加直接进行二次处理,以得到所述最终计算结果。其有益效果在于:根据计算模式的类型以确定是否进行深度累加过程,并在后续进行二次处理过程,有效提高了运算效率。
进一步的,所述二次处理包括偏置加法处理、数据移位处理、数据截位处理和激活处理中的至少一种。
进一步的,在所述步骤S1中,当所述任务控制单元配置池化或者图像滤波作为所述计算模式时,选择所述像素计算引擎单元作为所述运算器件,所述参数数据包括特征图数据和图像数据,输入所述特征图数据和所述图像数据至本地存储单元,后续的处理过程包括:
Sb1、访存控制模块生成读数据的请求,并通过存储接口模块访问本地存储单元以获得所述待处理数据,并将所述特征图数据在访存控制模块的数据缓存器中进行缓存,并通知像素计算引擎单元输入已经准备就绪;
Sb2、所述访存控制模块将所述特征图数据传输至所述像素计算引擎单元,通过所述像素计算引擎单元对所述待处理数据进行池化或者图像滤波运算以得到最终计算结果,并将所述最终计算结果输出至所述访存控制模块;
Sb3、所述访存控制模块将所述最终计算结果缓存在内部,并向所述存储接口模块发起写数据请求,并将缓存在所述访存控制模块中的所述最终计算结果输出至所述本地存储单元。其有益效果在于:在确定计算模式为池化或者图像滤波时,选择像素计算引擎单元作为运算器件进行运算,最终计算结果存储在本地存储单元之中,在实现高效计算的同时,有效减少了数据搬运。
本发明提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
本发明还提供了一种终端,包括处理器和存储器;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。
附图说明
图1为本发明实施例的计算装置组成结构示意图;
图2为本发明实施例的访存控制模块的组成结构示意图;
图3为本发明实施例的累加模块工作原理示意图;
图4为本发明实施例的像素计算引擎单元工作原理示意图;
图5为本发明实施例的任务控制单元工作原理示意图;
图6为本发明实施例的数据写回部的工作原理示意图;
图7为本发明实施例的多次数据读取部或单次数据读取部或偏置数据读取部的组成结构示意图;
图8为本发明实施例的计算方法流程示意图;
图9为本发明实施例的计算方法在选择神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式时的流程示意图;
图10为本发明实施例的计算方法在选择池化或者图像滤波作为所述计算模式时的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
针对现有技术存在的问题,本发明的实施例提供了一种计算装置,如图1所示,包括:
本地存储单元1,
存储控制单元2,所述存储控制单元2与所述本地存储单元1通信连接并用于控制所述本地存储单元1的读写访问;
乘累加计算单元3,所述乘累加计算单元3用于执行各类卷积计算和累加计算;
像素计算引擎单元4,所述像素计算引擎单元4用于执行池化和滤波操作;
任务控制单元5,所述任务控制单元5用于配置所述计算装置的计算模式和输入输出地址;
其中,所述任务控制单元5均与所述存储控制单元2、所述乘累加计算单元3和所述像素计算引擎单元4通信连接以输出控制信息,所述乘累加计算单元3和像素计算引擎单元4均与所述存储控制单元2通信连接以实现信息传输。
在上述计算装置中,待处理的参数数据输入并存储在本地存储单元1之中,并通过存储控制单元2的连接作用,通过任务控制单元5配置计算模式和输入输出地址之后,将不同的待处理的参数数据传输到乘累加计算单元3和像素计算引擎单元4分别进行不同的运算过程,最终计算结果通过存储控制单元2传输到本地存储单元1之中,将输入输出数据都存储在本地存储单元1之中,通过分时复用的方式,使得整个计算过程中的输入输出数据均可以保存在本地存储单元1之中,有效减少了数据搬运,提升了性能,降低了系统功耗;另一方面,乘累加计算单元3和像素计算引擎单元4这两种不同的计算通路集成在一起,分别调用以执行不同的计算过程,不仅降低了计算成本,而且使得整个计算过程灵活性有效提高。
在一些实施例中,所述存储控制单元2包括访存控制模块21和存储接口模块22,所述访存控制模块21用于生成读存储和写存储的访问控制,所述存储接口模块22用于连接所述访存控制模块21与本地存储单元1的访问,所述访存控制模块21与分别与所述乘累加计算单元3、像素计算引擎单元4通信连接,所述访存控制模块21与所述存储接口模块22通信连接,所述存储接口模块与22所述本地存储单元1通信连接,所述本地存储单元1用于外部输入并存储参数数据。
在存储控制单元2中,由于本地存储单元1中存储了输入的待处理的参数数据,当需要进行运算的时候,任务控制单元5产生控制信息以分别控制各个单元,存储控制单元2接收到控制信息之后,访存控制模块21生成读存储的访问控制信号并传输到存储接口模块22,存储接口模块22将本地存储单元1与访存控制模块21之间连接起来,使得访存控制模块21能够读取本地存储单元1中存储的输入数据,即待处理的参数数据。
在一些实施例中,所述乘累加计算单元3包括乘加阵列模块31和累加模块32,所述乘加阵列模块31用于执行卷积计算,所述累加模块32用于执行累加计算,所述访存控制模块21的输出端分别与所述乘加阵列模块31、所述累加模块32和所述像素计算引擎单元4通信连接以输出存储的参数数据,所述乘加阵列模块31的输出端与所述累加模块32的输入端通信连接,所述累加模块32的输出端和所述像素引计算擎单元4的输出端均与所述访存控制模块21的输入端通信连接以输出最终计算结果。
在本实施例中,乘累加计算单元3通过独立的乘加阵列模块31和累加模块32分别执行卷积计算、深度累加计算,而像素计算引擎单元4则对参数数据进行池化或者图像滤波处理,而计算得到的最终计算结果则通过访存控制模块21输出到本地存储单元1之中进行存储。
进一步的,所述最终计算结果包括所述乘加阵列模块31和所述累加模块32计算得到的乘累加计算结果、所述像素计算引擎单元4计算后得到的逐点计算结果。
在一些实施例中,如图2所示,所述访存控制模块21包括多次数据读取部211(Multi-use Data Loader, 简称为MDL)、单次数据读取部212(Single-use Data Loader,简称为SDL)、偏置数据读取部213(Bias Data Loader,简称为BDL)和数据写回部214(DataWriter,简称为DW),所述多次数据读取部211用于获取权重数据并与所述乘加阵列模块31和所述像素计算引擎单元4通信连接,所述单次数据读取部212用于获取特征图数据并分别与所述乘加阵列模块31、所述像素计算引擎单元4通信连接,所述偏置数据读取部213用于获取偏置数据并与所述累加模块32通信连接,所述数据写回部214分别与累加模块32的输出端和像素计算引擎单元4的输出端通信连接,并将所述最终计算结果输出至所述存储接口模块22。
通过多次数据读取部211、单次数据读取部212、偏置数据读取部213和数据写回部214分别对不同的参数数据进行传输,使得乘加阵列模块31、累加模块32和像素计算引擎单元4分别可以对不同的数据进行运算处理,有效提高了数据传输效率和运算效率。
在又一些实施例中,多次数据读取部211、所述单次数据读取部212和所述偏置数据读取部213采用相同的结构,如图7所示,均包括第一数据请求发生器215、第一数据地址发生器216和数据缓存寄存器217,所述第一数据请求发生器215、所述第一数据地址发生器216和所述数据缓存寄存器217均与所述任务控制单元5通信连接以接收所述控制信息,所述第一数据地址发生器216与所述第一数据请求发生器215通信连接,所述第一数据请求发生器215的输出端与所述存储接口模块22的输入端通信连接,所述存储接口模块22的输出端与所述数据缓存寄存器217通信连接,所述数据缓存寄存器217用于暂存所述参数数据。
当任务控制单元5的控制信息传输到访存控制模块21之后,访存控制模块21内部的多次数据读取部211、所述单次数据读取部212和所述偏置数据读取部213均接收到控制信息,之后第一数据地址发生器216根据控制信息生成输入数据地址,输入数据地址传输到第一数据请求发生器215之后,第一数据请求发生器215根据数据地址向所述存储接口模块22发出数据请求,使得数据接口模块22将输入数据地址对应的数据传输到数据缓存寄存器217之中,从而实现数据的准确传输。
在进一步的实施例中,所述多次数据读取部211内的所述数据缓存寄存器217与所述乘加阵列模块31通信连接,使得存储接口模块22将权重数据传输到乘加阵列模块31;所述单次数据读取部212内的所述数据缓存寄存器217分别与所述乘加阵列模块31、所述像素计算引擎单元4通信连接,使得存储接口模块22将特征图数据传输到乘加阵列模块31;所述偏置数据读取部213内的所述数据缓存寄存器217与所述累加模块32通信连接,使得存储接口模块22将偏置数据传输给累加模块32,从而使得乘加阵列模块31、累加模块32和像素计算引擎单元4均能够准确获得需要的数据,提高运算效率。
进一步的,如图4所示,所述像素计算引擎单元4包括技术控制逻辑模块41、像素运算模块42、中间结果缓存模块43和截位模块44,所述控制逻辑模块41分别与所述像素运算模块42、所述中间结果缓存模块43和所述截位模块44通信连接,所述像素运算模块42与所述中间结果缓存模块43之间通信连接,所述中间结果缓存模块43的输出端与所述截位模块44的输入端通信连接,所述截位模块44的输出端与所述数据写回部214通信连接。
在像素计算引擎单元4对输入的数据进行计算的时候,从单次数据读取部212中传输的参数数据进入到像素运算模块42之中,在控制逻辑模块41的控制作用下,像素运算模块42、中间结果缓存模块43和截位模块44分别完成各自的运算过程,像素运算模块42对参数是数据进行运算之后得到中间结果并传输到中间结果缓存模块43之中存储,之后随着参数数据再次输入到像素运算模块42之中,中间结果缓存模块43中存储的中间结果传输到像素计算模块42之中配合输入的参数数据进行再次计算,直至所有的参数数据都计算完成并输出结果至中间结果缓存模块43,之后通过截位模块44对计算所得结果进行截位处理以得到最终计算结果,输出到数据写回部214之中进行缓存,通过存储接口模块22访问本地存储单元1,将最终计算结果输出并存储到本地存储单元1之中。
在一些实施例中,如图6所示,所述数据写回部214包括第二数据请求发生器2141、第二数据地址发生器2142和数据缓存器2143,所述第二数据请求发生器2141、所述第二数据地址发生器2142和所述数据缓存器2143均与所述任务控制单元5通信连接以接收所述控制信息,所述第二数据地址发生器2142的输出端与所述第二数据请求发生器2141通信连接,所述第二数据请求发生器2141的输出端与所述存储接口模块22通信连接以发送数据存储请求,所述数据缓存器2143的输入端分别与所述累加模块32、所述像素计算引擎单元4通信连接以接收计算处理后得到的所述最终计算结果,所述数据缓存器2143的输出端与所述存储接口模块22通信连接以传输所述最终计算结果至所述本地存储单元1。
优选的是,所述数据缓存器2143选择为数据缓存队列。
而在计算装置中的乘累加计算单元3和像素计算引擎单元4都完成计算之后,对应的计算结果通过数据写回部214传输到存储接口模块22,并存储在本地存储单元1之中。
具体的,来自任务控制单元5的控制信息分别传输到第二数据请求发生器2141、第二数据地址发生器2142和数据缓存器2143之中以进行控制,第二数据地址发生器2142根据最终计算结果确定输出数据地址,之后第二数据请求发生器2141根据输出数据地址产生输出数据请求至存储接口模块22,使得缓存在数据缓存器2143中的最终计算结果通过存储接口模块22的存储接口传输到本地存储单元1之中,实现输出数据的快速传输与存储。
需要说明的是,在本实施例中,所述任务控制单元5的控制信息通过内部的寄存器文件模块RF配置生成。
在一些实施例中,所述乘加阵列模块31包括至少一个用于执行乘累加运算的乘累加处理部311,且所述乘累加处理部311包括乘法运算器3111和累加运算器3112,在乘加阵列模块31执行运算的过程中,通过至少一个乘累加处理部311来执行乘累加运算,而每一个乘累加处理部311通过乘法运算器3111和累加运算器3112分别执行乘法运算和加法运算,以两级流水线的方式分别独立完成两个独立运算过程,有效提高了计算效率。
进一步的,在本实施例中,所述乘累加处理部311的数量为8个或16个或32个,每一个乘累加处理部311均能够处理8个8位输入或者4个16位输入的乘累加运算。
在一些实施例中,如图3所示,所述累加模块32包括深度累加部321、偏置加法部322、数据截位部323和激活部324中的至少一个,通过深度累加部321完成深度方向的累加处理,而偏置加法部322对数据进行偏置加处理,通过数据移位部323进行数据移位,而数据截位部323对数据进行数据截位,激活部324通过激活函数以进行激活处理。
在一些实施例中,如图5所示,所述任务控制单元5包括指令发生模块51和寄存器文件模块52,所述任务控制单元5通过编写寄存器文件模块的值对计算模式、输入输出地址进行配置,所述指令发生模块51根据配置的所述计算模式生成控制微指令和程序计数器,并将所述控制微指令和程序计数器译码成控制信号分别传输至所述存储控制单元2和所述乘累加计算单元3,从而实现对整个计算装置的控制。
在一些实施例中,在配置好整个计算装置的计算模式之后,任务控制单元5内部的指令发生模块51根据计算模式生成相应的控制微指令和程序计数器(PC),之后通过任务控制单元5内部的流水线级级传递控制微指令和程序计数器,在流水线的每一级通过将控制微指令和程序计数器译码成为乘加阵列模块31、累加模块32、存储控制单元2和像素计算引擎单元5的控制信息,从而分别实现对乘加阵列模块31、累加模块32、存储控制单元2和像素计算引擎单元5的控制,使得整个计算装置能够根据计算模式的不同,选择不同运算器件对参数数据进行运算,以得到需要的计算结果,不仅能够有效降低视觉处理的成本,而且计算装置中采用的两部分电路均可以被单独调用,大幅增加了计算的灵活性,整个计算过程中的输入输出数据都是存储在本地存储单元之中,有效减少了数据搬运,大幅度提高了整个装置的运行速度。
本发明还公开了一种应用于上述计算装置的计算方法,如图8所示,包括如下步骤:
S1、任务控制单元配置计算装置的计算模式和输入输出地址,输入参数数据至本地存储单元,并根据所述计算模式选择乘累加计算单元或像素计算引擎单元作为运算器件;
S2、存储控制单元访问所述本地存储单元获取参数数据,并输出读存储的访问指令至所述运算器件;
S3、选择的所述运算器件从所述存储控制单元获取所述参数数据,并通过所述运算器件执行计算处理以获得最终计算结果;
S4、所述运算器件将所述最终计算结果输出至所述存储控制单元,所述存储控制单元将所述最终计算结果输出至所述本地存储单元。
在上述计算方法中,通过配置不同的计算模式和输入输出地址,并将参数数据输入到本地存储单元2之中,之后根据计算模式选择合适的运算器件,存储控制单元输出读存储的访问指令至所述运算器件,以通知运算器件准备就绪,通过存储控制单元2本地存储单元1内的参数数据进行输出控制,使得参数数据输出到选择的运算器件之中并进行计算以得到最终计算结果,之后通过存储控制单元对2将最终结果输出并存储到本地存储单元1之中,通过不同的计算模式完成对不同参数数据的计算过程,使得乘累加计算单元3和像素计算引擎单元4这两种不同的计算通路能够根据不同的计算模式被调用,大幅增加了计算的灵活性,同时输出结果是直接存储在本地存储单元1之中的,可以有效节省算法中大量的数据搬运,提高计算速度并降低计算过程中的功耗。
在一些实施例中,所述计算模式包括神经网络卷积、深度卷积、图像卷积、池化和图像滤波中的任意一种,根据不同的计算要求选择不同的计算模式,以完成不同的计算处理过程。
在一些实施例中,在所述步骤S1中,当所述任务控制单元配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式时,选择所述乘累加计算单元作为所述运算器件。
在进一步的的实施例中,当所述任务控制单元5配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式,选择所述乘累加计算单元3作为所述运算器件,此时输入的所述参数数据包括权重数据、特征图数据和偏置数据,在输入权重数据、特征图数据和偏置数据至本地存储单元1,如图9所示,后续的处理过程包括:
Sa1、访存控制模块生成访问请求并通过存储接口模块访问本地存储单元以获得所述权重数据、特征图数据和偏置数据,并将所述参数数据存储在访存控制模块中的数据缓存器中,并通知所述乘累加计算单元输入已经准备就绪;
Sa2、通过乘加阵列模块获取所述权重数据和所述特征图数据进行乘加运算得到乘加结果,所述乘加阵列模块将所述乘累加结果输出至累加模块并根据所述计算模式进行二次处理以得到所述最终计算结果;
Sa3、所述累加模块将所述最终计算结果输出至访存控制模块中的数据写回部,所述数据写回部缓存所述最终计算结果,所述数据写回部向存储接口模块发起写数据请求,使得所述最终计算结果输出到所述本地存储单元中存储。
具体的,访存控制模块21生成读取存储接口模块22内权重数据、特征图数据和偏置数据的请求,从而通过存储接口模块22访问本地存储单元1,使得本地存储单元1中的权重数据、特征图数据和偏置数据传输并缓存在访存控制模块21中,同时任务控制单元5通知选择的乘累加计算单元3输入已经准备就绪,之后乘累加计算单元3分别通过乘加真理模块31和累加模块32分别进行计算,乘加阵列模块31获得权重数据和特征图数据进行乘加运算得到乘加结果,并将乘加结果输出至累加模块32进行累加计算和后处理过程,其中后处理过程包括偏置值加法、数据移位、数据截位或者激活处理中的至少一种,而在完成计算之后,最终计算结果传输到访存控制模块21中的数据写回部214中,并通过数据缓存器2143缓存,之后数据写回部214向存储接口模块22中发起写数据请求,通过存储接口模块22将数据写回部214中的数据缓存器2143缓存的最终计算结果的数据传输并存储到本地存储单元1之中,从而完成计算过程。
在一些实施例中,所述步骤Sa2的过程包括:
确定所述计算模式的类型,当所述计算模式为神经网络卷积,则对所述乘加结果进行一次深度累加,再对所述乘加结果进行二次处理,以得到所述最终计算结果;
当所述计算模式为深度卷积或者图像卷积,则跳过所述深度累加直接进行二次处理,以得到所述最终计算结果。
在一些实施例中,所述二次处理包括偏置加法处理、数据移位处理、数据截位处理和激活处理中的至少一种。
在累加模块32进行计算的时候,根据计算模式的类型判断具体执行累加模块32中的哪些计算过程,若计算模式为神经网络卷积模式,则通过深度累加部321进行一次深度累加运算,之后根据配置要求,选择偏置加法部322323、数据截位部323和激活部324中的任意一个或者多个,以进行偏置加法处理、数据移位处理、数据截位处理和激活处理,从而完成累加模块32对参数数据的计算过程。
在一些实施例中,在所述步骤S1中,当所述任务控制单元配置池化或者图像滤波作为所述计算模式时,选择所述像素计算引擎单元作为所述运算器件,所述参数数据包括特征图数据和图像数据,输入所述特征图数据和所述图像数据至本地存储单元,如图10所示,后续的处理过程包括:
Sb1、访存控制模块生成读数据的请求,并通过存储接口模块访问本地存储单元以获得所述待处理数据,并将所述特征图数据在访存控制模块的数据缓存器中进行缓存,并通知像素计算引擎单元输入已经准备就绪;
Sb2、所述访存控制模块将所述特征图数据传输至所述像素计算引擎单元,通过所述像素计算引擎单元对所述待处理数据进行池化或者图像滤波运算以得到最终计算结果,并将所述最终计算结果输出至所述访存控制模块;
Sb3、所述访存控制模块将所述最终计算结果缓存在内部,并向所述存储接口模块发起写数据请求,并将缓存在所述访存控制模块中的所述最终计算结果输出至所述本地存储单元。
而在确定了计算模式为池化或者图像滤波时,输入的参数数据主要包括特征图数据和图像数据,在确定输入输出地址之后,启动计算过程,访存控制模块21内的单次数据读取部212生成读数据请求,通过存储接口模块22访问本地存储单元1内部以得到参数数据,并在单次数据读取部212内部的数据缓存寄存器217对传输的参数数据进行缓存,同时通知像素计算引擎单元4输入已经准备就绪,之后参数数据传输到像素计算引擎单元4之中进行运算,包括池化运算或者图像滤波运算,在完成运算之后得到最终计算结果,之后将最终计算结果输出至数据写回部214之中,并缓存在数据写回部214中的数据缓存器2143之中,同时数据写回部214向存储接口模块22发起写数据请求,将最终数据写回部214中的计算结果输出至本地存储单元1之中,完成计算过程。
更进一步的,在对图像数据进行预处理操作时,比如高斯卷积,则最终计算的结果也是直接保存在本地存储单元1之中,不需要将结果搬运至外存,而在对神经网络处理运算时,输入数据也是直接输入获得,不需要从外部获得输入。
需要说明的是,应理解上述的计算装置中的各个单元或者模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元或者模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元或者模块通过处理元件调用软件的形式实现,部分单元或者模块通过硬件的形式实现。例如,x单元或者模块可以为单独设立的处理元件,也可以集成在上述系统的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述系统的存储器中,由上述系统的某一个处理元件调用并执行以上x单元或者模块的功能。其它单元或者模块的实现与之类似。此外这些单元或者模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元或者模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
本发明提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的调整方法。
本发明还提供了一种终端,包括处理器及存储器;
所述处理器用于执行上述的计算机程序。
所述存储器用于存储计算机程序。优选地,所述存储器包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。
优选地,所述处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都属于权利要求书中所述的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施方式,并且可通过多种方式实施或实现。

Claims (20)

1.一种计算装置,其特征在于,包括:
本地存储单元;
存储控制单元,所述存储控制单元与所述本地存储单元通信连接并用于控制所述本地存储单元的读写访问;
乘累加计算单元,所述乘累加计算单元用于执行各类卷积计算和累加计算;
像素计算引擎单元,所述像素计算引擎单元用于执行池化和滤波操作;
任务控制单元,所述任务控制单元用于配置所述计算装置的计算模式和输入输出地址;
其中,所述任务控制单元均与所述存储控制单元、所述乘累加计算单元和所述像素计算引擎单元通信连接以输出控制信息,所述乘累加计算单元和像素计算引擎单元均与所述存储控制单元通信连接以实现信息传输;
所述存储控制单元包括访存控制模块和存储接口模块,所述访存控制模块包括多次数据读取部、单次数据读取部、偏置数据读取部和数据写回部;
所述乘累加计算单元和所述像素计算引擎单元集成在一起以分别调用以执行不同的计算过程,待处理的参数数据输入并存储在本地存储单元之中,通过任务控制单元配置计算模式和输入输出地址之后,通过存储控制单元将不同的待处理的参数数据传输到乘累加计算单元和像素计算引擎单元分别进行不同的运算过程,最终计算结果通过存储控制单元传输到本地存储单元之中,所述输入输出数据存储在本地存储单元之中,通过分时复用的方式将整个计算过程中的输入输出数据保存在本地存储单元之中。
2.根据权利要求1所述的计算装置,其特征在于,所述访存控制模块用于生成读存储和写存储的访问控制,所述存储接口模块用于连接所述访存控制模块与本地存储单元,所述存储接口模块与所述本地存储单元通信连接,所述本地存储单元用于接收输入的参数数据并存储。
3.根据权利要求2所述的计算装置,其特征在于,所述乘累加计算单元包括乘加阵列模块和累加模块,所述乘加阵列模块用于执行卷积计算,所述累加模块用于执行累加计算,所述访存控制模块的输出端分别与所述乘加阵列模块、所述累加模块和所述像素计算引擎单元通信连接以输出存储的参数数据,所述乘加阵列模块的输出端与所述累加模块的输入端通信连接,所述累加模块的输出端和所述像素计算引擎单元的输出端均与所述访存控制模块的输入端通信连接以输出最终计算结果。
4.根据权利要求3所述的计算装置,其特征在于,所述最终计算结果包括所述乘加阵列模块和所述累加模块计算得到的乘累加计算结果、所述像素计算引擎单元计算后得到的逐点计算结果。
5.根据权利要求3所述的计算装置,其特征在于,所述多次数据读取部用于获取权重数据并与所述乘加阵列模块和所述像素计算引擎单元通信连接,所述单次数据读取部用于获取特征图数据并分别与所述乘加阵列模块、所述像素计算引擎单元通信连接,所述偏置数据读取部用于获取偏置数据并与所述累加模块通信连接,所述数据写回部分别与累加模块的输出端和像素计算引擎单元的输出端通信连接,并将所述最终计算结果输出至所述存储接,口模块。
6.根据权利要求5所述的计算装置,其特征在于,所述多次数据读取部、所述单次数据读取部和所述偏置数据读取部均包括第一数据请求发生器、第一数据地址发生器和数据缓存寄存器,所述第一数据请求发生器、所述第一数据地址发生器和所述数据缓存寄存器均与所述任务控制单元通信连接以接收所述控制信息,所述第一数据地址发生器与所述第一数据请求发生器通信连接,所述第一数据请求发生器的输出端与所述存储接口模块的输入端通信连接,所述存储接口模块的输出端与所述数据缓存寄存器通信连接,所述数据缓存寄存器用于暂存所述参数数据,所述多次数据读取部内的所述数据缓存寄存器与所述乘加阵列模块通信连接,所述单次数据读取部内的所述数据缓存寄存器分别与所述乘加阵列模块、所述像素计算引擎单元通信连接,所述偏置数据读取部内的所述数据缓存寄存器与所述累加模块通信连接。
7.根据权利要求5所述的计算装置,其特征在于,所述数据写回部包括第二数据请求发生器、第二数据地址发生器和数据缓存器,所述第二数据请求发生器、所述第二数据地址发生器和所述数据缓存器均与所述任务控制单元通信连接以接收所述控制信息,所述第二数据地址发生器的输出端与所述第二数据请求发生器通信连接,所述第二数据请求发生器的输出端与所述存储接口模块通信连接以发送数据存储请求,所述数据缓存器的输入端分别与所述累加模块、所述像素计算引擎单元通信连接以接收计算处理后得到的所述最终计算结果,所述数据缓存器的输出端与所述存储接口模块通信连接以传输所述最终计算结果至所述本地存储单元。
8.根据权利要求3所述的计算装置,其特征在于,所述乘加阵列模块包括至少一个用于执行乘累加运算的乘累加处理部,且所述乘累加处理部包括乘法运算器和累加运算器。
9.根据权利要求3所述的计算装置,其特征在于,所述累加模块包括深度累加部、偏置加法部、数据截位部和激活部中的至少一个。
10.根据权利要求1所述的计算装置,其特征在于,所述任务控制单元包括相互通信连接的指令发生模块和寄存器文件模块,所述任务控制单元通过编写寄存器文件模块的值对计算模式、输入输出地址进行配置,所述指令发生模块根据配置的所述计算模式生成控制微指令和程序计数器,并将所述控制微指令和程序计数器译码成控制信号分别传输至所述存储控制单元和所述乘累加计算单元。
11.根据权利要求5所述的计算装置,其特征在于,所述像素计算引擎单元包括技术控制逻辑模块、像素运算模块、中间结果缓存模块和截位模块,所述控制逻辑模块分别与所述像素运算模块、所述中间结果缓存模块和所述截位模块通信连接,所述像素运算模块与所述中间结果缓存模块之间通信连接,所述中间结果缓存模块的输出端与所述截位模块的输入端通信连接,所述截位模块的输出端与所述数据写回部通信连接。
12.一种应用于权利要求1至11任一项所述计算装置的计算方法,其特征在于,包括如下步骤:
S1、任务控制单元配置计算装置的计算模式和输入输出地址,输入参数数据至本地存储单元,并根据所述计算模式选择乘累加计算单元或像素计算引擎单元作为运算器件;
S2、存储控制单元访问所述本地存储单元获取参数数据,并输出读存储的访问指令至所述运算器件;
S3、选择的所述运算器件从所述存储控制单元获取所述参数数据,并通过所述运算器件执行计算处理以获得最终计算结果;
S4、所述运算器件将所述最终计算结果输出至所述存储控制单元,所述存储控制单元将所述最终计算结果输出至所述本地存储单元。
13.根据权利要求12所述的一种计算方法,其特征在于,所述计算模式包括神经网络卷积、深度卷积、图像卷积、池化和图像滤波中的任意一种。
14.根据权利要求12所述的一种计算方法,其特征在于,在所述步骤S1中,当所述任务控制单元配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式时,选择所述乘累加计算单元作为所述运算器件。
15.根据权利要求14所述的一种计算方法,其特征在于,在所述步骤S1中,当所述任务控制单元配置神经网络卷积、深度卷积和图像卷积中的任意一种作为所述计算模式,选择所述乘累加计算单元作为所述运算器件,所述参数数据包括权重数据、特征图数据和偏置数据,输入权重数据、特征图数据和偏置数据至本地存储单元,后续的处理过程包括:
Sa1、访存控制模块生成访问请求并通过存储接口模块访问本地存储单元以获得所述权重数据、特征图数据和偏置数据,并将所述参数数据存储在访存控制模块中的数据缓存器中,并通知所述乘累加计算单元输入已经准备就绪;
Sa2、通过乘加阵列模块获取所述权重数据和所述特征图数据进行乘加运算得到乘加结果,所述乘加阵列模块将所述乘累加结果输出至累加模块并根据所述计算模式进行二次处理以得到所述最终计算结果;
Sa3、所述累加模块将所述最终计算结果输出至访存控制模块中的数据写回部,所述数据写回部缓存所述最终计算结果,所述数据写回部向存储接口模块发起写数据请求,使得所述最终计算结果输出到所述本地存储单元中存储。
16.根据权利要求15所述的一种计算方法,其特征在于,所述步骤Sa2的过程包括:
确定所述计算模式的类型,当所述计算模式为神经网络卷积,则对所述乘加结果进行一次深度累加,再对所述乘加结果进行二次处理,以得到所述最终计算结果;
当所述计算模式为深度卷积或者图像卷积,则跳过所述深度累加直接进行二次处理,以得到所述最终计算结果。
17.根据权利要求16所述的一种计算方法,其特征在于,所述二次处理包括偏置加法处理、数据移位处理、数据截位处理和激活处理中的至少一种。
18.根据权利要求14所述的一种计算方法,其特征在于,在所述步骤S1中,当所述任务控制单元配置池化或者图像滤波作为所述计算模式时,选择所述像素计算引擎单元作为所述运算器件,所述参数数据包括特征图数据和图像数据,输入所述特征图数据和所述图像数据至本地存储单元,后续的处理过程包括:
Sb1、访存控制模块生成读数据的请求,并通过存储接口模块访问本地存储单元以获得待处理数据,并将所述特征图数据在访存控制模块的数据缓存器中进行缓存,并通知像素计算引擎单元输入已经准备就绪;
Sb2、所述访存控制模块将所述特征图数据传输至所述像素计算引擎单元,通过所述像素计算引擎单元对所述待处理数据进行池化或者图像滤波运算以得到最终计算结果,并将所述最终计算结果输出至所述访存控制模块;
Sb3、所述访存控制模块将所述最终计算结果缓存在内部,并向所述存储接口模块发起写数据请求,并将缓存在所述访存控制模块中的所述最终计算结果输出至所述本地存储单元。
19.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求12至18任一所述的方法。
20.一种终端,其特征在于,包括处理器和存储器;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行权利要求12至18任一所述的方法。
CN202011505009.XA 2020-12-18 2020-12-18 一种计算装置、计算方法、存储介质及终端 Active CN112488908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011505009.XA CN112488908B (zh) 2020-12-18 2020-12-18 一种计算装置、计算方法、存储介质及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011505009.XA CN112488908B (zh) 2020-12-18 2020-12-18 一种计算装置、计算方法、存储介质及终端

Publications (2)

Publication Number Publication Date
CN112488908A CN112488908A (zh) 2021-03-12
CN112488908B true CN112488908B (zh) 2021-08-27

Family

ID=74914760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011505009.XA Active CN112488908B (zh) 2020-12-18 2020-12-18 一种计算装置、计算方法、存储介质及终端

Country Status (1)

Country Link
CN (1) CN112488908B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113240103B (zh) * 2021-06-25 2022-10-04 清华大学 神经网络池化电路
CN113642713B (zh) * 2021-08-19 2023-08-01 厦门壹普智慧科技有限公司 一种用于神经网络张量处理器的4d计算装置
CN117057403B (zh) * 2023-10-10 2024-02-13 苏州元脑智能科技有限公司 一种运算模块、基于脉冲神经网络的加速器及方法
CN117170622B (zh) * 2023-11-03 2024-03-01 深圳鲲云信息科技有限公司 累加器及用于累加器的方法和芯片电路及计算设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169560A (zh) * 2017-04-19 2017-09-15 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107993206A (zh) * 2017-10-30 2018-05-04 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN110766127A (zh) * 2018-07-25 2020-02-07 北京深鉴智能科技有限公司 神经网络计算专用电路及其相关计算平台与实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886860B (zh) * 2019-01-31 2022-11-29 西安理工大学 一种低分辨率细胞图像的神经网络结构及加速电路
CN110135554A (zh) * 2019-03-25 2019-08-16 电子科技大学 一种基于fpga的卷积神经网络硬件加速架构
CN110069444A (zh) * 2019-06-03 2019-07-30 南京宁麒智能计算芯片研究院有限公司 一种计算单元、阵列、模块、硬件系统及实现方法
CN111898733B (zh) * 2020-07-02 2022-10-25 西安交通大学 一种深度可分离卷积神经网络加速器架构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169560A (zh) * 2017-04-19 2017-09-15 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107993206A (zh) * 2017-10-30 2018-05-04 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN110766127A (zh) * 2018-07-25 2020-02-07 北京深鉴智能科技有限公司 神经网络计算专用电路及其相关计算平台与实现方法

Also Published As

Publication number Publication date
CN112488908A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN112488908B (zh) 一种计算装置、计算方法、存储介质及终端
US20230418610A1 (en) Deep vision processor
US11803756B2 (en) Neural network system for reshaping a neural network model, application processor including the same, and method of operating the same
US20180260710A1 (en) Calculating device and method for a sparsely connected artificial neural network
US20200050918A1 (en) Processing apparatus and processing method
CN110689138A (zh) 运算方法、装置及相关产品
US20220083857A1 (en) Convolutional neural network operation method and device
US20210350230A1 (en) Data dividing method and processor for convolution operation
CN104778148A (zh) 基于fpga的动态可重构嵌入式数据协处理平台及采用该平台实现的数据处理方法
CN113051216A (zh) 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
CN112633505A (zh) 一种基于risc-v的人工智能推理方法和系统
CN113902089A (zh) 加速激活函数运算的装置、方法及存储介质
Gong et al. Research and implementation of multi-object tracking based on vision DSP
US20220147748A1 (en) Efficient object detection using deep learning techniques
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN113918233A (zh) 一种ai芯片控制方法、电子设备及ai芯片
CN110858151B (zh) 一种运算流水级重构方法、运算方法和可读存储介质
CN111552652B (zh) 基于人工智能芯片的数据处理方法、装置和存储介质
Bai et al. An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks
CN111445019B (zh) 一种分组卷积中通道混洗操作的实现装置及方法
CN114327639A (zh) 基于数据流架构的加速器、加速器的数据存取方法及设备
Ferreira et al. Energy-efficient application-specific instruction-set processor for feature extraction in smart vision systems
CN111291864B (zh) 运算处理模组、神经网络处理器、电子设备及数据处理方法
CN110858150A (zh) 一种具有局部实时可重构流水级的运算装置
US20220309775A1 (en) Embedded semantic division network apparatus optimized for mma that classifies pixels in vehicle images

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant