CN112005251A - 运算处理装置 - Google Patents

运算处理装置 Download PDF

Info

Publication number
CN112005251A
CN112005251A CN201980027100.4A CN201980027100A CN112005251A CN 112005251 A CN112005251 A CN 112005251A CN 201980027100 A CN201980027100 A CN 201980027100A CN 112005251 A CN112005251 A CN 112005251A
Authority
CN
China
Prior art keywords
data
unit
memory
coefficient
processing
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.)
Granted
Application number
CN201980027100.4A
Other languages
English (en)
Other versions
CN112005251B (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.)
Olympus Corp
Original Assignee
Olympus Corp
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 Olympus Corp filed Critical Olympus Corp
Publication of CN112005251A publication Critical patent/CN112005251A/zh
Application granted granted Critical
Publication of CN112005251B publication Critical patent/CN112005251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

运算处理装置的运算部具有:滤波处理部,其具有乘法器和第1加法器,进行所述滤波处理;第2加法器,其进行将以N并行方式执行的所述滤波处理的结果全部累积相加的所述累积相加处理;非线性变换部,其对所述累积相加处理的结果进行所述非线性运算处理;池化处理部,其对所述非线性运算处理的结果进行所述池化处理;以及运算控制部,其控制所述滤波处理部、所述第2加法器、所述非线性变换部和所述池化处理部。

Description

