CN109284827A - 神经网络计算方法、设备、处理器及计算机可读存储介质 - Google Patents

神经网络计算方法、设备、处理器及计算机可读存储介质 Download PDF

Info

Publication number
CN109284827A
CN109284827A CN201710592850.9A CN201710592850A CN109284827A CN 109284827 A CN109284827 A CN 109284827A CN 201710592850 A CN201710592850 A CN 201710592850A CN 109284827 A CN109284827 A CN 109284827A
Authority
CN
China
Prior art keywords
multiplying
processor
connection weight
neural computing
neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710592850.9A
Other languages
English (en)
Inventor
冷聪
李�昊
窦则圣
朱胜火
金榕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710592850.9A priority Critical patent/CN109284827A/zh
Priority to TW107120134A priority patent/TW201911138A/zh
Priority to US16/039,221 priority patent/US10691410B2/en
Priority to PCT/US2018/042753 priority patent/WO2019018568A1/en
Publication of CN109284827A publication Critical patent/CN109284827A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Abstract

本发明实施例公开了一种神经网络计算方法、设备、处理器及计算机可读存储介质。该方法包括:处理器接收神经网络计算指令,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,其中,连接权重为2的幂次方;针对神经网络计算规则中的乘法运算,将乘法运算对应的源操作数输入移位寄存器,依据乘法运算对应的连接权重进行移位操作,移位寄存器输出目标结果操作数,作为乘法运算的结果。根据本发明实施例的神经网络计算方法、设备、处理器及计算机可读存储介质,神经网络的连接权重为2的幂次方。通过移位运算对神经网络进行计算,能够提高神经网络计算速度。

Description

