CN113220626A - 人工智能加速器及其处理方法 - Google Patents
人工智能加速器及其处理方法 Download PDFInfo
- Publication number
- CN113220626A CN113220626A CN202010084449.6A CN202010084449A CN113220626A CN 113220626 A CN113220626 A CN 113220626A CN 202010084449 A CN202010084449 A CN 202010084449A CN 113220626 A CN113220626 A CN 113220626A
- Authority
- CN
- China
- Prior art keywords
- weight
- artificial intelligence
- sub
- input data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种人工智能加速器及其处理方法,该人工智能加速器接收二位的一输入数据组与多层的整体权重形态中被选择的其一。人工智能加速器包括多个处理片以及加总输出电路。每一个处理片接收输入数据组的次输入数据组对整体权重形态的次权重形态的多个权重区块分别进行回旋运算得到多个权重运算值以及通过对多个权重运算值进行多阶的移位与相加运算得到由该次输入数据组与该次权重形态直接进行回旋运算所预期的权重输出值。加总输出电路通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
Description
技术领域
本发明是有关于人工智能加速器的技术,且特别是关于由分割的输入位与分割的权重区块所构成的人工智能加速器及其处理方法。
背景技术
人工智能加速器的应用包括例如类似过滤器的作用,其辨别输入数据所代表的形态与已知形态的吻合程度。一种应用例如对所摄取的影像中通过人工智能加速器辨别出是否包含有眼睛、鼻子、脸等等的信息。
人工智能加速器所要处的数据例如是一张影像的所有像素的数据,也就是其输入数据是很大量位的数据,这些数据平行输入后,进行存储在人工智能加速器内各种形态进行比对运算。这些形态是以权重的方式存储在的大量存储单元中。存储单元的架构是3D的架构,其由多层的2D存储单元层所构成,每一层代表一个特征形态,以权重值的方式存储于一层的存储单元阵列,其通过字线控制依序选择所要处理的一层的存储单元阵列。输入数据是由位线输入。输入数据与存储单元阵列进行回旋运算(convolution operation)得到对应此层的存储单元阵列的特征图案的吻合程度。
人工智能加速器要处理的运算量很大,如果多层的存储单元阵列集合在一个单元且以位当作运处理单位,其整体的电路会很大。而如此在操作上速度会延迟且耗能。就从人工智能加速器所要求能快速处理来过滤辨别输入图像的内容来看,一般单一电路芯片的设计是需要继续提升,例如操作速度的考虑。
发明内容
本发明的实施例提供一种人工智能加速器,由分割的输入位与分割的权重区块所构成的人工智能加速器,其后再通过移位与相加运算将分别平行运算的值组合还原到单一芯片所预期的运算结果。如此,人工智能加速器的处理速度可以有效提升,且可以减少耗能。
根据本发明的一实施例,本发明提供一种人工智能加速器,接收二位的一输入数据组与多层的整体权重形态中被选择的其一进行回旋运算。该输入数据组分为多个次数据组。人工智能加速器包括多个处理片及加总输出电路。每一个该处理片包括:接收端元件,分别接收一个该次数据组。权重存储部存储该整体权重形态的部分权重形态,其中该部分权重存储部包含多个权重区块,每一个该权重区块依照位顺序存储该部分权重形态的一区块部分,其中该权重存储部的存储单元阵列结构相对于所对应的该次数据组,规划成将该次数据组分别与每一个该区块部分进行回旋运算得到依序的多个权重运算值。逐块输出电路包含多个移位器及多个加法器,通过多阶的移位与相加运算将该多个权重运算值总和得到由该次数据组与该部分权重形态直接进行回旋运算所预期的权重输出值。加总输出电路包含多个移位器及多个加法器,通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
根据本发明的一实施例,对于所述的人工智能加速器,该输入数据组包含i个位,分为p个该次数据组,i与p是整数,每一个该次数据组包含i/p个位。
根据本发明的一实施例,对于所述的人工智能加速器,该输入数据组包含i个位,该多个处理片的数量是p个,该输入数据组分为p个该次数据组,该i与p是大于或等于2的整数,该i大于该p,每一个该次数据组包含i/p个位。
根据本发明的一实施例,对于所述的人工智能加速器,该部分权重存储部包含的该多个权重区块的数量是q个,q大于或等于2的整数,该部分权重存储部包含j个位,该j、q是大于或等于2的整数,该j大于该q,每一个该权重区块包含j/q个存储单元。
根据本发明的一实施例,对于所述的人工智能加速器,该多个处理片总合的该多个权重存储部的存储单元总量为p×q×2(i/p+j/q)。
根据本发明的一实施例,对于所述的人工智能加速器,对于该逐块输出电路,在每一阶的该移位与相加运算中包括至少一个该移位器与至少一个该加法器。对于每一阶的多个输入值以相邻两个为一处理单元,其中属于较高位的该输入值通过该移位器后与较低位的该输入值由该加法器相加后输出给下一阶,其中最后一阶输出单一值当作对应该处理片的该权重输出值。
根据本发明的一实施例,对于所述的人工智能加速器,在第一阶的该移位器的移位量是j/q存储单元,后一阶的该移位器的移位量是前一阶的该移位器的移位量的两倍。
根据本发明的一实施例,对于所述的人工智能加速器,对于该加总输出电路,在每一阶的该移位与相加运算中包括至少一个该移位器与至少一个该加法器。对于每一阶的多个输入值以相邻两个为一处理单元,其中属于较高位的该输入值通过该移位器后与较低位的该输入值由该加法器相加后输出给下一阶,其中最后一阶输出单一值当作该总和值。
根据本发明的一实施例,对于所述的人工智能加速器,在第一阶的该移位器的移位量是i/p位,后一阶的该移位器的移位量是前一阶的该移位器的移位量的两倍。
根据本发明的一实施例,对于所述的人工智能加速器,其更包括正规化处理电路,对该总和值进行正规化处理得到正规化总和值,以及数量化处理电路,以一基数将正规化总和值数量化成为整数量值。
根据本发明的一实施例,对于所述的人工智能加速器,该处理电路包括多个感应放大器,分别感应每一个该区块部分进行回旋运算后得到多个感应值,当作该多个权重运算值。
根据本发明的一实施例,本发明更提供一种用于人工智能加速器的处理方法。该人工智能加速器接收二位的一输入数据组与多层的整体权重形态中被选择的其一进行回旋运算,该输入数据组分为多个次数据组。该处理方法包括使用多个处理片,每一个该处理片包括执行。使用接收端元件分别接收一个该次数据组。使用权重存储部存储该整体权重形态的部分权重形态,其中该部分权重存储部包含多个权重区块,每一个该权重区块依照位顺序存储该部分权重形态的一区块部分,其中该权重存储部的存储单元阵列结构相对于所对应的该次数据组,规划成将该次数据组分别与每一个该区块部分进行回旋运算得到依序的多个权重运算值。使用包含多个移位器及多个加法器的逐块输出电路,通过多阶的移位与相加运算将该多个权重运算值总和得到由该次数据组与该部分权重形态直接进行回旋运算所预期的权重输出值。使用包含多个移位器及多个加法器的加总输出电路,通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,该输入数据组包含i个位,分为p个该次数据组,i与p是整数,每一个该次数据组包含i/p个位。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,该输入数据组包含i个位,该多个处理片的数量是p个,该输入数据组分为p个该次数据组,该i与p是大于或等于2的整数,该i大于该p,每一个该次数据组包含i/p个位。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,该部分权重存储部包含的该多个权重区块的数量是q个,q大于或等于2的整数,该部分权重存储部包含j个位,该j、q是大于或等于2的整数,该j大于该q,每一个该权重区块包含j/q个存储单元,该多个处理片总合的该多个权重存储部的存储单元总量为p×q×2(i/p+j/q)。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,对于该逐块输出电路的操作,在每一阶的该移位与相加运算中包括使用至少一个该移位器与至少一个该加法器。对于每一阶的多个输入值以相邻两个为一处理单元,其中属于较高位的该输入值通过该移位器后与较低位的该输入值由该加法器相加后输出给下一阶,其中最后一阶输出单一值当作对应该处理片的该权重输出值。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,在第一阶的该移位器的移位量是j/q存储单元,后一阶的该移位器的移位量是前一阶的该移位器的移位量的两倍。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,对于该加总输出电路的操作,在每一阶的该移位与相加运算中包括至少一个该移位器与至少一个该加法器。对于每一阶的多个输入值以相邻两个为一处理单元,其中属于较高位的该输入值通过该移位器后与较低位的该输入值由该加法器相加后输出给下一阶,其中最后一阶输出单一值当作该总和值。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,在第一阶的该移位器的移位量是i/p位,后一阶的该移位器的移位量是前一阶的该移位器的移位量的两倍。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,更包括:使用正规化处理电路,对该总和值进行正规化处理得到正规化总和值;以及使用数量化处理电路,以一基数将正规化总和值数量化成为整数量值。
根据本发明的一实施例,对于所述的人工智能加速器的处理方法,该处理电路包括多个感应放大器,使用该多个感应放大器分别感应每一个该区块部分进行回旋运算后得到多个感应值,当作该多个权重运算值。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1是依据本发明一实施例,人工智能加速器的基本架构示意图。
图2是依据本发明一实施例,人工智能加速器的操作机制示意图。
图3是依据本发明一实施例,人工智能加速器的规划示意图。
图4是依据本发明一实施例,人工智能加速器的规划示意图。
图5是依据本发明一实施例,存储单元的存储单元架构示意图。
图6是依据本发明一实施例,对于一个处理片针对多个权重区块加总的机制示意图。
图7是依照本发明的一实施例,是依据本发明一实施例,对于多个处理片之间的加总电路的操作机制示意图。
图8是依据本发明一实施例,人工智能加速器的整体应用配置示意图。
图9是依据本发明一实施例,人工智能加速器的处理方法的流程示意图。
【符号说明】
20:人工智能加速器
50:输入数据
52:接收端元件
54:存储单元
56:存储单元阵列结构
58:输出数据
60:感应放大器
100_1、100_2、100_(p-1)、100_p:处理片
102_1、102_2、102_p:次输入数据组
104_1、104_2、104_p:输出数据
300:存储单元
302:权重区块
308、314、316:移位器
312、318:加法器
350、354、356:移位器
352、358:加法器
400:处理电路
402:乘法器
404:常数
406:加法器
408:偏移量
500:量化电路
502:除法器
504:基数
600:整体系统
602:人工智能加速器
604:控制单元
700:存储器
S100、S102、S104、S106、S108:步骤
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的实施例提供一种人工智能加速器,由分割的输入位与分割的权重区块所构成的人工智能加速器。利用分割的输入位与分割的权重区块平行,再通过移位与相加运算将分别平行运算的值做组合,以还原得到单一芯片所预期的运算结果。如此,人工智能加速器的处理速度可以有效提升,且可以减少耗能。
以下提供多个实施例来说明本发明,但是本发明不限于所举的实施例。
图1是依据本发明一实施例,人工智能加速器的基本架构示意图。参阅图1,人工智能加速器20包括以3D结构配置的NAND存储单元54,其包含多层的2D存储阵列。每一层的存储阵列的每一个存储单元分别存储一权重值。每一层的存储阵列的所有权重值依照预定的特征而构成权重形态。权重形态例如是所要辨识的形态的数据,例如脸、耳、眼睛、鼻子、嘴、或是对象等等的形状数据。每一种权重形态以2D存储阵列存储于3D NAND存储单元54的一层。
通过人工智能加速器20的存储单元阵列(cell array)结构56对应输入数据以线路安排,存储于存储单元的权重形态可以与经过接收端元件52所接收与转换的输入数据50进行回旋运算。此回旋运算一般例如是矩阵的相乘运算而得到一个输出值。依照对一层的权重形态通过存储单元阵列结构56进行回旋运算后得到输出数据58。输出数据58可表示输入数据50与权重形态的匹配程度。回旋运算可以依据本领域的一般方式来进行,无需别限制。于此其详细操作不再予描述。从效能而言,每一层的权重形态类似一个对象的过滤层,以辨识输入数据50与之相匹配的程度而达到辨识的功能。
图2是依据本发明一实施例,人工智能加速器的操作机制示意图。参阅图1、2,输入数据50例如是一张影像的数字数据。以动态的侦测的影像为例,摄影机随时拍摄的实际影像的部分或全部,会由人工智能加速器20进行辨别是否包含有存储于存储单元54的多种对象的至少其一。由于影像分辨率的提高,一张图像的数据报含大量的数据。存储单元54的架构是3D的多层的2D存储单元阵列。一层存储单元阵列包含i个用于输入数据的位线以及对应权重列(row)的j个选择线。也就是,存储权重的存储单元54是以多层的i×j的矩阵所构成。参数i与j是很大的整数。输入数据50会由存储单元54的位线接收,其分别接收影像的像素数据。通过外围配置的处理电路,输入数据50与权重进行包含矩阵相乘的回旋运算而输出运算后的输出数据58。
就较直接的回旋运算,其可以用分别的单一个位与单一个权重进行一一运算。然而由于要处理的数据量很大,因此整体的存储单元是很大,而构成一个相当大的处理芯片。在操作上,其速度会较慢。另外,大尺寸的芯片操作时所产生的耗能(热)也会较大。就人工智能加速器所需求的功能,其需要较快的辨识速度,而同时也希望能减低操作的耗能。
图3是依据本发明一实施例,人工智能加速器的规划示意图。参阅图3,本发明进一步提出人工智能加速器的运算规划方式。本发明的人工智能加速器维持接收平行输入的整体的输入数据50,但是将输入数据50(也称为输入数据组)分为多个次输入数据组102_1、…、102_p。每一个次输入数据组分别由一个处理片(processing tile)100_1、…、100_p进行针对次输入数据组102_1、…、102_p的回旋运算。每一个处理片100_1、…、100_p仅是处理整体回旋运算的一部分运算。如果以输入数据50包含i个位线为例,将i个位线分为p组,p为2或是大于2的整数。如此一个处理片包含i/p个位线,接收次输入数据组102_1、…、102_p,也就是次输入数据组是含有i/p个位数据。于此,参数i与p的关系是i可以被p整除的关系。然而,如果p个处理片不能整除i个位线,则其最后一个处理片仅处理余数的位线,其依照实际需要来规划,而无需限制。
依照图3的架构,其是采用p个处理片100_1、…、100_p来处理当前所选择的一层的权重形态,以进行回旋运算。整体的输入数据对应p个处理片也分为p个次输入数据组102_1、…、102_p而输入到对应的处理片100_1、…、100_p。经过p个处理片100_1、…、100_p所处理完的回旋运算后得到输出值104_1、…、104_p,例如是电流值。其后使用后面会描述的移位与相加的处理,可以得到相对应于以整体的输入数据组与整体的权重形态进行回旋运算后的结果。
就图3的分割方式,对于存储于处理片内的部分的权重形态是直接与次输入数据组进行回旋运算。回旋运算的效率可能可以再进一步提升。本发明在一实施例提出再进一步针对权重的区块规划。
图4是依据本发明一实施例,人工智能加速器的规划示意图。参阅图4,就整体预定的输入数据组例如包含排序从0到i-1的i个数据,其例是a0…ai-1的二进制数值,其每一个位a当作一个位线的输入数据,如此经由i个位线输入。根据本发明的一实施例,其例如将i个数据分为p组,也就是一个次输入数据组102_1、102_2…。一个次输入数据组102_1、102_2…例如包含i/p个数据,但是多个处理片100_1、100_2…是依序配置。处理片100_1、100_2…对应整体输入数据组的顺序接收对应的次输入数据组102_1、102_2…。例如第一个处理片接收a0到ai/p-1的数据,下一个处理片接收ai/p到a2×i/p-1的数据,以此类推。次输入数据组102_1、102_2…由接收端元件66接收。接收端元件66例如包括感应放大器60以感应数字的输入数据。位线译码电路62得到对应的逻辑输出,由电压该关器64将数据输入。接收端元件66依照实际需要设置,本发明不限制接收端元件66的电路配置。
一个次输入数据组102_1、102_2…由对应的一个处理片100_1、100_2…进行回旋运算。此处理片100_1、100_2…的回旋运算是整体回旋运算的一部分运算。每一个处理片100_1、100_2…对应接收的次输入数据组102_1、102_2…分别平行处理。次输入数据组102_1、102_2…通过接收端元件66而进入到存储单元90中所关联的存储单元。
根据本发明的一实施例,对于存储权重的存储单元在列(row)的数量例例如是j个,j是大的整数。也就是说,对应一条位线有j个存储单元。每一个存储单元存储一个权重值。于此,存储单元列也可以称为选择线。根据本发明的一实施例,j个存储单元例如分割为q个权重区块92。在j可以被q整除的实施例,一个权重区块包含j/q个存储单元。对于一个存储单元,从输出端来看,其也是相当于二进制数串的一个位。这些权重区块也是依照权重的排序,从0到j-1分割成q个权重区块92。
对于整个回旋运算,其要得到加总值,以Sum表示,其如式(1)所示:
Sum=∑a*W (1)
其中“a”代表输入数据组,W代表存储单元中所选择的一层权重的二维阵列。
对于输入的次输入数据组以包含8个位的数据为例,其以二进制的数字串表示是[a0a1…a7],例如是[10011010],其对应一个十进制的数值。类似的,权重区块有是由位串来表示,例如第一个权重区块包含[W0…Wj/q-1],依序最后权重区块是[W(q-1)×j/q…Wj-1]来表示,其分别也是代表一个十进制的数值。
如此,整个回旋运算如式(2)表示:
SUM=(W0…Wj/q-1×20+…+W(q-1)×j/q…Wj-1×2j×(q-1)/q)×20×a0…ai/p-1
+(W0…Wj/q-1×20+…+W(q-1)×j/q…Wj-1×2j×(q-1)/q)×2i/p×ai/p…a2×i/p-1
+…
+(W0…Wj/q-1×20+…+W(q-1)×j/q…Wj-1×2j×(q-1)/q)×2i×(p-1)/p×a(p-1)×i/p…ai-1
(2)
对于如图2所示i×j的二维阵列所存储的权重形态,Sum是权重形态与整体输入数据组(a0…ai-1)进行回旋运算所预计得到的值。回旋运算是整合在存储单元阵列结构的规划中,通过配线使对位的输入数据与所选择一层的存储单元所存储的权重形态进行回旋运算。关于矩阵的回旋运算的详细实际运算是本领域技术人员所能了解的,于此不予详细描述。本发明实施例是依照回旋运算将权重数据,分割成为由多个处理片100_1、100_2…进行平行运算,而对于每一个处理片100_1、100_2…所分割成多个权重区块92,也可以分别平行运算。本发明一实施例也提出对于每一个处理片,使用移位与相加的方式将分割的多个权重区块重新恢复到整体单一权重区块所要的结果。另外,对于多个处理片已利用移位与相加的方式将分割的多个处理片加总,得到整体所要的运算值。
每一个处理片100_1、100_2…也设置有处理电路70进行回旋运算。另外处理片100_1、100_2…也设置有逐块(block-wise)输出电路80,其包含多阶的移位与相加运算,对平行的零阶输出数据,依照位(存储单元)顺序,得到对应例如[W0…Wj/q-1]、…的数据。处理片之间也利用移位与相加运算得到最后整体的回旋运算。
在如上的规划下,对于一个处理片的一个权重区块的处理所使用的存储量是2(i /p+j/q)。对于整体而言,其包含p个处理片,每一个处理是q个权重区块,因此所需要的存储单元数量可以降低为p×q×2(i/p+j/q)。
以下较详细描述根据分割的权重区块以及分割的处理片来得到整体运算的结果。
图5是依据本发明一实施例,存储单元的存储单元架构示意图。参阅图5,对于一个处理片存储单元,其对应一条位线BL_-1、BL_2…,会包含多个存储单元串,垂直分布连接到位线BL,构成3D的结构。存储单元串的每一个存储单元是属于一层的存储单元阵列,存储权重形态其中的一个权重值。在位线BL_-1、BL_2…的存储单元串是由选择线SSL启动。对应多个选择线SSL的存储单元构成权重区块,如Block_n所标示。输入数据由位线BL输入,经控制而流入对应的存储单元,如此到回旋运算。其后由输出端SL_n结合而输出。存储单元会包含q个区块,如Block_n×q所标示。
图6是依据本发明一实施例,对于一个处理片针对多个权重区块加总的机制示意图。参阅图6,在一个处理片的存储单元300中,其分割为多个权重区块302。每一个权重区块302会与次输入数据组进行回旋运算,而平行输出每个权重区块302的运算值,如粗箭头表示。其后通过感应放大器SA的感应分别输出一感信号,其例如是电流值。由于权重是依照二进制的排列且是平行输出。要得到十进制的数值,本发明一实施例提出逐块输出电路的配置,使用加法器312将相邻的相个输出值相加,这两个输出值中属于较高位的输出值先通过可以移位预定数字元的移位器308,将其移位到所对应的位顺序。例如一个权重区块包含j/q个位(存储单元),其属于较高位的输出值需要移位提高j/q个位,因此第一阶的移位与相加运算的移位器308具有移位j/q个位的效果。经过第一阶加法器的相加后,其代表2×j/q个位的数值。如此,对于其后的第二阶的移位与相加运算,其机制相同,但是移位器314的移位量是2×j/q个位。依此类推,最后一阶的输入值是仅是两个,因此只需要一个移位器316,但是移位量是例如是位,而得到一个处理片的回旋运算结果。
于此要另外说明,一层的权重形态权重区块也可以分散由多个不同的处理片,其依照权重区块的规划与组合。也就是,一个处理片所存储的权重区块不需要同一层的权重数据。从另一方面来看,一层的权重数据的权重区块是分散到多个处理片。因此处理片可以平行运算。也就是,所涉及的多个处理片的每一个仅针对属于要处理一层层的区块进行运算即可,其后再将属与相同层的运算数据组合即可。
以下描述将多个处理片整合的移位与相加运算。图7是依据本发明一实施例,对于多个处理片之间的加总电路的操作机制示意图。参阅图7,p个处理片100_1、100_2、…、100_p分别依照图6的输出值进行移位与相加运算。于此的每一个处理片100_1、100_2、…、100_p是指同一层权重形态中分别对应次输入数据的回旋运算结果。
类似图6的情形,输入数据组是二进制输字符串,但是对于每一个次输入数据组例如都是i/p个位。因此第一阶的移位与相加运算也是取每一对相邻的输出由加法器352进行相加,其中属于较高位的数值先通过移位器350做i/p个位的移位。下一阶的移位与相加运算的移位器354是2×i/p个位的移位。最后一阶的移位器356的移位量是个位。在最后一阶的移位与相加运算后经可以得到如式(1)的总和值Sum。
此阶段的总和值Sum是初步的数值,在实际应用上,其后续需要进行正规处理,其例如使用正规化处理电路400,对总和值进行正规化处理,以得到正规化总和值。正规化处理电路例如包括式(3)的运算:
常数α404是缩放值通过乘法器402调整总和值Sum,其后再使用加法器406调整偏移量β408。
得到正规化后的总和值再通过量化电路500,其使用除法器502除以基数d 504进行量化,如式(4):
其中0.5表示取整数的运算。一般而言,如果输入数据组愈能吻合此层的特征形态,其数量化的值a′会愈大。
完成一层的权种形态的回旋运算,其利用字线继续选择下一层的权种形态进行回旋运算。
图8是依据本发明一实施例,人工智能加速器的整体应用配置示意图。参阅图8,整体系统600的人工智能加速器602与可以与主机的控制单元604进行双向交流。主机的控制单元604例如从外部的存储器700取得输入数据,例如是影像的数字数据,而输入给人工智能加速器602进行特征形态的辨别处理,而回复给主机的控制单元604。整体系统600的应用可以随实际需要配置,不限于所举的被置方式。
本发明一实施例也提供人工智能加速器的处理方法。图9是依据本发明一实施例,人工智能加速器的处理方法的流程示意图。
参阅图9,本发明一实施例更提供一种用于人工智能加速器的处理方法。人工智能加速器接收二位的一输入数据组与多层的整体权重形态中被选择的其一进行回旋运算,该输入数据组分为多个次数据组。处理方法包括步骤S100使用多个处理片,每一个该处理片包括执行。步骤S102使用接收端元件分别接收一个该次数据组。步骤S104使用权重存储部存储该整体权重形态的部分权重形态,其中该部分权重存储部包含多个权重区块,每一个该权重区块依照位顺序存储该部分权重形态的一区块部分,其中该权重存储部的存储单元阵列结构相对于所对应的该次数据组,规划成该次数据组分别与每一个该区块部分进行回旋运算得到依序的多个权重运算值。步骤S106使用包含多个移位器及多个加法器的逐块输出电路,通过多阶的移位与相加运算将该多个权重运算值总和得到由该次数据组与该部分权重形态直接进行回旋运算所预期的权重输出值。步骤S108使用包含多个移位器及多个加法器的加总输出电路,通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
如上所述,本发明的实施例提出将存储单元的权重数据分割由多个处理片进行回旋运算,同时在每一个处理片的存储单元也分割成多个权中驱块分别处理。其后通过移位与相加运算,可以得到最后的整体总合值。由于处理片的电路较小,指令周期可以提升,另外处理片处理时所耗能量,例如产生热,可以减少。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种人工智能加速器,接收二位的一输入数据组与多层的整体权重形态中被选择的其一进行回旋运算,该输入数据组分为多个次数据组,该人工智能加速器包括:
多个处理片,每一个该处理片包括:
接收端元件,分别接收一个该次数据组;
权重存储部,存储该整体权重形态的部分权重形态,其中该部分权重存储部包含多个权重区块,每一个该权重区块依照位顺序存储该部分权重形态的一区块部分,其中该权重存储部的存储单元阵列结构相对于所对应的该次数据组,规划成将该次数据组分别与每一个该区块部分进行回旋运算得到依序的多个权重运算值;以及
逐块输出电路,包含多个移位器及多个加法器,通过多阶的移位与相加运算将该多个权重运算值总和得到由该次数据组与该部分权重形态直接进行回旋运算所预期的权重输出值;以及
加总输出电路,包含多个移位器及多个加法器,通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
2.根据权利要求1所述的人工智能加速器,其中该输入数据组包含i个位,分为p个该次数据组,i与p是整数,每一个该次数据组包含i/p个位。
3.根据权利要求1所述的人工智能加速器,其中该输入数据组包含i个位,该多个处理片的数量是p个,该输入数据组分为p个该次数据组,该i与p是大于或等于2的整数,该i大于该p,每一个该次数据组包含i/p个位。
4.根据权利要求3所述的人工智能加速器,其中该部分权重存储部包含的该多个权重区块的数量是q个,q大于或等于2的整数,该部分权重存储部包含j个位,该j、q是大于或等于2的整数,该j大于该q,每一个该权重区块包含j/q个存储单元。
5.根据权利要求4所述的人工智能加速器,其中该多个处理片总合的该多个权重存储部的存储单元总量为p×q×2(i/p+j/q)。
6.一种用于人工智能加速器的处理方法,该人工智能加速器接收二位的一输入数据组与多层的整体权重形态中被选择的其一进行回旋运算,该输入数据组分为多个次数据组,该处理方法包括:
使用多个处理片,每一个该处理片包括执行:
使用接收端元件分别接收一个该次数据组;
使用权重存储部存储该整体权重形态的部分权重形态,其中该部分权重存储部包含多个权重区块,每一个该权重区块依照位顺序存储该部分权重形态的一区块部分,其中该权重存储部的存储单元阵列结构相对于所对应的该次数据组,规划成将该次数据组分别与每一个该区块部分进行回旋运算得到依序的多个权重运算值;以及
使用包含多个移位器及多个加法器的逐块输出电路,通过多阶的移位与相加运算将该多个权重运算值总和得到由该次数据组与该部分权重形态直接进行回旋运算所预期的权重输出值;以及
使用包含多个移位器及多个加法器的加总输出电路,通过多阶的移位与相加运算对该多个权重输出值总和得到由该输入数据组与该整体权重形态直接进行回旋运算所预期的总和值。
7.根据权利要求6所述的人工智能加速器的处理方法,其中该输入数据组包含i个位,分为p个该次数据组,i与p是整数,每一个该次数据组包含i/p个位。
8.根据权利要求6所述的人工智能加速器的处理方法,其中该输入数据组包含i个位,该多个处理片的数量是p个,该输入数据组分为p个该次数据组,该i与p是大于或等于2的整数,该i大于该p,每一个该次数据组包含i/p个位。
9.根据权利要求8所述的人工智能加速器的处理方法,其中该部分权重存储部包含的该多个权重区块的数量是q个,q大于或等于2的整数,该部分权重存储部包含j个位,该j、q是大于或等于2的整数,该j大于该q,每一个该权重区块包含j/q个存储单元,其中该多个处理片总合的该多个权重存储部的存储单元总量为p×q×2(i/p+j/q)。
10.根据权利要求9所述的人工智能加速器的处理方法,其中对于该逐块输出电路的操作,在每一阶的该移位与相加运算中包括使用至少一个该移位器与至少一个该加法器,
其中对于每一阶的多个输入值以相邻两个为一处理单元,其中属于较高位的该输入值通过该移位器后与较低位的该输入值由该加法器相加后输出给下一阶,其中最后一阶输出单一值当作对应该处理片的该权重输出值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/782,972 | 2020-02-05 | ||
US16/782,972 US20210241080A1 (en) | 2020-02-05 | 2020-02-05 | Artificial intelligence accelerator and operation thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113220626A true CN113220626A (zh) | 2021-08-06 |
Family
ID=77085639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010084449.6A Pending CN113220626A (zh) | 2020-02-05 | 2020-02-10 | 人工智能加速器及其处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210241080A1 (zh) |
CN (1) | CN113220626A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018192500A1 (zh) * | 2017-04-19 | 2018-10-25 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
CN108921292A (zh) * | 2018-05-02 | 2018-11-30 | 东南大学 | 面向深度神经网络加速器应用的近似计算系统 |
US20190164043A1 (en) * | 2017-11-27 | 2019-05-30 | Samsung Electronics Co., Ltd. | Low-power hardware acceleration method and system for convolution neural network computation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10474458B2 (en) * | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
KR102440227B1 (ko) * | 2017-10-11 | 2022-09-05 | 삼성전자주식회사 | 수직형 메모리 장치 및 수직형 메모리 장치의 제조 방법 |
US10692570B2 (en) * | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
-
2020
- 2020-02-05 US US16/782,972 patent/US20210241080A1/en not_active Abandoned
- 2020-02-10 CN CN202010084449.6A patent/CN113220626A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018192500A1 (zh) * | 2017-04-19 | 2018-10-25 | 上海寒武纪信息科技有限公司 | 处理装置和处理方法 |
US20190164043A1 (en) * | 2017-11-27 | 2019-05-30 | Samsung Electronics Co., Ltd. | Low-power hardware acceleration method and system for convolution neural network computation |
CN108921292A (zh) * | 2018-05-02 | 2018-11-30 | 东南大学 | 面向深度神经网络加速器应用的近似计算系统 |
Non-Patent Citations (1)
Title |
---|
SOROUSH GHODRATI 等: "Mixed Signal Charge-Domain Acceleration of Deep Neural Network through Interleaved Bit-Partitioned Arithmetic.", ARXIV:1906.11915V1, 27 June 2019 (2019-06-27), pages 1 - 6 * |
Also Published As
Publication number | Publication date |
---|---|
US20210241080A1 (en) | 2021-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3242254B1 (en) | Convolutional neural network hardware configuration | |
CN111353579A (zh) | 利用反向传播为深度神经网络选择量化参数的方法和系统 | |
EP0448367A2 (en) | High speed digital parallel multiplier | |
JP2018055677A (ja) | 外積累算演算のためのプロセッサおよび方法 | |
CN110007959B (zh) | 用于深度神经网络的硬件实现的层次化尾数位长度选择 | |
CN114816331A (zh) | 具有时钟选通的用于执行矩阵乘法的硬件单元 | |
CN109074516A (zh) | 计算处理装置和计算处理方法 | |
CN112204517B (zh) | 多输入浮点加法器 | |
EP4206993A1 (en) | Configurable pooling processing unit for neural network accelerator | |
CN107967132A (zh) | 一种用于神经网络处理器的加法器和乘法器 | |
CN112561049B (zh) | 一种基于忆阻器的dnn加速器的资源分配方法及装置 | |
CN112241251B (zh) | 用于处理浮点数的设备和方法 | |
EP4345691A1 (en) | Methods and systems for performing channel equalisation on a convolution layer in a neural network | |
CN113220626A (zh) | 人工智能加速器及其处理方法 | |
TWI727643B (zh) | 人工智慧加速器以及其處理方法 | |
EP4160485A1 (en) | Methods and devices for configuring a neural network accelerator with a configurable pipeline | |
CN110889080A (zh) | 乘积累加运算装置、乘积累加运算方法和系统 | |
CN115600062A (zh) | 卷积处理方法、电路、电子设备及计算机可读存储介质 | |
GB2614327A (en) | Configurable pooling process unit for neural network accelerator | |
US20250094128A1 (en) | Processing-in-memory devices having multiplication-and-accumulation circuits | |
CN110163352B (zh) | 电路规划结果产生方法与系统 | |
US12032959B2 (en) | Non-volatile memory die with latch-based multiply-accumulate components | |
GB2611521A (en) | Neural network accelerator with a configurable pipeline | |
GB2611522A (en) | Neural network accelerator with a configurable pipeline | |
GB2611520A (en) | Methods and devices for configuring a neural network accelerator with a configurable pipeline |
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 |