运算处理装置
技术领域
本发明涉及运算处理装置,更详细地说,涉及使用卷积神经网络进行深度学习的运算处理装置的电路结构。
本申请要求以2018年5月11日申请的国际申请PCT/JP2018/018306为基础的优先权,并援引该申请所记载的全部记载内容。
背景技术
以往,存在使用分层地连接有多个处理层而得到的神经网络来执行运算的运算处理装置。特别是在进行图像识别的运算处理装置中,广泛进行了使用卷积神经网络(Convolutional Neural Network,以下称为CNN)的深度学习。
图33是示出使用了CNN的深度学习的处理流程的图。在基于使用了CNN的深度学习的图像识别中,通过对所输入的图像数据(像素数据)依次实施CNN的多个处理层中的处理,得到识别出图像中包含的对象物的最终运算结果数据。基于使用了CNN的深度学习的图像识别能够实现较高的识别率。
具体而言,首先,对图像数据多次(在多个处理层中)进行卷积运算处理(Convolution处理)与缩小处理(池化处理)的组合(一个处理层),在该卷积运算处理(Convolution处理)中,提取某个区域并乘以系数不同的多个滤波器来生成特征量图(FeatureMap,FM),在该缩小处理(池化处理)中,从特征量图中提取一部分区域。这些处理是卷积层(Convolution层)的处理。
卷积处理进展,在将FM减小到某一程度时,将图像数据重读为一维数据串。多次(在多个处理层中)进行全连接(FullConnect)处理,在该全连接处理中,对一维数据串的各数据乘以各不相同的系数,进行累积运算。这些处理是全连接层(FullConnect层)的处理。
然后,在全连接处理之后,作为最终运算结果即被摄体估计结果,输出检测出图像所包含的对象物的概率(被摄体检测的概率)。在图33的例子中,作为最终运算结果数据,检测出狗的概率为0.01(1%),检测出猫的概率为0.04(4%),检测出小船的概率为0.94(94%),检测出鸟的概率为0.02(2%)。
这样,CNN的处理层大致分类为进行包含卷积运算处理、非线性处理、缩小处理(池化处理)等在内的卷积处理的Convolution层(卷积层)和进行将所有输入(像素数据)乘以系数并累积相加的全连接处理的FullConnect层(全连接层)。但是,也存在没有全连接层的卷积神经网络。
图34是示出卷积处理的流程的图。首先,提取所输入的图像数据的1个像素,进行系数不同的滤波处理,累积相加,由此能够生成与1个像素对应的数据。对图像数据的全部像素进行该处理,生成与全部像素对应的数据。接着,对所生成的数据进行非线性变换和缩小处理(池化处理),生成输出特征量图(oFM)。
并且,通过将输出特征量图(oFM)作为输入特征量图(iFM)进一步进行系数不同的滤波处理,反复上述的卷积处理。以这样的方式进行多次卷积处理,得到输出特征量图(oFM)。
图35是示出全连接处理的流程的图。对多个输入数据准备相同数量的系数并相乘,对相乘所得的数据进行累积相加,经过非线性运算,能够生成1个输出数据。通过改变系数来多次反复该处理,能够生成多个输出数据。
在基于使用了CNN的深度学习的图像识别的处理中,由于按照CNN的每个处理层进行处理的数据单位不同,因此难以进行处理单位或存储器的优化。因此,关于基于使用了CNN的深度学习的图像识别,一般通过使用了高性能PC(硬件)或GPU(Graphics ProcessingUnit:图形处理单元)的软件处理、或FPGA(Field Programmable Gate Array:现场可编程门阵列)等可配置设备(电路)来安装。
专利文献1和专利文献2公开了如下结构:通过呈二维阵列状地配置积和运算组以实现高速化,构成进行卷积处理的卷积运算处理部,通过在全连接处理中也使用(共享)该卷积运算处理部,减少用于全连接处理的电路。
专利文献3公开了一种图像存储器控制装置,在使用了可突发传输的图像存储器的情况下,无论对于成分数量较多的彩色图像数据还是对于成分数量较少的单色图像数据,都能够抑制内部存储器的增加而高效地执行图像旋转处理等。具体而言,按CMYKA的5个成分的每个成分形成5个各8行的输入缓冲器,从该输入缓冲器通过以8×8像素为单位的块读出与同一区域对应的各成分的图像数据。然后,通过突发传输将这些块存储在同一行地址内的连续列地址中。
现有技术文献
专利文献
专利文献1:日本特开2016-99707号公报
专利文献2:日本特开2017-27314号公报
专利文献3:日本特开2012-146032号公报
发明内容
发明要解决的课题
专利文献1和专利文献2中,在卷积处理(滤波运算处理)和全连接处理(矩阵运算处理)的处理内容不同的前提下,通过有控制地切换电路的一部分(卷积运算处理部),在卷积处理和全连接处理中共享电路的一部分。即,通过有控制地切换电路的一部分,变更运算过程,实现卷积处理和全连接处理。但是,在卷积处理和全连接处理中共享的仅是电路的一部分。
因此,卷积运算中的滤波器内核尺寸在电路中是固定的。在专利文献1中,通过由脉动阵列构成的多并行运算高速地进行运算,但滤波器尺寸由脉动阵列的尺寸决定。关于专利文献2也同样如此。此外,在专利文献1中,在执行全连接处理时,在采用相对于滤波器内核尺寸具有零头的特征量图的情况下,必须进行无效像素处理。
此外,CNN是将所有iFM的相同坐标(的附近)数据作为输入来计算oFM的1个像素的处理。由于输入输出大量的数据、系数,所以必须充分考虑在DRAM上的配置或传输效率来进行设计。作为类似处理,存在输入多个帧而得到一个输出帧的降噪或图像数据压缩等处理(利用帧间的相关性的处理)。但是,它们最多输入几~几十帧。另一方面,如果将FM作为帧来考虑(虽然也取决于网络的大小),则CNN有时输入几百~几千帧。因此,无法简单地以与这些类似处理相同的数据格式进行DRAM访问。
在CNN中扩大网络与增加FM数是同义的。由于FM是具有二维位置信息的数据串,所以可以认为iFM是“在坐标(X,Y)处具有与iFM数量相应的独立元素的数据串”。当理解为“独立元素”=“维度”时,可以说iFM是高维数据串。例如,RGB图像是三维数据串。
在专利文献3中,通过将每个元素的维度(CMYKA)的数据串分割为成为处理的基本单位的8×8尺寸的块,作为突发传输形成了高效的数据集。另外,将该块作为处理单位,通过在处理单位中改变数据格式,能够高速地对应图像的旋转。
与此相对,由于在CNN中想处理的数据是维度(=FM数)如上那样为几百~几千的高维数据串,所以处理的基本单位或1个元素自身可以成为突发传输单位(或其以上)的尺寸。并且,帧的尺寸或维数按照每个层发生变化。此外,在CNN中,有时存在称为Shortcut(直连)的处理,必须是能够与之对应的格式。
鉴于上述情况,本发明的目的在于提供一种运算处理装置,该运算处理装置在基于使用了CNN的深度学习的图像识别中,能够在卷积处理和全连接处理中共享电路整体。并且,本发明的目的在于提供一种也能够应对直连处理并且能够较高地维持DRAM传输效率的运算处理装置。
用于解决课题的手段
本发明的第一方式是一种运算处理装置,其用于进行卷积处理和全连接处理的深度学习,其中,该运算处理装置具有:数据存储存储器管理部,其具有存储输入特征量图数据的数据存储存储器、以及控制所述数据存储存储器的数据存储存储器控制电路;系数存储存储器管理部,其具有存储系数的系数存储存储器、以及控制所述系数存储存储器的系数存储存储器控制电路;数据输入部,其从存储用外部存储器取得所述输入特征量图数据;系数输入部,其从存储用外部存储器取得所述系数;数据输出部,其向所述存储用外部存储器写出输出特征量图数据;运算部,其以输入N并行、输出M并行的结构从所述数据存储存储器取得所述输入特征量图数据,从所述系数存储存储器取得所述系数,而进行滤波处理、累积相加处理、非线性运算处理和池化处理,其中,N、M≥1;以及控制器,其控制所述数据存储存储器管理部、所述系数存储存储器管理部、所述数据输入部、所述数据输出部和所述运算部,所述数据存储存储器管理部从所述数据存储存储器取出所述输入特征量图数据,所述系数存储存储器管理部参考所述数据存储存储器管理部的状态,从所述系数存储存储器取出与从所述数据存储存储器管理部取出的数据对应的系数,所述数据输出部将从所述运算部输出的M并行的数据连接起来输出到所述存储用外部存储器,所述运算部具有:滤波处理部,其具有乘法器和第1加法器,进行所述滤波处理;第2加法器,其进行将以N并行方式执行的所述滤波处理的结果全部累积相加的所述累积相加处理;非线性变换部,其对所述累积相加处理的结果进行所述非线性运算处理;池化处理部,其对所述非线性运算处理的结果进行所述池化处理;以及运算控制部,其控制所述滤波处理部、所述第2加法器、所述非线性变换部和所述池化处理部。
也可以,所述数据存储存储器具有缓冲器,所述缓冲器存储计算池化处理后的1个数据所需的数据集,所述缓冲器存储从所述数据存储存储器读出的数据。
也可以,还具有运算控制部,所述运算控制部控制所述运算部的处理,所述运算控制部在全连接处理时,控制运算部,使得进行将输入的一维数据串换算为N面规定尺寸的数据串的处理,其中,所述一维数据串的要素数为n,所述规定尺寸为Fx×Fy,n≤Fx×Fy×N,Fx和Fy中的至少一个为2以上,将滤波器尺寸设定为所述规定尺寸Fx×Fy,并控制运算部,使得作为输出的元素数为m的一维数据串,输出特征量图数据的尺寸为1×1、元素数为m。
在卷积处理时,FM尺寸与滤波器尺寸可以不同,尺寸的关系根据要采用的网络来确定(当然可以变更)。上述是指全连接处理时的具体设定方法,在全连接的情况下,需要iFM尺寸=滤波器尺寸且oFM为尺寸1×1,当然也可以是iFM尺寸=滤波器尺寸=1×1,但由于只要等号成立即可,所以也可以是P×Q(P≥2或Q≥2)。
也可以,在所输入的所述输入特征量图数据和所述系数中的至少一方为零的情况下,运算执行判定部向所述滤波处理部通知运算忽略,在从所述运算执行判定部通知了运算忽略的情况下,所述滤波处理部停止运算处理。
也可以,所述系数存储存储器管理部具有数据零检测部,该数据零检测部检测从所述数据存储存储器读出的所述输入特征量图数据是否为零,仅访问所述系数存储存储器中的、从对应的数据存储存储器所读出的所述输入特征量图数据不为零的系数存储存储器,取出所述系数,所述运算执行判定部检测系数为零的部分,在该检测的结果与所述数据零检测部的结果的逻辑和为零的情况下,向所述滤波处理部通知运算忽略。
也可以,N并行的所述数据存储存储器管理部具有:系数零检测部,其检测所述系数存储存储器所存储的N×M个系数中的、N并行的全部系数是否为零,从而输出系数零检测信号;以及SRAM读出控制部,其仅从所述数据存储存储器中的、与所述系数零检测信号不为零的系数对应的数据存储存储器取出所述输入特征量图数据,所述运算执行判定部检测输入特征量图数据为零的部分,在该检测的结果与所述系数零检测部的结果的逻辑和为零的情况下,向所述滤波处理部通知运算忽略。
当设运算部的电路结构为输入为N并行、输出为M并行时,数据存储存储器管理部成为N并行。
也可以,所述存储用外部存储器中存储有高维数据串,该高维数据串是具有一维以上的位置信息和该位置处的高阶元素的数据串,所述数据输入部通过突发传输从所述存储用外部存储器取得所述高维数据串,将所取得的所述高维数据串传输到所述数据存储存储器管理部,所述数据输出部将从所述运算部输出的同一坐标的数据作为高维数据串以突发传输为单位集中输出,所述数据存储存储器管理部具有:内部坐标变换部,其将所述数据输入部从所述存储用外部存储器所取得的所述高维数据串变换为在所述运算部中处理的坐标;数据存储存储器写入控制部,其根据所述坐标,生成针对所述数据存储存储器的写入控制信号;所述数据存储存储器;以及数据存储存储器读出控制部,其接收所述运算部的请求,从所述数据存储存储器按照规定的顺序存取所需的数据。
也可以,所述存储用外部存储器中存储有高维数据串,该高维数据串是具有一维以上的位置信息和该位置处的高阶元素的数据串,所述存储用外部存储器所存储的所述高维数据串为具有维度的坐标信息和针对每个坐标的高阶的特征量的特征量图,与一个坐标对应的数据量成为突发传输量的1个单位以上,所述数据输入部根据要输入的特征量图的面数和坐标来计算访问所述存储用外部存储器的读取地址,通过突发传输从所述存储用外部存储器取得高维数据串,将所取得的高维数据串传输到所述数据存储存储器管理部,所述数据输出部根据要输出的特征量图的面数和坐标来计算访问所述存储用外部存储器的写入地址,通过突发传输向所述存储用外部存储器输出数据,所述数据存储存储器管理部具有:内部坐标变换部,其生成坐标和补充信息;以及数据存储存储器写入控制部,其根据所述补充信息来生成针对数据存储存储器的写入控制信号,所述内部坐标变换部通过按照规定的方法对所述数据输入部从所述存储用外部存储器所取得的高维数据串进行计数,生成特征量图的所述补充信息和所述坐标,所述数据存储存储器写入控制部根据特征量图的所述补充信息和所述坐标来生成针对成为写入对象的数据存储存储器的写入控制信号和写入地址。
发明效果
根据本发明的各方式的运算处理装置,在基于使用了CNN的深度学习的图像识别中,在卷积处理和全连接处理中不是仅共享电路的一部分,而能够共享电路整体。并且,也能够应对直连处理并且能够较高地维持DRAM传输效率。
附图说明
图1是用于示出本发明实施方式的运算处理装置中的全连接层中的数据的解释的图。
图2是示出本发明实施方式的运算处理装置中的进行使用了CNN的深度学习的运算处理装置的结构的框图。
图3是示出本发明实施方式的运算处理装置中的运算部的结构的图。
图4是示出本发明实施方式的运算处理装置中的iFM(输入特征量图)的数据配置和与该数据配置对应的系数的图。
图5是示出本发明实施方式的运算处理装置中的卷积处理时的时序图的图。
图6是示出本发明实施方式的运算处理装置中的各组中的iFM(输入特征量图)的数据配置和与该数据配置对应的系数的图。
图7是示出本发明实施方式的运算处理装置中的全连接处理时的时序图的图。
图8是示出本发明实施方式的运算处理装置中的FF阵列搭载时的卷积时的IBUF控制的代码的例子的图。
图9是示出本发明实施方式的第1变形例的运算处理装置中的IBUF管理部、WBUF管理部和运算部的连接的图。
图10是示出本发明实施方式的第1变形例的运算处理装置中的运算部的内部结构的图。
图11是示出本发明实施方式的第1变形例的运算处理装置中的、基于时钟选通的运算忽略的例子的图。
图12是示出本发明实施方式的第1变形例的运算处理装置中的运算时的时序图的图。
图13是示出本发明实施方式的第2变形例的运算处理装置中的IBUF管理部、WBUF管理部和运算部的连接的图。
图14是示出本发明实施方式的第2变形例的运算处理装置中的运算部的内部结构的图。
图15是示出本发明实施方式的第2变形例的运算处理装置中的运算时的时序图的图。
图16是示出本发明实施方式的第3变形例的运算处理装置中的IBUF管理部、WBUF管理部和运算部的连接的图。
图17是示出本发明实施方式的第3变形例的运算处理装置中的运算部的内部结构的图。
图18是示出本发明实施方式的第3变形例的运算处理装置中的运算时的时序图的图。
图19是将由CNN处理的FM数据配置在DRAM空间上的示意图。
图20是示出CNN处理中的输入数据串与输出数据串的关系的示意图。
图21是示出通常的CNN处理的示意图。
图22是示出作为直连处理的一种的Relocate(重定位)处理的一例的示意图。
图23是示出图22的重定位处理中的直连目的地处的iFM的处理的一例的示意图。
图24是示出作为直连处理的一种的Combine(合并)处理的一例的示意图。
图25是示出合并处理中的直连目的地处的iFM的处理的一例的示意图。
图26是配置在DRAM上的高维数据串的示意图。
图27是对高维数据串进行分割处理的情况下的、配置在DRAM上的高维数据串的示意图。
图28A是同一坐标的数据跨多次的突发传输的情况下的、配置在DRAM上的高维数据串的示意图。
图28B是同一坐标的数据跨多次的突发传输的情况下的、配置在DRAM上的高维数据串的示意图。
图29是示出IBUF管理部的结构的框图。
图30是IBUF内的示意图。
图31是示出通常处理中的内部坐标变换部的处理的图。
图32是示出直连处理中的内部坐标变换部的处理的图。
图33是示出使用了CNN的深度学习的处理的流程的图。
图34是示出现有技术的卷积处理的流程的图。
图35是示出现有技术的全连接处理的流程的图。
具体实施方式
首先,对成为本发明基础的想法进行说明。在本发明中,认为全连接层的处理为输入特征量图(iFM)的尺寸与滤波器尺寸相等、输出特征量图(oFM)的尺寸为1×1、不进行池化处理的、特殊卷积处理。基于该想法,在完全相同的电路中进行卷积处理和全连接处理。即,不是如现有技术那样在卷积处理和全连接处理中仅共享电路的一部分,而是共享电路整体。
当设全连接层的输入(输入特征量图的数据串)为iFM[j](元素数n、0≤≤j<n)、输出(输出特征量图的数据串)为oFM[i](元素数m、0≤i<m)、用于计算oFM[i]的系数组为k[i][j]时,满足以下的式。
[式1]
Figure BDA0002733217490000091
其中,进行将输入的一维数据串(元素数n)重新换算为N面规定尺寸(Fx×Fy)的数据串的处理(n≤Fx×Fy×N)。Fx为数据串的x方向(横向)上的尺寸,Fy为数据串的y方向(纵向)上的尺寸,Fx和Fy中的至少一个为2以上。
由此,能够将全连接层中的一维数据串考虑为一维以上的数据串。例如,将全连接层的输入iFM[j]解释为iFM[z][x][y](0≤x<Fx、0≤y<Fy、0≤j<n、j=Fy×(z×Fx+x)+y)这样的三维数据串。此外,将系数组k[i][j]解释为k[i][z][x][y](0≤i<m、0≤x<Fx、0≤y<Fy、0≤j<n、j=Fy×(z×Fx+x)+y)这样的四维数据串。
图1是用于示出本发明实施方式的全连接层中的数据的解释的图。当与图34所示的卷积层中的处理进行比较时,输入特征量图(iFM)的尺寸与滤波器尺寸相等的方面、以及由于输出特征量图(oFM)数据的尺寸为1×1所以不进行池化处理的方面不同。为了实现这样的全连接层中的数据的解释,需要在卷积处理时和全连接处理时能够变更滤波器尺寸、即滤波器尺寸是可变的。
图2是示出用于实现上述的全连接层中的数据的解释的、本发明实施方式的进行使用了CNN的深度学习的运算处理装置的结构的框图。
运算处理装置1具有控制器2、数据输入部3、系数输入部4、IBUF(数据存储存储器)管理部5、WBUF(系数存储存储器)管理部6、运算部7和数据输出部8。数据输入部3、系数输入部4和数据输出部8经由总线10与DRAM(存储用外部存储器)9连接。
IBUF管理部5具有输入特征量图(iFM)数据存储用的存储器(数据存储存储器、IBUF)和数据存储存储器的管理/控制电路(数据存储存储器控制电路)。IBUF管理部5对输入数据中的有效数据数量进行计数并变换为坐标,进而将使该坐标变换为IBUF地址后的数据(iFM数据)存储到数据存储存储器中,并且按照规定的方法从数据存储存储器取出iFM数据。
WBUF管理部6具有系数存储用存储器(系数存储存储器、WBUF)和系数存储存储器的管理/控制电路(系数存储存储器控制电路)。WBUF管理部6参考IBUF管理部5的状态,从系数存储存储器取出与从IBUF管理部5取出的数据对应的系数。
DRAM(存储用外部存储器)9存储iFM数据、oFM数据和系数。数据输入部3从DRAM 9按照规定的方法取得输入特征量图(iFM),并交付给IBUF(数据存储存储器)管理部5。数据输出部8向DRAM 9按照规定的方法写出输出特征量图(oFM)数据。具体而言,数据输出部8将从运算部7输出的M并行的数据连接起来输出到DRAM 9。系数输入部4从DRAM 9按照规定的方法取得系数,并交付给WBUF(系数存储存储器)管理部6。另外,存储用外部存储器9不限定于DRAM,也可以为SSD等。
运算部7从IBUF(数据存储存储器)管理部5取得数据,从WBUF(系数存储存储器)管理部6取得系数,进行滤波处理、累积相加、非线性运算、池化处理等数据处理。控制器2进行电路整体的控制。
在CNN中,如图33所示,实施几层类似处理。在使用本发明实施方式的运算处理装置1的情况下,运算部7仅具有1层的处理所需的数据和系数并进行1层的处理,数据和系数逐个放置在DRAM 9中。然后,反复执行必要的层数的处理。运算处理装置1输出被摄体估计结果作为最终输出数据,通过使用处理器(也可以是电路)对该最终输出数据进行处理来获得被摄体估计结果。
图3是示出本发明实施方式的、运算处理装置的运算部的结构的图。运算部7的输入通道数量为N(N≥1),即,输入数据为N维,对N维的输入数据并行地进行处理(输入N并行)。运算部7的输出通道数量为M(M≥1),即,输出数据为M维,并行地输出M维的输入数据(输出M并行)。如图3所示,在一个层中,按照各通道(ich_0~ich_N-1)输入iFM数据(d_0~d_N-1)和系数(k_0~k_N-1),输出一个数据。该处理以M层并行方式进行,输出M个数据och_0~och_M-1。
在实施池化的情况下,仅当“滤波器尺寸×4”组的数据进入时,才输出一个数据。在不进行池化的情况下,以“滤波器尺寸”组的数据输出一个数据。
这样,运算部7设输入通道数量为N、输出通道数量为M,取得并行度为N×M的结构。输入通道数量N和输出通道数量M的大小能够根据CNN的大小来设定(变更),因此,考虑处理性能或电路规模来适当地设定。
运算部7具有运算控制部71,该运算控制部71进行运算部内的各部件的控制。此外,运算部7按照各层具有N个滤波处理部72、第2加法器75、非线性变换部76和池化处理部77。而且,这样的层有M个。即,滤波处理部72有N×M个。
运算控制部71通过向运算部7的前级发出请求,将规定的数据输入到滤波处理部72。滤波处理部72由乘法器73和第1加法器74构成,进行输入数据的滤波处理。乘法器73对从外部输入的FM数据(特征量图数据)d_0~d_N-1、和与FM数据和时刻匹配地输入的系数k_0~k_N-1进行乘法运算。然后,第1加法器74将乘法运算的结果累积相加滤波器尺寸的量,滤波处理部72中的滤波处理完成。即,根据累积相加的次数来改变滤波器尺寸。N个滤波处理部72对不同的FM数据同时(并行地)进行上述的处理。
第2加法器75将以N并行方式执行的N个滤波处理部72中的滤波处理的结果累积相加。非线性变换部76对第2加法器75中的累积相加的结果进行基于Activate函数等的非线性运算处理。具体安装未特别规定,但是,例如通过折线近似进行非线性运算处理。
池化处理部77进行从多个数据中选择输出最大值(Max Pooling:最大值池化)、计算平均值(Average Pooling:平均值池化)等池化处理,该多个数据是从非线性变换部76输入的。另外,非线性变换部76和池化处理部77有时根据网络的不同而不工作,因此,能够由运算控制部71忽略它们。在全连接处理时,不进行池化处理,因此,忽略池化处理部77。
运算控制部71进行在运算部7内的各部中进行的上述的处理的控制。根据这样的结构,在运算部7中,输入通道数量N和输出通道数量M的大小能够根据CNN的大小来设定(变更),因此,考虑处理性能或电路规模来适当地设定。
(卷积处理时)
在卷积处理时,FM尺寸与滤波器尺寸可以不同,也可以变更。此外,输出为二维数据。
对运算部7中的卷积处理时的动作进行说明。这里,考虑关注于一个输入通道而进行卷积处理的情况。以下,对滤波器尺寸为3×3的情况进行说明。
图4的(a)是示出iFM(输入特征量图)的数据配置的图,图4的(b)是示出与该数据对应的系数的图。图4的(a)中的a~p表示数据的值(与图3的d_0~d_N-1对应)。图4的(b)中的w1~w9表示系数的值(与图3的k_0~k_N-1对应)。即,d*表示数据线,k*表示系数线。
图5是示出卷积处理时的时序图的图。假设时间从图的左方向右方流动。首先,使图4的(a)所示的iFM的数据中的滤波器尺寸(3×3的9个)的数据(a、b、c、e、f、g、i、j、k)各自,在乘法器73中与系数w1~w9相乘。第1加法器74对乘法器73的乘法运算结果以滤波器尺寸(3×3的9个)进行累积相加(图5的Σ)。第1加法器74的累积相加的结果(Σ)为滤波处理部72中的滤波处理结果。
第2加法器75取以N并行方式排列的第1加法器74的结果(Σ)的总和(图5的A)。A与输出的1个像素对应。在第2加法器75中,取该总和的处理在从第1加法器74输出滤波处理结果的时刻进行。然后,非线性变换部76对由第2加法器75计算出的总和(A)进行非线性变换(图5的f(A))。
通过以上,一个滤波器的滤波器尺寸(3×3的9个)的数据的处理完成。然后,进入下一个滤波器的滤波器尺寸(3×3的9个)的数据的处理。如图5所示,数据的输入顺序在“a、b、c、e、f、g、i、j、k”之后为“e、f、g、i、j、k、m、n、o”,接下来为“b、c、d、f、g、h、j、k、l”。这样,滤波器的重心位置以图4的(a)所示的数据按照“f→j→g→k”的顺序移动。在非线性变换部76以后,按照该顺序进入,池化处理部77对多个数据进行池化处理。
(全连接处理时)
在全连接处理时,对卷积处理时的FM尺寸和滤波器尺寸的尺寸条件施加一定的条件。在全连接处理时,运算部7进行将输入的一维数据串(元素数n)重新换算为N面Fx×Fy的二维数据串(N并行)的处理(n≤Fx×Fy×N)。即,运算部7将滤波器尺寸设定为规定尺寸(Fx×Fy),并且作为输出的二维数据串(元素数i×j),设定成oFM的尺寸为1×n、oFM的数量为m。无需与卷积处理时的滤波器尺寸相同。N为电路的输入并行度,通过安装来固定,因此,为了处理较大的n,通常(在能够对应的范围内)尽可能较大地设定Fx、Fy。
对运算部7中的全连接处理时的动作进行说明。与卷积处理的说明同样地,对滤波器尺寸为3×3的情况进行说明。在该情况下,输入通道数量为N(N并行),因此,输入数据串为9N。iFM数据的尺寸与滤波器尺寸相同,因此为3×3。即,上述的Fx、Fy满足Fx=Fy=3。因此,将全连接层的输入(输入特征量图的数据串)iFM[j](元素数n、0≤j<n)解释为iFM[z][x][y](0≤x<3、0≤y<3、0≤j<n、j=3×(z×3+x)+y)这样的三维数据串。此外,将用于计算全连接层的输出(输出特征量图的数据串)oFM[i](元素数m、0≤i<m)的系数组k[i][j]解释为k[i][z][x][y](0≤i<m、0≤x<3、0≤y<3、0≤j<n、j=3×(z×3+x)+y)这样的四维数据串。
图6的(a)是示出第1组中的iFM(输入特征量图)的数据配置的图,图6的(b)是示出与该数据对应的系数的图。图6的(a)中的a1~i1表示数据的值,图6的(c)中的w11~w19表示系数的值。同样地,图6的(c)是示出第2组中的iFM(输入特征量图)的数据配置的图,图6的(d)是示出与该数据对应的系数的图。图6的(b)中的a2~i2表示数据的值,图6的(d)中的w21~w29表示系数的值。第3组以后也同样如此,只要根据需要增加组数即可。
图7是示出全连接处理时的时序图的图。如果考虑输入数据在图4和图6中不同的方面,则图7所示的全连接处理时的时序图成为与图5所示的卷积处理时的时序图完全相同的处理。因此,省略图7的说明。但是,在该时序图以后的处理中,图5所示的卷积处理时的非线性变换输出仅是形成oFM的1个像素的数据(准确地说,是用于生成形成oFM的1个像素的数据的池化处理前的数据),与此相对,图7所示的全连接处理时的非线性变换输出直接是1面的oFM数据。
此处,在输入数据串未被滤波器尺寸正好整除的情况下,通过追加值为零的数据以被滤波器尺寸整除(与滤波器尺寸相等),能够在累积相加结果中不产生误差地进行运算。
如上所述,本发明实现了如下结构:仅通过变更设定参数就能够应对任意的滤波器尺寸,通过不在滤波器尺寸方向上而在滤波器的种类方向上呈阵列状地进行并行化来实现高速化,并且能够设定(变更)滤波器尺寸。由此,能够在完全相同的电路中应对卷积处理和全连接处理双方,不需要专用控制,具有规模削减(电力削减)效果。此外,由于滤波器尺寸是可变的,因此便利性高。此外,由于是能够在全连接处理中完全活用卷积处理的电路资源的设定,所以也能够高速执行全连接处理。
在卷积处理时,如图5的时序图所示,从数据存储存储器(IBUF)多次读出了相同的数据。具体而言,在图4的(a)所示的数据中,读出以“f”为中心的9个数据来计算1个输出数据,读出以“j”为中心的9个数据来计算1个输出数据,读出以“g”为中心的9个数据来计算1个输出数据,读出以“k”为中心的9个数据来计算1个输出数据。然后,根据4个(2×2)数据,通过池化处理计算1个数据。即,在滤波器尺寸为3×3、池化处理的实施单位的尺寸为2×2的情况下,从数据存储存储器读出的数据的种类为16,与此相对,读出次数为3×3×4=36。
因此,为了削减数据存储存储器对SRAM的访问的功耗,也可以在数据存储存储器的内部具有以图4的(a)所示的4×4为单位从数据存储存储器取出数据并保存的FF阵列(缓冲器)。即,数据存储存储器具有FF阵列,该FF阵列能够存储计算池化处理后的1个数据所需的数据集(4×4=16个数据),该FF阵列存储从IBUF读出的数据。根据这样的结构,不需要从SRAM多次读出相同的数据,能够减少存储器访问而降低功耗。
图8是示出FF阵列搭载时的卷积时的IBUF控制的代码的例子的图。另外,也可以在电路中安装同等的功能。
(变形例)
对上述的实施方式的变形例进行说明。在本发明中,如图3所示,滤波运算通过以像素为单位将数据与系数相乘并利用累积加法器将乘法运算结果累积相加来实现。此时,在系数和数据中的至少任意一方为零的情况下,乘法运算结果为零,累积相加的结果不被更新,因此,运算变得无用。特别是,在深度学习(DeepLearning)中,存在系数多数为零的情况,该问题显著。
因此,在第1变形例中,在系数和数据中的任意一方为零的情况下,通过不执行乘法运算和累积相加来削减功耗。图9是示出本变形例的运算处理装置的、IBUF管理部5、WBUF管理部6和运算部7的连接的图。
当从运算部7接收到请求(req)时,IBUF(数据存储存储器)管理部5的SRAM读出控制部51从N个IBUF(0~N-1)读出N个FM数据,并发送到运算部7。此外,在与此相同的时刻,WBUF(系数存储存储器)管理部6的WBUF读出部61从M个WBUF(0~M-1)读出N×M个系数,发送到运算部7。在本变形例中,从IBUF管理部5的SRAM读出控制部51向WBUF管理部6的WBUF读出部61发送状态信号。此处,状态信号是指将IBUF管理部5取出的FM数据的信息传递到WBUF管理部6的信号。
图10是示出图9中的运算部7的内部结构的图。在本变形例中,在运算部7中的滤波处理部72的前级设置有运算执行判定部78。运算执行判定部78将表示从IBUF输入的数据(data_0、data_1、……)和从WBUF输入的系数(coef_0、coef_1、……)中的任意一个是否为零的运算忽略信号(vz_0、vz_1、……)通知给滤波处理部72。
在从IBUF输入的数据(data_0、data_1、……)和从WBUF输入的系数(coef_0、coef_1、……)中的任意一个为零的情况下,运算忽略信号(vz_0、vz_1、……)的值为零。在从IBUF输入的数据(data_0、data_1、……)和从WBUF输入的系数(coef_0、coef_1、……)均不为零的情况下,运算忽略信号(vz_0、vz_1、……)的值为1。
在从运算执行判定部78输入的运算忽略信号(vz_0、vz_1、……)的值为零的情况下,滤波处理部72将乘法运算和累积相加的执行关闭(运算忽略)。“运算忽略”是指停止滤波处理部72中的处理或不进行运算处理。
运算忽略信号(vz_0、vz_1、……)可以是使能信号,也可以是用于使输入到滤波处理部72的时钟选通(停止)的信号。图11是示出基于时钟选通的运算忽略的例子的图。图中的“CG”表示时钟选通单元。当运算执行判定部78的零检测部检测到数据(data)或系数(coef)的零时,使运算忽略信号(vz_0、vz_1、……)的值为零,通知给时钟选通单元。在运算忽略信号(vz_0、vz_1、……)的值为零的情况下,时钟选通单元发送使时钟停止的信号,滤波处理部72中的运算停止。
图12是示出设输入的并行度为N=n+1=2、输出的并行度为M=m+1=2情况下的时序图的图。在WBUF(系数存储存储器)中的系数的值(W)或IBUF(数据存储存储器)中的数据的值(D)为零的情况下,运算忽略信号(vz_0、vz_1、……)的值为零,忽略乘法器中的运算,忽略第1加法器的运算。
这样,在所输入的输入特征量图数据和系数中的至少一方为零的情况下,运算执行判定部78向滤波处理部72通知运算忽略。在从运算执行判定部78通知了运算忽略的情况下,滤波处理部72使运算忽略。根据这样的结构,在第1变形例中,在系数或数据中的任意一方为零的情况下,能够通过不执行乘法运算和累积相加来削减功耗。
接着,对本发明实施方式的第2变形例进行说明。在第2变形例中,在数据中零较多时,先读出数据,在数据为零情况下,停止对系数存储存储器的访问(SRAM读出访问)本身。由此,进一步削减功耗。
图13是示出本变形例的运算处理装置的、IBUF管理部5、WBUF管理部6和运算部7的连接的图。当从运算部7接收到请求(req)时,IBUF(数据存储存储器)管理部5的SRAM读出控制部51从N个IBUF(0~N-1)读出N个FM数据,在将其经由延迟电路52发送到运算部7的同时,发送到WBUF(系数存储存储器)管理部6的数据零检测部62。
数据零检测部62检测从IBUF管理部5发送来的N个FM数据各自是否为零,在数据为零的情况下,设为该数据的检测信号iz*=0(*=0~N-1)。例如,在从IBUF0读出的FM数据为零的情况下,设为iz0=0。然后,数据零检测部62将检测信号iz*发送到WBUF(系数存储存储器)管理部6的WBUF读出部61和运算部7。
WBUF(系数存储存储器)管理部6的WBUF读出部61根据检测信号iz*来仅访问M个的WBUF(0~M-1)中的、对应的数据不为零的WBUF而读出系数,并将其发送到运算部7。未访问的WBUF中的(未从WBUF读出的)系数设为零,发送到运算部7。
图14是示出本变形例中的运算部7的内部结构的图。运算部7的运算执行判定部78检测从WBUF读出部61发送的系数(coef_0、coef_1、……)为零的部分,设其结果与从数据零检测部62发送的检测信号(iz_0、iz_1、……)的逻辑和为运算忽略信号(vz0、vz1、……)。
图15是示出本变形例中的运算时的时序图的图。在IBUF(数据存储存储器)中的数据的值(D)为零的情况下,检测信号(iz_0、iz_1、……)的值为零,不进行从对应的WBUF的系数的读出(图的“←”)。然后,在基于IBUF(数据存储存储器)中的数据的值(D)中的零的检测结果和WBUF(系数存储存储器)中的系数的值(W)中的零的检测结果的、运算忽略信号(vz0、vz1、……)为零的情况下,忽略滤波处理部72的乘法器73中的运算(图的“←”)。获得的最终结果与第1变形例的最终结果相同。
如上所述,在本变形例中,WBUF管理部6具有数据零检测部62,该数据零检测部62检测从IBUF(数据存储存储器)读出的FM数据是否为零。然后,WBUF(系数存储存储器)管理部6的WBUF读出部61仅访问WBUF(系数存储存储器)中的、从对应的IBUF(数据存储存储器)读出的FM数据不为零的WBUF而取出系数。并且,运算部7的运算执行判定部78检测系数为零的部分,输出其结果与数据零检测部的结果的逻辑和。
根据这样的结构,在第2变形例中,除了第1变形例以外,在数据为零的情况下,还能够停止对系数存储存储器的访问本身,进一步削减功耗。在零较多的数据时,第2变形例有利。
接着,对本发明实施方式的第3变形例进行说明。在第3变形例中,在系数中零较多时,先读出系数,仅访问与系数的值不为零的部分对应的IBUF。即,停止与系数的值为零的部分对应的数据读出访问本身。
图16是示出本变形例的运算处理装置的、IBUF管理部5、WBUF管理部6和运算部7的连接的图。当从运算部7接收到请求(req)时,WBUF(系数存储存储器)管理部6的WBUF读出部61访问M个的WBUF(0~M-1)而读出N×M个系数,在经由延迟电路63而发送到运算部7的同时,发送到IBUF(数据存储存储器)管理部5的系数零检测部53。并且,WBUF读出部61将状态信号发送到IBUF(数据存储存储器)管理部5的SRAM读出控制部51。此处,状态信号是指将WBUF管理部6取出的系数的信息传递到IBUF管理部5的信号。
系数零检测部53检测从WBUF管理部6发送来的N×M个系数各自是否为零,在M并行的全部系数(M个系数)为零的情况下,设为系数零检测信号cz*=0(*=0~N~1)。例如,在从M并行的全部WBUF0读出的系数为零的情况下,设为cz0=0。这样,IBUF管理部5以M并行方式共享了IBUF的输出,因此,必须检测M并行的全部系数(M个系数)是否为零。
然后,系数零检测部53将系数零检测信号cz*发送到IBUF管理部5的SRAM读出控制部51和运算部7。SRAM读出控制部51从N个IBUF(0~N-1)读出N个FM数据,并将它们发送到运算部7。
图17是示出本变形例中的运算部7的内部结构的图。运算部7的运算执行判定部78检测从IBUF管理部5发送来的FM数据(data_0、data_1、……)为零的部分,设其结果与从系数零检测部53发送的系数零检测信号(cz_0、cz_1、……)的逻辑和为运算忽略信号(vz0、vz1、……)。在本变形例的情况下,即使系数为零,也有时输入FM数据,但是,能够通过运算执行判定部78确认出系数零检测信号(cz_0、cz_1、……)为零,因此,滤波处理部72最终不工作。
图18是示出本变形例中的运算时的时序图的图。在WBUF(系数存储存储器)中的M并行的全部系数的值(W)为零的情况下,系数零检测信号(cz_0、cz_1、……)的值成为零,不进行来自对应的IBUF的FM数据的读出(图的“←”)。然后,在基于IBUF(数据存储存储器)中的数据的值(D)的零的检测结果和WBUF(系数存储存储器)中的系数的值(W)的零的检测结果的、运算忽略信号(vz0、vz1、……)为零的情况下,忽略滤波处理部72的乘法器73中的运算(图的“←”)。获得的最终结果与第1变形例的最终结果相同。
如上所述,在本变形例中,M并行的IBUF管理部5的系数零检测部53检测WBUF(系数存储存储器)所存储的N×M个系数中的、M并行的全部系数(M个系数)是否为零,输出系数零检测信号(cz*)。然后,IBUF管理部5的SRAM读出控制部51仅从IBUF(数据存储存储器)中的、与系数零检测信号(cz*)不为零的系数对应的IBUF取出FM数据。运算执行判定部78检测FM数据中的零的部分,输出其结果与系数零检测部53的结果的逻辑和。
根据这样的结构,在第3变形例中,除了第1变形例以外,在M并行的全部系数为零的情况下,停止对SRAM的访问自身。由此,能够进一步削减功耗。在系数中零较多的情况下,第3变形例有利。
(FM数据在DRAM中的配置)
一般而言,图像数据在DRAM上呈矩形地(或以基于该矩形的形式)展开,以便于与图像(画像イメージ)相关联。在基于使用了CNN的深度学习(DeepLearning)的图像识别中,要处理的FM也具有二维的位置信息,因此,容易理解为将FM数据与图像数据同样地配置在DRAM上。
图19是将通过CNN处理的FM数据配置在DRAM空间上的示意图。作为iFM数据的iFM_0~iFM_(N-1)以FM为单位呈矩形地(横向排列地)配置在DRAM空间上。运算部7从DRAM读入iFM数据,进行卷积处理、加法运算处理、非线性处理、池化处理等CNN处理,将所得到的oFM数据写入DRAM。作为oFM数据的oFM_0~oFM_(M-1)也以FM为单位呈矩形地(横向排列地)配置在DRAM空间上。
在CNN中要处理的FM是几百~几千张的高维数据串,当将FM以FM为单位呈矩形地配置在DRAM空间上时,如图19所示,DRAM地址会跳跃,DRAM传输效率下降。
图20是示出CNN处理中的输入数据串与输出数据串的关系的示意图。输入数据串(iFM数据)为N维(0阶~(N-1)阶),CNN处理后的输出数据(oFM数据)为M维(0阶~(M-1)阶)。在CNN处理的输入输出数据中,计算输出数据的坐标(x,y)中的M维的信息所需的输入数据是输入数据的坐标(x',y')附近的(具有某一扩展的)全部N维信息。即,使用由以图20所示的输入数据的坐标(x',y')为中心的圆包围的区域的数据进行CNN处理,计算输出数据的坐标(x,y)中的M维数据。另外,实际上,CNN处理也需要系数,但在此省略来考虑。
这样,使用位于图20所示的箭头的线上的相同坐标的数据进行计算。因此,在CNN处理中,期望能够按以坐标为单位访问DRAM的方式进行数据展开。并且,在CNN中有时存在以下说明的直连处理等特殊处理,为了应对这样的特殊处理,能够以坐标为单位访问DRAM也较重要。
(直连处理)
此处,对直连处理进行说明。图21是示出通常的CNN处理的示意图,图22是示出直连处理的一例的示意图。在通常的CNN处理中,在两个层之间进行CNN处理,在紧前的层与紧后的层之间存在如用图21所示的两个层之间的直线表示的输入输出关系。CNN处理将紧前的层的输出FM作为输入进行,CNN处理的结果成为紧后的层的输入FM。
有时根据要采用的网络的不同,存在直连处理。在直连处理中,与跨越(跳过)一个或多个层的前面的层之间存在输入输出关系。图22示出作为直连处理的一种的重定位处理的一例,进行跳过第3层和第4层的直连。即,第2层的输出FM(图22的箭头A)的一部分或全部通过直连成为第5层的输入FM。但是,第5层的输入的一部分也包含经由通常路径(即,第3层和第4层)的FM(经由图22的箭头B和箭头C的FM)。即,经由通常路径的FM与经由直连路径的FM的总和输入到第5层。
在CNN的各层中,有时包含作为缩小处理的池化(pooling)处理,在该情况下,经由直连路径的数据和经由通常路径的数据的尺寸不同。另外,也存在根据层而不包含池化(pooling)处理的情况。在图22的例子中,第2层的处理、第4层的处理、第5层的处理中包含池化(pooling)处理,FM的尺寸被缩小。另一方面,在第3层的处理和第6层的处理中不包含池化(pooling)处理,FM的尺寸没有被缩小。
考虑经由直连路径的数据和经由通常路径的数据的尺寸不同的情况。图23是示出图22的重定位处理中的直连目的地处的iFM的处理的一例的示意图。具体而言,示出在经由直连路径的FM的尺寸相对于通过了通常路径的FM尺寸的纵、横均为2倍的情况下,作为直连目的地的第5层的处理中的iFM的处理的例子。
如图23所示,将经由直连路径的FM沿上下左右分割为四份,将分割而成的FM分别视为1面的FM。由此,分割经由直连路径的FM而成的FM的尺寸与经由通常路径的FM的尺寸相同。并且,分割经由直连路径的FM而成的FM与经由通常路径的FM(第4层的oFM)的总和成为第5层的iFM。这里,FM的维数如果除去表示位置的二维,则满足以下关系。
第5层的输入的维数=(第2层向直连总线的输出的维数)×4+(第4层的输出维数)
这样,直连处理将在输入时刻下为不同坐标信息的信息作为相同坐标的不同的维度信息来处理,这方面是其他图像处理所不具有的特征性的处理。另外,经由直连路径的FM在第5层的处理方法有很多,图23只不过是一个例子。
以上,对作为直连处理的一种的重定位处理进行了说明,但根据网络的不同,也有相反地对较小的FM进行多个面结合而作为一个面的较大FM来处理的处理(以下,称为合并处理)。图24是示出作为直连处理的一种的合并处理的一例的示意图。与图22同样,跳过第3层和第4层而进行了直连,但对较小FM进行多个面结合而生成1个面的较大FM,成为第5层的iFM。
图25是示出合并处理中的直连目的地处的iFM的处理的一例的示意图。具体而言,示出在经由直连路径的FM的尺寸相对于图24的第5层的iFM尺寸纵、横均为1/2、通过通常路径的FM尺寸相对于图24的第5层的iFM尺寸纵、横均为1/8的情况下,作为直连目的地的图24的第5层的处理中的iFM的处理例。
如图25所示,通过对经由直连总线的FM进行2×2面结合来生成1个面的较大FM。此外,交替地排列经由通常总线的FM(有效像素)和无效像素而进行8×8面结合,由此生成1个面的较大FM。由此,经由直连总线的FM的尺寸与经由通常总线的FM的尺寸相同。然后,经由直连总线的FM(较大的FM)与经由通常总线的FM(根据经由通常总线的FM和无效像素而生成的较大FM)的总和成为图24的第5层的iFM。
在合并处理的情况下,对于经由直连路径的数据,仅通过在FM输出时在DRAM上以相邻的方式写出数据就能够应对,因此不需要特殊电路结构就能够实现。经由通常路径的数据需要扩大,存在作为上述无效像素用被称为“填充数据(padding data)”的固定值的像素填充的方法。此外,还存在根据周边像素进行插值的方法等。在使用填充数据的情况下,在IBUF读出控制部中不进行SRAM访问而生成填充数据并输出即可,因此不需要特殊电路结构就能够实现。
(在DRAM上的数据配置方法)
对将具有如上所述的输入输出关系的数据高效地在DRAM上配置、传输、处理的方法进行说明。另外,由于本问题区域是不限于深度学习(DeepLearning)的高维数据串的处理问题,所以在以后的说明中尽可能进行一般化的说明。
与深度学习(DeepLearning)的术语的对应关系如下所述。
“输入数据(串)”=“iFM(输入特征量图)”
“输出数据(串)”=“oFM(输出特征量图)”
“输入维度”=“iFM数”
“输出维度”=“oFM数”
对数据格式进行说明。为了使附图和说明简单,假设输入数据为具有二维的位置信息的4维数据串,其尺寸为30×30像素。此外,假设关于一个像素能够通过1次的突发传输来传输的维数为4。
图26是配置在DRAM上的高维数据串的示意图。符号“D_a_b[X][Y]”定义为对坐标位置(X,Y)中的a维~b维的数据进行比特连接而成的数据。即,在图26中,从DRAM上的左上开始依次排列配置有对坐标位置(0,0)~(29,29)各自的1维~4维的数据进行比特连接而成的数据(在图26中由1个框包围的数据)。
能够通过1次的突发传输来传输的维数为4,因此,在b-a+1=4时,刚好成为突发传输1次(1个突发量)。因此,在图26中由一个框包围的数据刚好成为1突发。这样,通过在DRAM上配置数据,能够以坐标为单位高效地配置、传输、取得数据。
图27是对高维数据串进行分割处理的情况下的、配置在DRAM上的高维数据串的示意图。具体而言,将配置在DRAM上的输入数据串沿上下左右分割(为4个),将分割而成的数据串各自作为15×15的尺寸的单独数据来处理。由此,能够在不使效率下降的情况下,配置、传输、取得数据。
在处理更高维数据串时,由于同一坐标的数据不收敛于1次的突发传输单位,所以以1坐标对应于多次突发传输的方式进行访问控制。图28A和图28B是同一坐标的数据跨多次的突发传输的情况下的、配置在DRAM上的高维数据串的示意图。具体而言,由于同一坐标的1维~8维的数据不收敛于1次突发传输单位,所以对1维~4维的数据进行比特连接而成的数据和对5维~8维的数据进行比特连接而成的数据分别配置在DRAM上。即,在DRAM上配置有对坐标位置(0,0)~(29,29)各自的1维~4维的数据进行比特连接而成的数据和对5维~8维的数据进行比特连接而成的数据。
图28A是将同一坐标的数据分开配置在多个矩形区域上的例子。对坐标位置(0,0)~(29,29)各自中的1维~4维的数据进行比特连接而成的数据、对5维~8维的数据进行比特连接而成的数据……分别分开配置在矩形区域上。
图28B是将同一坐标的数据放在连续的地址上配置的例子。对坐标位置(0,0)~(29,29)各自中的1维~4维的数据进行比特连接而成的数据、对5维~8维的数据进行比特连接而成的数据……放在连续的地址上配置。
可以如图28A所示将同一坐标数据分开配置在多个矩形区域上,也可以如图28B所示将同一坐标数据配置在连续的地址上,进行与它们对应的读法、写法即可。
如以上所说明的那样,为了有效地实施对来自FM大小和维数不同的多个层的输入进行结合的直连处理,能够以坐标为单位突发传输的数据存储是不可缺少的。在将高维数据串传输到DRAM或从DRAM传输高维数据串时,通过利用突发传输,能够防止传输效率下降。
(电路结构)
接着,对用于处理上述格式的数据的电路结构进行说明。这里,为了简化说明,输入数据的维数也设为16。另外,用于处理上述格式的数据的运算处理装置的整体结构与图2相同。
DRAM(存储用外部存储器)9为存储高维数据串的大容量存储器。此处,高维数据串为具有一维以上的位置信息和该位置处的高阶元素的数据串。而且,如上所述,高维数据串的同一坐标配置成能够通过1次以上的突发传输来取得。
在深度学习(DeepLearning)的情况下,存储用外部存储器所存储的高维数据串为具有维度的坐标信息和针对每个坐标的高阶的特征量的特征量图,与一个坐标对应的数据量成为突发传输量的1个单位以上。
数据输入部3通过突发传输从DRAM 9取得高维数据串,将所取得的高维数据串传输到IBUF(数据存储存储器)管理部5。
在深度学习(DeepLearning)的情况下,数据输入部3根据要输入的特征量图的面数和坐标来计算访问DRAM 9的读取地址,通过突发传输从DRAM 9取得高维数据串(iFM),将所取得的高维数据串传输到IBUF管理部。
图29是示出用于处理上述格式的数据的IBUF管理部5的结构的框图。IBUF管理部5具有内部坐标变换部54、IBUF写入控制部55、IBUF读出控制部56和IBUF 1~16。
内部坐标变换部54通过按照规定的方法对数据输入部3从DRAM 9所取得的高维数据串进行计数,生成用于在运算部7中进行处理的坐标和ID(补充信息)。
在深度学习(DeepLearning)的情况下,内部坐标变换部54生成特征量图的ID(iFMID)和坐标。
能够通过1次的突发传输来取得的数据的维数为4,因此,能够通过4次的突发传输取得16维数据。因此,ID的值以在0、1、2、3中循环的方式变化。
IBUF写入控制部55根据所生成的坐标,生成针对IBUF的写入控制信号。此时,根据ID的值来如下述那样生成针对IBUF的写入控制信号。
·ID=0:输入为第1~第4数据,存储到IBUF 1~IBUF 4中。
·ID=1:输入为第5~第8数据,存储到IBUF 5~IBUF 8中。
·ID=2:输入为第9~第12数据,存储到IBUF 9~IBUF 12中。
·ID=3:输入为第13~第16数据,存储到IBUF 13~IBUF 16中。
在深度学习(DeepLearning)的情况下,IBUF写入控制部根据特征量图的ID(iFMID)和坐标来生成针对成为写入对象的数据存储存储器的写入控制信号和写入地址。这样,将从DRAM取得的数据变换为运算部中的处理基准(与输入FM的第几个坐标对应),通过适当地写入IBUF,能够进行运算部中的CNN处理。
图30是IBUF内的示意图。写入地址根据坐标求出,因此,如图30所示,在IBUF各自的同一地址中存储有相同坐标的不同的维数数据。
IBUF读出控制部56接收运算部7的请求,从IBUF按照规定的顺序存取所需的数据。运算部7使用该数据来进行规定的数据处理。然后,数据输出部8将从运算部7输出的同一坐标的数据作为高维数据串以突发传输为单位集中输出。
在深度学习(DeepLearning)的情况下,数据输出部8根据要输出的特征量图的面数和坐标来计算访问DRAM 9的写入地址,通过突发传输向DRAM 9输出数据。
接着,对内部坐标变换部54的动作例进行说明。作为第1例,对通常处理中的内部坐标变换部54的处理进行说明。图31是示出通常处理中的内部坐标变换部的处理的图,示出根据图26所示的iFM生成坐标和iFMID的情形。iFMID始终为0,坐标为iFM图像的状态。iFMID为0,因此,全部数据存储到IBUF 1~4中。
另外,在该情况下,由于未使用IBUF 5~16,因此实际上也可以像IBUF 1~4相当于IBUF 1、IBUF 5~8相当于IBUF 2、IBUF 9~12相当于IBUF 3、IBUF 13~16相当于IBUF 4那样,将4个IBUF作为1个IBUF而无浪费地使用。
作为第2例,对直连处理中的内部坐标变换部54的处理进行说明。图32是示出直连处理中的内部坐标变换部的处理的图,示出根据图27所示的iFM生成坐标和iFMID并写出到IBUF的情形。
iFMID在FM内被设定为沿上下左右不同的值,在各iFMID区域内,坐标以左上为原点被分配。其结果,成为如图32的最下方所示的数据,以如下方式写出到IBUF。
·iFMID=0的区域的数据:存储到IBUF 1~4中
·iFMID=1的区域的数据:存储到IBUF 5~8中
·iFMID=2的区域的数据:存储到IBUF 9~12中
·iFMID=3的区域的数据:存储到IBUF 13~16中
另外,进行向坐标的变换和ID的生成的方法有很多,但若举出最简单的例子,则在输入以光栅扫描方式被流输入的情况下,能够通过对有效数据数量进行计数来进行变换、生成。
此外,在以上的说明中,按每个维度将IBUF表示为不同的SRAM的图像。但是,也可以虚拟地分割一个(或多个)SRAM,将多个维度数据存储到一个SRAM中。
以上,对本发明的一个实施方式进行了说明,但本发明的技术范围并不受上述实施方式限定,能够在不脱离本发明的宗旨的范围内改变构成要素的组合,或者对各构成要素施加各种变更或进行删除。
各构成要素用于说明各构成要素相关的功能或处理。一个结构(电路)可以同时实现多个构成要素相关的功能或处理。
各构成要素也可以分别或整体地通过由一个或多个处理器、逻辑电路、存储器、输入输出接口和计算机可读取的记录介质等构成的计算机实现。在该情况下,也可以通过预先将用于实现各构成要素或整体功能的程序记录到记录介质中,并将所记录的程序读入到计算机系统并执行,来实现上述的各种功能或处理。
在该情况下,例如,处理器是CPU、DSP(Digital Signal Processor:数字信号处理器)和GPU(Graphics Processing Unit:图形处理单元)中的至少一个。例如,逻辑电路是ASIC(Application Specific Integrated Circuit;面向特定用途的集成电路)和FPGA(Field-Programmable Gate Array:现场可编程门阵列)中的至少一个。
此外,此处所说的“计算机系统”可以包含OS或周边设备等硬件。此外,“计算机系统”只要是利用了WWW系统的情况即可,还包含主页提供环境(或显示环境)。此外,“计算机可读取的记录介质”是指软盘、磁光盘、ROM、闪存等可写入的非易失性存储器、CD-ROM等可移动介质,内置在计算机系统中的硬盘等存储装置。
并且,“计算机可读取的记录介质”还可以包含如经由互联网等网络或电话线路等通信线路发送程序的情况下的成为服务器或客户端的计算机系统内部的易失性存储器(例如DRAM(Dynamic Random Access Memory:动态随机存取存储器))那样将程序保持一定时间的记录介质。
此外,上述程序可以从将该程序存储到存储装置等的计算机系统经由传输介质或通过传输介质中的传输波传输到其他计算机系统。这里,传输程序的“传输介质”是如互联网等网络(通信网)或电话线路等通信线路(通信线)那样具有传输信息的功能的介质。此外,上述程序也可以是用于实现上述功能的一部分的程序。并且,还可以是通过与已经在计算机系统中记录的程序的组合来实现上述功能的程序,即所谓的差分文件(差分程序)。
产业上的可利用性
本发明能够广泛应用于进行使用了卷积神经网络的深度学习的运算处理装置,能够在公共的电路中进行卷积处理和全连接处理。并且,也能够应对直连处理并且能够较高地维持DRAM传输效率。
标号说明
1:运算处理装置;
2:控制器;
3:数据输入部;
4:系数输入部;
5:IBUF(数据存储存储器)管理部;
6:WBUF(系数存储存储器)管理部;
7:运算部;
8:数据输出部;
9:DRAM(存储用外部存储器);
51:SRAM读出控制部;
52:延迟电路;
53:系数零检测部;
54:内部坐标变换部;
55:IBUF(数据存储存储器)写入控制部;
56:IBUF(数据存储存储器)读出控制部;
61:WBUF(系数存储存储器)读出部;
62:数据零检测部;
63:延迟电路;
71:运算控制部;
72:滤波处理部;
73:乘法器;
74:第1加法器;
75:第2加法器;
76:非线性变换部;
77:池化处理部;
78:运算执行判定部;
79:零检测部。