神经网络计算方法、设备、处理器及计算机可读存储介质
技术领域
本发明涉及人工智能技术领域,尤其涉及一种神经网络计算方法、设备、处理器及计算机可读存储介质。
背景技术
近年来,深度学习在人工智能领域取得了重大突破,尤其在图像、语音、自然语言处理等领域取得了突破性的进展和良好的效果。深度学习可以充分利用强大的计算力,通过多层神经网络级联的方式构建复杂的非线性模型,在海量数据上直接进行端到端的问题求解。
在利用深度神经网络(Deep Neural Network,DNN)解决问题的时候,人们常常倾向于设计更为复杂的网络来收集更多的数据以期望获得更高的性能。目前的DNN层数较深,连接权重较多,并且连接权重通常是32位单精度浮点数或64位双精度浮点数;其中,连接权重是用来衡量神经网络中的上一层神经元和下一层神经元之间连接强弱关系的数值。在深度神经网络计算时,需要调用浮点乘法器进行大量的浮点数乘法运算,深度神经网络计算速度较慢。
发明内容
本发明实施例提供一种神经网络计算方法、设备、处理器及计算机可读存储介质,能够提高神经网络计算速度。
一方面,本发明实施例提供了一种神经网络计算方法,方法包括:
处理器接收神经网络计算指令,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,其中,连接权重为2的幂次方;
针对神经网络计算规则中的乘法运算,将乘法运算对应的源操作数输入移位寄存器,依据乘法运算对应的连接权重进行移位操作,移位寄存器输出目标结果操作数,作为乘法运算的结果。
另一方面,本发明实施例提供了一种处理器,包括:
取值单元,用于接收神经网络计算指令,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,其中,连接权重为2的幂次方;
移位寄存器,用于针对神经网络计算规则中的乘法运算,接收乘法运算对应的源操作数;依据乘法运算对应的连接权重进行移位操作;输出目标结果操作数,作为乘法运算的结果。
再一方面,本发明实施例提供一种神经网络计算方法,方法包括:
接收神经网络计算指令,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,其中,连接权重为2的幂次方;
针对神经网络计算规则中的乘法运算,依据乘法运算对应的连接权重对乘法运算对应的源操作数进行移位操作;
将移位操作的结果操作数作为乘法运算的结果。
再一方面,本发明实施例提供一种神经网络计算设备,包括:存储器和处理器;
存储器用于存储可执行程序代码;
处理器用于读取存储器中存储的可执行程序代码以执行本发明实施例提供的神经网络计算方法。
再一方面,本发明实施例提供一种计算机可读存储介质,计算机存储介质上存储有计算机程序指令;计算机程序指令被处理器执行时实现本发明实施例提供的神经网络计算方法。
根据本发明实施例的神经网络计算方法、设备、处理器及计算机可读存储介质,神经网络的连接权重为2的幂次方。通过移位运算对神经网络进行计算,能够提高神经网络计算速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的神经网络计算方法的第一种流程示意图;
图2示出了本发明实施例提供的处理器的结构示意图;
图3示出了本发明实施例提供的神经网络计算方法的第二种流程示意图;
图4示出了能够实现根据本发明实施例的神经网络的训练方法的计算设备的示例性硬件架构的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由于现有的DNN层数较深,连接权重较多,并且连接权重通常是32位单精度浮点数或64位双精度浮点数,使得DNN模型占用存储空间较多,并且在深度神经网络计算时,需要调用浮点乘法器进行大量的浮点数乘法运算,深度神经网络计算速度较慢。基于此,本发明实施例提供了一种神经网络计算方法、设备、处理器及计算机可读存储介质。
本发明实施例提供的处理器可以是基于X86架构的处理器,也可以是基于高级精简指令集处理器(ARM)架构的处理器,还可以是基于无内部互锁流水级的微处理器(MIPS)架构的处理器,当然还可以是基于专用架构的处理器,比如:基于张量处理单元(TensorProcessing Unit,TPU)架构的处理器。
目前,处理器在进行神经网络计算时,需要进行大量的乘法运算。针对一次乘法运算,处理器需要调用乘法器,将乘法运算的两个操作数输入进乘法器中,乘法器输出结果。尤其当调用的乘法器为浮点乘法器时,浮点乘法器需要对两个操作数的阶码进行求和、对两个操作数的尾数进行乘法运算,然后对结果进行规格化和舍入处理才能得到最终结果。
而处理器在进行移位运算时,仅需要将操作数输入进行移位寄存器,然后对移位寄存器施加移位脉冲信号,即可通过移位寄存器获得结果。
由上可以看出,移位运算相较于乘法运算,能较快的得到计算结果。因此,本发明实施例提供一种神经网络计算方法,将神经网络中的乘法运算替换为移位运算,通过移位运算来进行神经网络计算,以提高神经网络计算速度。
示例性的,假设现有一个神经网络,其连接权重为2的幂次方。
那么对于该神经网络,处理器在进行神经网络计算时,可以先获取到该神经网络计算规则,其中,该神经网络计算规则规定了操作数之间是乘法运算还是加法运算。对于神经网络计算规则中的乘法运算,将乘法运算对应的源操作数输入移位寄存器,依据乘法运算对应的连接权重进行移位操作,移位寄存器输出目标结果操作数,作为乘法运算的结果。
在本发明的一个实施例中,乘法运算对应的连接权重为2的N次方,N为大于零的整数。可以将乘法运算对应的源操作数输入移位寄存器,向左移位N次;还可以将乘法运算对应的源操作数输入左移位寄存器,移位N次。
在本发明的另一个实施例中,乘法运算对应的连接权重为2的负N次方,N为大于零的整数。可以将乘法运算对应的源操作数输入移位寄存器,向右移位N次;还可以将乘法运算对应的源操作数输入右移位寄存器,移位N次。
为了使源操作数能够准确移位,本发明实施例的源操作数的位数不大于移位寄存器可寄存的数值的位数。比如:移位寄存器可寄存的数值的位数为8,即该移位寄存器为8位移位寄存器,源操作数的位数不大于8。
基于上述的过程,本发明实施例提供的神经网络计算方法可以归纳为图1所示的步骤。图1示出了本发明实施例提供的神经网络计算方法的第一种流程示意图。其可以包括:
S101:处理器接收神经网络计算指令。
其中,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,连接权重为2的幂次方。
S102:针对神经网络计算规则中的乘法运算,将乘法运算对应的源操作数输入移位寄存器,依据乘法运算对应的连接权重进行移位操作,移位寄存器输出目标结果操作数,作为乘法运算的结果。
根据本发明实施例提供的神经网络计算方法,将神经网络中的乘法运算替换为移位运算,通过移位运算来进行神经网络计算,能够提高神经网络计算速度。
需要说明的是,本发明实施例中的处理器可以是通用型处理器,也可以是定制型处理器。其中,定制型处理器是指专用于神经网络计算且带有移位寄存器而不带有乘法运算器的处理器,即处理器是不包括乘法运算单元的处理器。
假设神经网络的连接权重分别为-4、-2、-1、0、1、2、4。则上述连接权重均可用4位有符号定点整数表示。相较于32位单精度浮点数形式的连接权重占用的存储空间,实现了8倍存储空间的压缩。相较于64位双精度浮点数形式的连接权重占用的存储空间,实现了16倍存储空间的压缩。由于本发明实施例提供的神经网络的连接权重占用存储空间较小,使得整个神经网络的模型也较小。在一个较佳方案中,根据本发明实施例的神经网络模型大小在1MB(Megabyte)之内。该神经网络可以被下载到移动终端设备中,移动终端设备对神经网络进行计算。移动终端设备无需将数据上传到云端服务器中,在本地即可对数据进行实时处理,减少了数据处理延迟以及云端服务器的计算压力。
与上述的方法实施例相对应,本发明实施例还提供一种处理器,如图2所示。图2示出了本发明实施例提供的处理器的结构示意图。可以包括:取值单元201和移位寄存器202。
取值单元201,用于接收神经网络计算指令,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,其中,连接权重为2的幂次方。其中,取值单元也称为指令读取器(instruction fetcher),它是每个处理器都有的一个部件。
移位寄存器202,用于针对神经网络计算规则中的乘法运算,接收乘法运算对应的源操作数;依据乘法运算对应的连接权重进行移位操作;输出目标结果操作数,作为乘法运算的结果。
当乘法运算对应的连接权重为2的N次方,N为大于零的整数时,移位寄存器202,将源操作数向左移位N次。
当乘法运算对应的连接权重为2的负N次方,N为大于零的整数时,移位寄存器202,将源操作数向右移位N次。
本发明实施例提供的处理器可以是基于X86架构的处理器,也可以是基于ARM架构的处理器,还可以是MIPS架构的处理器,当然还可以是基于专用架构的处理器,比如:基于TPU架构的处理器。
为了使源操作数能够准确移位,本发明实施例的源操作数的位数不大于移位寄存器可寄存的数值的位数。比如:移位寄存器可寄存的数值的位数为8,即该移位寄存器为8位移位寄存器,源操作数的位数不大于8。
本发明实施例提供的处理器可以是通用型处理器,也可以是定制型处理器。其中,定制型处理器是指专用于神经网络计算且带有移位寄存器而不带有乘法运算器的处理器,即处理器是不包括乘法运算单元的处理器。
本发明实施例还提供一种计算机可读存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的神经网络计算方法。
本发明实施例还提供一种神经网络计算方法,如图3所示。图3示出了本发明实施例提供的神经网络计算方法的第二种流程示意图,可以包括:
S301:接收神经网络计算指令。
其中,神经网络计算指令包括神经网络计算规则和神经网络的连接权重,连接权重为2的幂次方。
S302:针对神经网络计算规则中的乘法运算,依据乘法运算对应的连接权重对乘法运算对应的源操作数进行移位操作。
S303:将移位操作的结果操作数作为乘法运算的结果。
在本发明的一个实施例中,乘法运算对应的连接权重为2的N次方,N为大于零的整数。可以将源操作数向左移位N次。
在本发明的另一个实施例中,乘法运算对应的连接权重为2的负N次方,N为大于零的整数。可以将源操作数向右移位N次。
图4示出了能够实现根据本发明实施例的神经网络计算方法的计算设备的示例性硬件架构的结构图。如图4所示,计算设备400包括输入设备401、输入接口402、中央处理器403、存储器404、输出接口405、以及输出设备406。其中,输入接口402、中央处理器403、存储器404、以及输出接口405通过总线410相互连接,输入设备401和输出设备406分别通过输入接口402和输出接口405与总线410连接,进而与计算设备400的其他组件连接。
具体地,输入设备401接收来自外部的输入信息,并通过输入接口402将输入信息传送到中央处理器403;中央处理器403基于存储器404中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器404中,然后通过输出接口405将输出信息传送到输出设备406;输出设备406将输出信息输出到计算设备400的外部供用户使用。
也就是说,图4所示的计算设备也可以被实现为神经网络计算设备,该神经网络计算设备可以包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现图3描述的神经网络计算方法。这里,处理器可以与神经网络通信,从而基于来自神经网络的相关信息执行计算机可执行指令,从而实现图3描述的神经网络计算方法。
本发明实施例还提供一种计算机可读存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的神经网络计算方法。
由于本发明实施例提供的连接权重为2的幂次方,即本发明实施例所提供的神经网络为离散神经网络。目前针对离散神经网络主要是利用启发式算法(heuristicalgorithm)进行训练,但是利用heuristic algorithm对神经网络进行训练,速度较慢。基于此,本发明实施例提供一种神经网络训练方法将离散神经网络的训练问题抽象成一个非凸离散约束优化问题,基于非凸离散约束优化问题对神经网络的连接权重进行求解。其中,约束优化是寻求具有约束条件的线性或非线性规划问题解的数值算法。
针对神经网络的训练,可以依据神经网络的连接权重,构建针对神经网络带有约束条件的问题模型;基于问题模型以及约束最优化问题的求解算法,求解神经网络各层间的连接权重。
由于不同的约束最优化问题的求解算法的使用场景不同,即有的求解算法仅适用于求解不等式约束问题,有的求解算法仅适用于求解等式约束问题,有的求解算法即适用于求解不等于约束问题又适用于求解等式约束问题。基于此,本发明实施例在基于约束最优化问题的求解算法,求解神经网络各层间的连接权重之前,可以根据约束条件确定使用何种求解算法。
在本发明的一个特定实施例中,可以利用交替方向乘子法(AlternatingDirection Method of Multipliers,ADMM)求解神经网络各层间的连接权重。具体过程可以包括以下步骤,
步骤1:依据神经网络的连接权重,构建针对神经网络带有约束条件的问题模型。
步骤2:基于指示函数和一致性约束,对问题模型进行等价变换。
步骤3:利用ADMM,对等价变换后的问题模型进行分解。
步骤4:针对分解后得到的每一个子问题,求解神经网络的连接权重。
示例性的,假设本发明实施例的神经网络表示为:f(W),其中,W={W1,W2,...,Wd},Wi是神经网络的第i个连接权重。
神经网络f(W)的目标训练模型为:
在本发明的一个实施例中,假设神经网络为三元神经网络,其连接权重被约束为-1、0和1。那么三元神经网络训练可以归结为如下约束优化问题:
s.t.W∈C={-1,0,+1}d
其中,s.t.W∈C={-1,0,+1}d表示连接权重W的取值被约束在连接权重空间C中,其中,连接权重空间C包含-1、0和+1,也即连接权重W只能取值为-1、0或者+1。
本发明实施例的指示函数表示如下:
指示函数IC(X)是定义在集合X上的函数,表示其中有哪些元素属于子集C。
本发明实施例在此引入新的变量G,设置一致性约束条件W=G,结合以上的指示函数IC(X),本发明实施例的上述约束优化问题等价于:
minW,Gf(W)+IC(G) (2)
s.t.W=G (3)
其对应的增广拉格朗日乘子表示为:
其中,λ为拉格朗日乘数,ρ为正则项系数。
对于公式(2)和公式(3),指示函数作用在G上,原始的连接权重W此时不具有离散约束。通过指示函数IC(X)和一致性约束条件W=G,将连接权重和离散约束解耦合。
基于ADMM,上述约束优化问题被分解为如下三个子问题迭代求解:
Wk+1:=arg minWLρ(W,Gk,λk) (5)
Gk+1:=arg minGLρ(Wk+1,G,λk) (6)
λk+1:=λk+ρ(Wk+1-Gk+1) (7)
其中,公式(5)、公式(6)和公式(7)中的k为迭代轮数。
在一个实施例的计算中,对公式(5)、公式(6)和公式(7)进行迭代求解。在一次迭代循环中,执行如下过程:
先针对公式(5)对连接权重W进行无约束求解,基于第k轮迭代中的G和λ(即,Gk,λk),无约束求解第k+1轮中的W(即Wk+1);
随后,针对公式(6)对带约束条件的G进行求解,基于第k轮迭代中的λ(即λk)以及公式(5)求解得到的W(即Wk+1),带约束求解第k+1轮中的G(即Gk+1);
随后,针对公式(7)对λ进行更新,基于第k轮迭代中的λ(即λk)、公式(5)求解得到的W(即Wk+1)以及公式(6)求解得到的G(即Gk+1),求解并更新第k+1轮中的λ(即λk+1)。
最终求解得到的G即为连接权重。
在本发明的一个实施例中,求解得到的连接权重是2的幂次方,由此可以便于以上描述中提及的处理器移位操作,提高处理器操作速度。在本发明的另一个实施例中,求解得到的连接权重可以是任意实数。
需要说明的是,上述公式求解很容易,因此能够提高神经网络训练速度。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (18)

