CN113811900A - 算术运算装置和算术运算系统 - Google Patents

算术运算装置和算术运算系统 Download PDF

Info

Publication number
CN113811900A
CN113811900A CN202080032634.9A CN202080032634A CN113811900A CN 113811900 A CN113811900 A CN 113811900A CN 202080032634 A CN202080032634 A CN 202080032634A CN 113811900 A CN113811900 A CN 113811900A
Authority
CN
China
Prior art keywords
output
product
arithmetic operation
operator
accumulation
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.)
Pending
Application number
CN202080032634.9A
Other languages
English (en)
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.)
Sony Group Corp
Original Assignee
Sony Group 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 Sony Group Corp filed Critical Sony Group Corp
Publication of CN113811900A publication Critical patent/CN113811900A/zh
Pending legal-status Critical Current

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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • G06F17/153Multidimensional correlation or convolution
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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

Landscapes

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

Abstract

本申请在不增加存储器大小的情况下实现深度、逐点能分离卷积(DPSC)运算,并且减小卷积层中的参数数量和运算量。该算术运算装置包括第一乘积求和算子、第二乘积求和算子和累积单元。第一乘积求和算子执行输入数据和第一权重的乘积求和运算。第二乘积求和算子连接到第一乘积求和算子的输出部,并且执行第一乘积求和算子的输出和第二权重的乘积求和运算。累积单元顺序地将第二乘积求和算子的输出相加。

Description

