CN110163352B - 电路规划结果产生方法与系统 - Google Patents
电路规划结果产生方法与系统 Download PDFInfo
- Publication number
- CN110163352B CN110163352B CN201810776618.5A CN201810776618A CN110163352B CN 110163352 B CN110163352 B CN 110163352B CN 201810776618 A CN201810776618 A CN 201810776618A CN 110163352 B CN110163352 B CN 110163352B
- Authority
- CN
- China
- Prior art keywords
- array
- neuron
- circuit
- processing unit
- weight value
- 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
Links
- 238000000034 method Methods 0.000 title claims description 41
- 210000002569 neuron Anatomy 0.000 claims abstract description 258
- 238000012545 processing Methods 0.000 claims abstract description 84
- 238000003491 array Methods 0.000 claims abstract description 58
- 238000003860 storage Methods 0.000 claims description 25
- 238000004378 air conditioning Methods 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 abstract description 41
- 230000015654 memory Effects 0.000 abstract description 9
- 238000005457 optimization Methods 0.000 abstract description 3
- 230000001537 neural effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
Abstract
一种电路规划结果产生系统的存储单元存储多个神经元阵列,每一神经元阵列包含多个各对应一乘法运算的权重值。当所述电路规划结果产生系统的处理单元将每一神经元阵列依照相似条件分配至多个阵列群组的其中一者,并根据每一阵列群组之所有神经元阵列产生对应的电路数据及逻辑闸数量,每一电路数据包含多个对应所述乘法运算的运算逻辑电路,接着,所述处理单元根据每一阵列群组之所有电路数据中选择对应逻辑闸数量最少或对应最先分配的神经元阵列的电路数据作为所述阵列群组的一共用电路数据,并产生一包含所述共用电路数据的电路规划结果。借此,有效地减少该类神经网路芯片的逻辑闸数量,而达成对该类神经网路芯片的电路最佳化。
Description
技术领域
本发明涉及一种电路规划结果产生方法,特别是涉及一种自动最佳化的电路规划结果产生方法。本发明还有关于能实施该电路规划结果产生方法的一种电路规划结果产生系统。
背景技术
类神经网路(Artificial Neural Network;ANN)别称神经网路或人工神经网路,是由大量的神经元(Neurons)彼此连结而成的网路系统。经过训练后的类神经网路可借复杂的数学模型进行复杂的资讯处理,举凡影像辨识、自然语言分析、人类行为或自然现象的预测或统计等工作,皆是类神经网路的应用范畴。
参阅图1,图1是现有类神经网路技术中常见的一神经元运算模型。在该神经元运算模型中,X0至XN分别代表多个被输入该神经元运算模型的输入变数。W0至WN分别代表该神经元运算模型中的多个权重变数。f(u)代表该神经元运算模型的一转换函数(TransferFunction),且该转换函数也可被称作一激励函数(Activation Function)。u代表所述变数(X0~XN)分别乘上对应的所述默认权重(W0~WN)后加总的结果。y代表将u套入该转换函数后得到的结果。y及u可分别以下列的数学式表示:
y=f(u)
在一类神经网路的训练(training)过程中,是将大量的样本(sample)数据转换为所述输入变数(即X0至XN)所构成的多个输入矩阵,并将所述输入矩阵输入至该类神经网路,以供该类神经网路进行学习。在学习的过程中,该类神经网路将所述输入矩阵与所述权重变数(即W0至WN)所构成的多个权重矩阵进行交叉的乘法运算,并根据运算后的输出结果对原有的所述权重矩阵进行最佳化的调整。
值得注意的是,每一个输入变数与每一个权重变数的乘法运算,皆需要一个对应的乘法器来执行,且每一乘法器包含两个分别供该输入变数及该权重变数输入的输入端,以及一用于将该输入变数及该权重变数之运算结果输出的输出端。
若该类神经网路在训练完成后总共定义出一万个权重矩阵,且假设每一个权重矩阵的尺寸皆为三乘三,而包含九个权重变数,则若欲将该类神经网路商品化而实施为一类神经网路芯片,即代表该类神经网路芯片内在无记忆体时需要建置九万个乘法器,才能完整实施所述权重矩阵所代表的乘法运算。或者在类神经网路芯片内置立大量记忆体以减少乘法器的数目,才能完整实施所述权重矩阵所代表的乘法运算。然而,大量的乘法器或记忆体需求将使得该类神经网路芯片拥有较高的布线复杂度及电路面积,同时也使该类神经网路芯片的制造成本难以缩减。若欲将该类神经网路商品化而实施为一类神经网路系统编程用于中央处理器(Central Processing Unit)或图形处理器(Graphic Processing Unit)或数字信号处理器(Digital Signal Processor),大量的乘法运算与记忆体读写需求将使得该类神经网路需要较高速度的处理器及记忆体。因此,如何针对类神经网路芯片的电路规划进行最佳化,便成为本案欲解决的课题。
发明内容
本发明之其中一目的,在于提供能针对类神经网路芯片进行电路最佳化的一种电路规划结果产生方法。
本发明电路规划结果产生方法由电路规划结果产生系统实施,所述电路规划结果产生系统包含存储单元,以及电连接所述存储单元的处理单元,所述存储单元预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,其特征在于:所述电路规划结果产生方法包含下列步骤:(A)所述处理单元将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;(B)所述处理单元根据所述阵列群组的每一神经元阵列的所述权重值,产生对应的电路数据及逻辑闸数量,每一电路数据包含对应所述神经元阵列的所述权重值的所述乘法运算的多个运算逻辑电路,对应每一神经元阵列的所述逻辑闸数量是对应所述神经元阵列的所述电路数据的所述运算电路所包含的多个逻辑闸的总数量;(C)所述处理单元将每一阵列群组中,对应的所述逻辑闸数量最少的所述电路数据作为所述阵列群组的共用电路数据,并产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
在本发明电路规划结果产生方法的一些实施态样中,在步骤(A)中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
在本发明电路规划结果产生方法的一些实施态样中,在步骤(B)中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
在本发明电路规划结果产生方法的一些实施态样中,所述电路规划结果产生方法还包含介于步骤(B)之前的步骤(D):所述处理单元将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
本发明还提供了另一种电路规划结果产生方法。
本发明所提供的另一电路规划结果产生方法由电路规划结果产生系统实施,所述电路规划结果产生系统包含存储单元,以及电连接所述存储单元的处理单元,所述存储单元预先存储有多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,其特征在于:所述电路规划结果产生方法包含下列步骤:(A)所述处理单元将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;(B)所述处理单元根据每一阵列群组之所述参考神经元阵列的所述权重值,产生对应所述阵列群组的共用电路数据,所述共用电路数据包含多个运算逻辑电路,所述运算逻辑电路分别相关于所述参考神经元阵列之所述权重值所对应的所述乘法运算,且每一运算逻辑电路包含至少一逻辑闸;(C)所述处理单元产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
在本发明另一电路规划结果产生方法的一些实施态样中,在步骤(A)中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
在本发明另一电路规划结果产生方法的一些实施态样中,在步骤(B)中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
在本发明另一电路规划结果产生方法的一些实施态样中,所述电路规划结果产生方法还包含介于步骤(B)之前的步骤(D):所述处理单元将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
本发明还提供了一种电路规划结果产生系统。
本发明电路规划结果产生系统包含存储单元及电连接所述存储单元的处理单元,所述存储单元预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,当所述处理单元接收到电路规划结果产生指令时,将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件,所述处理单元根据所述阵列群组的每一神经元阵列的所述权重值,产生对应的电路数据及逻辑闸数量,每一电路数据包含对应所述神经元阵列的所述权重值的所述乘法运算的多个运算逻辑电路,对应每一神经元阵列的所述逻辑闸数量是对应所述神经元阵列的所述电路数据的所述运算电路所包含的多个逻辑闸的总数量,所述处理单元将每一阵列群组中,对应的所述逻辑闸数量最少的所述电路数据作为所述阵列群组的共用电路数据,并产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
在本发明电路规划结果产生系统的一些实施态样中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
在本发明电路规划结果产生系统的一些实施态样中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
在本发明电路规划结果产生系统的一些实施态样中,所述处理单元在产生所述电路数据之前,将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
本发明还提供了另一种电路规划结果产生系统。
本发明所提供的另一电路规划结果产生系统包含存储单元及电连接所述存储单元的处理单元,所述存储单元预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,当所述处理单元接收到电路规划结果产生指令时,将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件,所述处理单元根据每一阵列群组之所述参考神经元阵列的所述权重值,产生对应所述阵列群组的共用电路数据,所述共用电路数据包含多个运算逻辑电路,所述运算逻辑电路分别相关于所述参考神经元阵列之所述权重值所对应的所述乘法运算,且每一运算逻辑电路包含至少一逻辑闸,所述处理单元产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
在本发明另一电路规划结果产生系统的一些实施态样中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
在本发明另一电路规划结果产生系统的一些实施态样中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
在本发明另一电路规划结果产生系统的一些实施态样中,所述处理单元在产生所述电路数据之前,将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
本发明的有益效果在于:借由实施本发明电路规划结果产生方法,该处理单元能先将每一神经元阵列分配至所述阵列群组的其中一者后,再产生分别对应所述阵列群组的所述共用电路数据,以及包含所述共用电路数据的该电路规划结果,该电路规划结果能用于将该类神经网路实施为该类神经网路芯片,且能有效地减少该类神经网路芯片的逻辑闸数量,而达成对该类神经网路芯片的电路最佳化,所以确实能达成本发明之目的。
附图说明
本发明之其他的特征及功效,将于参照图式的实施方式中清楚地呈现,其中:
图1是一示意图,绘示现有类神经网路技术的一神经元运算模型;
图2是本发明电路规划结果产生系统之一第一实施例的一方块图;及
图3是一流程图,示例性地说明该第一实施例如何实施一电路规划结果产生方法。
具体实施方式
在本发明被详细描述之前,应当注意在以下的说明内容中,类似的元件是以相同的编号来表示。
参阅图2,本发明电路规划结果产生系统1之一第一实施例是用于产生一对应一已训练完成之类神经网路的电路规划结果,更具体地说,该电路规划结果是用于将已训练完成的该类神经网路实施为一实体的类神经网路芯片。且该电路规划结果是相关于该类神经网路芯片中用于将多个变数分别与多个默认权重进行乘法运算所需的逻辑运算电路。
该电路规划结果产生系统1包含一存储单元11及一电连接该存储单元11的处理单元12。该存储单元11可例如为一硬盘或者一由多个硬盘所组成的硬盘阵列,该处理单元12可例如为一中央处理器或是由多个中央处理器作平行处理的模块,该处理单元12例如是设置于一主机板(图未示出),并经由该主机板电连接该存储单元11,但不以此为限。
该存储单元11预先存储多个以一预定顺序排列的神经元阵列M,每一神经元阵列M包含多个权重值,且每一权重值对应一乘法运算。例如,若其中一权重值的数值为「15」,则该权重值所对应的该乘法运算为「乘以15」。在本实施例中,由于该类神经网路已经训练完成,所以每一权重值被设定为一固定的常数,且每一神经元阵列M例如为一3乘3的矩阵,而包含九个权重值,但并不以此为限。
举例而言,该类神经网路芯片可例如是被应用在影像辨识领域,例如用于辨认一影像中是否存在一只鸟,则每一神经元阵列M例如是作为一特征滤波器(filter),而用于供该类神经网路根据所述神经元阵列M辨识该影像中是否存在所述神经元阵列M所代表的对应特征(例如鸟的嘴、眼睛或翅膀),但并不以此为限。
同时参阅图2及图3,以下示例性地详细说明本实施例的该电路规划结果产生系统1如何实施一电路规划结果产生方法。
首先,在步骤S1中,当该处理单元12接收到一电路规划结果产生指令时,该处理单元12根据所述神经元阵列M的相似度而对所述神经元阵列M进行一分类编程,以将每一神经元阵列M分配至多个阵列群组的其中一者。该电路规划结果产生指令例如是借由一使用者操作一输入设备(例如键盘或鼠标)而产生,但不以此为限。
在该分类编程中,该处理单元12例如是先将所述神经元阵列M的其中一顺序最优先者作为一参考神经元阵列M’,并将该参考神经元阵列M’分配至一新定义出的阵列群组中。接着,该处理单元12计算该参考神经元阵列M’与其他每一神经元阵列M之间的一总权重差,并根据每一权重差判断该参考神经元阵列M’与其他每一神经元阵列M之间是否符合一相似条件。在本实施例中,该总权重差等于该参考神经元阵列M’之每一权重值,与其他每一神经元阵列M之对应的每一权重值之间的差的绝对值之总和,该相似条件为该总权重差小于一预定阈值,且该预定阈值可例如为5,但不以此为限。一旦该处理单元12判断出所述神经元阵列M中的任一者与该参考神经元阵列M’符合该相似条件而作为一相似神经元阵列M*时,该处理单元12将该相似神经元阵列M*分配至该参考神经元阵列M’所属的该阵列群组中。
为了便于说明,定义每一神经元阵列M所包含的九个权重值分别为由左而右、由上而下排列的第一权重值至第九权重值。以下方所示的一神经元阵列M1及一神经元阵列M2举例来说,该神经元阵列M1的第一权重值为「9」,该神经元阵列M2的第一权重值则为「8」,因此,该神经元阵列M1及该神经元阵列M2之间的一第一权重差为「1」。同理,该神经元阵列M1及该神经元阵列M2的第二权重值皆为「36」,因此,该神经元阵列M1及该神经元阵列M2之间的一第二权重差为「0」。以此类推的,该神经元阵列M1及该神经元阵列M2之间的第三权重差至第九权重差分别为「0」、「0」、「0」、「2」、「1」、「0」、「0」。而该神经元阵列M1及该神经元阵列M2之间的总权重差,则等于该第一权重差至该第九权重差的总和,而等于「4」。
神经元阵列M1
神经元阵列M2
特别说明的是,在本实施例中,该处理单元12例如是以穷极搜寻(英文为exhaustive search)的方式对所述神经元阵列M进行该分类编程,但不以此为限。举例来说,假设所述神经元的数量为一千个,并以排列顺序分别编号为神经元阵列M1至神经元阵列M1000,则该处理单元12例如是先以该神经元阵列M1作为该参考神经元阵列M’,而将其分配至一第一阵列群组中。接着,该处理单元12依序地将该神经元阵列M2至该神经元阵列M1000中与该神经元阵列M1符合该相似条件的每一者皆分配至该第一阵列群组。接着,该处理单元12将尚未被分配至任一阵列群组之所有神经元阵列M中顺序最优先者作为一新的参考神经元阵列M’,而将其分配至一第二阵列群组中,并与其余尚未被分配至任一阵列群组之所有神经元阵列M进行该相似条件的判断,直至神经元阵列M1至神经元阵列M1000的每一者皆被分配至所述阵列群组的其中一者为止。如此一来,每一阵列群组中皆会存在一对应于该阵列群组且最先被分配制该阵列群组的参考神经元阵列M’,且每一阵列群组中之该参考神经元阵列M’与同一阵列群组中之其他所有神经元阵列M之间皆会符合该相似条件。需注意的是,每一阵列群组也可能仅包含该参考神经元阵列M’,而不包含与该参考神经元阵列M’相似的其他神经元阵列M。
在该处理单元12将每一神经元阵列M分配至所述阵列群组的其中一者后,接着进行步骤S2。
在步骤S2中,该处理单元12根据每一阵列群组之每一神经元阵列M的所述权重值,产生一对应该阵列群组且对应该神经元阵列M的电路数据,以及一对应该电路数据的逻辑闸数量。
举例来说,若前述的该第一阵列群组中包含了神经元阵列M1、神经元阵列M2及神经元阵列M100,则在步骤S2中,该处理单元12会根据该第一阵列群组而产生一电路数据D1、一电路数据D2及一电路数据D100,以及对应的一逻辑闸数量N1、一逻辑闸数量N2及一逻辑闸数量N100。
在本实施例中,每一电路数据包含九个运算逻辑电路,所述运算逻辑电路分别相关于对应之该神经元阵列M之所述权重值所对应的九个乘法运算,且每一运算逻辑电路例如为一逻辑闸组合,而包含至少一逻辑闸、单一个用于供一变数输入以与对应之该权重值执行对应之该乘法运算的输入端,以及单一个用于输出该乘法运算之运算结果的输出端。该逻辑闸数量指示出该电路数据之所述运算逻辑电路所包含之所有逻辑闸的总数量。特别说明的是,由于所述权重值在本实施例中为常数,因此每一运算逻辑电路仅需单一个供变数输入的输入端。
补充说明的是,根据每一权重值产生对应的运算逻辑电路,系应用数字逻辑设计学科中关于算术运算电路设计之通常知识,例如可以乘法器、加法器、移位器,或寄存器等不同的逻辑电路实现相同的乘法运算,使得逻辑电路的逻辑闸数量不同,所以在此不多加赘述。
以前述的该神经元阵列M1举例来说,该神经元阵列M1的第一权重值至第九权重值分别为「9」、「36」、「27」、「7」、「97」、「35」、「36」、「1」及「77」,则对应于该神经元阵列M1之该电路数据的所述运算逻辑电路,则例如分别为「乘以9」、「乘以36」、「乘以27」、「乘以7」、「乘以97」、「乘以35」、「乘以36」、「乘以1」及「乘以77」的九个乘法器电路。而对应于该神经元阵列M1之该电路数据D1的该逻辑闸数量N1则等于该九个乘法器电路所包含之所有逻辑闸的总量。
在该处理单元12产生所述电路数据及对应的所述逻辑闸数量后,接着进行步骤S3。
在步骤S3中,该处理单元12从每一阵列群组所对应之所有电路数据中,选择出其中一对应该阵列群组且作为一共用电路数据的电路数据。具体而言,每一阵列群组所对应的该共用电路数据,是该阵列群组所对应之所有电路数据中,所对应之该逻辑闸数量最少的该电路数据。换句话说,该共用电路数据所包含之所述运算逻辑电路所使用的逻辑闸,是对应同一阵列群组之所有电路数据中最少的。
承前例,假设该第一阵列群组中包含了该神经元阵列M1、该神经元阵列M2及该神经元阵列M100,且该神经元阵列M1、该神经元阵列M2及该神经元阵列M100所对应之所述电路数据及所述逻辑闸数量如下表所示。假设在该逻辑闸数量N1、该逻辑闸数量N2及该逻辑闸数量N100中,该逻辑闸数量N2的值是三者之中最小的,则在步骤S3中,该处理单元12会将该逻辑闸数量N2所对应的该电路数据M2作为对应该第一阵列群组的该共用电路数据。
在该处理单元12选择出每一阵列群组所对应的该共用电路数据后,接着进行步骤S4。
在步骤S4中,该处理单元12产生用于将该类神经网路实施为该类神经网路芯片的该电路规划结果,且该电路规划结果包含所述共用电路数据之所述运算逻辑电路。补充说明的是,在本实施例中,该电路规划结果例如为一可被电脑设备访问、传递的电子档案,且该电路规划结果所包含的所述运算逻辑电路可例如是以多种不同的方式呈现,例如示意图(Schematic Diagram)、布线图(Layout),或者是用于描述所述运算逻辑电路的编程编程码等,但不以此为限。
以该电路规划结果制造该类神经网路芯片的功效在于能有效地减少该类神经网路芯片的逻辑闸数量。承前例来说,该第一阵列群组中虽包含了神经元阵列M1、神经元阵列M2及神经元阵列M100,但是该电路规划结果仅包含了该神经元阵列M2所对应的该电路数据M2,而未包含该电路数据M1及该电路数据M100。而由于该神经元阵列M1、神经元阵列M2及神经元阵列M100彼此之间存在较高的相似度,因此,当需要以该神经元阵列M1或神经元阵列M100进行乘法运算时,即使以该电路数据M2所包含的所述运算逻辑电路取代该电路数据M1及该电路数据M100,也不会造成太大的误差。如此一来,能达成三个神经元阵列M共用单一笔电路数据,而大幅节省逻辑闸数量的效果。
进一步举例说明的,若该存储单元11存储了一万个神经元阵列M,且若欲在该类神经网路芯片中建置每一神经元阵列M之电路数据的运算逻辑电路,则该处理单元12总共需产生分别对应所述神经元阵列M的一万笔电路数据,且该一万笔电路数据总共包含了九万个运算逻辑电路,如此一来,将会使得该类神经网路芯片中的电路数量相当庞大。
然而,若以本实施例的该电路规划结果制造该类神经网路芯片,能够有效地使每一阵列群组中的所述神经元阵列M共用对应该阵列群组的该共用电路数据,如此一来,假设在步骤S1中,该处理单元12共定义出三千个阵列群组,则步骤S4的该电路规划结果便仅会包含三千笔电路数据的运算逻辑电路,而节省了百分之七十左右的逻辑闸数量。
再者,在本实施例中,该处理单元12是将每一阵列群组中逻辑闸数量最少的该笔电路数据作为该共用电路数据,因此能更进一步地节省逻辑闸数量。
在本发明电路规划结果产生系统1之一第二实施例的硬件与该第一实施例相同,然而,该第二实施例所实施的该电路规划结果产生方法与该第一实施例存在差异,以下就其差异处进行说明。
在第二实施例所实施的该电路规划结果产生方法中,步骤S1与第一实施例相同,在此不再重述,但是在本实施例的步骤S2中,该处理单元12是仅根据每一阵列群组的该参考神经元阵列M’产生对应该参考神经元阵列M’的该电路数据,而不会对该参考神经元阵列M’以外的其他神经元阵列M产生电路数据。而且,该处理单元12是直接将该参考神经元阵列M’所对应的该电路数据作为对应该阵列群组的该共用电路数据,并进一步产生包含所有所述共用电路数据的该电路规划结果。
在本发明电路规划结果产生系统1之一第三实施例的硬件与该第一实施例相同,然而,该第三实施例所实施的该电路规划结果产生方法与该第一实施例存在差异,以下就其差异处进行说明。
在第三实施例所实施的该电路规划结果产生方法中,步骤S1与第一实施例相同,在此不再重述,但是在本实施例的步骤S2中,该处理单元12还先将所述神经元阵列M其中部分者所包含的部分权重值以一近似值更新。在本实施例中,该近似值等于2的x次方,且x为整数,具体而言,该处理单元12可例如是将数值为「7」或「9」的权重值以8「也就是2的3次方」更新、将数值为「15」或「17」的权重值以16「也就是2的4次方」更新、将数值为「31」或「33」的权重值以32「也就是2的5次方」更新,其余以此类推。在将所述神经元阵列M其中部分者所包含的部分权重值以2的x次方进行更新后,该处理单元12才根据更新后的每一神经元阵列M的所述权重值,产生对应列的该电路数据。以2的幂次方取代部分权重值的效果在于,将2的幂次方作为乘数的运算逻辑电路能利用简单的移位器(shifter)来实施,相较于非2的幂次方以外的数,其能进一步节省逻辑闸的数量。
综上所述,本发明电路规划结果产生系统1借由实施该电路规划结果产生方法,能先将每一神经元阵列M分配至所述阵列群组的其中一者后,再产生分别对应所述阵列群组的所述共用电路数据,以及包含所述共用电路数据的该电路规划结果,该电路规划结果能用于将该类神经网路实施为该类神经网路芯片,且能有效地减少该类神经网路芯片的逻辑闸数量,而达成对该类神经网路芯片的电路最佳化,所以确实能达成本发明之目的。
Claims (16)
1.一种电路规划结果产生方法,由电路规划结果产生系统实施,所述电路规划结果产生系统包含存储单元,以及电连接所述存储单元的处理单元,所述存储单元预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,其特征在于:所述电路规划结果产生方法包含下列步骤:
(A)所述处理单元将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;
(B)所述处理单元根据所述阵列群组的每一神经元阵列的所述权重值,产生对应的电路数据及逻辑闸数量,每一电路数据包含对应所述神经元阵列的所述权重值的所述乘法运算的多个运算逻辑电路,对应每一神经元阵列的所述逻辑闸数量是对应所述神经元阵列的所述电路数据的所述运算逻辑电路所包含的多个逻辑闸的总数量;及
(C)所述处理单元将每一阵列群组中,对应的所述逻辑闸数量最少的所述电路数据作为所述阵列群组的共用电路数据,并产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
2.根据权利要求1所述的电路规划结果产生方法,其特征在于:在步骤(A)中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
3.根据权利要求1所述的电路规划结果产生方法,其特征在于:在步骤(B)中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
4.根据权利要求1所述的电路规划结果产生方法,其特征在于:还包含介于步骤(B)之前的步骤(D):所述处理单元将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
5.一种电路规划结果产生方法,由电路规划结果产生系统实施,所述电路规划结果产生系统包含存储单元,以及电连接所述存储单元的处理单元,所述存储单元预先存储有多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算,其特征在于:所述电路规划结果产生方法包含下列步骤:
(A)所述处理单元将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;
(B)所述处理单元根据每一阵列群组之所述参考神经元阵列的所述权重值,产生对应所述阵列群组的共用电路数据,所述共用电路数据包含多个运算逻辑电路,所述运算逻辑电路分别相关于所述参考神经元阵列之所述权重值所对应的所述乘法运算,且每一运算逻辑电路包含至少一逻辑闸;及
(C)所述处理单元产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
6.根据权利要求5所述的电路规划结果产生方法,其特征在于:在步骤(A)中,所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
7.根据权利要求5所述的电路规划结果产生方法,其特征在于:在步骤(B)中,每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
8.根据权利要求5所述的电路规划结果产生方法,其特征在于:还包含介于步骤(B)之前的步骤(D):所述处理单元将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
9.一种电路规划结果产生系统,其特征在于:包含:
存储单元,预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算;及
处理单元,电连接所述存储单元,
其中,当所述处理单元接收到电路规划结果产生指令时,将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;
所述处理单元根据所述阵列群组的每一神经元阵列的所述权重值,产生对应的电路数据及逻辑闸数量,每一电路数据包含对应所述神经元阵列的所述权重值的所述乘法运算的多个运算逻辑电路,对应每一神经元阵列的所述逻辑闸数量是对应所述神经元阵列的所述电路数据的所述运算逻辑电路所包含的多个逻辑闸的总数量;
所述处理单元将每一阵列群组中,对应的所述逻辑闸数量最少的所述电路数据作为所述阵列群组的共用电路数据,并产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
10.根据权利要求9所述的电路规划结果产生系统,其特征在于:所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相\似条件为所述总权重差小于预定阈值。
11.根据权利要求9所述的电路规划结果产生系统,其特征在于:每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
12.根据权利要求9所述的电路规划结果产生系统,其特征在于:所述处理单元在产生所述电路数据之前,将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
13.一种电路规划结果产生系统,其特征在于:包含:
存储单元,预先存储多个神经元阵列,每一神经元阵列包含多个权重值,每一权重值对应乘法运算;及
处理单元,电连接所述存储单元,
其中,当所述处理单元接收到电路规划结果产生指令时,将每一神经元阵列分配至多个阵列群组的其中一者,最先被分配至每一阵列群组的所述神经元阵列作为所述阵列群组的参考神经元阵列,所述参考神经元阵列与所述阵列群组中之其他神经元阵列的每一者之间符合相关于所述权重值的相似条件;
所述处理单元根据每一阵列群组之所述参考神经元阵列的所述权重值,产生对应所述阵列群组的共用电路数据,所述共用电路数据包含多个运算逻辑电路,所述运算逻辑电路分别相关于所述参考神经元阵列之所述权重值所对应的所述乘法运算,且每一运算逻辑电路包含至少一逻辑闸;
所述处理单元产生包含所述共用电路数据之所述运算逻辑电路的电路规划结果。
14.根据权利要求13所述的电路规划结果产生系统,其特征在于:所述处理单元先计算所述参考神经元阵列与还未被分配至任一阵列群组的每一神经元阵列之间的总权重差,所述总权重差等于所述参考神经元阵列之每一权重值,与所述神经元阵列之对应的每一权重值之间的差的绝对值之总和,所述处理单元并于判断出所述参考神经元阵列与所述神经元阵列符合所述相似条件时,将所述神经元阵列分配至所述参考神经元阵列所属的所述阵列群组中,所述相似条件为所述总权重差小于预定阈值。
15.根据权利要求13所述的电路规划结果产生系统,其特征在于:每一运算逻辑电路还包含单一个用于供变数输入,以与对应之所述权重值执行对应之所述乘法运算的输入端,以及单一个用于输出所述乘法运算之运算结果的输出端。
16.根据权利要求13所述的电路规划结果产生系统,其特征在于:所述处理单元在产生所述电路数据之前,将所述神经元阵列其中至少一者所包含的其中至少一权重值以近似值更新,其中,所述近似值等于2的x次方,且x为整数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107105438 | 2018-02-14 | ||
TW107105438A TWI659324B (zh) | 2018-02-14 | 2018-02-14 | 電路規劃結果產生方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110163352A CN110163352A (zh) | 2019-08-23 |
CN110163352B true CN110163352B (zh) | 2023-08-29 |
Family
ID=67348947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810776618.5A Active CN110163352B (zh) | 2018-02-14 | 2018-07-13 | 电路规划结果产生方法与系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110163352B (zh) |
TW (1) | TWI659324B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
TW201710959A (zh) * | 2015-05-21 | 2017-03-16 | 咕果公司 | 類神經網路處理器 |
TW201729124A (zh) * | 2015-05-21 | 2017-08-16 | 咕果公司 | 類神經網路處理器中之向量運算單元 |
TW201732689A (zh) * | 2015-12-23 | 2017-09-16 | 英特爾股份有限公司 | 用於可重置神經形態硬體之互連方案 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9449257B2 (en) * | 2012-12-04 | 2016-09-20 | Institute Of Semiconductors, Chinese Academy Of Sciences | Dynamically reconstructable multistage parallel single instruction multiple data array processing system |
US9730596B2 (en) * | 2013-06-28 | 2017-08-15 | Stmicroelectronics, Inc. | Low power biological sensing system |
-
2018
- 2018-02-14 TW TW107105438A patent/TWI659324B/zh active
- 2018-07-13 CN CN201810776618.5A patent/CN110163352B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
TW201710959A (zh) * | 2015-05-21 | 2017-03-16 | 咕果公司 | 類神經網路處理器 |
TW201729124A (zh) * | 2015-05-21 | 2017-08-16 | 咕果公司 | 類神經網路處理器中之向量運算單元 |
TW201732689A (zh) * | 2015-12-23 | 2017-09-16 | 英特爾股份有限公司 | 用於可重置神經形態硬體之互連方案 |
Non-Patent Citations (1)
Title |
---|
Deep neural network for halftone image classification based on sparse auto-encoder;Yan Zhang等;Engineering Applications of Artificial Intelligence;第50卷(第2016期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110163352A (zh) | 2019-08-23 |
TW201935286A (zh) | 2019-09-01 |
TWI659324B (zh) | 2019-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461632B2 (en) | Method and apparatus for adapting parameters of neural network | |
US20160196488A1 (en) | Neural network computing device, system and method | |
CN111587440B (zh) | 用于更新精确突触权重值的神经形态芯片 | |
CN111183452A (zh) | 用于广义图像处理的图像预处理 | |
WO2019060670A1 (en) | LOW PROFOUND CONVOLUTIVE NETWORK WEIGHT COMPRESSION | |
KR20180134740A (ko) | 전자 장치 및 학습 모델 최적화 방법 | |
CN111353579A (zh) | 利用反向传播为深度神经网络选择量化参数的方法和系统 | |
US20220414439A1 (en) | Neuromorphic Synthesizer | |
JP6823495B2 (ja) | 情報処理装置および画像認識装置 | |
US11475284B2 (en) | Information processing apparatus, neural network program, and processing method for neural network | |
CN114041141A (zh) | 用于从卷积提前退出的系统、方法和设备 | |
CN110766127A (zh) | 神经网络计算专用电路及其相关计算平台与实现方法 | |
DE102019103319A1 (de) | Stochastisches runden von zahlenwerten | |
CN111353598A (zh) | 一种神经网络压缩方法、电子设备及计算机可读介质 | |
CN115204355A (zh) | 能够重新使用数据的神经处理单元及其方法 | |
US11907834B2 (en) | Method for establishing data-recognition model | |
Mao et al. | Energy-efficient machine learning accelerator for binary neural networks | |
US20190005379A1 (en) | Cortical processing with thermodynamic ram | |
CN110163352B (zh) | 电路规划结果产生方法与系统 | |
US20220253709A1 (en) | Compressing a Set of Coefficients for Subsequent Use in a Neural Network | |
CN111027669A (zh) | 在现场可编程门阵列上实现深度神经网络的方法及装置 | |
TWM563580U (zh) | 電路規劃結果產生系統 | |
CN111382835A (zh) | 一种神经网络压缩方法、电子设备及计算机可读介质 | |
US20220261652A1 (en) | Training a Neural Network | |
US20230359877A1 (en) | Technology for lowering instantaneous power consumption of neural processing unit |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240206 Address after: 6-9/F, 561 North Linsen Road, Zhongshan District, Taipei, Taiwan, China, China Patentee after: Mantuo Technology Co.,Ltd. Country or region after: Taiwan, China Address before: Hsinchu City Patentee before: BEIJIA TECHNOLOGY Co.,Ltd. Country or region before: Taiwan, China |