1.一种神经网络计算方法,其特征在于,所述方法包括:
处理器接收神经网络计算指令,所述神经网络计算指令包括所述神经网络计算规则和所述神经网络的连接权重,其中,所述连接权重为2的幂次方;
针对所述神经网络计算规则中的乘法运算,将所述乘法运算对应的源操作数输入移位寄存器,依据所述乘法运算对应的连接权重进行移位操作,所述移位寄存器输出目标结果操作数,作为所述乘法运算的结果。
2.根据权利要求1所述的方法,其特征在于,所述乘法运算对应的连接权重为2的N次方,N为大于零的整数;
所述将所述乘法运算对应的源操作数输入移位寄存器,依据所述乘法运算对应的连接权重进行移位操作,包括:
将所述乘法运算对应的源操作数输入移位寄存器,向左移位N次。
3.根据权利要求1所述的方法,其特征在于,所述乘法运算对应的连接权重为2的负N次方,N为大于零的整数;
所述将所述乘法运算对应的源操作数输入移位寄存器,依据所述乘法运算对应的连接权重进行移位操作,包括:
将所述乘法运算对应的源操作数输入移位寄存器,向右移位N次。
4.根据权利要求1所述的方法,其特征在于,所述处理器为以下处理器中的任意一种:
基于x86架构的处理器、基于高级精简指令集处理器arm架构的处理器、基于无内部互锁流水级的微处理器MIPS架构的处理器和基于专用架构的处理器。
5.根据权利要求1所述的方法,其特征在于,所述源操作数的位数不大于移位寄存器可寄存的数值的位数。
6.根据权利要求1所述的方法,其特征在于,所述处理器不包括乘法运算单元。
7.一种处理器,其特征在于,包括:
取值单元,用于接收神经网络计算指令,所述神经网络计算指令包括所述神经网络计算规则和所述神经网络的连接权重,其中,所述连接权重为2的幂次方;
移位寄存器,用于针对所述神经网络计算规则中的乘法运算,接收所述乘法运算对应的源操作数;依据所述乘法运算对应的连接权重进行移位操作;输出目标结果操作数,作为所述乘法运算的结果。
8.根据权利要求7所述的处理器,其特征在于,所述乘法运算对应的连接权重为2的N次方,N为大于零的整数;
所述依据所述乘法运算对应的连接权重进行移位操作,包括:
将所述源操作数向左移位N次。
9.根据权利要求7所述的处理器,其特征在于,所述乘法运算对应的连接权重为2的负N次方,N为大于零的整数;
所述依据所述乘法运算对应的连接权重进行移位操作,包括:
将所述源操作数向右移位N次。
10.根据权利要求7所述的处理器,其特征在于,所述处理器为以下处理器中的任意一种:
基于x86架构的处理器、基于arm架构的处理器、基于MIPS架构的处理器和基于专用架构的处理器。
11.根据权利要求7所述的处理器,其特征在于,所述源操作数的位数不大于移位寄存器可寄存的数值的位数。
12.根据权利要求7所述的处理器,其特征在于,所述处理器不包括乘法运算单元。
13.一种计算机可读存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现如权利要求1-6任意一项所述的神经网络计算方法。
14.一种神经网络计算方法,其特征在于,所述方法包括:
接收神经网络计算指令,所述神经网络计算指令包括所述神经网络计算规则和所述神经网络的连接权重,其中,所述连接权重为2的幂次方;
针对所述神经网络计算规则中的乘法运算,依据所述乘法运算对应的连接权重对所述乘法运算对应的源操作数进行移位操作;
将所述移位操作的结果操作数作为所述乘法运算的结果。
15.根据权利要求14所述的方法,其特征在于,所述乘法运算对应的连接权重为2的N次方,N为大于零的整数;
所述依据所述乘法运算对应的连接权重对所述乘法运算对应的源操作数进行移位操作,包括:
将所述源操作数向左移位N次。
16.根据权利要求14所述的方法,其特征在于,所述乘法运算对应的连接权重为2的负N次方,N为大于零的整数;
所述依据所述乘法运算对应的连接权重对所述乘法运算对应的源操作数进行移位操作,包括:
将所述源操作数向右移位N次。
17.一种神经网络计算设备,其特征在于,所述设备包括:存储器和处理器;
所述存储器用于存储可执行程序代码;
所述处理器用于读取所述存储器中存储的可执行程序代码以执行权利要求14至16任意一项所述的神经网络计算方法。
18.一种计算机可读存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令;所述计算机程序指令被处理器执行时实现如权利要求14至16任意一项所述的神经网络计算方法。
CN201710592850.9A 2017-07-19 2017-07-19 神经网络计算方法、设备、处理器及计算机可读存储介质 Pending CN109284827A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710592850.9A CN109284827A (zh) 2017-07-19 2017-07-19 神经网络计算方法、设备、处理器及计算机可读存储介质
TW107120134A TW201911138A (zh) 2017-07-19 2018-06-12 神經網路計算方法、設備、處理器及電腦可讀儲存媒體
US16/039,221 US10691410B2 (en) 2017-07-19 2018-07-18 Neural network computing
PCT/US2018/042753 WO2019018568A1 (en) 2017-07-19 2018-07-18 CALCULATION OF NEURONAL NETWORK

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710592850.9A CN109284827A (zh) 2017-07-19 2017-07-19 神经网络计算方法、设备、处理器及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109284827A true CN109284827A (zh) 2019-01-29