Claims (7)

1.一种运算处理装置,其用于进行卷积处理和全连接处理的深度学习,其中,该运算处理装置具有:
数据存储存储器管理部,其具有存储输入特征量图数据的数据存储存储器、以及控制所述数据存储存储器的数据存储存储器控制电路;
系数存储存储器管理部,其具有存储系数的系数存储存储器、以及控制所述系数存储存储器的系数存储存储器控制电路;
数据输入部,其从存储用外部存储器取得所述输入特征量图数据;
系数输入部,其从存储用外部存储器取得所述系数;
数据输出部,其向所述存储用外部存储器写出输出特征量图数据;
运算部,其以输入N并行、输出M并行的结构从所述数据存储存储器取得所述输入特征量图数据,从所述系数存储存储器取得所述系数,而进行滤波处理、累积相加处理、非线性运算处理和池化处理,其中,N、M≥1;以及
控制器,其控制所述数据存储存储器管理部、所述系数存储存储器管理部、所述数据输入部、所述数据输出部和所述运算部,
所述数据存储存储器管理部从所述数据存储存储器取出所述输入特征量图数据,
所述系数存储存储器管理部参考所述数据存储存储器管理部的状态,从所述系数存储存储器取出与从所述数据存储存储器管理部取出的数据对应的系数,
所述数据输出部将从所述运算部输出的M并行的数据连接起来输出到所述存储用外部存储器,
所述运算部具有:
滤波处理部,其具有乘法器和第1加法器,进行所述滤波处理;
第2加法器,其进行将以N并行方式执行的所述滤波处理的结果全部累积相加的所述累积相加处理;
非线性变换部,其对所述累积相加处理的结果进行所述非线性运算处理;
池化处理部,其对所述非线性运算处理的结果进行所述池化处理;以及
运算控制部,其控制所述滤波处理部、所述第2加法器、所述非线性变换部和所述池化处理部,
所述运算控制部在全连接处理时,
控制运算部,使得进行将输入的一维数据串换算为N面规定尺寸的数据串的处理,其中,所述一维数据串的元素数为n,所述规定尺寸为Fx×Fy,n≤Fx×Fy×N,Fx和Fy中的至少一个为2以上,
将滤波器尺寸设定为所述规定尺寸Fx×Fy,
控制运算部,使得作为输出的元素数为m的一维数据串,输出特征量图数据的尺寸为1×1,元素数为m。
2.根据权利要求1所述的运算处理装置,其中,
所述数据存储存储器具有缓冲器,所述缓冲器存储计算池化处理后的1个数据所需的数据集,所述缓冲器存储从所述数据存储存储器读出的数据。
3.根据权利要求1或2所述的运算处理装置,其中,
在所输入的所述输入特征量图数据和所述系数中的至少一方为零的情况下,运算执行判定部向所述滤波处理部通知运算忽略,
在从所述运算执行判定部通知了运算忽略的情况下,所述滤波处理部停止运算处理。
4.根据权利要求3所述的运算处理装置,其中,
所述系数存储存储器管理部具有数据零检测部,该数据零检测部检测从所述数据存储存储器读出的所述输入特征量图数据是否为零,
所述系数存储存储器管理部仅访问所述系数存储存储器中的、从对应的数据存储存储器所读出的所述输入特征量图数据不为零的系数存储存储器,取出所述系数,
所述运算执行判定部检测系数为零的部分,在该检测的结果与所述数据零检测部的结果的逻辑和为零的情况下,向所述滤波处理部通知运算忽略。
5.根据权利要求3或4所述的运算处理装置,其中,
N并行的所述数据存储存储器管理部具有:
系数零检测部,其检测所述系数存储存储器所存储的N×M个系数中的、N并行的全部系数是否为零,而输出系数零检测信号;以及
SRAM读出控制部,其仅从所述数据存储存储器中的、与所述系数零检测信号不为零的系数对应的数据存储存储器取出所述输入特征量图数据,
所述运算执行判定部检测输入特征量图数据为零的部分,在该检测的结果与所述系数零检测部的结果的逻辑和为零的情况下,向所述滤波处理部通知运算忽略。
6.根据权利要求1所述的运算处理装置,其中,
所述存储用外部存储器存储高维数据串,该高维数据串是具有一维以上的位置信息和该位置处的高阶元素的数据串,
所述数据输入部通过突发传输从所述存储用外部存储器取得所述高维数据串,将所取得的所述高维数据串传输到所述数据存储存储器管理部,
所述数据输出部将从所述运算部输出的同一坐标的数据作为高维数据串以突发传输为单位集中输出,
所述数据存储存储器管理部具有:
内部坐标变换部,其将所述数据输入部从所述存储用外部存储器所取得的所述高维数据串变换为在所述运算部中处理的坐标;
数据存储存储器写入控制部,其根据所述坐标,生成针对所述数据存储存储器的写入控制信号;
所述数据存储存储器;以及
数据存储存储器读出控制部,其接收所述运算部的请求,从所述数据存储存储器按照规定的顺序存取所需的数据。
7.根据权利要求1所述的运算处理装置,其中,
所述存储用外部存储器存储高维数据串,该高维数据串是具有一维以上的位置信息和该位置处的高阶元素的数据串,
所述存储用外部存储器所存储的所述高维数据串为具有维度的坐标信息和针对每个坐标的高阶的特征量的特征量图,与一个坐标对应的数据量成为突发传输量的1个单位以上,
所述数据输入部根据要输入的特征量图的面数和坐标来计算访问所述存储用外部存储器的读取地址,通过突发传输从所述存储用外部存储器取得高维数据串,将所取得的高维数据串传输到所述数据存储存储器管理部,
所述数据输出部根据要输出的特征量图的面数和坐标来计算访问所述存储用外部存储器的写入地址,通过突发传输向所述存储用外部存储器输出数据,
所述数据存储存储器管理部具有:
内部坐标变换部,其生成坐标和补充信息;以及
数据存储存储器写入控制部,其根据所述补充信息来生成针对数据存储存储器的写入控制信号,
所述内部坐标变换部通过按照规定的方法对所述数据输入部从所述存储用外部存储器所取得的高维数据串进行计数,生成特征量图的所述补充信息和所述坐标,
所述数据存储存储器写入控制部根据特征量图的所述补充信息和所述坐标来生成针对成为写入对象的数据存储存储器的写入控制信号和写入地址。
CN201980027100.4A 2018-05-11 2019-05-09 运算处理装置 Active CN112005251B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2018/018306 2018-05-11
PCT/JP2018/018306 WO2019215907A1 (ja) 2018-05-11 2018-05-11 演算処理装置
PCT/JP2019/018565 WO2019216376A1 (ja) 2018-05-11 2019-05-09 演算処理装置

