微处理器电路以及执行神经网络运算的方法技术

技术编号:18399729 阅读:30 留言:0更新日期:2018-07-08 19:55
本发明专利技术提出一种微处理器电路以及一种执行神经网络运算的方法。微处理器电路适用于执行神经网络运算。所述微处理器电路包括参数产生模块、运算模块以及截位逻辑。所述参数产生模块并行接收所述神经网络运算的多个输入参数以及多个权重参数。所述参数产生模块依据所述多个输入参数以及所述多个权重参数来并行产生多个子输出参数。所述运算模块并行接收所述多个子输出参数。所述运算模块加总所述多个子输出参数,以产生加总参数。所述截位逻辑接收所述加总参数。所述截位逻辑对所述加总参数进行截位运算,以产生所述神经网络运算的输出参数。

【技术实现步骤摘要】
微处理器电路以及执行神经网络运算的方法
本专利技术是有关于一种单指令流多数据流(SingleInstructionMultipleData,SIMD)架构的应用,且特别是有关于一种应用此架构的微处理器电路以及执行神经网络运算的方法。
技术介绍
一般而言,传统的处理器执行神经网络运算(Neuralnetworkoperation)需要利用大量的储存空间。在一般的情况下,神经网络运算将在静态随机存取存储器(StaticRandomAccessMemory,SRAM)中占用大量的储存空间,或是在静态随机存取存储器与动态随机存取存储器(DynamicRandomAccessMemory,DRAM)之间进行大量的数据交换。并且,当处理器例如执行二值神经网络(BinaryNeuralNetwork,BNN)运算或三值神经网络(TernaryNeuralNetwork,TNN)运算时,输出参数其中wi为一位(1-bit)或二位(2-bit)的权重参数,xi为与wi位宽相等的输入数据,y为输出参数,其中一位(1-bit)或二位(2-bit)的权重参数wi以及输入数据xi还需配合八位(8-bit)单指令流多数据流(SIMD)通道(Lane)进行处理。当处理器例如执行二值权重网络(BinaryWeightNetwork,BWN)运算或三值权重网络(TernaryWeightNetwork,TWN)运算时,输出参数其中wi为一位(1-bit)或二位(2-bit)权重参数,xi为八位(8-bit)输入数据,y为输出参数,其中一位(1-bit)或二位(2-bit)的权重参数wi需配合八位(8-bit)单指令流多数据流(SIMD)通道(Lane)进行处理。因此,传统的处理器执行神经网络运算的方式会造成运算资源的浪费。有鉴于此,以下将提出几个解决方案。
技术实现思路
本专利技术提供一种微处理器电路以及执行神经网络运算(Neuralnetworkoperation)的方法,可有效节省神经网络运算的运算资源。本专利技术的一种微处理器电路适用于执行神经网络运算。所述微处理器电路包括参数产生模块、运算模块以及截位逻辑。所述参数产生模块用以并行接收所述神经网络运算的多个输入参数以及多个权重参数。所述参数产生模块依据所述多个输入参数以及所述多个权重参数来并行产生多个子输出参数。所述运算模块耦接所述参数产生模块。所述运算模块用以并行接收所述多个子输出参数。所述运算模块加总所述多个子输出参数,以产生加总参数。所述截位逻辑耦接所述运算模块。所述截位逻辑用以接收所述加总参数。所述截位逻辑对所述加总参数进行截位运算,以产生所述神经网络运算的输出参数。本专利技术的一种执行神经网络运算的方法适用于微处理器电路。所述微处理器电路包括参数产生模块、运算模块以及截位逻辑。所述方法包括以下步骤:透过所述参数产生模块并行接收多个输入参数以及多个权重参数,并且依据所述多个输入参数以及所述多个权重参数来并行产生多个子输出参数。透过所述运算模块并行接收所述多个子输出参数,并且加总所述多个子输出参数,以产生加总参数。透过所述截位逻辑接收所述加总参数,并且对所述加总参数进行截位运算,以产生所述神经网络运算的输出参数。基于上述,本专利技术的微处理器电路以及执行神经网络运算的方法可应用单指令流多数据流(SingleInstructionMultipleData,SIMD)架构,并且当执行二值权重网络(BinaryWeightNetwork,BWN)运算或三值权重网络(TernaryWeightNetwork,TWN)运算时,可实现非常高的并行性(Parallelism),以有效节省神经网络运算的运算资源。为让本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。附图说明图1是依照本专利技术的一实施例的微处理器电路的示意图。图2是依照本专利技术的第一实施例的微处理器电路的示意图。图3是依照本专利技术的第一实施例的执行神经网络运算的方法的流程图。图4是依照本专利技术的第二实施例的微处理器电路的示意图。图5是依照本专利技术的第二实施例的执行神经网络运算的方法的流程图。图6是依照本专利技术的第三实施例的微处理器电路的示意图。图7是依照本专利技术的第三实施例的执行神经网络运算的方法的流程图。具体实施方式为了使本专利技术的内容可以被更容易明了,以下特举实施例做为本专利技术确实能够据以实施的范例。另外,凡可能之处,在图式及实施方式中使用相同标号的组件/构件/步骤,代表相同或类似部件。图1是依照本专利技术的一实施例的微处理器电路的示意图。参考图1,微处理器电路100包括参数产生模块110、运算模块120以及功能逻辑(Logic)130。参数产生模块110耦接运算模块120。运算模块120耦接功能逻辑130。在本实施例中,微处理器电路100例如是一种通用处理器(GeneralPurposeProcessor,GPP),并且微处理器电路100整合一个或多个处理单元来执行对应的运算工作。在本实施例中,微处理器电路100是以单指令流多数据流(SingleInstructionMultipleData,SIMD)架构来执行神经网络运算(NeuralNetworkComputing)的微指令(micro-instruction或μop)以完成对应的神经网络运算,微处理器电路100为包含于处理器核心(core)的执行单元(executionunit)中的硬件电路。值得注意的是,本实施例所提及的微指令是指微处理器电路100所属的微处理器能直接执行的指令。所述微处理器可例如是复杂指令集计算机(CISC)指令集架构的超标量乱序执行处理器、精简指令集计算机(RISC)指令集架构的处理器、为执行神经网络运算而设计的专有架构处理器或是其它架构的处理器。在本实施例中,当微处理器电路100执行神经网络运算工作时,参数产生模块110并行接收神经网络运算的输入数据X以及权重数据W,并且参数产生模块110依据输入数据X以及权重数据W来产生子输出数据Y至运算模块120。在本实施例中,输入数据X、权重数据W以及子输出数据Y可分别包括多个数值。在本实施例中,输入数据X包括多个并行的输入参数(x1、x2~xn)。权重数据W包括多个并行的权重参数(w1、w2~wn)。子输出数据Y包括多个并行的子输出参数(y1、y2~yn)。在本实施例中,参数产生模块110例如透过查找表(Look-uptable)或特定逻辑电路来依据并行的多个输入参数(x1、x2~xn)以及并行的多个权重参数(w1、w2~wn),来并行产生多个并行的子输出参数(y1、y2~yn)。在本实施例中,运算模块120并行接收参数产生模块110提供的包括多个子输出参数(y1、y2~yn)的子输出数据Y,并且对多个子输出参数(y1、y2~yn)进行运算。运算模块120对具有多个数值的子输出数据Y进行并行运算(parallelcomputing)。举例来说,运算模块120包括一个或多个加法器(Adder),以透过加法器来加总子输出参数Y的多个数值(y1、y2~yn),并且产生加总参数Ay。也就是说,在本实施例中,运算模块120对具有多个数值的子输出参数(y1、y2~yn)并行执行加法运算,以有效率地产生加总参本文档来自技高网
...