Family

ID=65016425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710592850.9A Pending CN109284827A (zh) 2017-07-19 2017-07-19 神经网络计算方法、设备、处理器及计算机可读存储介质

Country Status (4)

Country Link
US (1) US10691410B2 (zh)
CN (1) CN109284827A (zh)
TW (1) TW201911138A (zh)
WO (1) WO2019018568A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110728358A (zh) * 2019-09-30 2020-01-24 上海商汤智能科技有限公司 基于神经网络的数据处理方法和装置
CN116048456A (zh) * 2023-04-03 2023-05-02 摩尔线程智能科技(北京)有限责任公司 矩阵乘法器、矩阵相乘的方法以及计算设备
CN116594589A (zh) * 2019-12-31 2023-08-15 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157692B2 (en) * 2019-03-29 2021-10-26 Western Digital Technologies, Inc. Neural networks using data processing units
US11907571B2 (en) 2020-07-13 2024-02-20 SK Hynix Inc. Read threshold optimization systems and methods using domain transformation
JP7358312B2 (ja) * 2020-08-25 2023-10-10 株式会社東芝 記憶装置およびニューラルネットワーク装置
US11355204B2 (en) 2020-09-03 2022-06-07 SK Hynix Inc. Efficient read-threshold calculation method for parametric PV-level modeling
US11430530B2 (en) * 2021-01-25 2022-08-30 SK Hynix Inc. Deep learning based program-verify modeling and voltage estimation for memory devices
US11514999B2 (en) 2021-04-16 2022-11-29 SK Hynix Inc. Systems and methods for parametric PV-level modeling and read threshold voltage estimation
CN113157247B (zh) * 2021-04-23 2022-10-25 西安交通大学 一种可重构整型-浮点型乘法器
US11749354B2 (en) 2021-07-13 2023-09-05 SK Hynix Inc. Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation
US11769555B2 (en) 2021-07-27 2023-09-26 SK Hynix Inc. Read threshold voltage estimation systems and methods for parametric PV-level modeling
US11769556B2 (en) 2021-07-27 2023-09-26 SK Hynix Inc. Systems and methods for modeless read threshold voltage estimation
US11854629B2 (en) 2021-11-22 2023-12-26 SK Hynix Inc. System and method for non-parametric optimal read threshold estimation using deep neural network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184088A (zh) * 2011-03-23 2011-09-14 北京邮电大学 一种基于串并结合实现有限域乘法的方法及装置
CN104090737A (zh) * 2014-07-04 2014-10-08 东南大学 一种改进型部分并行架构乘法器及其处理方法
US20150170025A1 (en) * 2013-12-18 2015-06-18 The Government Of The United States Of America As Represented By The Secretary Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN105631222A (zh) * 2016-01-07 2016-06-01 天津大学 前馈神经网络下基于fpga的stdp突触可塑性实验平台
CN106066783A (zh) * 2016-06-02 2016-11-02 华为技术有限公司 基于幂次权重量化的神经网络前向运算硬件结构
CN106951961A (zh) * 2017-02-24 2017-07-14 清华大学 一种粗粒度可重构的卷积神经网络加速器及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678749B2 (en) 2014-12-22 2017-06-13 Intel Corporation Instruction and logic for shift-sum multiplier
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10409767B2 (en) * 2015-10-08 2019-09-10 Via Alliance Semiconductors Co., Ltd. Neural network unit with neural memory and array of neural processing units and sequencer that collectively shift row of data received from neural memory
US10698657B2 (en) 2016-08-12 2020-06-30 Xilinx, Inc. Hardware accelerator for compressed RNN on FPGA
US11531896B2 (en) * 2017-01-10 2022-12-20 Hitachi, Ltd. Neural network circuit providing for operations with bit shifting and rounded values of weight information
US10410098B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Compute optimizations for neural networks

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184088A (zh) * 2011-03-23 2011-09-14 北京邮电大学 一种基于串并结合实现有限域乘法的方法及装置
US20150170025A1 (en) * 2013-12-18 2015-06-18 The Government Of The United States Of America As Represented By The Secretary Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
CN104090737A (zh) * 2014-07-04 2014-10-08 东南大学 一种改进型部分并行架构乘法器及其处理方法
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN105320495A (zh) * 2014-07-22 2016-02-10 英特尔公司 用于卷积神经网络的权重移位机制
CN105631222A (zh) * 2016-01-07 2016-06-01 天津大学 前馈神经网络下基于fpga的stdp突触可塑性实验平台
CN106066783A (zh) * 2016-06-02 2016-11-02 华为技术有限公司 基于幂次权重量化的神经网络前向运算硬件结构
CN106951961A (zh) * 2017-02-24 2017-07-14 清华大学 一种粗粒度可重构的卷积神经网络加速器及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110728358A (zh) * 2019-09-30 2020-01-24 上海商汤智能科技有限公司 基于神经网络的数据处理方法和装置
CN110728358B (zh) * 2019-09-30 2022-06-10 上海商汤智能科技有限公司 基于神经网络的数据处理方法和装置
CN116594589A (zh) * 2019-12-31 2023-08-15 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
CN116594589B (zh) * 2019-12-31 2024-03-26 华为技术有限公司 浮点数乘法计算的方法、装置和算术逻辑单元
CN116048456A (zh) * 2023-04-03 2023-05-02 摩尔线程智能科技(北京)有限责任公司 矩阵乘法器、矩阵相乘的方法以及计算设备