Publications (2)

Publication Number Publication Date
CN112005251A true CN112005251A (zh) 2020-11-27
CN112005251B CN112005251B (zh) 2024-09-06

Family

ID=68466793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980027100.4A Active CN112005251B (zh) 2018-05-11 2019-05-09 运算处理装置

Country Status (4)

Country Link
US (1) US20210042616A1 (zh)
JP (1) JP7261226B2 (zh)
CN (1) CN112005251B (zh)
WO (2) WO2019215907A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110827206B (zh) * 2018-08-14 2024-05-28 钰创科技股份有限公司 过滤信号的数位滤波器
JP7402623B2 (ja) * 2019-06-17 2023-12-21 キヤノン株式会社 フィルタ処理装置及びその制御方法
CN111158790B (zh) * 2019-12-31 2021-04-13 清华大学 面向云端深度学习推理的fpga虚拟化方法
WO2022123687A1 (ja) * 2020-12-09 2022-06-16 日本電信電話株式会社 演算回路、演算方法、及びプログラム
JP2023056644A (ja) * 2021-10-08 2023-04-20 LeapMind株式会社 ニューラルネットワーク回路およびニューラルネットワーク回路の制御方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202385063U (zh) * 2011-09-27 2012-08-15 深圳市蓝韵实业有限公司 基于fpga实现的数字滤波器
CN104579240A (zh) * 2013-10-21 2015-04-29 京微雅格(北京)科技有限公司 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法
CN104769846A (zh) * 2012-11-01 2015-07-08 三菱电机株式会社 变换装置、外围装置以及可编程控制器
JP2017021483A (ja) * 2015-07-08 2017-01-26 株式会社デンソー 演算処理装置
CN106775581A (zh) * 2015-10-05 2017-05-31 阿尔特拉公司 定序算术运算操作的方法和装置
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
JP2018032190A (ja) * 2016-08-24 2018-03-01 キヤノン株式会社 演算回路、その制御方法及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4337911B2 (ja) * 2007-05-24 2009-09-30 ソニー株式会社 撮像装置、撮像回路、および撮像方法
JP6314628B2 (ja) * 2014-04-28 2018-04-25 株式会社デンソー 演算処理装置
JP6090286B2 (ja) * 2014-10-31 2017-03-08 カシオ計算機株式会社 機械学習装置、機械学習方法、分類装置、分類方法、プログラム
JP2017191501A (ja) * 2016-04-14 2017-10-19 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
FR3050855B1 (fr) * 2016-04-27 2019-05-03 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de calcul de convolution d'un reseau de neurones convolutionnel
US20180046898A1 (en) * 2016-08-11 2018-02-15 Vivante Corporation Zero Coefficient Skipping Convolution Neural Network Engine
US10387740B2 (en) * 2016-10-10 2019-08-20 Gyrfalcon Technology Inc. Object detection and recognition apparatus based on CNN based integrated circuits
JP6864224B2 (ja) * 2017-01-27 2021-04-28 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法
US11687762B2 (en) * 2018-02-27 2023-06-27 Stmicroelectronics S.R.L. Acceleration unit for a deep learning engine
US20200405152A1 (en) * 2018-05-31 2020-12-31 Panasonic I-Pro Sensing Solutions Co., Ltd. Camera device, image processing method, and camera system
JP2020086479A (ja) * 2018-11-15 2020-06-04 株式会社日立製作所 計算機、ニューラルネットワークの構築方法、および計算機システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202385063U (zh) * 2011-09-27 2012-08-15 深圳市蓝韵实业有限公司 基于fpga实现的数字滤波器
CN104769846A (zh) * 2012-11-01 2015-07-08 三菱电机株式会社 变换装置、外围装置以及可编程控制器
CN104579240A (zh) * 2013-10-21 2015-04-29 京微雅格(北京)科技有限公司 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法
JP2017021483A (ja) * 2015-07-08 2017-01-26 株式会社デンソー 演算処理装置
CN106775581A (zh) * 2015-10-05 2017-05-31 阿尔特拉公司 定序算术运算操作的方法和装置
JP2018032190A (ja) * 2016-08-24 2018-03-01 キヤノン株式会社 演算回路、その制御方法及びプログラム
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ARASH ARDAKANI ET AL.: "An Architecture to Accelerate Convolution in Deep Neural Networks", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS–I: REGULAR PAPERS》, 30 April 2018 (2018-04-30), pages 1349 - 1362, XP011678925, DOI: 10.1109/TCSI.2017.2757036 *
林楗军: "深度学习的硬件实现与优化技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 February 2018 (2018-02-15), pages 140 - 186 *