算术运算装置和算术运算系统
技术领域
本技术涉及算术运算装置。更具体地讲,本发明涉及执行卷积运算的算术运算装置和算术运算系统。
背景技术
CNN(卷积神经网络)是一种深度神经网络,主要广泛用于图像识别领域。该CNN在卷积层中对输入特征图(包括输入图像)执行卷积运算,在后续级中将运算结果传输到全连接层,在其上执行运算,并在最后级中从输出层输出结果。空间卷积(SC)运算通常用于卷积层中的运算。在该空间卷积中,对所有位置处的数据执行:使用核(kernel)对输入特征图上的相同位置处的目标数据及其周边数据执行卷积运算,以及将通道方向上的所有卷积运算结果相加。因此,在使用空间卷积的CNN中,乘积求和运算量和参数数据量变得巨大。
另一方面,深度、逐点能分离卷积(DPSC)运算作为运算方法被提出,与空间卷积相比,它减小了运算的量和参数的数量(例如参见PTL 1)。该DPSC对输入特征图执行深度卷积并对所生成的运算结果执行逐点卷积(即1×1卷积运算)以生成输出特征图。
[引文列表]
[专利文献]
[专利文献1]
美国专利申请公开号2018/0189595
发明内容
[技术问题]
在上述常规技术中,使用DPSC运算来减小卷积层中的运算量和参数数量。然而,在该常规技术中,深度卷积的执行结果暂时存储在中间数据缓冲器中,并且从中间数据缓冲器读取执行结果以执行逐点卷积。因此,需要用于存储深度卷积的执行结果的中间数据缓冲器,LSI的内部存储器大小增加,并且LSI的面积成本和功耗增加。
本技术是针对上述问题而提出的,并且其目的是在不增加存储器大小的情况下实现DPSC运算并减小积层中的运算量和参数数量。
[问题的解决方案]
本技术是为了解决上述问题而提出的,并且其第一方面提供了一种算术运算装置和算术运算系统,包括:第一乘积求和算子,该第一乘积求和算子执行输入数据和第一权重的乘积求和运算;第二乘积求和算子,该第二乘积求和算子连接到第一乘积求和算子的输出部以执行第一乘积求和算子的输出和第二权重的乘积求和运算;以及累积单元,该累积单元顺序地将第二乘积求和算子的输出相加。这具有的效果是,由第一乘积求和算子生成的运算结果直接供应给第二乘积求和算子,并且第二乘积求和算子的运算结果被顺序地加到累积单元。
在第一方面中,累积单元可包括:累积缓冲器,该累积缓冲器保持累积结果;以及累积加法器,该累积加法器将保持在累积缓冲器中的累积结果和第二乘积求和算子的输出相加,以将相加结果保持在累积缓冲器中作为新累积结果。这具有的效果是,第二乘积求和算子的运算结果被顺序地相加并保存在累积缓冲器中。
在该第一方面中,第一乘积求和算子可包括:M×N个乘法器,所述M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;以及相加单元,该相加单元将M×N个乘法器的输出相加并将相加结果输出到输出部。在这种情况下,加法器可包括并行地将M×N个乘法器的输出相加的加法器。这具有的效果是,M×N个乘法器的输出并行相加。在这种情况下,加法器可包括用于顺序地将M×N个乘法器的输出相加的串联连接的M×N个加法器。这具有的效果是,M×N个乘法器的输出被顺序相加。
在该第一方面中,第一乘积求和算子可包括:N个乘法器,所述N个乘法器针对N条输入数据执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;N个第二累积单元,所述N个第二累积单元顺序地将第一乘积求和算子的输出相加;以及加法器,该加法器将N个乘法器的输出相加M次以将相加结果输出到输出部。这具有的效果是,由N个乘法器生成M×N个乘积求和运算结果。
在该第一方面中,第一乘积求和算子可包括M×N个乘法器,所述M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘,累积单元可包括:累积缓冲器,该累积缓冲器保持累积结果;第一选择器,该第一选择器从M×N个乘法器的输出和累积缓冲器的输出中选择预定输出;以及加法器,该加法器将第一选择器的输出相加,并且第二乘积求和算子可包括第二选择器,该第二选择器选择加法器的输出或输入数据以将所选择的一者输出到M×N个乘法器中的一者。这具有的效果是,在第一乘积求和算子和第二乘积求和算子之间共享乘法器。
在第一方面中,算术运算装置还可包括切换电路,该切换电路执行切换以使得将第一乘积求和算子的输出或第二乘积求和算子的输出供应给累积单元,其中,累积单元可顺序地将第一乘积求和算子的输出或第二乘积求和算子的输出相加。这具有的效果是,切换电路在第一乘积求和算子的运算结果和经由第二乘积求和算子的运算结果之间切换,并且运算结果在累积单元中被顺序地相加。
在第一方面中,算术运算装置还可包括算术控制单元,算术控制单元在累积单元将第一乘积求和算子的输出相加时,供应用作第二乘积求和算子中的识别元素的预定值而不是第二权重。这具有的效果是,根据算术控制单元的控制切换第一乘积求和算子的运算结果和经由第二乘积求和算子的运算结果,并且运算结果在累积单元中被顺序地相加。
在第一方面中,输入数据可为传感器的测量数据,并且算术运算装置可为神经网络加速器。输入数据可为一维数据,并且算术运算装置可为一维数据信号处理装置。输入数据可为二维数据,并且算术运算装置可为视觉处理器。
附图说明
图1是CNN的总体配置的示例。
图2是CNN的卷积层中的空间卷积运算的概念图。
图3是CNN的卷积层中的深度、逐点能分离卷积运算的概念图。
图4是示出根据本技术的实施例的DPSC运算装置的基本配置的示例的示图。
图5是示出根据本技术的实施例的一个输入特征图21中的目标数据23的DPSC运算的示例的示图。
图6是示出根据本技术的实施例的P个输入特征图21中的目标数据23的DPSC运算的示例的示图。
图7是示出根据本技术的实施例的层间DPSC运算的示例的示图。
图8是示出根据本技术的实施例的DPSC运算装置的第一实施例的示图。
图9是示出根据本技术的实施例的DPSC运算装置的第二示例的示图。
图10是示出根据本技术的实施例的DPSC运算装置的第三示例的示图。
图11是示出根据本技术的实施例的DPSC运算装置的第三示例中的深度卷积期间的运算示例的示图。
图12是示出根据本技术的实施例的DPSC运算装置的第三示例中的逐点卷积期间的运算示例的示图。
图13是示出根据本技术的实施例的DPSC运算装置的第四示例的示图。
图14是示出根据本技术的实施例的输入数据的示例的示图。
图15是示出根据本技术的实施例的DPSC运算装置的第四示例的运算定时示例的示图。
图16是示出根据本技术的第二实施例的算术运算装置的第一配置示例的示图。
图17是示出根据本技术的第二实施例的算术运算装置的第二配置示例的示图。
图18是示出根据本技术的实施例的使用算术运算装置的并行算术运算装置的配置示例的示图。
图19是示出根据本技术的实施例的使用算术运算装置的识别处理装置的配置示例的示图。
图20是示出根据本技术的实施例的算术运算装置中的一维数据的第一应用示例的示图。
图21是示出根据本技术的实施例的算术运算装置中的一维数据的第二应用示例的示图。
具体实施方式
以下,将描述用于执行本技术的模式(以下称为实施例)。说明将按以下顺序进行。
1.第一实施例(执行DPSC运算的示例)
2.第二实施例(在DPSC运算和SC运算之间切换的示例)
3.应用示例
<1.第一实施例>
[CNN]
图1是CNN的总体配置的示例。该CNN是一种类型的深度神经网络,并且包括卷积层20、全连接层30和输出层40。
卷积层20是用于提取输入图像10的特征值的层。卷积层20具有多个层,并且接收输入图像10并在每一层中顺序地执行卷积运算过程。全连接层30将卷积层20的运算结果组合成一个节点并且生成通过激活功能转换的特征变量。输出层40对由全连接层30生成的特征变量进行分类。
例如,在对象识别的情况下,在学习100个标记对象后输入识别目标图像。此时,对应于输出层的每个标签的输出指示输入图像的匹配概率。
图2是CNN的卷积层中的空间卷积运算的概念图。
在CNN的卷积层中通常使用的空间卷积(SC)运算中,使用核22对特定层#L(L是正整数)处的输入特征图(IFM)21上的相同位置处的目标数据23及其周边数据24执行卷积运算。例如,假设核22具有3×3的核大小,并且相应值为K11至K33。另外,对应于核22的输入数据的每个值被设置为A11至A33。此时,执行以下等式的乘积求和运算作为卷积运算。
卷积运算结果=A11×K11+A12×K12+…+A33×K33
在这之后,在通道方向上将所有卷积运算结果相加。因此,获得下一层#(L+1)的相同位置处的数据。
通过对所有位置处的数据执行这些运算,生成一个输出特征图(OFM)。然后,通过改变核来将这些运算重复输出特性图的数量。
如上所述,在使用空间卷积的CNN中,乘积求和运算量和参数数据量变得巨大。因此,如上所述,使用以下深度、逐点能分离卷积(DPSC)运算。
图3是CNN的卷积层中的深度、逐点能分离卷积运算的概念图。
在该深度、逐点能分离卷积(DPSC)运算中,如图中的“a”所示,对输入特征图21执行深度卷积以生成中间数据26。然后,如图中的“b”所示,使用逐点卷积核28对所生成的中间数据26执行作为1×1卷积运算的逐点卷积,并且生成输出特征图29。
在深度卷积中,使用深度卷积核25(在该示例中具有3×3的核大小)对一个输入特征图21执行卷积运算以生成一条中间数据26。这针对所有输入特征图21执行。
在逐点卷积中,对中间数据26中的特定位置处的数据执行具有1×1的核大小的卷积运算。针对所有条中间数据26的相同位置执行该卷积,并且在通道方向上将所有卷积运算结果相加。通过对所有位置处的数据执行这些运算,生成一个输出特征图29。通过改变1×1核来将上述处理重复执行输出特征图29的数量。
[基本配置]
图4是示出根据本技术的实施例的DPSC运算装置的基本配置的示例的示图。
该DPSC运算装置包括3×3卷积运算单元110、1×1卷积运算单元120和累积单元130。在下面的示例中,假定深度卷积核25具有3×3的核大小,但通常,它可具有M×N的任何大小(M和N是正整数)。
3×3卷积运算单元110执行深度卷积运算。3×3卷积运算单元110对输入特征图21的“输入数据”执行其深度卷积核25为“3×3权重”的卷积运算。也就是说,执行输入数据和3×3权重的乘积求和运算。
1×1卷积运算单元120执行逐点卷积运算。1×1卷积运算单元120对3×3卷积运算单元110的输出执行其逐点卷积核28为“1×1权重”的卷积运算。也就是说,执行3×3卷积运算单元110的输出和1×1权重的乘积求和运算。
累积单元130顺序地将1×1卷积运算单元120的输出相加。累积单元130包括累积缓冲器131和加法器132。累积缓冲器131是保持加法器132的相加结果的缓冲器(累加缓冲器)。加法器132是将累积缓冲器131中保持的值与1×1卷积运算单元120的输出相加并将相加结果保持在累积缓冲器131中的加法器。因此,累积缓冲器131保持1×1卷积运算单元120的输出的累积和。
这里,3×3卷积运算单元110的输出直接连接到1×1卷积运算单元120的一个输入。也就是说,在此期间,不需要保持矩阵数据的如此大容量的中间数据缓冲器。然而,如在后面描述的示例中,可插入保持单条数据的触发器等以主要用于定时调整。
图5是示出根据本技术的实施例的一个输入特征图21中的目标数据23的DPSC运算的示例的示图。
聚焦于一个输入特征图21中的单条数据(目标数据23),该DPSC运算装置根据以下过程执行运算。
(a)由3×3卷积运算单元110进行的深度卷积
R1←A11×K11+A12×K12+…+A33×K33
(b)由1×1卷积运算单元120进行的逐点卷积(K11:权重)
R2←R1×K11
(c)由累积单元130进行的累积相加(AB:保持在累积缓冲器131中的内容)
AB←AB+R2
也就是说,在本实施例中,通过DPSC运算装置的一个运算执行针对一个输入特征图21中的目标数据23的DPSC运算。
图6是示出根据本技术的实施例的P个输入特征图21中的目标数据23的DPSC运算的示例的示图。
假设输入特征图21的数据条数为m×n并且输入特征图21的数量为P(m、n、P为正整数),通过将本实施例中的DPSC运算装置的运算执行m×n×p次来生成一个输出特征图29。
图7是示出根据本技术的实施例的层间DPSC运算的示例的示图。
如上所述,根据本技术的实施例的DPSC运算装置,可在没有用于存储深度卷积结果的中间数据缓冲器的情况下执行DPSC运算装置。然而,如该图所示,由于需要以输出特征图29的数量重复执行针对一个输出特征图29的处理,因此深度卷积的执行数量增加。
[第一示例]
图8是示出根据本技术的实施例的DPSC运算装置的第一示例的示图。
在该第一示例中,提供了九个乘法器111、一个加法器118和触发器119作为3×3卷积运算单元110。
每个乘法器111是将输入数据的一个值与深度卷积中的3×3权重的一个值相乘的乘法器。也就是说,九个乘法器111并行地执行深度卷积中的九个相乘。
加法器118是将九个乘法器111的相乘结果相加的加法器。该加法器118在深度卷积中生成乘积求和运算结果R1。
触发器119保持由加法器118生成的乘积求和运算结果R1。触发器119主要保持用于定时调整的单条数据,并且不一起保持矩阵数据。
在该第一示例中,乘法器121被设置为1×1卷积运算单元120。乘法器121是在逐点卷积中将由加法器118生成的乘积求和运算结果R1与1×1权重K11相乘的乘法器。
累积单元130与上述实施例的累积单元相同,并且包括累积缓冲器131和加法器132。
[第二示例]
图9是示出根据本技术的实施例的DPSC运算装置的第二示例的示图。
在该第二示例中,提供三个乘法器111、三个加法器112、三个缓冲器113、一个加法器118和一个触发器119作为3×3卷积运算单元110。也就是说,在上述第一示例中,由九个乘法器111并行执行深度卷积中的九个相乘。然而,在第二示例中,由三个乘法器111分三次执行深度卷积中的九个相乘。因此,在每个乘法器111中设置加法器112和缓冲器113,并且将三次的相乘结果累积地相加。
也就是说,缓冲器113是保持加法器112的相加结果的缓冲器。加法器112是将保持在缓冲器113中的值与乘法器111的输出相加并将相加结果保持在缓冲器113中的加法器。因此,缓冲器113保持乘法器111的输出的累积和。加法器118和触发器119与上述第一示例中的那些相同。
将乘法器121设置为1×1卷积运算单元120这一点与上述第一示例相同。累积单元130包括累积缓冲器131和加法器132这一点与上述第一示例相同。
如上所述,在该第二示例中,可通过由三个乘法器111分三次执行深度卷积中的九个乘法来减小乘法器111的数量。
[第三示例]
图10是示出根据本技术的实施例的DPSC运算装置的第三示例的示图。
在该第三示例中,组合地使用深度卷积所需的乘法器和逐点卷积所需的乘法器。也就是说,在该第三示例中,九个乘法器111由3×3卷积运算单元110和1×1卷积运算单元120共享。
在该第三示例中,累积单元130包括累积缓冲器133、选择器134和加法器135。如后文将描述,选择器134根据操作状态选择九个乘法器111的输出和累积缓冲器133中保持的值中的一者。
加法器135是根据操作状态将保持在累积缓冲器133中的值或选择器134的输出相加并将相加结果保持在累积缓冲器133中的加法器。因此,累积缓冲器133保持选择器134的输出的累积和。
第三示例的DPSC运算装置还包括选择器124。如后文将描述,选择器124根据操作状态选择输入数据或权重。
图11是示出根据本技术的实施例的DPSC运算装置的第三示例中的深度卷积期间的运算示例的示图。
在深度卷积期间,每个乘法器111将输入数据的一个值与深度卷积中的3×3权重的一个值相乘。此时,选择器124选择输入数据的一个值和深度卷积中的3×3权重的一个值并且将所选择的值供应给一个乘法器111。因此,在该深度卷积期间的算术处理与上述第一示例的算术处理相同。
图12是示出根据本技术的实施例的DPSC运算装置的第三示例中的逐点卷积期间的运算示例的示图。
在逐点卷积期间,选择器124选择1×1权重和来自加法器135的输出并且将选择的值提供给一个乘法器111。因此,被供应值的乘法器111执行乘法以用于逐点卷积。另一方面,其他八个乘法器111不操作。
选择器134选择一个乘法器111的相乘结果和累积缓冲器133中保持的值并且将所选择的值供应给加法器135。因此,加法器135将一个乘法器111的相乘结果与累积缓冲器133中保持的值相加并且将该相加结果保持在累积缓冲器133中。
因此,在该第三示例中,通过将逐点卷积所需的一个乘法器与深度卷积所需的乘法器共享,与第一示例相比,可减小乘法器的数量。然而,在这种情况下,与深度卷积相比,乘法器111在逐点卷积期间的利用率减小到1/9。
[第四示例]
图13是示出根据本技术的实施例的DPSC运算装置的第四示例的示图。
在该第四示例中,提供九个乘法器111和九个加法器118作为3×3卷积运算单元110。九个乘法器111中的每一者与上述第一示例的乘法器类似,它将输入数据的一个值与深度卷积中的3×3权重的一个值相乘。九个加法器118串联连接,并且某一加法器118的输出连接到下一级加法器118的一个输入。然而,0被供应给第一级加法器118的一个输入。乘法器111的输出连接到加法器118的另一个输入。
将乘法器121设置为1×1卷积运算单元120这一点与上述第一示例相同。累积单元130包括累积缓冲器131和加法器132这一点与上述第一示例的点相同。
图14是示出本技术的实施例中的输入数据的示例的示图。
输入特征图21被分成与核大小3×3相对应的九条,并作为输入数据输入到3×3卷积运算单元110。此时,在3×3输入数据#1旁边,输入向右移位一的3×3输入数据#2。当到达输入特征图21的右端时,输入数据向下移位一并且类似地从左端输入数据。
这些条输入数据如下处理。
(a)将输入特征图的输入数据#1的编号1的数据和核编号1的数据输入到乘法器#1。从加法器#1输出乘法器#1的运算结果。
(b)在下一个时钟,由乘法器#2计算输入数据#1的编号2的数据和核编号2的数据的乘积。从加法器#2输出加法器#1的运算结果与乘法器#2的运算结果的总和。
(c)通过重复上述运算直到输入数据#1的编号9的数据,从加法器#9输出深度卷积的运算结果。
(d)在紧接上述(c)的时钟处,乘法器121执行逐点卷积。
(e)由加法器132将逐点卷积的运算结果与累积缓冲器131的数据相加,并用相加结果更新累积缓冲器131的值。
通过上述运算,以与上述第一示例中相同的方式获得运算结果。由于第四示例具有其中加法器串联的流水线配置(pipeline configuration),因此乘法器#1可在(b)的运算期间对输入数据#2的编号1的数据执行算术处理,并且在下一个时钟对输入数据#3的编号1的数据执行算术处理。这样,通过顺序地输入下一个输入数据,可一直利用十个乘法器。在上述示例中,按照输入数据编号1至9的顺序处理数据,但即使任意改变顺序,也获得相同的运算结果。
图15是示出根据本技术的实施例的DPSC运算装置的第四示例的运算定时示例的示图。
在该第四示例中,在卷积运算开始后的第一周期中使用乘法器#1,并且在下一个周期中使用乘法器#1和#2。在此之后,所使用的乘法器增加到乘法器#3和#4,在第十周期中从乘法器121输出卷积运算结果,并且此后的每一周期输出卷积运算结果。也就是说,该第四示例的配置像一维收缩阵列一样操作。
假设输入数据大小为n×m(n和m为正整数),输入特征图的数量为I,并且输出特征图的数量为O,运算所需的总周期数为I×O×n×m+9,从卷积运算过程开始后的9个周期到I×O×n×m周期,每个周期顺序输出卷积运算结果。
在一般CNN中,输入数据大小n×m在层的前级中较大,并且I和O在层的后级中较大,在整个网络中I×O×n×m>>9为真。因此,根据第四示例的吞吐量可以看作几乎是1。
另一方面,在上述第三示例中,由于在下一个周期中执行深度卷积并执行逐点卷积,所以每两个周期输出卷积运算结果。也就是说,吞吐量是0.5。
因此,根据第四示例,可以提高整个运算中的算子的利用率,并且与上述第三示例相比,获得两倍的吞吐量。
如上所述,在本技术的第一实施例中,由3×3卷积运算单元110进行的深度卷积的结果被供应给1×1卷积运算单元120以用于逐点卷积,而不经过中间数据缓冲器。因此,可在不使用中间数据缓冲器的情况下执行DPSC运算,并且可减小卷积层中的运算量和参数数量。
也就是说,根据本技术的第一实施例,可通过取消中间数据缓冲器并由此减小芯片大小来降低成本。在本技术的第一实施例中,由于不需要中间数据缓冲器,并且只要提供至多一个输入特征图就可执行运算,因此即使在大规模网络中,也可以不受缓冲器大小的限制地执行DPSC运算。
<2.第二实施例>
在上述第一实施例中,假定卷积层20中的DPSC运算,但是取决于所使用的网络和层,可能期望执行未分离成深度卷积和逐点卷积的SC运算。因此,在第二实施例中,将描述执行DPSC运算和SC运算两者的算术运算装置。
图16是示出根据本技术的第二实施例的算术运算装置的第一配置示例的示图。
第一配置示例的算术运算装置包括k×k卷积运算单元116、1×1卷积运算单元117、切换电路141和累积单元130。
k×k卷积运算单元116执行k×k(k是正整数)卷积运算。输入数据被供应给k×k卷积运算单元116的一个输入并且k×k权重被供应给另一个输入。k×k卷积运算单元116可以被视为执行SC运算的算术电路。另一方面,k×k卷积运算单元116也可以被视为执行DPSC运算中的深度卷积的算术电路。
1×1卷积运算单元117执行1×1卷积运算。1×1卷积运算单元117是执行DPSC运算中的逐点卷积的算术电路,并且对应于上述第一实施例中的1×1卷积运算单元120。k×k卷积运算单元116的输出被供应给1×1卷积运算单元117的一个输入并且1×1权重被供应给另一个输入。
切换电路141是连接到k×k卷积运算单元116的输出或1×1卷积运算单元117的输出的开关。当连接到k×k卷积运算单元116的输出时,SC运算的结果被输出到累积单元130。另一方面,当连接到1×1卷积运算单元117的输出时,DPSC运算的结果被输出到累积单元130。
累积单元130具有与上述第一实施例的配置相同的配置并且顺序地将切换电路141的输出相加。因此,DPSC运算或SC运算的结果被累积地相加到累积单元130。
图17是示出根据本技术的第二实施例的算术运算装置的第二配置示例的示图。
在上述第一配置示例中,需要用于将连接目的地切换到累积单元130的切换电路141。另一方面,在该第二配置示例中,1×1卷积运算单元117的一个输入通过算术控制单元140的控制被设置为1×1权重或值“1”。当输入1×1权重时,1×1卷积运算单元117的输出是DPSC运算的结果。当输入值“1”时,由于1×1卷积运算单元117原样输出k×k卷积运算单元116的输出,因此输出SC运算的结果。如上所述,在第二示例中,通过由算术控制单元140控制加权系数,可以在不提供切换电路141的情况下实现与上述第一示例的功能相同的功能。
在本实施例中,假设输入值“1”以便从1×1卷积运算单元117原样输出k×k卷积运算单元116的输出,但只要可原样输出k×k卷积运算单元116的输出,也可以使用其他值。也就是说,可使用作为1×1卷积运算单元117中的识别元素的预定值。
如上所述,根据本技术的第二实施例,可根据需要选择DPSC运算和SC运算的结果。因此,它可用于CNN的各种网络。而且,SC运算和DPSC运算都可以在网络中的任一层中进行。即使在这种情况下,也可以在不提供中间数据缓冲器的情况下执行DPSC运算。
<3.应用示例>
[并行算术运算装置]
图18是示出根据本技术的实施例的使用算术运算装置的并行算术运算装置的配置示例的示图。
该并行算术运算装置包括多个算子210、输入特征图保持单元220、核保持单元230和输出数据缓冲器290。
根据上述实施例,多个算子210中的每一者是算术运算装置。也就是说,该并行算术运算装置通过将根据上述实施例的多个算术运算装置布置为并行算子210来配置。
输入特征图保持单元220保持输入特征图,并且将输入特征图的数据作为输入数据供应给多个算子210中的每一者。
核保持单元230保持用于卷积运算的核并且将核提供给多个算子210中的每一者。
输出数据缓冲器290是保持从多个算子210中的每一者输出的运算结果的缓冲器。
算子210中的每一者在一个运算中对输入特征图的数据的一个片段(例如,一个像素的数据)执行运算。通过并行布置算子210并同时执行运算,可在短时间内完成整个运算。
[识别处理装置]
图19是示出根据本技术的实施例的使用算术运算装置的识别处理装置的配置示例的示图。
该识别处理装置300是执行图像识别处理的视觉处理器,并且包括算术运算单元310、输出数据缓冲器320、内置存储器330和处理器350。
算术运算单元310执行识别处理所需的卷积运算,并且包括多个算子311和算术控制单元312,如上述并行算术运算装置中的那样。输出数据缓冲器320是保持从多个算子311中的每一者输出的运算结果的缓冲器。内置存储器330是保持运算所需数据的存储器。处理器350是控制整个识别处理装置300的控制器。
另外,在识别处理装置300的外部设置传感器组301、存储器303和识别结果显示单元309。传感器组301是用于获取要识别的传感器数据(测量数据)的传感器。作为传感器组301,例如使用声音传感器(麦克风)、图像传感器等。存储器303是保存来自传感器组301的传感器数据、卷积运算中使用的权重参数等的存储器。识别结果显示单元309显示识别处理装置300的识别结果。
当传感器组301获取传感器数据时,传感器数据被加载到存储器303中并且与权重参数等一起加载到内置存储器330中。还可以将数据直接从存储器303加载到算术运算单元310中,而不经过内置存储器330。
处理器350控制将数据从存储器303加载到内置存储器330、将卷积运算的执行命令加载到运算单元310等。算术控制单元312是控制卷积运算过程的单元。因此,运算单元310的卷积运算结果被存储在输出数据缓冲器320中,并用于下一个卷积运算、在卷积运算完成后向存储器303的数据传输等。在所有运算完成之后,数据被存储在存储器303中,并且例如,对应于所收集的声音数据的类型的语音数据被输出到识别结果显示单元309。
为了减小累积缓冲器131的容量,也可以设想其中将深度卷积的结果存储在存储器303中的配置。然而,需注意,由于对芯片外部的存储器的访问通常比对芯片内部的缓冲器的访问更慢并且消耗大量的功率。
[一维数据应用实例]
根据本技术的实施例的算术运算装置可用于各种目标,不仅可用于图像数据,而且可用于其中例如一维数据被二维布置的数据。也就是说,本实施例中的算术运算装置可以是一维数据信号处理装置。例如,具有对准相位的特定周期的波形数据可二维地布置。这样,可通过深度学习等来学习波形形状的特性。也就是说,本技术的实施例的利用范围不限于图像领域。
图20是示出根据本技术的实施例的算术运算装置中的一维数据的第一应用示例的示图。
在该第一应用示例中,如图中的“a”所示,将考虑其相位对准的多个采样波形。每个波形都是一维时间序列数据,水平方向指示时间方向,并且垂直方向表示信号的量值。
如图中“b”所示,当这些波形在每个时间的数据值垂直布置时,其可被表示为二维数据。通过相对于二维数据执行根据本技术实施例的算术处理,可提取相应波形的公共特征。因此,可获得如图中“c”所示的特征提取结果。
图21是示出算术运算装置中的一维数据的第二应用示例的示图。
在第二应用示例中,如图中的“a”所示,将考虑一个波形。该波形都是一维时间序列数据,并且水平方向指示时间方向,并且垂直方向表示信号的量值。
如图中“b”所示,可将此波形视为按时间顺序的三条数据(1×3维数据)的数据集,并且可执行DPSC运算。此时,包括在相邻数据集中的这些条数据部分重叠。
这里,已经描述了1×3维数据的示例,但它一般可以应用于1×n维数据(n为正整数)。另外,即使对于具有三维或更多维的数据,也可以将数据的一部分视为二维数据,并且可以执行DPSC运算。也就是说,本技术的实施例可适用于各种维度的数据。
在上述实施例中已经描述了识别过程,但本技术的实施例可用作用于学习的神经网络的一部分。也就是说,根据本技术的实施例的算术运算装置可以作为神经网络加速器执行推理处理和学习处理。因此,本技术适用于包含人工智能的产品。
上述实施例分别描述了用于体现本技术的示例,并且实施例中的事项与权利要求中指定本发明的事项具有对应关系。类似地,权利要求中规定本发明的事项和本技术的实施例中由相同名称表示的事项具有对应关系。然而,本技术不限于实施例,并且可以通过在不脱离其要旨的情况下对实施例进行各种修改来体现。
上述实施例中描述的处理过程可以被认为是包括一系列这些过程的方法,或者可以被认为是致使计算机执行一系列这些过程的程序或存储该程序的记录介质。例如,可使用光盘(CD)、微型光盘(MD)、数字通用盘(DVD)、存储器卡或蓝光(注册商标)盘作为该记录介质。
在说明书中描述的效果仅是示例,并且本技术的效果不限于它们并可包括其他效果。
本技术也可以如下所述配置。
(1)一种算术运算装置,包括:第一乘积求和算子,第一乘积求和算子执行输入数据和第一权重的乘积求和运算;第二乘积求和算子,第二乘积求和算子连接到第一乘积求和算子的输出部以执行第一乘积求和算子的输出和第二权重的乘积求和运算;以及累积单元,累积单元顺序地将第二乘积求和算子的输出相加。
(2)根据(1)所述的算术运算装置,其中,累积单元包括:累积缓冲器,累积缓冲器保持累积结果;以及累积加法器,累积加法器将保持在累积缓冲器中的累积结果和第二乘积求和算子的输出相加,以将相加结果保持在累积缓冲器中作为新累积结果。
(3)根据(1)或(2)所述的算术运算装置,其中,第一乘积求和算子包括:M×N个乘法器,M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;以及相加单元,相加单元将M×N个乘法器的输出相加并将相加结果输出到输出部。
(4)根据(3)所述的算术运算装置,其中,加法单元包括并行地将M×N个乘法器的输出相加的加法器。
(5)根据(3)所述的算术运算装置,其中,加法单元包括用于顺序地将M×N个乘法器的输出相加的串联连接的M×N个加法器。
(6)根据(1)或(2)所述的算术运算装置,其中,第一乘积求和算子包括:N个乘法器,N个乘法器针对每N条数据执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;N个第二累积单元,N个第二累积单元顺序地将第一乘积求和算子的输出相加;以及加法器,加法器将N个乘法器的输出相加M次以将相加结果输出到输出部。
(7)根据(1)或(2)所述的算术运算装置,其中,第一乘积求和算子包括M×N个乘法器,M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘,累积单元包括:累积缓冲器,累积缓冲器保持累积结果;第一选择器,第一选择器从M×N个乘法器的输出和累积缓冲器的输出中选择预定输出;以及加法器,加法器将第一选择器的输出相加,并且第二乘积求和算子包括第二选择器,第二选择器选择加法器的输出或输入数据以将所选择的一者输出到M×N个乘法器中的一者。
(8)根据(1)至(7)中任一项所述的算术运算装置,还包括:切换电路,切换电路执行切换以使得将第一乘积求和算子的输出或第二乘积求和算子的输出供应给累积单元,其中,累积单元顺序地将第一乘积求和算子的输出或第二乘积求和算子的输出相加。
(9)根据(1)至(7)中任一项所述的算术运算装置,还包括:算术控制单元,算术控制单元在累积单元将第一乘积求和算子的输出相加时,供应用作第二乘积求和算子中的识别元素的预定值而不是第二权重。
(10)根据(1)至(9)中任一项所述的算术运算装置,其中,输入数据为传感器的测量数据,并且算术运算装置为神经网络加速器。
(11)根据(1)至(9)中任一项所述的算术运算装置,其中,输入数据为一维数据,并且算术运算装置为一维数据信号处理装置。
(12)根据(1)至(9)中任一项所述的算术运算装置,其中,输入数据为二维数据,并且算术运算装置为视觉处理器。
(13)一种算术运算系统,包括:多个算术运算装置,多个算术运算装置均包括:第一乘积求和算子,第一乘积求和算子执行输入数据和第一权重的乘积求和运算;第二乘积求和算子,第二乘积求和算子连接到第一乘积求和算子的输出部以执行第一乘积求和算子的输出和第二权重的乘积求和运算;以及累积单元,累积单元顺序地将第二乘积求和算子的输出相加;输入数据供应单元,输入数据供应单元将输入数据供应给多个算术运算装置;权重供应单元,权重供应单元将第一权重和第二权重供应给多个算术运算装置;以及输出数据缓冲器,输出数据缓冲器保持多个算术运算装置的输出。
[参考符号列表]
110 3×3卷积运算单元
111 乘法器
112、118 加法器
113 缓冲器
116 k×k卷积运算单元
117 1×1卷积运算单元
119 触发器
120 1×1卷积运算单元
121 乘法器
124 选择器
130 累积单位
131、133 累积缓冲器
132、135 加法器
134 选择器
140 算术控制单元
141 切换电路
210 算子
220 输入特征图保持单元
230 核保持单元
290 输出数据缓冲器
300 识别处理装置
301 传感器组
303 存储器
309 识别结果显示单元
310 算术运算单元
311 算子
312 算术控制单元
320 输出数据缓冲器
330 内置存储器
350 处理器。