Also Published As

Publication number Publication date
US10691410B2 (en) 2020-06-23
US20190026076A1 (en) 2019-01-24
TW201911138A (zh) 2019-03-16
WO2019018568A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
CN109284827A (zh) 神经网络计算方法、设备、处理器及计算机可读存储介质
Aksoy et al. Design of digit-serial FIR filters: Algorithms, architectures, and a CAD tool
Park Guaranteed-stable sliding DFT algorithm with minimal computational requirements
US10628124B2 (en) Stochastic rounding logic
CN108021781A (zh) 一种可参数化的fft ip核设计和优化方法
CN109284826A (zh) 神经网络处理方法、装置、设备及计算机可读存储介质
CN111882050B (zh) 基于fpga的用于提高bcpnn速度的设计方法
CN111598227B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
Lopez et al. Sum-of-products Evaluation Schemes with Fixed-Point arithmetic, and their application to IIR filter implementation
CN110135563B (zh) 一种卷积神经网络二值化方法及运算电路
Mopuri et al. Low-complexity and high-speed architecture design methodology for complex square root
Cheng et al. A uniformisation-driven algorithm for inference-related estimation of a phase-type ageing model
GB2530883A (en) Implementing a square root operation in a computer system
US20240111525A1 (en) Multiplication hardware block with adaptive fidelity control system
US20230333812A1 (en) Method and system for processing floating point numbers
Klawonn et al. Machine learning and domain decomposition methods--a survey
RU148925U1 (ru) Вычислительный элемент бимодульной модулярной арифметики
CN114037066B (zh) 数据处理方法、装置、电子设备及存储介质
Dormiani et al. A design of online scheme for evaluation of multinomials
US20240144029A1 (en) System for secure and efficient federated learning
Bolchini et al. Evolving classifiers on field programmable gate arrays: Migrating XCS to FPGAs
Kansa et al. Fully and sparsely supported radial basis functions
Yao et al. Logarithm-Approximate Floating-Point Multiplier for Hardware-efficient Inference in Probabilistic Circuits
CN111353576A (zh) 一种基于模糊神经网络的信息生成方法、装置及设备
Melzer et al. Holistic biquadratic IIR filter design for communication systems using differential evolution

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190129

RJ01 Rejection of invention patent application after publication