CN116400884A - 乘加器的控制方法、装置、计算机设备和存储介质 - Google Patents
乘加器的控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116400884A CN116400884A CN202310052008.1A CN202310052008A CN116400884A CN 116400884 A CN116400884 A CN 116400884A CN 202310052008 A CN202310052008 A CN 202310052008A CN 116400884 A CN116400884 A CN 116400884A
- Authority
- CN
- China
- Prior art keywords
- multiply
- dimensional
- array
- enabling
- multiplier
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims abstract description 188
- 238000009825 accumulation Methods 0.000 claims abstract description 66
- 238000013528 artificial neural network Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 101100446506 Mus musculus Fgf3 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及一种乘加器的控制方法、装置、计算机设备和存储介质。所述方法包括:获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。采用本方法能够提升了芯片对不同位宽的数据信息的计算效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种乘加器的控制方法、装置、计算机设备和存储介质。
背景技术
随着神经网络规模不断扩大,计算规模不断增大,计算输入向量与突触权重的容量不断增大,芯片中的乘加器被调用次数不断增多。而且需要在芯片中集成的乘累加器的数量也不断增加。乘加器在芯片中的面积和功耗也不断增加。因此,提升芯片的计算效率一直是研究重点。
目前的神经形态芯片基于crossbar(交叉开关矩阵)阵列多维数据与权重的计算阵列,设计多计算模式的2D乘加器阵列。根据输入神经网络的图像的位宽、计算模式设置使能信号,使能信号控制乘加器阵列的使能组数,根据控制信号可以灵活随意的开1组,2组,3组,m组等。而且可以根据控制信号控制一组内部乘加器开启的个数n个,根据需要将乘加器全部打开或打开其中的一部分,从而提升芯片的计算效率。然而,当神经网络输入的数据信息的位宽不是4的整倍数或者输出位宽不是32的整倍数时,通过2D乘加器阵列计算的时间冗长,从而导致芯片对不同位宽的数据信息的计算效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种乘加器的控制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种乘加器的控制方法。所述方法包括:
获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述方法还包括:
获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
第二方面,本申请还提供了一种乘加器的控制装置。所述装置包括:
获取模块,用于获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
确定模块,用于基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
计算模块,用于将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述确定模块,具体用于:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述确定模块,具体用于:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述计算模块,具体用于:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述装置还包括:
第一建立模块,用于获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
第二建立模块,用于建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述第一建立模块,具体用于:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
第三方面,本申请提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质。其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。
第五方面,本申请提供了一种计算机程序产品。所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。
上述乘加器的控制方法、装置、计算机设备和存储介质,通过获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组;将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组进行累加计算,得到所述数据信息的计算结果。通过基于数据信息的位宽和计算模式设置使能信号,并基于该使能信号调整三维乘加器阵列用于计算的使能组,控制所述三维乘加器阵列中用于计算的使能组对数据信息的数据内容进行累加计算,从而提升了芯片对不同位宽的数据信息的计算效率。
附图说明
图1为一个实施例中乘加器的控制方法的流程示意图;
图2为一个实施例中三维乘加器阵列的结构示意图;
图3为一个实施例中乘加器的控制示例的流程示意图;
图4为一个实施例中乘加器的控制装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的乘加器的控制方法,该方法可以应用于终端、也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,终端通过基于数据信息的位宽和计算模式设置使能信号,并基于该使能信号调整三维乘加器阵列用于计算的使能组,控制所述三维乘加器阵列中用于计算的使能组对数据信息的数据内容进行累加计算,从而提升了芯片对不同位宽的数据信息的计算效率。
在一个实施例中,如图1所示,提供了一种乘加器的控制方法,以该方法应用于终端为例进行说明,包括以下步骤:
步骤S101,获取输入神经网络的数据信息。
其中,数据信息包括数据的数据内容、数据的位宽、以及数据的计算模式。
本实施例中,终端通过响应于用户的输入操作,获取输入神经网络的数据信息。其中数据信息可以但不限于是图像、音频、文字等数据信息。神经网络可以但不限于是人工神经网络(ANNs)或脉冲神经网络(SNNs)等。数据内容为该数据信息的具体内容数据,例如,图像的数据内容为1024*1024的图像数据。数据的计算模式为该数据内容的具体处理方式,该计算模式可以但不限于是卷积运算,向量相加、向量点乘等计算模式,数据的位宽可以但不限于是int32、int8、int2等位宽类型。
步骤S102,基于数据的位宽、以及数据的计算模式,设置芯片的使能信号,并基于使能信号,确定芯片的三维乘加器阵列中用于计算的使能组的乘加器。
本实施例中,终端根据获取的数据的位宽、以及该数据的计算模式,设置能够控制三维乘加器阵列的使能信号。终端基于该使能信号,确定芯片中的三维城假期阵列中用于计算的使能组中的乘加器的开启,以及每个使能组中开启的乘加器对应的计算算法。乘加器为该神经网络的定点乘加操作,用于将乘法运算的结果与另外一个操作数融合相加得到最终结果,以节省整个乘加操作的执行延迟。
步骤S103,将数据内容输入三维乘加器阵列,通过使能信号,控制三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到数据信息的计算结果。
本实施例中,终端将数据内容输入芯片的三维乘加器阵列中,并通过使能信号,控制该三维乘加器阵列中的各使能组的乘加器开启累加运算,并将所有使能组的乘加器的累加结果再次进行累加计算,得到最终的累加结果,终端将该最终的累加结果作为该数据信息的计算结果。其中,使能组为多个乘加器的组合。
基于上述方案,通过基于数据信息的位宽和计算模式设置使能信号,并基于该使能信号调整三维乘加器阵列用于计算的使能组,控制所述三维乘加器阵列中用于计算的使能组对数据信息的数据内容进行累加计算,从而提升了芯片对不同位宽的数据信息的计算效率。
可选的,基于数据的位宽、以及数据的计算模式,设置芯片的使能信号,包括:根据数据的位宽,确定三维乘加器阵列中每一维度的使能组数;根据数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;基于三维乘加器阵列中每一维度的使能组数、以及三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
本实施例中,终端根据数据的位宽,确定三维乘加器阵列中每一个维度的使能组数,即设置三维乘加器阵列中每一个维度的使能组数。终端基于数据的计算模式,确定三维乘加器阵列的每个使能组的控制信号。其中该控制信号可以用于控制该使能组开启的乘加器的数目、以及各乘加器的计算模式。终端基于三维乘加器阵列中每一维度的使能组数,以及该三维乘加器阵列中每一个维度的使能组的控制信号,确定该芯片的三维乘加器阵列的使能信号。
基于上述方案,通过数据信息确定控制三维乘加器阵列的使能信号,提升了三维乘加器阵列的控制效率,以及控制精准度。
可选的,基于使能信号,确定芯片的三维乘加器阵列中用于计算的使能组,包括:根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;根据三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;将每个维度的包括计算算法的目标使能组作为维度用于计算的使能组,得到芯片的三维乘加器阵列中用于计算的使能组的乘加器。
本实施例中,终端根据使能信号中三维乘加器阵列中每一维度的使能组数,确定该三维乘加器阵列中每一个维度的目标使能组数,例如,三维乘加器阵列每一个维度有多个使能组,使能信号中三维乘加器阵列中纵向维度的使能组数为4组,纵向维度的使能组数为8组,深度方向维度的使能组数为4组。终端根据使能信号中三维乘加器阵列的各使能组的控制信号,确定每一个维度的目标使能组中开启的乘加器的计算算法。其中该计算算法与数据的计算模式相同。每个目标使能组可以开启部分或全部的乘加器。终端将每个维度中目标使能组的已开启的乘加器,作为用于计算的使能组的乘加器,得到该芯片的三维乘加器阵列中用于计算的使能组的乘加器。
基于上述方案,通过使能信号控制三维乘加器阵列中使能组的乘加器的开启与运算方式,提升了三维乘加器阵列中的乘加器的利用效率,并避免存在参与计算的乘加器在实际运算过程中未被充分利用的问题。
可选的,将数据内容输入三维乘加器阵列,通过使能信号,控制三维乘加器阵列中用于计算的使能组进行累加计算,得到数据信息的计算结果,包括:
将数据内容输入三维乘加器阵列中,并通过使能信号,分别控制各维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;对各维度的累加结果进行累加计算处理,得到数据信息的计算结果。
本实施例中,终端将数据内容输入芯片的三维乘加器阵列中,并通过使能信号控制该阵列中的每个维度的使能组中的乘加器开启,并分别对该数据内容进行计算。终端将每个乘加器的计算结果进行累加处理,得到各维度的累加结果。终端将所有维度的累加结果再次进行累加计算处理,并将该再次累加计算处理得到的计算结果,作为该数据信息的计算结果。
基于上述方案,通过使能信号控制三维乘加器阵列对数据内容进行计算处理,提升了该三维乘加器阵列中每个乘加器的计算效率与每个乘加器的利用率。
可选的,该方法还包括:获取二维乘加器阵列,并基于二维乘加器阵列,建立深度方向的乘加器阵列;建立二维乘加器阵列、与深度方向的乘加器阵列的关联关系,并根据二维乘加器阵列、深度方向的乘加器阵列、以及关联关系,确定三维乘加器阵列。
本实施例中,终端获取芯片中原始的二维乘加器阵列,并在该二维乘加器阵列的深度方向,建立新的乘加器阵列。终端建立该二维乘加器阵列、与该二维乘加器阵列的深度方向的乘加器阵列的关联关系,并基于该二维乘加器阵列、该二维乘加器阵列的深度方向的乘加器阵列、以及该二维乘加器阵列、与该二维乘加器阵列的深度方向的乘加器阵列的关联关系,确定新的三维乘加器阵列。新的三维乘加器阵列如图2所示,该阵列为4*4*8的三维乘加器阵列,其中三个维度分别为水平方向维度、垂直方向维度、以及深度方向维度。添加在水平方向维度的使能信号为水平使能信号,添加在垂直方向维度的使能信号为垂直使能信号,添加在深度方向维度的使能信号为深度使能信号。在数据信息输入神经网络时,通过该三维乘加器阵列,可以自定义三个维度用于计算的使能组的乘加器。
基于上述方案,通过二维乘加器阵列建立新的三维乘加器阵列,可以在确保乘加器阵列的位宽不变的情况下,乘加器阵列变得更加灵活可控。可以使芯片的计算效率和效力得到充分的发挥,提升芯片的运算效率。
可选的,基于二维乘加器阵列,建立深度方向的乘加器阵列,包括:获取预设的三维乘加器阵列的使能组数,并基于三维乘加器阵列的使能组数,在二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;在新二维乘加器阵列的深度方向,添加多个乘加器,并建立深度方向的各乘加器对应的使能组,得到深度方向的乘加器阵列。
本实施例中,终端在建立三维乘加器阵列之前,获取用户预设的三维乘加器阵列中每一个维度的使能组数。终端基于三维乘加器阵列中除深度方向的其余两个方向维度的使能组数,在二维乘加器阵列中的每一个维度的乘加器阵列中添加使能组,得到新二维乘加器阵列。终端基于三维乘加器阵列中深度方向维度的使能组数,在新二维乘加器阵列的深度方向添加多个乘加器,并基于该维度的使能组数,建立每个乘加器对应使能组,得到深度方向的乘加器阵列。
基于上述方案,通过预设三维乘加器阵列的每一个维度的使能组数,使得乘加器阵列变得更加灵活可控。可以使芯片的计算效率和效力得到充分的发挥,提升芯片的运算效率。
本申请还提供了一种库存分配示例,如3所示,具体处理过程包括以下步骤:
步骤S301,获取输入神经网络的数据信息。
步骤S302,根据数据的位宽,确定三维乘加器阵列中每一维度的使能组数。
步骤S303,根据数据的计算模式,确定三维乘加器阵列的各使能组的控制信号。
步骤S304,基于三维乘加器阵列中每一维度的使能组数、以及三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
步骤S305,根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数。
步骤S306,根据三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法。
步骤S307,将每个维度的目标使能组中开启的乘加器,作为维度用于计算的使能组的乘加器,得到芯片的三维乘加器阵列中用于计算的使能组的乘加器。
步骤S308,将数据内容输入三维乘加器阵列中,并通过使能信号,分别控制各维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果。
步骤S309,对各维度的累加结果进行累加计算处理,得到数据信息的计算结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的乘加器的控制方法的乘加器的控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个乘加器的控制装置实施例中的具体限定可以参见上文中对于乘加器的控制方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种乘加器的控制装置,包括:获取模块410、确定模块420和计算模块430,其中:
获取模块410,用于获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
确定模块420,用于基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
计算模块430,用于将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述确定模块420,具体用于:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述确定模块420,具体用于:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述计算模块430,具体用于:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述装置还包括:
第一建立模块,用于获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
第二建立模块,用于建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述第一建立模块,具体用于:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
上述乘加器的控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种乘加器的控制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述方法还包括:
获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述方法还包括:
获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
可选的,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
可选的,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
可选的,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
可选的,所述方法还包括:
获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
可选的,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种乘加器的控制方法,其特征在于,所述方法包括:
获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,包括:
根据所述数据的位宽,确定三维乘加器阵列中每一维度的使能组数;
根据所述数据的计算模式,确定三维乘加器阵列的各使能组的控制信号;
基于所述三维乘加器阵列中每一维度的使能组数、以及所述三维乘加器阵列的各使能组的控制信号,确定芯片的使能信号。
3.根据权利要求2所述的方法,其特征在于,所述基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器,包括:
根据三维乘加器阵列中每一维度的使能组数,确定每一个维度的目标使能组数;
根据所述三维乘加器阵列的各使能组的控制信号,确定每一个目标使能组中开启的乘加器的计算算法;
将每个维度的目标使能组中开启的乘加器,作为所述维度用于计算的使能组的乘加器,得到所述芯片的三维乘加器阵列中用于计算的使能组的乘加器。
4.根据权利要求1所述的方法,其特征在于,所述将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果,包括:
将所述数据内容输入所述三维乘加器阵列中,并通过所述使能信号,分别控制各所述维度的目标使能组的已开启的乘加器进行累加计算处理,得到各维度的累加结果;
对各所述维度的累加结果进行累加计算处理,得到所述数据信息的计算结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取二维乘加器阵列,并基于所述二维乘加器阵列,建立深度方向的乘加器阵列;
建立所述二维乘加器阵列、与所述深度方向的乘加器阵列的关联关系,并根据所述二维乘加器阵列、所述深度方向的乘加器阵列、以及所述关联关系,确定所述三维乘加器阵列。
6.根据权利要求5所述的方法,其特征在于,所述基于所述二维乘加器阵列,建立深度方向的乘加器阵列,包括:
获取预设的三维乘加器阵列的使能组数,并基于所述三维乘加器阵列的使能组数,在所述二维乘加器阵列中的每一维度的乘加器阵列中添加使能组,得到新二维乘加器阵列;
在所述新二维乘加器阵列的深度方向,添加多个乘加器,并建立所述深度方向的各乘加器对应的使能组,得到所述深度方向的乘加器阵列。
7.一种乘加器的控制装置,其特征在于,所述装置包括:
获取模块,用于获取输入神经网络的数据信息;所述数据信息包括数据的数据内容、所述数据的位宽、以及所述数据的计算模式;
确定模块,用于基于所述数据的位宽、以及所述数据的计算模式,设置芯片的使能信号,并基于所述使能信号,确定所述芯片的三维乘加器阵列中用于计算的使能组的乘加器;
计算模块,用于将所述数据内容输入所述三维乘加器阵列,通过所述使能信号,控制所述三维乘加器阵列中用于计算的使能组的乘加器进行累加计算,得到所述数据信息的计算结果。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310052008.1A CN116400884A (zh) | 2023-02-02 | 2023-02-02 | 乘加器的控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310052008.1A CN116400884A (zh) | 2023-02-02 | 2023-02-02 | 乘加器的控制方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116400884A true CN116400884A (zh) | 2023-07-07 |
Family
ID=87011210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310052008.1A Pending CN116400884A (zh) | 2023-02-02 | 2023-02-02 | 乘加器的控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116400884A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
-
2023
- 2023-02-02 CN CN202310052008.1A patent/CN116400884A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
CN116881090B (zh) * | 2023-09-06 | 2024-01-26 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3555814B1 (en) | Performing average pooling in hardware | |
US11704547B2 (en) | Transposing neural network matrices in hardware | |
CN110520846B (zh) | 对数据分区的动态排序 | |
CN112465131A (zh) | 神经网络处理器中的批处理 | |
US11763142B2 (en) | General padding support for convolution on systolic arrays | |
JP7414930B2 (ja) | 情報処理装置、情報処理方法 | |
CN116400884A (zh) | 乘加器的控制方法、装置、计算机设备和存储介质 | |
CN112948126A (zh) | 数据处理方法、装置及芯片 | |
CN115689018A (zh) | 物资需求预测方法、装置、设备、存储介质和程序产品 | |
JP2022539661A (ja) | 電力効率の良い乗累算回路類 | |
Peng et al. | MBFQuant: A Multiplier-Bitwidth-Fixed, Mixed-Precision Quantization Method for Mobile CNN-Based Applications | |
US11995533B1 (en) | Executing replicated neural network layers on inference circuit | |
CN114758209B (zh) | 卷积结果获取方法、装置、计算机设备及存储介质 | |
CN113033813A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Tiskin | Communication-efficient parallel generic pairwise elimination | |
CN111931937B (zh) | 图像处理模型的梯度更新方法、装置及系统 | |
CN112801276A (zh) | 数据处理方法、处理器及电子设备 | |
CN115576895B (zh) | 计算装置、计算方法及计算机可读存储介质 | |
CN110968832A (zh) | 一种数据处理方法和装置 | |
CN117710107A (zh) | 资源值预测方法、装置、设备、存储介质和程序产品 | |
CN117873824A (zh) | 芯片功耗优化方法、装置、计算机设备和存储介质 | |
CN116152140A (zh) | 基于忆阻器阵列的图像识别方法、装置和计算机设备 | |
CN117077734A (zh) | 卷积输入变换方法、硬件加速器和加速器结构确定方法 | |
CN117494773A (zh) | 基于稀疏优化的数字存算架构及存算处理器 | |
CN117390490A (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 |