CN112132272A - 神经网络的计算装置、处理器和电子设备 - Google Patents
神经网络的计算装置、处理器和电子设备 Download PDFInfo
- Publication number
- CN112132272A CN112132272A CN202010999082.0A CN202010999082A CN112132272A CN 112132272 A CN112132272 A CN 112132272A CN 202010999082 A CN202010999082 A CN 202010999082A CN 112132272 A CN112132272 A CN 112132272A
- Authority
- CN
- China
- Prior art keywords
- neural network
- calculation
- circuit
- bit
- gate
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 144
- 238000004364 calculation method Methods 0.000 claims abstract description 158
- 230000004913 activation Effects 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 3
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种神经网络的计算装置、处理器和电子设备,其中,计算装置包括:逻辑运算电路和通路选择模块;所述通路选择模块,用于根据接收的神经网络中的计算元素所占用的位宽控制所述逻辑运算电路包括的多个计算电路中的一个计算电路导通;所述逻辑运算电路,用于基于所述导通的计算电路对所述计算元素进行运算,获得所述计算元素对应的计算结果。通过根据计算元素占用的位宽不同,控制逻辑运算电路导通不同的计算电路,实现可对不同位宽的计算元素进行计算,应用到神经网络的计算中,可实现对二值神经网络和三值神经网络的计算,实现了对二值神经网络和三值神经网络的运算加速。
Description
技术领域
本发明涉及神经网络处理技术,尤其是一种神经网络的计算装置、处理器和电子设备。
背景技术
深度学习技术在近几年得到了飞速发展。深度神经网络,尤其是卷积神经网络,在图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛的应用。
深度学习所得到的深度网络结构是一种运算模型,其中包含大量数据节点,每个数据节点与其他数据节点相连,各个节点间的连接关系用权重表示。伴随神经网络复杂度的不断提高,神经网络技术在实际应用过程中存在占用资源多、运算速度慢、能量消耗大等问题,因此该技术在嵌入式设备或低开销数据中心等领域应用时存在严重的能效问题和运算速度瓶颈。
发明内容
本发明实施例所要解决的一个技术问题是:提供神经网络的计算装置、处理器和电子设备,通过对逻辑运算电路中不同的计算电路进行导通实现对二值神经网络获得三值神经网络的计算。
根据本发明的一个方面,提供了一种神经网络的计算装置,其特征在于,包括逻辑运算电路和通路选择模块;
所述通路选择模块,用于根据接收的神经网络中的计算元素所占用的位宽控制所述逻辑运算电路包括的多个计算电路中的一个计算电路导通;
所述逻辑运算电路,用于基于所述导通的计算电路对所述计算元素进行运算,获得所述计算元素对应的计算结果。
在一个实施例中,所述逻辑运算电路包括至少两个异或门、至少两个非门、至少两个与门、至少两个选择器、至少两个距离计算单元和至少一个减法器。
在一个实施例中,所述多个计算电路包括第一计算电路和第二计算电路;
所述第一计算电路包括至少一个单比特计算电路,所述单比特计算电路包括一个异或门、一个非门、一个选择器和一个距离计算单元;
所述第二计算电路包括一个异或门、一个异或门中的或门、一个非门、两个选择器、两个距离计算单元和一个减法器。
在一个实施例中,所述距离计算单元用于确定两个计算元素之间的汉明距离。
在一个实施例中,所述第一计算电路中包括的单比特计算电路,用于对以单比特数描述的二值神经网络中的计算元素实现卷积计算。
在一个实施例中,所述第二计算电路,用于对以两比特数描述的三值神经网络中的计算元素实现卷积计算。
在一个实施例中,所述通路选择模块,具体用于判断所述接收的计算元素占用位宽为单比特或两比特;响应于所述计算元素占用位宽为单比特,控制导通所述第一计算电路;响应于所述计算元素占用位宽为两比特,控制导通所述第二计算电路。
在一个实施例中,所述计算元素包括神经网络中的权重值和激活值,所述神经网络包括二值神经网络和三值神经网络;
所述二值神经网络中的权重值和激活值以单比特二进制数表示;
所述三值神经网络中的权重值和激活值以两比特二进制数表示。
根据本发明的第二方面,提供了一种处理器,包括:存储单元、控制单元和如权利要求1至8任意一项所述的计算装置;
所述存储单元,用于存储激活值、权重值、指令和计算结果;
所述控制单元,用于获取保存在所述存储单元的指令并解析,根据解析获得的控制信号控制所述计算装置进行计算;
所述计算装置,用于根据所述控制单元的控制调用所述存储单元中的激活值和权重值,对所述激活值和权重值进行计算获得计算结果,并将所述计算结果存入所述存储单元。
根据本发明的第三方面,提供了一种电子设备,包括上述任一项实施例所述的计算装置或上述实施例所述的处理器。
与现有技术相比,本发明的优点在于:通过根据计算元素占用的位宽不同,控制逻辑运算电路导通不同的计算电路,实现可对不同位宽的计算元素进行计算,应用到神经网络的计算中,可实现对二值神经网络和三值神经网络的计算,实现了对二值神经网络和三值神经网络的运算加速。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明实施例提供的神经网络的计算装置的一个结构示意图。
图2为本发明实施例中的权重值与激活值卷积运算的示意图。
图3为本发明实施例提供的神经网络的计算装置中逻辑运算电路的一个电路示意图。
图4为图3提供的逻辑运算电路中第一计算电路的一个电路示意图。
图5为图3提供的逻辑运算电路中第二计算电路的一个电路示意图。
图6为本发明实施例提供的处理器的一种结构示意图。
图7为本发明实施例提供的处理器的另一结构示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
针对能效低和运算速度瓶颈的问题,现有技术提出了将二值和三值神经网络模型应用到部分图像识别、增强现实和虚拟现实等领域中。二值神经网络和三值神经网络降低了数据位宽,数据位宽的减少极大地降低了参数容量,并且提高了网络模型运算速度。二值卷积神经网络的出现降低了图像识别等复杂系统运行所需要的硬件配置,扩展了卷积神经网络的应用领域。
然而,现有的二值神经网络处理器和三值神经网络处理器只能运算单独的一种神经网络,可扩展性较差。
在二值神经网络中,采用1和-1二个值来表示神经网络中的权重值、神经网络的输入、输出数据和中间层的输入、输出数据。在传统的卷积神经网络的计算过程中,输入的特征图是通过与卷积核进行乘、加运算来完成卷积操作。在二值神经网络中,由于神经网络的输入数据和中间层的输入数据(可统称为特征值)与权重值只有1和-1二个值,输入的特征图与卷积核之间的卷积操作可以通过异或非(XNOR)逻辑来完成。
其中,当前输入的A和B均为-1时,输出的F为1;当前输入的A为-1,B为1时,输出的F为-1;当输入的A为1,B为-1时,输出的F为-1,当输入的A和B均为1时,输出的F为1。
在三值神经网络中,是采用1、0和-1三个值来表示神经网络中的权重值、神经网络的输入、输出数据和中间层的输入、输出数据。如果在二值神经网络运算时,采用单比特二进制数描述二值神经网络中被二值化的数据,即采用0表示-1,1表示1。在三值神经网络运算时,可以采用二比特二进制数来描述三值神经网络中被三值化的数据,即-1的二进制补码为11,1的二进制原码为01,0的二进制原码为00,其中,高位为符号位,低位为数据位。
采用低比特数据存储激活值和权重值首先节省了存储开销,其次可以提高运算并行度。
本发明实施例采用、数据表示方式为:以下实施例中所指计算元素包括神经网络中的权重值和激活值,神经网络包括二值神经网络和三值神经网络;二值神经网络中的权重值和激活值以单比特二进制数表示;三值神经网络中的权重值和激活值以两比特二进制数表示。
运算二值神经网络时,采用单比特数值0表示数据-1,采用单数值1便是数据1。其中,数据压缩原理为:采用单比特二进制数描述二值神经网络中被二值化的数据,采用0表示-1,1表示1;运算三值神经网络时,采用单比特二进制数描述二值神经网络中被二值化的数据其中高位为符号位,低位为数据位,-1的二进制补码为11,1的二进制原码为01,0的二进制原码为00。
图1为本发明实施例提供的神经网络的计算装置的一个结构示意图。如图1所示,本发明实施例的神经网络的计算装置10包括:逻辑运算电路120和通路选择模块110,
通路选择模块110,用于根据接收的神经网络中的计算元素所占用的位宽控制逻辑运算电路120包括的多个计算电路中的一个计算电路导通。
逻辑运算电路120,用于基于导通的计算电路对计算元素进行运算,获得计算元素对应的计算结果。
本发明实施例提供的神经网络的计算装置,通过根据计算元素占用的位宽不同,控制逻辑运算电路导通不同的计算电路,实现可对不同位宽的计算元素进行计算,应用到神经网络的计算中,可实现对二值神经网络和三值神经网络的计算,实现了对二值神经网络和三值神经网络的运算加速。
在本发明中,将同一个卷积核内的权重值和对应的激活值展开为向量W和向量a,如图2所示,那么权重和激活值的卷积过程可以表示为a*W,采用所述方法可以提高运算并行度。
采用as表示权重值的符号位,av表示激活值的数据位,Ws表示权重值的符号位,Wv表示激活值的数据位,三值卷积神经网络的卷积运算可以表示为,H代表求向量的汉明距离:
从公式(1)中可以发现,三值神经网络中包含异或(XOR)操作和同或(XNOR)操作,两个的差别是将结果取反,又由上文可知,二值卷积神经网络可以通过同或(XNOR)操作完成,因此,本发明实施例根据二值和三值神经网络中包含重要相同运算的特点,设计一种面向二值和三值神经网络的逻辑运算电路。
在一个可选实施例中,逻辑运算电路包括至少两个异或门、至少两个非门、至少两个与门、至少两个选择器、至少两个距离计算单元和至少一个减法器。
由于二值神经网络具有单比特存储的特点,因此运行速度快、运行功耗低,但是模型应用范围较窄,而三值神经网络通过在参数中增加零值,可以有效提高模型计算精度,可以有效应对复杂的应用场景。而本发明实施例提供的面向二值和三值神经网络的计算装置,通过特有电路设计,可以通过复用大部分计算单元,实现同时处理二值神经网络和三值神经网络,可以提高神经网络计算装置的通用性和可扩展性,同时保证了神经网络计算装置的运算速度及效能。
图3为本发明实施例提供的神经网络的计算装置中逻辑运算电路的一个电路示意图。如图3所示,逻辑运算电路包括分别具有两个输入端的异或门,其具体可为第一异或门301和第二异或门302,第一异或门301的输出端与第一非门303的输入端和第一与门304的一个输入端相连接;第二异或门302的两个输出端中的一个输出端与第二非门305的输入端相连接,第二异或门302的另一输出端与第一与门304的另一输入端和第二与门306的一个输入端相连接;第一非门303的输出端与第二与门306的另一输入端和第一数据选择器307的一个输入端相连接;第二与门306的输出端与第一数据选择器307的另一个输入端相连接;第一与门304的输出端和第二非门305的输出端与第二数据选择器308的两个输入端相连接;第一数据选择器307的输出端与第一距离计算单元309的输入端相连接,第二数据选择器308的输出端与第二距离计算单元310的输入端相连接;第一距离计算单元309的输出端和第二距离计算单元310的输出端分别作为本实施例逻辑运算电路的第一输出端和第二输出端,并且第一距离计算单元309的输出端和第二距离计算单元310的输出端输入减法器311,减法器311的输出端作为本实施例逻辑运算电路的第三输出端;图中S1、S2、V1和V2分别为逻辑运算电路的四个输入端。
可选地,其中距离计算单元用于确定两个计算元素之间的汉明距离。汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,例如,以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。
在一个可选的实施例中,多个计算电路包括第一计算电路和第二计算电路;
第一计算电路包括至少一个单比特计算电路,单比特计算电路包括一个异或门、一个非门、一个选择器和一个距离计算单元;
第二计算电路包括一个异或门、一个异或门中的或门、一个非门、两个选择器、两个距离计算单元和一个减法器。
本实施例中的多个计算电路都是在逻辑运算电路中通过导通部分元器件实现的,以逻辑运算电路为基础,并且不对逻辑运算电路的结构做出改变,因此,只需通过通路选择模块控制逻辑运算电路中部分元器件的导通即可实现第一计算电路与第二计算电路之间的切换;实现对占用位宽不同的计算元素进行计算。
图4为图3提供的逻辑运算电路中第一计算电路的一个电路示意图。如图4所示,本实施例中可包括两个单比特计算电路,即,对于单比特表示的计算元素可同时计算两组,其中,第一单比特计算电路由依次连接的第一异或门301、第一非门303、第一数据选择器307和第一距离计算单元309构成,本实施例中,以逻辑运算电路的第一输出端作为第一单比特计算电路的输出端;第二单比特计算电路由依次连接的第二异或门302、第二非门305、第二数据选择器308和第二距离计算单元310构成,本实施例中,以逻辑运算电路的第二输出端作为第二单比特计算电路的输出端,图中未导通元器件以阴影覆盖(第一与门304、第二与门306和减法器311)。
图5为图3提供的逻辑运算电路中第二计算电路的一个电路示意图。如图5所示,在本实施例中,第二异或门302中包括一个或门501、一个与非门502和一个与门503,在本实施例中第二计算电路对于第二异或门302仅导通其中的或门501,即,第二计算电路包括第一异或门301、或门501、第一非门303、第一与门304、第二与门306、第一数据选择器307、第二数据选择器308、第一距离计算单元309、第二距离计算单元310和减法器311;其中,各元器件之间的连接件关系与在逻辑运算电路中相同,本实施例中,以逻辑运算电路的第三输出端作为第二计算电路的输出端,图中未导通元器件以阴影覆盖(非门502、与门503和第二非门305)。
在一个可选实施例中,第一计算电路中包括的单比特计算电路,用于对以单比特数描述的二值神经网络中的计算元素实现卷积计算。
将本实施例提供的单比特计算电路应用到神经网络的计算中,可实现对二值神经网络中的卷积计算,由于二值神经网络中的权重值和激活值等计算元素都是以单比特数据存在,例如,以0表示-1,以1表示1,可分别将二值形式表达的权重值和激活值输入第一单比特计算电路的两个输入端。
可选地,第二计算电路,用于对以两比特数描述的三值神经网络中的计算元素实现卷积计算。
将本实施例提供的第二计算电路应用到神经网络的计算中,可实现对三值神经网络的卷积计算,由于三值神经网络中的权重值和激活值等计算元素以三个逻辑值-1、0和1表示,在以二进制表示时,分别表示为11、00和01,即,通过2比特对三值神经网络中的计算元素进行表示,因此,以第二计算电路实现对三值神经网络的卷积计算。
可选地,通路选择模块210,具体用于判断接收的计算元素占用位宽为单比特或两比特;响应于计算元素占用位宽为单比特,控制导通第一计算电路;响应于计算元素占用位宽为两比特,控制导通第二计算电路。
本实施例中,通路选择模块210对接收的计算元素进行位宽判断,当位宽为单比特,说明处理的神经网络为二值神经网络,导通第一计算电路,当位宽为两比特,说明处理的神经网络为三值神经网络,导通第二计算电路;还可以将已知处理的神经网络是二值形式还是三值形式输入到通路选择模块210,由通路选择模块210导通相应的电路。
本实施例提供的神经网络的计算装置在进行二值神经网络运算和三值卷积神经网络过程中可以复用大部分运算资源。在进行二值神经网络运算时,由于激活值和权重值采用单比特表示,所述神经网络的计算装置可以完成两个激活值和权重值的运算,参与计算的运算资源见图4中阴影部分;在进行三值神经网络运算时,由于激活值和权重值采用两比特表示,所述神经网络的计算装置可以完成单个激活值和权重值的运算,参与计算的运算资源见图5中阴影部分。从两幅图中可以清晰的看到,在进行不同的网络计算时,通过动态改变数据通路,复用绝大部分运算资源的情况下,可以实现运算兼容。
本发明旨在提供一种可以同时计算二值神经网络和三值神经网络的处理器架构,通过优化数据存储方式和定制化的计算单元设计,在可以复用绝大多数计算单元的情况下,实现了同时处理二值神经网络和三值神经网路,提高了神经网络处理器的通用性和可扩展性,同时保证了神经网络处理器的运算速度及能效。
图6为本发明实施例提供的处理器的一种结构示意图。如图6所示,本实施例处理器包括:存储单元61、控制单元62和如上述任一实施例提供的神经网络的计算装置10;
存储单元61,用于存储激活值、权重值、指令和计算结果。
控制单元62,用于获取保存在存储单元61的指令并解析,根据解析获得的控制信号控制神经网络的计算装置进行计算。
神经网络的计算装置10,用于根据控制单元的控制调用存储单元中的激活值和权重值,对激活值和权重值进行计算获得计算结果,并将计算结果存入存储单元。
本发明提供的神经网络处理器基于存储-控制-计算的结构;存储结构用于存储参与计算的数据、神经网络权重及处理器操作指令;控制结构包括译码电路与控制逻辑电路,用于解析操作指令,生成控制信号,该信号用于控制片上数据的调度与存储以及神经网络计算过程;计算结构包括计算单元,用于参与该处理器中的神经网络计算操作,其中应包括数据检索结构,保证被压缩的数据在计算单元中能够正确地与相应权重进行计算。
其中,存储结构用于存储神经网络处理器外部传来的数据(例如:原始特征图数据)或用于存储处理过程中产生的数据,包括处理过程中产生的处理结果或中间结果,这些结果可以来自于神经网络处理器内部的运算部件或其它外部运算部件。此外,存储结构还可以用于存储参与计算的指令信息(例如:载入特征图至计算单元、计算开始、计算结束、或将计算结果存储至存储单元等)。
图7为本发明实施例提供的处理器的另一结构示意图。如图7所示,本发明实施例的处理器包括:输入数据存储单元701、权重存储单元702、指令存储单元703、输出数据存储单元704、控制单元705和计算单元706。其中,
输入数据存储单元701用于存储参与计算的数据,该数据包括原始特征图数据和参与中间层计算的特征图数据;权重存储单元702用于存储已经训练好的神经网络权重;指令存储单元703存储参与计算的指令信息,指令可被控制单元705解析为控制流来调度神经网络的计算;输出数据存储单元704存储计算得到的神经元响应值。通过对存储结构进行细分,可以将数据类型基本一致的数据集中存储,以便于选择合适的存储介质并可以简化数据的寻址等操作。
控制单元705用于获取保存在指令存储单元702中的指令并进行解析,根据解析得到的控制信号控制计算单元706进行神经网络的相关运算。控制单元705完成指令译码、数据调度、过程控制等工作。
计算单元706包括上述任一实施例的神经网络的计算装置10,用于根据控制单元705获得的控制信号来执行相应的神经网络计算,计算单元706与各存储单元相连,以获得数据进行计算并将计算结果写入到存储单元。在该实施例中,计算单元706是该处理器的核心运算部件,可完成神经网络算法中的大部分运算,如:卷积操作、池化操作等。例如,卷积操作的具体过程是:将一个K*K大小的二维权重卷积核对特征图进行扫描,在扫描过程中权重值与特征图内对应的特征值求内积,并将所有内积值求和,得到一个输出层特征。当每个卷积层具有N个特征图层时,会有N个K*K大小的卷积核与该卷积层内特征图进行卷积操作,N个内积值求和得到一个输出层特征。
本发明实施例还提供了一种电子设备,设有上述实施例提供的神经网络的计算装置或处理器。
结合图7本发明还提供了一种基于上述实施例的处理器的计算方法,其包括:
步骤S1,控制单元对存储单元寻址,读取并解析下一步需要执行的指令;
步骤S2,根据解析指令得到的存储地址从存储单元中获取输入数据,同时判断处理二值神经网络或三值神经网络,根据目标网络,动态配置计算单元结构;
步骤S3,将激活和权重分别从输入存储单元和权重存储单元载入至计算单元;
步骤S4,执行卷积神经网络中的各项运算卷积操作;
步骤S5,将计算结果输出至存储单元中。
在本发明的实施例中,比较器、乘法器和累加器等均可采用通用或专用器件实现。存储器和缓存模块可以是静态随机存储器(SRAM)、动态随机存储器(DRAM)、寄存器堆等常见存储介质,也可以是3D存储器件等新型的存储类型。
本发明提供的神经网络处理器可以是针对神经网络计算而设计的一个微处理器,也可以仅是微处理器的一部分,该神经网络处理器可应用于文字处理、语音识别与处理、多国语言翻译、图像识别、生物特征识到、智能控制等领域,可用作智能计算处理器、机器人、移动设备、也可用于构建大规模神经网络计算超级计算机。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种神经网络的计算装置,其特征在于,包括逻辑运算电路和通路选择模块;
所述通路选择模块,用于根据接收的神经网络中的计算元素所占用的位宽控制所述逻辑运算电路包括的多个计算电路中的一个计算电路导通;
所述逻辑运算电路,用于基于所述导通的计算电路对所述计算元素进行运算,获得所述计算元素对应的计算结果。
2.根据权利要求1所述的装置,其特征在于,所述逻辑运算电路包括至少两个异或门、至少两个非门、至少两个与门、至少两个选择器、至少两个距离计算单元和至少一个减法器。
3.根据权利要求2所述的装置,其特征在于,所述多个计算电路包括第一计算电路和第二计算电路;
所述第一计算电路包括至少一个单比特计算电路,所述单比特计算电路包括一个异或门、一个非门、一个选择器和一个距离计算单元;
所述第二计算电路包括一个异或门、一个异或门中的或门、一个非门、两个选择器、两个距离计算单元和一个减法器。
4.根据权利要求3所述的装置,其特征在于,所述距离计算单元用于确定两个计算元素之间的汉明距离。
5.根据权利要求3或4所述的装置,其特征在于,所述第一计算电路中包括的单比特计算电路,用于对以单比特数描述的二值神经网络中的计算元素实现卷积计算。
6.根据权利要求3-5任一所述的装置,其特征在于,所述第二计算电路,用于对以两比特数描述的三值神经网络中的计算元素实现卷积计算。
7.根据权利要求6所述的装置,其特征在于,所述通路选择模块,具体用于判断所述接收的计算元素占用位宽为单比特或两比特;响应于所述计算元素占用位宽为单比特,控制导通所述第一计算电路;响应于所述计算元素占用位宽为两比特,控制导通所述第二计算电路。
8.根据权利要求1-7任一所述的装置,其特征在于,所述计算元素包括神经网络中的权重值和激活值,所述神经网络包括二值神经网络和三值神经网络;
所述二值神经网络中的权重值和激活值以单比特二进制数表示;
所述三值神经网络中的权重值和激活值以两比特二进制数表示。
9.一种处理器,其特征在于,包括:存储单元、控制单元和如权利要求1至8任意一项所述的神经网络的计算装置;
所述存储单元,用于存储激活值、权重值、指令和计算结果;
所述控制单元,用于获取保存在所述存储单元的指令并解析,根据解析获得的控制信号控制所述神经网络的计算装置进行计算;
所述神经网络的计算装置,用于根据所述控制单元的控制调用所述存储单元中的激活值和权重值,对所述激活值和权重值进行计算获得计算结果,并将所述计算结果存入所述存储单元。
10.一种电子设备,其特征在于,包括权利要求1至8任意一项所述的神经网络的计算装置或权利要求9所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999082.0A CN112132272B (zh) | 2020-09-22 | 2020-09-22 | 神经网络的计算装置、处理器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999082.0A CN112132272B (zh) | 2020-09-22 | 2020-09-22 | 神经网络的计算装置、处理器和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112132272A true CN112132272A (zh) | 2020-12-25 |
CN112132272B CN112132272B (zh) | 2023-09-12 |
Family
ID=73841553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010999082.0A Active CN112132272B (zh) | 2020-09-22 | 2020-09-22 | 神经网络的计算装置、处理器和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112132272B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722751A (zh) * | 2022-06-07 | 2022-07-08 | 深圳鸿芯微纳技术有限公司 | 运算单元的构架选择模型训练方法和构架选择方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256638A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN108256644A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN110188880A (zh) * | 2019-06-03 | 2019-08-30 | 四川长虹电器股份有限公司 | 一种深度神经网络的量化方法及装置 |
US20200097807A1 (en) * | 2019-11-27 | 2020-03-26 | Intel Corporation | Energy efficient compute near memory binary neural network circuits |
-
2020
- 2020-09-22 CN CN202010999082.0A patent/CN112132272B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256638A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN108256644A (zh) * | 2018-01-05 | 2018-07-06 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN110188880A (zh) * | 2019-06-03 | 2019-08-30 | 四川长虹电器股份有限公司 | 一种深度神经网络的量化方法及装置 |
US20200097807A1 (en) * | 2019-11-27 | 2020-03-26 | Intel Corporation | Energy efficient compute near memory binary neural network circuits |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722751A (zh) * | 2022-06-07 | 2022-07-08 | 深圳鸿芯微纳技术有限公司 | 运算单元的构架选择模型训练方法和构架选择方法 |
CN114722751B (zh) * | 2022-06-07 | 2022-09-02 | 深圳鸿芯微纳技术有限公司 | 运算单元的构架选择模型训练方法和构架选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112132272B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11551068B2 (en) | Processing system and method for binary weight convolutional neural network | |
CN107256424B (zh) | 三值权重卷积网络处理系统及方法 | |
CN107944545B (zh) | 应用于神经网络的计算方法及计算装置 | |
US11531889B2 (en) | Weight data storage method and neural network processor based on the method | |
CN107832843B (zh) | 一种信息处理方法及相关产品 | |
CN109325591B (zh) | 面向Winograd卷积的神经网络处理器 | |
US20210117810A1 (en) | On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system | |
CN107301453B (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN111915001A (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN108171328B (zh) | 一种神经网络处理器和采用其执行的卷积运算方法 | |
CN110728350A (zh) | 用于机器学习模型的量化 | |
CN114358319B (zh) | 基于机器学习框架的分类方法及相关装置 | |
CN113222150A (zh) | 一种量子态的变换方法及装置 | |
CN111507465A (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN114692745A (zh) | 数据处理方法、装置、集成芯片、电子设备及存储介质 | |
JP7033507B2 (ja) | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム | |
CN112132272B (zh) | 神经网络的计算装置、处理器和电子设备 | |
CN109697509B (zh) | 处理方法及装置、运算方法及装置 | |
Mostafa et al. | Hyperbolic spatial temporal graph convolutional networks | |
CN114267391A (zh) | 机器学习硬件加速器 | |
CN112132273B (zh) | 计算装置、处理器、电子设备和计算方法 | |
CN110728351A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
WO2023124371A1 (zh) | 数据处理装置、方法、芯片、计算机设备及存储介质 | |
WO2021009965A1 (ja) | ニューラルネットワーク用プロセッサ、ニューラルネットワーク用処理方法、および、プログラム |
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 |