【技术保护点】
1.一种微处理器电路,适用于执行神经网络运算,其特征在于,包括:参数产生模块,用以并行接收所述神经网络运算的多个输入参数以及多个权重参数,并且所述参数产生模块依据所述多个输入参数以及所述多个权重参数来并行产生多个子输出参数;运算模块,耦接所述参数产生模块,并且用以并行接收所述多个子输出参数,其中所述运算模块加总所述多个子输出参数,以产生加总参数;以及截位逻辑,耦接所述运算模块,并且用以接收所述加总参数,其中所述截位逻辑对所述加总参数进行截位运算,以产生所述神经网络运算的输出参数。

【技术特征摘要】
1.一种微处理器电路,适用于执行神经网络运算,其特征在于,包括:参数产生模块,用以并行接收所述神经网络运算的多个输入参数以及多个权重参数,并且所述参数产生模块依据所述多个输入参数以及所述多个权重参数来并行产生多个子输出参数;运算模块,耦接所述参数产生模块,并且用以并行接收所述多个子输出参数,其中所述运算模块加总所述多个子输出参数,以产生加总参数;以及截位逻辑,耦接所述运算模块,并且用以接收所述加总参数,其中所述截位逻辑对所述加总参数进行截位运算,以产生所述神经网络运算的输出参数。2.根据权利要求1所述的微处理器电路,其特征在于,每一所述多个输入参数的位宽大于每一所述多个权重参数的位宽,其中所述微处理器电路的位宽大于所述多个输入参数及所述多个权重参数的位宽总和。3.根据权利要求1所述的微处理器电路,其特征在于,所述参数产生模块依据所述多个权重参数的取值范围对所述多个权重参数进行对应的编码,而产生多个编码后的权重参数,其中所述参数产生模块依据所述多个输入参数以及所述多个编码后的权重参数来产生所述多个子输出参数。4.根据权利要求1所述的微处理器电路,其特征在于,若所述多个权重参数的所述取值范围包括两种数值类型时,所述参数产生模块采用第一编码方式对所述多个权重参数进行编码。5.根据权利要求4所述的微处理器电路,其特征在于,所述参数产生模块依据由所述第一编码方式产生的多个编码后的权重参数,将所述多个子输入参数的其中之一的原始码或补码作为所述多个子输出参数的其中之一。6.根据权利要求1所述的微处理器电路,其特征在于,若所述多个权重参数的取值范围包括三种数值类型,所述参数产生模块采用第二编码方式对所述多个权重参数进行编码。7.根据权利要求6所述的微处理器电路,其特征在于,所述参数产生模块依据由所述第二编码方式产生的多个编码后的权重参数,将零码或所述多个子输入参数的其中之一的原始码或补码作为所述多个子输出参数的其中之一。8.根据权利要求1所述的微处理器电路,其特征在于,所述运算模块包括多个加法器层,并且所述多个加法器层的每一层包括多个加法器,所述多个加法器用以并行执行多个加法运算。9.根据权利要求1所述的微处理器电路,其特征在于,经由所述截位运算而产生的所述输出参数的位宽等于所述多个输入参数的位宽。10.根据权利要求1所述的微处理器电路,其特征在于,所述微处理器电路执行微指令以完成所述神经网络运算,所述微指令的源操作数包括上述多个输入参数及上述多个权重参数,并且所述微指令的目的操作数包括所述神经网络运算的输出参数。11.一种执行神经网络运算的方法,适用于微处理器电路,其特征在于,所述微处理器电路包括参数...

【专利技术属性】
技术研发人员:陈静李晓阳
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1