Claims (13)

1.一种算术运算装置,包括:
第一乘积求和算子,所述第一乘积求和算子执行输入数据和第一权重的乘积求和运算;
第二乘积求和算子,所述第二乘积求和算子连接到所述第一乘积求和算子的输出部以执行所述第一乘积求和算子的输出和第二权重的乘积求和运算;以及
累积单元,所述累积单元顺序地将所述第二乘积求和算子的输出相加。
2.根据权利要求1所述的算术运算装置,其中,所述累积单元包括:
累积缓冲器,所述累积缓冲器保持累积结果;以及
累积加法器,所述累积加法器将保持在所述累积缓冲器中的所述累积结果和所述第二乘积求和算子的输出相加,以将相加结果保持在所述累积缓冲器中作为新累积结果。
3.根据权利要求1所述的算术运算装置,其中
所述第一乘积求和算子包括:
M×N个乘法器,所述M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;以及
相加单元,所述相加单元将所述M×N个乘法器的输出相加并将相加结果输出到所述输出部。
4.根据权利要求3所述的算术运算装置,其中
所述加法单元包括并行地将所述M×N个乘法器的所述输出相加的加法器。
5.根据权利要求3所述的算术运算装置,其中
所述加法单元包括用于顺序地将所述M×N个乘法器的所述输出相加的串联连接的M×N个加法器。
6.根据权利要求1所述的算术运算装置,其中
所述第一乘积求和算子包括:
N个乘法器,所述N个乘法器针对每N条数据执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘;
N个第二累积单元,所述N个第二累积单元顺序地将所述第一乘积求和算子的输出相加;以及
加法器,所述加法器将所述N个乘法器的所述输出相加M次以将相加结果输出到所述输出部。
7.根据权利要求1所述的算术运算装置,其中
所述第一乘积求和算子包括M×N个乘法器,所述M×N个乘法器执行M×N(M和N是正整数)条输入数据和对应的M×N个第一权重的相乘,
所述累积单元包括:
累积缓冲器,所述累积缓冲器保持累积结果;
第一选择器,所述第一选择器从所述M×N个乘法器的输出和所述累积缓冲器的输出中选择预定输出;以及
加法器,所述加法器将所述第一选择器的所述输出相加,并且所述第二乘积求和算子包括第二选择器,所述第二选择器选择所述加法器的输出或所述输入数据以将所选择的一者输出到所述M×N个乘法器中的一者。
8.根据权利要求1所述的算术运算装置,还包括:
切换电路,所述切换电路执行切换以使得将所述第一乘积求和算子的输出或所述第二乘积求和算子的输出供应给所述累积单元,其中
所述累积单元顺序地将所述第一乘积求和算子的输出或所述第二乘积求和算子的输出相加。
9.根据权利要求1所述的算术运算装置,还包括:
算术控制单元,所述算术控制单元在所述累积单元将所述第一乘积求和算子的输出相加时,供应用作所述第二乘积求和算子中的识别元素的预定值而不是所述第二权重。
10.根据权利要求1所述的算术运算装置,其中
所述输入数据为传感器的测量数据,并且所述算术运算装置为神经网络加速器。
11.根据权利要求1所述的算术运算装置,其中
所述输入数据为一维数据,并且所述算术运算装置为一维数据信号处理装置。
12.根据权利要求1所述的算术运算装置,其中,所述输入数据为二维数据,并且所述算术运算装置为视觉处理器。
13.一种算术运算系统,包括:
多个算术运算装置,所述多个算术运算装置均包括:第一乘积求和算子,所述第一乘积求和算子执行输入数据和第一权重的乘积求和运算;第二乘积求和算子,所述第二乘积求和算子连接到所述第一乘积求和算子的输出部以执行所述第一乘积求和算子的输出和第二权重的乘积求和运算;以及累积单元,所述累积单元顺序地将所述第二乘积求和算子的输出相加;
输入数据供应单元,所述输入数据供应单元将所述输入数据供应给所述多个算术运算装置;
权重供应单元,所述权重供应单元将所述第一权重和所述第二权重供应给所述多个算术运算装置;以及
输出数据缓冲器,所述输出数据缓冲器保持所述多个算术运算装置的输出。
CN202080032634.9A 2019-05-10 2020-01-30 算术运算装置和算术运算系统 Pending CN113811900A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019089422 2019-05-10
JP2019-089422 2019-05-10
PCT/JP2020/003485 WO2020230374A1 (ja) 2019-05-10 2020-01-30 演算装置および演算システム

