CN110163334A - 集成电路芯片装置及相关产品 - Google Patents

集成电路芯片装置及相关产品 Download PDF

Info

Publication number
CN110163334A
CN110163334A CN201810141373.9A CN201810141373A CN110163334A CN 110163334 A CN110163334 A CN 110163334A CN 201810141373 A CN201810141373 A CN 201810141373A CN 110163334 A CN110163334 A CN 110163334A
Authority
CN
China
Prior art keywords
layer
weight
data
quantization
group data
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
CN201810141373.9A
Other languages
English (en)
Other versions
CN110163334B (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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201810141373.9A priority Critical patent/CN110163334B/zh
Priority to US16/273,031 priority patent/US20190251448A1/en
Priority to US16/272,963 priority patent/US20190250860A1/en
Publication of CN110163334A publication Critical patent/CN110163334A/zh
Application granted granted Critical
Publication of CN110163334B publication Critical patent/CN110163334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

本发明提供了一种集成电路芯片装置及相关产品,集成电路芯片装置包括外部接口以及处理电路,外部接口用于接收训练指令;处理电路,用于依据训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据,从预设的输出结果表中查询第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将第一层输出数据作为第二层输入数据输入到n‑1层执行正向运算得到第n层输出数据;根据第n层输出数据确定第n层输出数据梯度,根据训练指令获取n层反向运算。通过将输入数据和权值进行量化,直接查询计算结果,减少训练时的参数量和运算量。

Description

集成电路芯片装置及相关产品
技术领域
本发明涉及神经网络领域,尤其涉及一种集成电路芯片装置及相关产品。
背景技术
现有的神经网络训练方法一般是采用反向传播算法,学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,输入数据通过输入层经隐含层,经过逐层处理并传向输出层。如果在输出层得不到期望的输出数据,则转入反向传播,逐层求出反向传播中每一层的权值梯度,最后用计算得到的权值梯度去更新权值,这就是神经网络的训练的一次迭代,整个训练过程中需要重复执行这个过程多次,直到输出数据达到期望值,该训练方法在训练过程中存在参数量与运算量过大,训练效率低的问题。
发明内容
本发明实施例提供了一种集成电路芯片装置及相关产品,可减少训练时的参数量和运算量,降低数据传输开销和传输能耗。
第一方面,提供一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络训练,所述神经网络包括n层,n为大于1的整数,所述装置包括外部接口以及处理电路,其中,
所述外部接口用于接收训练指令;
所述处理电路,用于依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据;
所述处理电路,还用于根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新;
所述处理电路,还用于将第n层输入数据梯度作为第n-1层输出数据梯度输入到n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
第二方面,一种神经网络训练方法,所述神经网络包含n层,n为大于1的整数,所述方法包括:
接收训练指令,依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据;
根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新;
将第n层输入数据梯度作为第n-1层输出数据梯度输入n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
第三方面,提供一种神经网络运算装置,所述神经网络运算装置包括一个或多个第一方面提供的集成电路芯片装置。
第四方面,提供一种组合处理装置,所述组合处理装置包括:第三方面提供的神经网络运算装置、通用互联接口和通用处理装置;
所述神经网络运算装置通过所述通用互联接口与所述通用处理装置连接。
第五方面,提供一种芯片,所述芯片集成第一方面的装置、第三方面的装置或第四方面的装置。
第六方面,提供一种电子设备,所述电子设备包括第五方面的芯片。
可以看出,本发明的实施例,一方面,通过挖掘神经网络各层数据之间的相似性以及层内数据的局部相似性,以挖掘数据分布特性从而进行低比特量化,减小了表示每一个数据的比特数,对权值以及输入数据进行量化,减少了训练时的参数量,也降低了数据传输开销和传输能耗,采用离散数据表示的方法,相较于浮点数、定点数等表示方法,减少了存储能耗;另一方面,对于可能出现的运算操作进行提前计算并存入输出结果表中,使得真正训练时可以直接通过查表的方式获取计算结果,提高了计算效率,减小了计算功耗,采用针对多层人工神经网络运算的输出结果表查询,充分挖掘了输入神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络运算性能瓶颈的问题。
附图说明
图1是本发明实施例提供的一种集成电路芯片装置的结构示意图。
图2a是本发明实施例提供的一种神经网络训练方法的流程示意图。
图2b是本发明实施例提供的一个权值分组的示意图。
图2c是本发明实施例提供的一种对权值分组进行聚类的示意图。
图2d是本发明实施例提供的一种中密码本的示意图。
图2e是本发明实施例提供的权值组数据的示意图。
图2f是本发明实施例提供的一种权值字典的示意图。
图2g是本发明实施例提供的一种量化权值组数据的示意图。
图3是本发明实施例提供的另一种集成电路芯片装置的结构示意图。
图4是本发明实施例提供的一种神经网络芯片装置的结构示意图。
图5a是本发明实施例提供的一种组合处理装置的结构示意图。
图5b是本发明实施例提供的一种组合处理装置的另一结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是在一种可选方案中还包括没有列出的步骤或单元,或在一种可选方案中还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在第一方面提供的装置中,在所述对所述第一层权值组数据进行量化方面,所述处理电路包括:
控制单元,用于获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的地址信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
字典查询单元,用于根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;
密码本查询单元,用于根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数。
在第一方面提供的装置中,所述装置还包括权值字典建立单元,所述权值字典建立单元用于:
在对所述第一层权值组数据进行量化之前,确定所述神经网络的n层权值组数据中每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值,得到所述n层权值组数据的每一个权值对应的中心权值;
根据所述预设的密码本确定所述n层权值组数据的每一个权值对应的中心权值的编码,得到所述神经网络的n层权值组数据中每一个权值对应的编码,并生成权值字典。
在第一方面提供的装置中,所述预设的密码本是根据如下步骤得到:
对多个权值进行分组,得到多个分组;
根据聚类算法针对所述多个分组中每一分组的权值进行聚类操作,得到多个类;
计算所述多个类中每一个类的中心权值;
对所述多个类中每一个类的中心权值进行编码,并生成密码本。
在第一方面提供的装置中,所述聚类算法,包括以下任意一种算法:
K-means算法、K-medoids算法、Clara算法和Clarans算法。
在第一方面提供的装置中,所述神经网络包括a个卷积层、b个全连接层和c个长短时记忆网络层,所述对多个权值进行分组,得到多个分组,包括:
将所述多个权值中每一卷积层的权值分为一组,每一全连接层的权值分为一组,每一长短时记忆网络层的权值分为一组,得到(a+b+c)个分组;
所述根据聚类算法针对所述多个分组中每一分组进行聚类操作,包括:
对所述(a+b+c)个分组中每一分组的权值采用所述K-medoids算法进行聚类。
在第一方面提供的装置中,在所述对所述第一层输入数据进行量化方面,所述处理电路包括:
预处理单元,用于对所述第一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0;
确定单元,用于确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述第一层预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值确定为所述元素值对应的量化元素值。
在第二方面提供的方法中,所述对所述第一层权值组数据进行量化,包括:
获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的位置信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;
根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数。
在第二方面提供的方法中,所述预设的权值字典是根据如下步骤得到:
在对所述第一层权值组数据进行量化之前,确定所述神经网络的n层权值组数据中每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值,得到所述n层权值组数据的每一个权值对应的中心权值;
根据所述预设的密码本确定所述n层权值组数据的每一个权值对应的中心权值的编码,得到所述神经网络的n层权值组数据中每一个权值对应的编码,并生成权值字典。
在第二方面提供的方法中,所述预设的密码本是根据如下步骤得到:
对多个权值进行分组,得到多个分组;
根据聚类算法针对所述多个分组中每一分组的权值进行聚类操作,得到多个类;
计算所述多个类中每一个类的中心权值;
对所述多个类中每一个类的中心权值进行编码,并生成密码本。
在第二方面提供的方法中,所述对所述第一层输入数据进行量化,包括:
对所述第一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0;
本发明实施例提供的一种神经网络芯片装置的结构示意图如图1所示,图1为本发明实施例提供的一种集成电路芯片装置的结构示意图。所述集成电路芯片装置用于执行神经网络训练,所述神经网络包括n层,n为大于1的整数,其特征在于,所述装置包括外部接口以及处理电路,其中,
所述外部接口用于接收训练指令;
所述处理电路,用于依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据;
所述处理电路,还用于根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新;
所述处理电路,还用于将第n层输入数据梯度作为第n-1层输出数据梯度输入到n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
如图2a所示,图2a为本发明实施例提供的一种神经网络训练方法的流程示意图。本实施例中描述的神经网络训练方法,用于执行神经网络训练,所述神经网络包含n层,n为大于1的整数,所述方法包括:
201、外部接口接收训练指令。
其中,训练指令为神经网络专用指令,包括所有专用于完成人工神经网络运算的指令,神经网络专用指令包括但不仅限于控制指令,数据传输指令,运算指令和逻辑指令,其中控制指令控制神经网络执行过程。数据传输指令完成不同存储介质之间的数据传输,数据格式包括但不仅限于矩阵,向量和标量。运算指令完成神经网络的算术运算,包括但不仅限于矩阵运算指令、向量运算指令、标量运算指令、卷积神经网络运算指令、全连接神经网络运算指令、池化神经网络运算指令、RBM神经网络运算指令、LRN神经网络运算指令、LCN神经网络运算指令、LSTM神经网络运算指令、RNN神经网络运算指令、RELU神经网络运算指令、PRELU神经网络运算指令、SIGMOID神经网络运算指令、TANH神经网络运算指令和MAXOUT神经网络运算指令。逻辑指令完成神经网络的逻辑运算,包括但不仅限于向量逻辑运算指令和标量逻辑运算指令。
其中,RBM神经网络运算指令用于实现受限玻尔兹曼机(Restricted BoltzmannMachine,RBM)神经网络运算。
LRN神经网络运算指令用于实现近邻归一化(Local Response Normalization,LRN)神经网络运算。
LSTM神经网络运算指令用于实现长短时记忆(Long Short-Term Memory,LSTM)神经网络运算。
RNN神经网络运算指令用于实现递归神经网络(Recurrent Neural Networks)神经网络运算。
RELU神经网络运算指令用于实现线性修正单元(Rectified linear unit,RELU,RNN)神经网络运算。
PRELU神经网络运算指令用于实现参数的线性修正单元(Parametric RectifiedLinear Unit,PRELU)神经网络运算。
SIGMOID神经网络运算指令用于实现S型生长曲线(SIGMOID)神经网络运算
TANH神经网络运算指令用于实现双曲正切函数(TANH)神经网络运算。
MAXOUT神经网络运算指令用于实现最大输出值(MAXOUT)神经网络运算。
更进一步地,该神经网络专用指令包括Cambricon(寒武纪)指令集。
所述Cambricon指令集包括至少一种Cambricon指令,且Cambricon指令的长度为64bit,该Cambricon指令由操作码和操作数组成。Cambricon指令包含四种类型的指令,分别是Cambricon控制指令(control instructions)、Cambricon数据传输指令(datatransfer instructions)、Cambricon运算指令(computational instructions)和Cambricon逻辑指令(logical instructions)。
其中,Cambricon控制指令用于控制执行过程。Cambricon控制指令包括跳转(jump)指令和条件分支(conditional branch)指令。
Cambricon数据传输指令用于完成不同存储介质之间的数据传输。Cambricon数据传输指令包括加载(load)指令、存储(store)指令和搬运(move)指令。load指令用于将数据从主存加载到缓存,store指令用于将数据从缓存存储到主存,move指令用于在缓存与缓存或者缓存与寄存器或者寄存器与寄存器之间搬运数据。数据传输指令支持三种不同的数据组织方式,包括矩阵,向量和标量。
Cambricon运算指令用于完成神经网络算术运算。Cambricon运算指令包括Cambricon矩阵运算指令、Cambricon向量运算指令和Cambricon标量运算指令。
Cambricon矩阵运算指令完成神经网络中的矩阵运算,包括矩阵乘向量(matrixmultiply vector)、向量乘矩阵(vector multiply matrix)、矩阵乘标量(matrixmultiply scalar)、外积(outer product)、矩阵加矩阵(matrix add matrix)和矩阵减矩阵(matrix subtract matrix)。
Cambricon向量运算指令完成神经网络中的向量运算,包括向量基本运算(vectorelementary arithmetics)、向量超越函数运算(vector transcendental functions)、内积(dot product)、向量随机生成(random vector generator)和向量中最大/最小值(maximum/minimum of a vector)。其中向量基本运算包括向量加、减、乘、除(add、subtract、multiply、divide),向量超越函数是指那些不满足任何以多项式作系数的多项式方程的函数,包括但不仅限于指数函数、对数函数、三角函数和反三角函数。
Cambricon标量运算指令完成神经网络中的标量运算,包括标量基本运算(scalarelementary arithmetics)和标量超越函数运算(scalar transcendental functions)。其中标量基本运算包括标量、减、乘、除(add、subtract、multiply、divide),标量超越函数是指那些不满足任何以多项式作系数的多项式方程的函数,包括但不仅限于指数函数,对数函数,三角函数,反三角函数。
Cambricon逻辑指令用于神经网络的逻辑运算。Cambricon逻辑运算包括Cambricon向量逻辑运算指令和Cambricon标量逻辑运算指令。
Cambricon向量逻辑运算指令包括向量比较(vector compare)、向量逻辑运算(vector logical operations)和向量大于合并(vector greater than merge)。其中向量比较包括但不小于大于、小于,等于、大于等于、小于等于、不等于。向量逻辑运算包括与、或、非。
Cambricon标量逻辑运算包括标量比较(scalar compare),标量逻辑运算(scalarlogical operations)。其中标量比较包括但不限于大于、小于、等于、大于等于,小于等于和不等于。标量逻辑运算包括与、或、非。
202、处理电路依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据。
在一种可选方案中,对所述第一层权值组数据进行量化,可包括如下步骤:
获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的位置信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;
根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数。
在一种可选方案中,上述预设的权值字典是根据如下步骤得到:
确定所述神经网络的n层权值组数据的每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值,得到所述n层权值组数据的每一个权值对应的中心权值;
根据所述预设的密码本确定所述n层权值组数据的每一个权值对应的中心权值的编码,得到所述神经网络的n层权值组数据的每一个权值对应的编码,并生成权值字典。
其中,上述中心权值为可用于替换一个类中所有权值的数值,具体的,是在建立预设的密码本时,根据如下代价函数对任一类的所有权值进行计算得到:
其中,w是一个类中的所有权值,w0是该类的中心权值,m是该类中权值的数量,wi是该类中第i个权值,i是大于等于1小于等于m的正整数。
其中,上述确定所述神经网络的n层权值组数据的每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值的方式,可通过计算每一个权值与Q个中心权值中每一个中心权值的差值的绝对值,得到Q个绝对值,其中,Q个绝对值中的最小绝对值对应的中心权值即为该权值与预设的密码本中的Q个中心权值距离最近的中心权值。
在一种可选方案中,上述预设的密码本是根据如下步骤得到:
对多个权值进行分组,得到多个分组;
根据聚类算法针对所述多个分组中每一分组的权值进行聚类操作,得到多个类;
计算所述多个类中每一个类的中心权值;
对所述多个类中每一个类的中心权值进行编码,并生成密码本。
本发明的实施例中,建立密码本,可对多个权值进行分组,然后对每一个分组进行聚类操作,分组可按照如下任意一种方式进行:分为一组、层类型分组、层间分组、层内分组、混合分组等等。
在一种可选方案中,将上述多个权值分为一组,对该组内的所有权值采用K-means算法进行聚类。
在一种可选方案中,将上述多个权值按照层类型进行分组,具体的,假定神经网络包含a个卷积层、b个全连接层和c个长短时记忆网络层(long and short time memorynetwork layer,LSTM),a、b和c均为整数,可将每一个卷积层的权值分为一组,每一个全连接层的权值分为一组,每一个LSTM层的权值分为一组,从而将上述多个权值分为(a+b+c)组,对每一组内的权值采用K-medoids算法进行聚类。
在一种可选方案中,将上述多个权值按照层间结构进行分组,具体的,将一个或者连续多个卷积层分为一组,一个或者连续多个全连接层分为一组,一个或者连续多个LSTM层分为一组,然后对每一组内的权值采用Clara算法进行聚类。
在一种可选方案中,将上述多个权值按照层内结构进行分组,神经网络的卷积层可以看成是一个四维矩阵(Nfin,Nfout,Kx,Ky),其中Nfin,Nfout,Kx,Ky是正整数,Nfin表示输入特征图像(feature map)数量,Nfout表示输出特征图像数量,(Kx,Ky)表示卷积核(kernel)的大小。卷积层的权值按(Bfin,Bfout,Bx,By)的组大小被分成Nfin*Nfout*Kx*Ky/(Bfin*Bfout*Bx*By)个不同的组,其中Bfin为小于等于Nfin的正整数,Bfout为小于等于Nfout的正整数,Bx为小于等于Kx的正整数,By为小于等于Ky的正整数;神经网络的全连接层可以看成是一个二维矩阵(Nin,Nout),其中Nin,Nout是正整数,Nin表示输入神经元的个数,Nout表示输出神经元的个数,共有Nin*Nout个权值。全连接层权值按照(Bin,Bout)的组大小被分成(Nin*Nout)/(Bin*Bout)个不同的组,其中Bin是小于等于Nin的正整数,Bout是小于等于Nout的正整数;神经网络的LSTM层权值可以看出多个全连接层的权值的组合,假设LSTM层的权值由s个全连接层权值组成,其中s为正整数,每一个全连接层都可以按照全连接层的分组方式进行分组操作,对每一组内的权值采用Clarans聚类算法进行聚类。
在一种可选方案中,将上述多个权值按照混合的方式进行分组,例如,所有卷积层为一组,所有全连接层按照层内结构进行分组,所有LSTM层按照层间结构进行分组。对每一组内的权值采用Clarans聚类算法进行聚类。
下面对建立预设的密码本的过程进行举例说明。
首先,将多个权值按照混合的方式进行分组,得到多个分组,如图2b所示,为本发明实施例提供的一个权值分组的示意图。如图2b所示,对分组后的权值进行聚类操作,从而将相近的权值划为同一类别,得到如图2c所示的四个类,其中,每一类的权值通过相同的类标识进行标记,将四个类中每一个类根据代价函数计算,得到1.50、-0.13、-1.3和0.23这四个中心权值,每一个类对应一个中心权值,然后对四个中心权值进行编码操作,如图2d所示,将中心权值为-1.3的类别编码为00,将中心权值为-0.13的类别编码为01,将中心权值为0.23的类别编码为10,将中心权值为1.50的类别编码为11,根据四个中心权值和与每一中心权值对应的编码生成图2d所示的密码本。
下面对建立权值字典的过程进行举例说明。
在对第一层权值组数据进行量化之前,针对如图2e所示的神经网络的n层权值组数据,计算每一个权值与如图2d所示预设的密码本中每一个中心权值的差值的绝对值,如图2e所示的权值组数据中,当权值为-1.5,计算该权值分别与四个中心权值1.50、-0.13、-1.3和0.23的差值的绝对值,可得到最小绝对值对应的中心权值为-1.3,该权值对应的密码本中的编码为00,类似的,可得到其他权值对应的中心权值,根据如图2d所示的预设的密码本查询到的与权值组数据对应的编码,根据权值组数据中每一权值的编码生成如图2f所示的权值字典。
下面对根据权值字典和预设的密码本查询第一层权值组数据对应的第一层量化权值组数据的过程进行举例说明。
根据如图2f所示的权值字典,从图2d所示的预设的密码本中查询与权值字典中每一编码对应的中心权值,如图2f和图2d所示,00对应的中心权值为-1.3,该中心权值即为00对应的量化权值,类似的,可得到其他编码对应的量化权值,如图2g所示。
在一种可选方案中,对所述第一层输入数据进行量化,可包括如下步骤:
对所述第一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0;
确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述第一层预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值确定为所述元素值对应的量化元素值。
其中,预设区间[-zone,zone]例如可以是[-1,1]或[-2,2]。
在一种可选方案中,M个数值可以为预设的M个数值。
在一种可选方案中,M个数值可以系统随机生成的M个数值。
在一种可选方案中,M个数值可以是根据一定规则生成的M个数值,例如,可设定M个数值中每一数值的绝对值是2的幂的倒数。
在一种可选方案中,上述预处理操作可包括以下至少一项:切分、高斯滤波、二值化、正则化和、归一化。
举例说明,假定将第一层输入数据中的任一元素值量化成3比特的数据,则M的取值不超过23=8,可取M为7,7个数值例如可为{-1,-0.67,-0.33,0,0.33,0.67,1},假定某一元素值经预处理后的预处理数据为0.4,可确定与其差值的绝对值最小的数值为0.33,则量化后的输入数据为0.33。
203、处理电路根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新。
204、处理电路将第n层输入数据梯度作为第n-1层输出数据梯度输入n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
如图3所示,图3为本发明实施例提供的另一种集成电路芯片装置的结构示意图。该集成电路芯片装置包括:控制单元301、查询单元302、存储单元303、DMA单元304、预处理单元305、确定单元306和缓存单元307,其中,
控制单元301用于获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的地址信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
查询单元302包括字典查询单元21、密码本查询单元22和结果查询单元23,其中,字典查询单元21用于根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;密码本查询单元22,用于根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数;结果查询单元23用于从预设的输出结果表中查询量化输入数据和量化权值组数据对应的输出数据;
存储单元303用于存储外部输入的输入数据、权值字典、密码本和训练指令,还用于存储未量化的权值组数据;
直接内存读取(direct memory access,DMA)单元204用于从存储单元203中直接读取输入数据、权值字典、密码本和指令,并将输入数据、权值字典、密码本和训练指令输出至缓存单元207中。
预处理单元305用于对所述第一层输入数据使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0,预处理包括切分、高斯滤波、二值化、正则化和归一化等;
确定单元306,用于确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述第一层预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值作为第一层量化输入数据;
缓存单元307包括指令缓存单元71,用于缓存训练指令;权值字典缓存单元72,用于缓存权值字典;密码本缓存单元73,用于缓存密码本;输入数据缓存单元74,用于缓存所述输入数据;以及输出数据缓存单元75,用于缓存输出数据。
外部输入的输入数据经过预处理单元305预处理后,得到预处理数据,经过确定单元306确定量化输入数据,DMA单元304从存储单元303中直接读取量化后的输入数据、权值字典、密码本和训练指令,并将训练指令输出至指令缓存单元71中缓存,将权值字典输出至权值字典缓存单元72中缓存,将密码本输出至密码本缓存单元73中缓存,将输入神经元输出至输入神经元缓存单元74中缓存。控制单元301对其接收的指令译码,得到并输出查表控制信息和运算控制信息。字典查询单元21、密码本查询单元22根据接收的查表控制信息,对权值字典和密码本进行查表操作,得到量化权值,并输出至结果查询单元23,结果查询单元23根据其接收到的运算控制信息,确定运算操作和运算顺序,并从结果查询表中查询量化权值和量化输入数据对应的输出数据,并将输出数据输出至输出数据缓存单元75,最终再由该输出数据缓存单元75将输出数据输出至存储单元303进行存储。
参阅图4,图4为本发明实施例提供的一种神经网络芯片装置的结构示意图,该芯片包括:主处理电路、基本处理电路和(可选的)分支处理电路。
主处理电路可以包括寄存器和/或片上缓存电路,该主处理电路可以包括:控制电路、查询电路、输入数据量化电路、权值组数据量化电路和缓存电路,其中,查询电路包括字典查询单元、密码本查询单元和结果查询单元,其中,结果查询单元用于从预设的输出结果表中查询所述量化输入数据和量化权值组数据对应的输出数据;从预设的输出结果表中查询所述量化输出数据梯度和量化输入数据对应的输入数据梯度,从预设的输出结果表中查询量化输出数据梯度和量化权值组数据对应的权值组梯度。具体地,在n层神经网络中,根据运算控制指令,查询对应的向量运算输出结果,例如,根据向量运算指令,查询向量运算输出结果,根据逻辑运算指令,查询对应的逻辑运算输出结果,根据累加运算指令,查询对应的累加运算输出结果。
在一个可选的实施例中,上述权值组数据量化电路,具体用于获取量化指令,并对量化指令译码,得到查询控制信息,根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,根据K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值。
在一个可选的实施例中,上述输入数据量化电路,用于对每一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的预处理数据,确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值确定为所述元素值对应的量化元素值,进而对输入数据进行量化。
在一个可选的实施例中,上述主处理电路的查询单元在根据各个运算指令进行结果查询的过程,还包括将上一级运算控制指令查询的输出结果作为中间结果,然后根据该中间结果查询下一级运算指令的输出结果。
在一个可选的实施例中,上述主处理电路还可包括运算电路,具体地,可根据上一级运算控制指令查询的输出结果作为中间结果,然后根据该中间结果执行下一级运算控制指令的运算。
在一个可选的实施例中,上述运算电路可包括:向量运算电路、内积运算电路或累加运算电路逻辑运算电路等等。
主处理电路还包括数据发送电路、数据接收电路或接口,该数据发送电路可以集成数据分发电路以及数据广播电路,当然在实际应用中,数据分发电路以及数据广播电路也可以分别设置;在实际应用中上述数据发送电路以及数据接收电路也可以集成在一起形成数据收发电路。对于广播数据,即需要发送给每个基础处理电路的数据。对于分发数据,即需要有选择的发送给部分基础处理电路的数据,具体的选择方式可以由主处理电路依据负载以及计算方式进行具体的确定。对于广播发送方式,即将广播数据以广播形式发送至每个基础处理电路。(在实际应用中,通过一次广播的方式将广播数据发送至每个基础处理电路,也可以通过多次广播的方式将广播数据发送至每个基础处理电路,本申请具体实施方式并不限制上述广播的次数),对于分发发送方式,即将分发数据有选择的发送给部分基础处理电路。
在实现分发数据时,主处理电路的控制电路向部分或者全部基础处理电路传输数据(该数据可以相同,也可以不同,具体的,如果采用分发的方式发送数据,各个接收数据的基础处理电路收到的数据可以不同,当然也可以有部分基础处理电路收到的数据相同;
具体地,广播数据时,主处理电路的控制电路向部分或者全部基础处理电路传输数据,各个接收数据的基础处理电路可以收到相同的数据。
每个基础处理电路可以包括基础寄存器和/或基础片上缓存电路;可选的,每个基础处理电路还可包括:控制电路、查询电路、输入数据量化电路、权值组数据量化电路和缓存电路。
该芯片装置还可以包括一个或多个分支处理电路,如具有分支处理电路时,其中主处理电路与分支处理电路连接,该分支处理电路与基本处理电路连接,该基本处理电路的内积运算结果查询电路用于执行从预设的结果表中查询内积运算的内积运算输出结果的操作,该主处理电路的控制电路控制数据接收电路或数据发送电路收发外部数据,以及通过控制电路控制数据发送电路将外部数据分发至分支处理电路,该分支处理电路用于收发主处理电路或基本处理电路的数据。如图4所示的结构适合复杂数据的计算,因为对于主处理电路来说,其连接的单元的数量有限,所以需要在主处理电路与基本处理电路之间添加分支处理电路以实现更多的基本处理电路的接入,从而实现对复杂数据块的计算。分支处理电路和基础处理电路的连接结构可以是任意的,不局限在图4的H型结构。可选的,主处理电路到基础处理电路是广播或分发的结构,基础处理电路到主处理电路是收集(gather)的结构。广播,分发和收集的定义如下,对于分发或广播结构,此时的基础处理电路的数量大于主处理电路,即1个主处理电路对应多个基础处理电路,即从主处理电路到多个基础处理电路为广播或分发的结构,反之,从多个基础处理电路到主处理电路可以为收集结构。
基础处理电路,接收主处理电路分发或者广播的数据保存到基础处理电路的片上缓存中,可以执行结果查询操作产生输出结果,可以向主处理电路发送数据。
参阅图4所示的结构,其包含一主处理电路以及多个基础处理电路。这样组合的好处是:装置不仅能使用基础处理电路执行结果查询操作,也能使用主处理电路执行其他任意的结果查询操作,使装置在有限的硬件电路的配置下,能够更快的完成更多的结果查询,减少了与装置外部进行数据传输的次数,提高了计算效率,降低了功耗。另外,本芯片在基础处理电路和/或主处理电路均可以设置输入数据量化电路和权值组数据量化电路,这样在进行神经网络计算时能够将输入数据和权值组数据进行量化,并且本芯片可以依据各个电路(主要是主处理电路和基础处理电路)的运算量(即负载量)动态的分配由那个电路进行量化操作,这样能够减少数据计算的复杂程序,降低功耗,并且动态的分配数据量化能够实现不影响芯片的计算效率。该分配的方式包括但不限于:负载均衡、负载最小值分配等等方式。
本发明实施例还提供了一个神经网络运算装置,其包括一个或多个在如图4的芯片,用于从其他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上如图4所述的芯片时,集成电路芯片装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
如图5a所示,图5a为本发明实施例提供的一种组合处理装置的结构示意图。本实施例所描述的组合处理装置,包括上述的神经网络运算装置,通用互联接口,和其他处理装置(即通用处理装置)。神经网络运算装置与其他处理装置进行交互,共同完成用户指定的操作。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。
通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。
如图5b所示,图5b为本发明实施例提供的另一种组合处理装置的结构示意图,该组合处理装置还包括存储装置,用于保存在本运算单元/运算装置或其他运算单元所需要的数据,尤其适用于所需要运算的数据在本神经网络运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一个可选的实施例中,本发明公开了一个芯片,其包括了上述神经网络运算装置或组合处理装置。
在一个可选的实施例中,本发明公开了一个芯片封装结构,其包括了上述芯片。
在一个可选的实施例中,本发明公开了一个板卡,其包括了上述芯片封装结构。
在一个可选的实施例中,本发明公开了一个电子装置,其包括了上述板卡。
在一个可选的实施例中,本公开公开了一个电子装置,其包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
各功能单元/模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络训练,所述神经网络包括n层,n为大于1的整数,其特征在于,所述装置包括外部接口以及处理电路,其中,
所述外部接口用于接收训练指令;
所述处理电路,用于依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据;
所述处理电路,还用于根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新;
所述处理电路,还用于将第n层输入数据梯度作为第n-1层输出数据梯度输入到n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
2.根据权利要求1所述的装置,其特征在于,在所述对所述第一层权值组数据进行量化方面,所述处理电路包括:
控制单元,用于获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的地址信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
字典查询单元,用于根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;
密码本查询单元,用于根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括权值字典建立单元,所述权值字典建立单元用于:
在对所述第一层权值组数据进行量化之前,确定所述神经网络的n层权值组数据中每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值,得到所述n层权值组数据中每一个权值对应的中心权值;
根据所述预设的密码本确定所述n层权值组数据的每一个权值对应的中心权值的编码,得到所述神经网络的n层权值组数据的每一个权值对应的编码,并生成权值字典。
4.根据权利要求2或3所述的装置,其特征在于,所述预设的密码本是根据如下步骤得到:
对多个权值进行分组,得到多个分组;
根据聚类算法针对所述多个分组中每一分组的权值进行聚类操作,得到多个类;
计算所述多个类中每一个类的中心权值;
对所述多个类中每一个类的中心权值进行编码,并生成密码本。
5.根据权利要求4所述的装置,其特征在于,所述聚类算法,包括以下任意一种算法:
K-means算法、K-medoids算法、Clara算法和Clarans算法。
6.根据权利要求5所述的装置,其特征在于,所述神经网络包括a个卷积层、b个全连接层和c个长短时记忆网络层,所述对多个权值进行分组,得到多个分组,包括:
将所述多个权值中每一卷积层的权值分为一组,每一全连接层的权值分为一组,每一长短时记忆网络层的权值分为一组,得到(a+b+c)个分组;
所述根据聚类算法针对所述多个分组中每一分组进行聚类操作,包括:
对所述(a+b+c)个分组中每一分组的权值采用所述K-medoids算法进行聚类。
7.根据权利要求1至6任一项所述的装置,其特征在于,在所述对所述第一层输入数据进行量化方面,所述处理电路包括:
预处理单元,用于对所述第一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0;
确定单元,用于确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述第一层预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值确定为所述元素值对应的量化元素值。
8.一种神经网络训练方法,用于执行神经网络训练,所述神经网络包含n层,n为大于1的整数,其特征在于,所述方法包括:
接收训练指令,依据所述训练指令确定第一层输入数据、第一层权值组数据和第一层包括的运算指令,将所述第一层输入数据和第一层权值组数据进行量化得到第一层量化输入数据和第一层量化权值组数据;从预设的输出结果表中查询所述第一层量化输入数据和第一层量化权值组数据对应的第一层输出数据,将所述第一层输出数据作为第二层输入数据输入到n-1层执行正向运算得到第n层输出数据;
根据所述第n层输出数据确定第n层输出数据梯度,根据所述训练指令获取n层反向运算中的第n层反向运算,将所述第n层输出数据梯度进行量化,得到第n层量化输出数据梯度,从所述预设的输出结果表中查询所述第n层量化输出数据梯度和第n层量化输入数据对应的第n层输入数据梯度,从所述预设的输出结果表中查询第n层量化输出数据梯度和第n层量化权值组数据对应的第n层权值组梯度,根据所述第n层权值组梯度对第n层权值组数据进行更新;
将第n层输入数据梯度作为第n-1层输出数据梯度输入n-1层执行反向运算得到n-1个权值组数据梯度,根据所述n-1个权值组数据梯度更新所述n-1个权值组数据梯度对应的n-1个权值组数据,每层权值组数据包括至少两个权值。
9.根据权利要求8所述的方法,其特征在于,所述对所述第一层权值组数据进行量化,包括:
获取量化指令,并对所述量化指令译码,得到查询控制信息,所述查询控制信息包括预设的权值字典中对应于所述第一层权值组数据的位置信息,所述预设的权值字典包含所述神经网络的n层权值组数据的所有权值对应的编码;
根据所述查询控制信息,从所述预设的权值字典中查询与所述第一层权值组数据的K个权值对应的K个编码,K为大于1的整数;
根据所述K个编码从预设的密码本中查询第一层量化权值组数据的K个量化权值,所述预设的密码本包含Q个编码和所述Q个编码对应的Q个中心权值,Q为大于1的整数。
10.根据权利要求9所述的方法,其特征在于,所述预设的权值字典是根据如下步骤得到:
在对所述第一层权值组数据进行量化之前,确定所述神经网络的n层权值组数据中每一个权值与预设的密码本中的Q个中心权值距离最近的中心权值,得到所述n层权值组数据中每一个权值对应的中心权值;
根据所述预设的密码本确定所述n层权值组数据的每一个权值对应的中心权值的编码,得到所述神经网络的n层权值组数据的每一个权值对应的编码,并生成权值字典。
11.根据权利要求9或10所述的方法,其特征在于,所述预设的密码本是根据如下步骤得到:
对多个权值进行分组,得到多个分组;
根据聚类算法针对所述多个分组中每一分组的权值进行聚类操作,得到多个类;
计算所述多个类中每一个类的中心权值;
对所述多个类中每一个类的中心权值进行编码,并生成密码本。
12.根据权利要求11所述的方法,其特征在于,所述聚类算法,包括以下任意一种算法:
K-means算法、K-medoids算法、Clara算法和Clarans算法。
13.根据权利要求12所述的方法,其特征在于,所述神经网络包括a个卷积层、b个全连接层和c个长短时记忆网络层,所述对多个权值进行分组,得到多个分组,包括:
将所述多个权值中每一卷积层的权值分为一组,每一全连接层的权值分为一组,每一长短时记忆网络层的权值分为一组,得到(a+b+c)个分组;
所述根据聚类算法针对所述多个分组中每一分组进行聚类操作,包括:
对所述(a+b+c)个分组中每一分组的权值采用所述K-medoids算法进行聚类。
14.根据权利要求8至13任一项所述的方法,其特征在于,所述对所述第一层输入数据进行量化,包括:
对所述第一层输入数据中的任一元素值使用clip(-zone,zone)运算进行预处理,得到预设区间[-zone,zone]内的第一层预处理数据,zone大于0;
确定所述预设区间[-zone,zone]中的M个数值,M为正整数,计算所述第一层预处理数据分别与所述M个数值的差值的绝对值,得到M个绝对值,将所述M个绝对值中的最小绝对值对应的数值确定为所述元素值对应的量化元素值。
15.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-6任意一项所述的集成电路芯片装置。
16.一种芯片,其特征在于,所述芯片用于集成如权利要求1-7任意一项所述的装置。
17.一种电子设备,其特征在于,所述电子设备包括如权利要求16所述的芯片。
CN201810141373.9A 2018-02-11 2018-02-11 集成电路芯片装置及相关产品 Active CN110163334B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810141373.9A CN110163334B (zh) 2018-02-11 2018-02-11 集成电路芯片装置及相关产品
US16/273,031 US20190251448A1 (en) 2018-02-11 2019-02-11 Integrated circuit chip device and related product thereof
US16/272,963 US20190250860A1 (en) 2018-02-11 2019-02-11 Integrated circuit chip device and related product thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810141373.9A CN110163334B (zh) 2018-02-11 2018-02-11 集成电路芯片装置及相关产品

Publications (2)

Publication Number Publication Date
CN110163334A true CN110163334A (zh) 2019-08-23
CN110163334B CN110163334B (zh) 2020-10-09

Family

ID=67540542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810141373.9A Active CN110163334B (zh) 2018-02-11 2018-02-11 集成电路芯片装置及相关产品

Country Status (2)

Country Link
US (1) US20190250860A1 (zh)
CN (1) CN110163334B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027619A (zh) * 2019-12-09 2020-04-17 华中科技大学 一种基于忆阻器阵列的K-means分类器及其分类方法
CN113297128A (zh) * 2020-02-24 2021-08-24 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11422978B2 (en) * 2017-10-30 2022-08-23 AtomBeam Technologies Inc. System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
GB2579399B (en) * 2018-11-30 2020-12-16 Imagination Tech Ltd Data compression and storage
CN113095468B (zh) * 2019-12-23 2024-04-16 上海商汤智能科技有限公司 神经网络加速器及其数据处理方法
KR102466257B1 (ko) * 2020-09-10 2022-11-14 주식회사 더웨이브톡 다중 광원을 활용한 분광 장치
US11886973B2 (en) * 2022-05-30 2024-01-30 Deepx Co., Ltd. Neural processing unit including variable internal memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1290367A (zh) * 1998-02-05 2001-04-04 英泰利克斯公司 基于n元组或随机存取存储器的神经网络分类系统和方法
CN106991478A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 用于执行人工神经网络反向训练的装置和方法
CN107341541A (zh) * 2016-04-29 2017-11-10 北京中科寒武纪科技有限公司 一种用于执行全连接层神经网络训练的装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1290367A (zh) * 1998-02-05 2001-04-04 英泰利克斯公司 基于n元组或随机存取存储器的神经网络分类系统和方法
CN106991478A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 用于执行人工神经网络反向训练的装置和方法
CN107341541A (zh) * 2016-04-29 2017-11-10 北京中科寒武纪科技有限公司 一种用于执行全连接层神经网络训练的装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUNJI CHEN 等: "DaDianNao: A Machine-Learning Supercomputer", 《2014 47TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027619A (zh) * 2019-12-09 2020-04-17 华中科技大学 一种基于忆阻器阵列的K-means分类器及其分类方法
CN111027619B (zh) * 2019-12-09 2022-03-15 华中科技大学 一种基于忆阻器阵列的K-means分类器及其分类方法
CN113297128A (zh) * 2020-02-24 2021-08-24 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113297128B (zh) * 2020-02-24 2023-10-31 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110163334B (zh) 2020-10-09
US20190250860A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
CN110163334A (zh) 集成电路芯片装置及相关产品
CN110197270B (zh) 集成电路芯片装置及相关产品
CN109284823B (zh) 一种运算装置及相关产品
CN110502330A (zh) 处理器及处理方法
CN108170640A (zh) 神经网络运算装置及应用其进行运算的方法
CN109993301A (zh) 神经网络训练装置及相关产品
CN110276447A (zh) 一种计算装置及方法
CN109389208A (zh) 数据的量化装置及量化方法
CN113238989A (zh) 将数据进行量化的设备、方法及计算机可读存储介质
CN113238987B (zh) 量化数据的统计量化器、存储装置、处理装置及板卡
CN109993291A (zh) 集成电路芯片装置及相关产品
CN113837922A (zh) 计算装置、数据处理方法及相关产品
US11710031B2 (en) Parallel processing circuits for neural networks
US11651202B2 (en) Integrated circuit chip device and related product
CN109697507A (zh) 处理方法及装置
CN113238976B (zh) 缓存控制器、集成电路装置及板卡
CN113238975A (zh) 优化深度神经网络的参数的内存、集成电路及板卡
CN110197275B (zh) 集成电路芯片装置及相关产品
CN110197265B (zh) 集成电路芯片装置及相关产品
US11704544B2 (en) Integrated circuit chip device and related product
CN113238988A (zh) 优化深度神经网络的参数的处理系统、集成电路及板卡
CN110197271A (zh) 集成电路芯片装置及相关产品
CN110197272A (zh) 集成电路芯片装置及相关产品
CN110197268A (zh) 集成电路芯片装置及相关产品
CN110197274A (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
GR01 Patent grant
GR01 Patent grant