Also Published As

Publication number Publication date
US20210042616A1 (en) 2021-02-11
JPWO2019216376A1 (ja) 2021-05-13
WO2019216376A1 (ja) 2019-11-14
CN112005251B (zh) 2024-09-06
JP7261226B2 (ja) 2023-04-19
WO2019215907A1 (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
JP6857286B2 (ja) ニューラルネットワークアレイの性能の改善
US11449576B2 (en) Convolution operation processing method and related product
CN112005251A (zh) 运算处理装置
US11775430B1 (en) Memory access for multiple circuit components
CN112840356B (zh) 运算加速器、处理方法及相关设备
Pestana et al. A full featured configurable accelerator for object detection with YOLO
CN108629406B (zh) 用于卷积神经网络的运算装置
US20190243790A1 (en) Direct memory access engine and method thereof
CN114450699A (zh) 由处理单元实现的方法、可读存储介质和处理单元
WO2020073801A1 (zh) 一种3d图像处理中数据读写方法及系统、存储介质及终端
CN110929854B (zh) 一种数据处理方法、装置及硬件加速器
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
US20220113944A1 (en) Arithmetic processing device
Bellas et al. Real-time fisheye lens distortion correction using automatically generated streaming accelerators
CN114359662A (zh) 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法
Müller et al. NEROvideo: A general-purpose CNN-UM video processing system
JP7108702B2 (ja) 複数の入力データセットのための処理
Lee et al. Accelerating deep neural networks using FPGAs and ZYNQ
CN116090518A (zh) 基于脉动运算阵列的特征图处理方法、装置以及存储介质
US11830114B2 (en) Reconfigurable hardware acceleration method and system for gaussian pyramid construction
CN116127685A (zh) 使用机器学习执行模拟
Gonçalves et al. Exploring data size to run convolutional neural networks in low density fpgas
US11263517B1 (en) Flexible weight expansion
Сергієнко et al. Image buffering in application specific processors

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