Publications (1)

Publication Number Publication Date
CN113811900A true CN113811900A (zh) 2021-12-17

Family

ID=73289562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080032634.9A Pending CN113811900A (zh) 2019-05-10 2020-01-30 算术运算装置和算术运算系统

Country Status (5)

Country Link
US (1) US20220300253A1 (zh)
EP (1) EP3968242A4 (zh)
JP (1) JP7435602B2 (zh)
CN (1) CN113811900A (zh)
WO (1) WO2020230374A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210334072A1 (en) * 2020-04-22 2021-10-28 Facebook, Inc. Mapping convolution to connected processing elements using distributed pipelined separable convolution operations
JP2022022876A (ja) * 2020-07-09 2022-02-07 キヤノン株式会社 畳み込みニューラルネットワーク処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6700712B2 (ja) 2015-10-21 2020-05-27 キヤノン株式会社 畳み込み演算装置
US10083171B1 (en) * 2017-08-03 2018-09-25 Gyrfalcon Technology Inc. Natural language processing using a CNN based integrated circuit
US10360470B2 (en) 2016-10-10 2019-07-23 Gyrfalcon Technology Inc. Implementation of MobileNet in a CNN based digital integrated circuit

Also Published As

Publication number Publication date
EP3968242A4 (en) 2022-08-10
JPWO2020230374A1 (zh) 2020-11-19
WO2020230374A1 (ja) 2020-11-19
JP7435602B2 (ja) 2024-02-21
EP3968242A1 (en) 2022-03-16
US20220300253A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US11461684B2 (en) Operation processing circuit and recognition system
EP3579150B1 (en) Operation apparatus and method for a neural network
US20200285605A1 (en) Systolic array and processing system
US5471627A (en) Systolic array image processing system and method
JP2021508125A (ja) 行列乗算器
US20210350204A1 (en) Convolutional neural network accelerator
WO2018132718A1 (en) Methods and apparatus for matrix processing in a convolutional neural network
KR20170007151A (ko) 인공 신경 네트워크를 실행하는 방법 및 장치
CN108205519A (zh) 矩阵乘加运算装置和方法
US20220083857A1 (en) Convolutional neural network operation method and device
KR102610842B1 (ko) 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법
US10809978B2 (en) Merge sort accelerator
CN113811900A (zh) 算术运算装置和算术运算系统
CN110780921A (zh) 数据处理方法和装置、存储介质及电子装置
CN112395092A (zh) 数据处理方法及人工智能处理器
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
US20200160161A1 (en) Deep neural network accelerator including lookup table based bit-serial processing elements
GB2352309A (en) A system for performing modular multiplication
CN112784951B (zh) Winograd卷积运算方法及相关产品
CN112639839A (zh) 神经网络的运算装置及其控制方法
CN110716751B (zh) 高并行度计算平台、系统及计算实现方法
JP6906622B2 (ja) 演算回路および演算方法
CN117063182A (zh) 一种数据处理方法和装置
CN115713104A (zh) 用于神经网络的数据处理电路、神经网络电路和处理器
CN111985628B (zh) 计算装置及包括所述计算装置的神经网络处理器

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