CN114004350A - 神经网络的计算方法、加速器、计算机可读存储介质 - Google Patents
神经网络的计算方法、加速器、计算机可读存储介质 Download PDFInfo
- Publication number
- CN114004350A CN114004350A CN202111268496.7A CN202111268496A CN114004350A CN 114004350 A CN114004350 A CN 114004350A CN 202111268496 A CN202111268496 A CN 202111268496A CN 114004350 A CN114004350 A CN 114004350A
- Authority
- CN
- China
- Prior art keywords
- configuration data
- neural network
- data
- target configuration
- calculation
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种神经网络的计算方法、加速器、计算机可读存储介质,所述神经网络的计算方法应用于加速器,其中,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述神经网络的计算方法包括:控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。旨在提高神经网络计算的速度。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种神经网络的计算方法、加速器、计算机可读存储介质。
背景技术
在神经网络计算中,每一层计算都需要获取大量的配置信息。矢量加速器通过使用APB(Advanced Peripheral Bus)总线获取配置信息。但由于APB总线的传输数据较慢,导致矢量加速器在进行每一层计算时都需要耗费大量的时间等待通过APB总线获取的配置信息,降低了加速器进行神经网络计算的速度。
发明内容
本申请实施例通过提供一种神经网络的计算方法、加速器、计算机可读存储介质,旨在解决在进行神经网络的计算时,通过APB总线获取配置数据存在获取速度慢的问题。
为实现上述目的,本申请实施例提供了一种神经网络的计算方法,应用于加速器,其中,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述神经网络的计算方法包括:
控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;
从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;
控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;
接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。
可选地,所述从所述寄存器缓存的配置数据中获取目标配置数据的步骤包括:
获取所述寄存器的数据指针当前指向的指针位置;
确定所述指针位置缓存的配置数据为所述目标配置数据;
获取所述目标配置数据。
可选地,所述控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据的步骤包括:
控制解码器对所述目标配置数据进行解码,得到解码后的所述目标配置数据。
可选地,所述从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤之前,包括:
获取所述解码器当前的解码状态;
在所述解码器的解码状态为空闲状态时,执行从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤。
可选地,所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤之前,包括:
获取所述配置数据的数据量;
当所述配置数据的数据量大于预设数据量时,执行所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤;
当所述配置数据的数据量小于预设数据量时,通过配置总线获取所述配置数据。
可选地,所述接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果的步骤之前,还包括:
从所述直接存储器存取DMA模块获取所述计算数据。
可选地,所述接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果的步骤之后,还包括:
将所述计算结果缓存至外部存储器。
此外,本申请还提供一种加速器,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述加速器上存储有神经网络的计算程序,所述神经网络的计算程序执行如上任一所述的神经网络的计算方法。
此外,本申请还提供一种计算机可读存储介质,其上存储有神经网络的计算程序,所述神经网络的计算程序被处理器执行时实现如上任一项所述的神经网络的计算方法。
在本实施例中,在执行运算时,控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器,从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器,控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据,接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。提高了获取配置数据的效率,从而提高了控制器执行神经网络的计算速度。
附图说明
图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本申请神经网络的计算方法第一实施例流程示意图;
图3为本申请神经网络的计算方法加速器的结构示意图;
图4为本申请神经网络的计算方法获取目标配置数据的一实施例流程示意图;
图5为本申请神经网络的计算方法又一实施例流程示意图;
图6为本申请加速器的系统示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
传统的神经网络计算中,矢量加速器通过使用配置总线,例如APB(AdvancedPeripheral Bus)总线获取配置信息,并通过数据总线AXI总线或AHB总线获取计算数据。可以理解的是,由于APB总线的传输数据较慢,导致矢量加速器在进行每一层计算时都需要耗费大量的时间等待通过APB总线获取的配置信息,降低了加速器进行神经网络计算的速度。
基于此,本申请提出了一种神经网络的计算方法,应用于加速器,加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述神经网络的计算方法包括:控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。
如图1所示,图1为本申请实施例方案涉及的硬件运行环境的终端结构示意图。
如图1所示,本申请的执行终端为加速器,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,加速器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种加速器1005中可以包括操作系统、网络通信模块、用户接口模块以及神经网络的计算程序。
在图1所示的终端中,网络接口1004主要用于与后台服务器进行数据通信;用户接口1003主要用于与客户端(用户端)进行数据通信;而在终端为加速器时,处理器1001可以用于调用加速器1005中神经网络的计算程序,并执行以下操作:
控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;
从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;
控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;
接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
获取所述寄存器的数据指针当前指向的指针位置;
确定所述指针位置缓存的配置数据为所述目标配置数据;
获取所述目标配置数据。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
控制解码器对所述目标配置数据进行解码,得到解码后的所述目标配置数据。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
获取所述解码器当前的解码状态;
在所述解码器的解码状态为空闲状态时,执行从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
获取所述配置数据的数据量;
当所述配置数据的数据量大于预设数据量时,执行所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤;
当所述配置数据的数据量小于预设数据量时,通过配置总线获取所述配置数据。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
从所述直接存储器存取DMA模块获取所述计算数据。
在一实施例中,处理器1001可以用于调用存储器1005中神经网络的计算程序,并执行以下操作:
将所述计算结果缓存至外部存储器。
参考图2,图2为本申请神经网络的计算方法第一实施例的流程示意图。
本申请实施例提供了神经网络的计算方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,神经网络的计算方法包括:
步骤S10,控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;
本申请中加速器的结构示意图参照图3所示。
参照图3,本申请中的加速器包括控制器、解码器、寄存器、直接存储器存取DMA模块(Direct Memory Access,简称DMA模块)。其中,控制器用来控制将存储于DMA模块的配置数据存放于寄存器,并控制将存放于寄存器的数据发送至解码器进行解码。寄存器用来存放从DMA模块中发送的配置数据。DMA模块用于获取另一地址空间(例如,加速器的外部存储)的传输数据,其中,传输数据包括计算数据和配置数据。解码器用于将传输数据进行解码,解析成加速器使用的配置数据。
本申请的终端为加速器,具体地,本申请为加速器的控制器执行各实施例的具体步骤。
传统技术中,通过APB转接桥转成APB总线,APB总线用来为外设或者加速器等模块提供配置数据。在获取到配置数据后,结合AXI总线或AHB总线获取的计算数据进行计算,得到神经网络的计算结果。
配置数据为在神经网络计算时,指导控制器执行具体计算方法的数据,例如,将计算数据相加、和/或将计算数据相减等计算。
控制器通过控制DMA模块从外部缓存中获取神经计算需要的配置数据,并将配置数据通过DAM模块发送至寄存器。
可以理解的是,在控制器控制获取外部缓存的配置数据时,控制器可通过当前解码器的解码情况控制DAM模块获取外部缓存的配置数据的速度,避免DAM模块获取大量的配置数据,影响DAM模块的其它进程,例如,计算数据的获取速度。导致加速器无法获取到与配置数据对应的计算数据,降低加速器经进行神经计算的速度。
步骤S20,从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;
控制器将配置数据从DAM模块发送到寄存器缓存后,从寄存器缓存的配置数据中获取目标配置数据,并将目标配置数据发送至解码器。
参照图6,图6为本申请加速器的系统示意图。
控制器从DAM模块发送到寄存器的配置数据存储于寄存器0、寄存器1、……、寄存器n的寄存器中。其中,存储配置数据的寄存器的数量根据配置数据的大小确定。
在控制器执行神经网络计算的过程中,从寄存器缓存的配置数据中获取当前计算需要的目标配置数据,并将目标配置数据发送至解码器进行解码。
可以理解的是,在寄存器接收从DAM模块发送配置数据可以为多个,控制器从寄存器中获取当前执行神经网络计算所需的配置数据,并将配置数据发送至解码器进行解码,提前对配置数据进行解码,提高了加速器进行神经网络计算的效率。
步骤S30,控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;
在解码器接收到目标配置数据后,对目标配置数据进行解码,得到解码后的目标配置数据。
可以理解的是,解码器从寄存器获取到目标配置数据后,目标配置数据中包含了包头等其它数据,由此,需要对目标配置数据进行解码,得到解码后控制器识别的目标配置数据。
步骤S40,接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。
可以理解的是,通过在寄存器对应的存储位置获取到目标配置数据后,由于控制器无法直接读取经过编码后的目标配置数据,由此,需要将目标配置数据进行解码,以使控制器在接收到解码后的目标配置数据时,直接将目标配置数据进行神经网络计算。
可选地,在本实施例中,控制器在获取目标配置数据后,通过DMA模块获取计算数据,提高了计算数据获取的速度。
在本实施例中,通过数据总线(AXI或AHB数据总线)从外部的存储器中获取配置数据,在执行运算时,控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器,从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器,控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据,接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。避免了通过低速配置总线(APB总线)获取配置数据,提高了获取配置数据的效率,从而提高了控制器执行神经网络的计算速度。
参照图4,图4为获取目标配置数据的一实施例流程示意图。
从所述寄存器缓存的配置数据中获取目标配置数据的步骤,包括:
步骤S21,获取所述寄存器的数据指针当前指向的指针位置;
步骤S22,确定所述指针位置缓存的配置数据为所述目标配置数据;
步骤S23,获取所述目标配置数据。
可以理解的是,在本实施例中,控制DMA模块获取外部缓存的配置数据时,是通过高速率大带宽的数据总线获取,由此,在DMA模块中能够获取到大量的配置数据。基于此,在本实施例中,DMA模块获取大量的配置数据后,将配置数据发送至寄存器。可以理解的是,在DMA模块发送配置数据至寄存器时,根据获取到的配置数据的顺序,依次将配置数据发送至寄存器。
寄存器存储从DMA模块中发送的配置数据。可以理解的是,在寄存器中存储的配置数据时,按照接收到的配置的顺序,或者配置数据中携带的标识,将配置数据依次存储于不同的寄存器中。例如,寄存器根据接收到的配置数据的顺序将第一次接收到的配置数据存储于寄存器0、第二次接收到的配置数据存储于寄存器1、第三次接收到的配置数据存储于寄存器2中。寄存器通过数据指针的移动确定当前需要发送值解码器进行解码的配置数据为目标配置数据。例如,在控制器获取存储在寄存器0的配置数据至解码器后,寄存器的数据指针执行从寄存器0移动到寄存器1。控制器获取数据指针当前指向的寄存器存储的配置数据,确定其为目标配置数据,获取目标配置数据,并发送至解码器进行解码。
在本实施例中,获取所述寄存器的数据指针当前指向的指针位置,确定所述指针位置缓存的配置数据为所述目标配置数据,获取所述目标配置数据。通过数据指针确定需要从寄存器中获取的目标配置数据,能够准确获取目标配置数据。
参照图5,图5为本申请提出又一实施例流程示意图。
所述从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤之前,包括:
步骤S01,获取所述解码器当前的解码状态;
步骤S02,在所述解码器的解码状态为空闲状态时,执行从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤。
在本实施例中,控制器获取解码器当前的解码状态,根据解码器的解码状态确定从寄存器中获取目标配置数据。
例如,在解码器当前的解码状态为空闲状态,则获取寄存器中的目标配置数据,将目标配置数据发送至解码器进行解码。
可以理解的是,控制器可进一步地获取当前待解码的目标配置数据的数量确定从寄存器中获取的目标配置数据的速度。可选地,在解码器中存在大量待解码的目标配置数据时,控制器暂停获取寄存器中的目标配置数据,防止大量的目标配置数据积压在解码器。
所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤之前,包括:
步骤S03,获取所述配置数据的数据量;
步骤S04,当所述配置数据的数据量大于预设数据量时,执行所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤;
步骤S05,当所述配置数据的数据量小于预设数据量时,通过配置总线获取所述配置数据。
在本实施例中,在执行神经网络计算前,控制器首先获取在神经网络执行过程中所需的配置数据的数据量,将获取配置数据的数据量与预设数据量进行比对,进而根据比对结果确定是通过DMA模块获取配置数据,或是通过APB总线获取配置数据。
可选地,在配置数据的数据量大于预设数据量时,控制DMA模块通过AXI总线或AHB总线读取外部存储的配置数据,在配置数据的数据量小于预设数据量时,通过APB总线获取配置数据。
在本实施例中,通过配置数据的数据量的大小确定获取配置数据的方式,提高了获取配置数据的速度。
在本实施例中,控制器控制DMA模块通过AXI总线或AHB总线读取计算数据进行计算。能够快速地获取在执行神经网路计算过程中所需的计算数据,从而提高了神经网络计算的速度。
进一步地,在本实施例中,控制器利用计算数据和配置数据完成神经网络计算,得到计算结果后,将计算结果缓存至外部存储器,避免大量的数据缓存在控制器中,降低控制器的计算速度。
具体地,本申请可举例如下:加速器当前网络共有100层需要计算,每层需要100个静态配置信息,每个配置信息32bit。使用传统的低速外设总线,比如使用APB总线,它的数据位宽为32bit,时钟频率为100Mhz,协议要求最快两个周期才能完成一个配置信息的传输。完成计算共需要20000个时钟周期,每个时钟周期10ns(1s/100Mhz),一共需要200us。而如果利用DMA使用512bit数据位宽的AXI总线将数据从片外存储器中搬运到AI加速器内部,实时解码并将解码配置信息直接送到加速器的方式,假设AXI的时钟周期为1000Mhz,每个时钟周期可以接收512bit的数据,512bit包含16个配置信息,完成10000个配置信息的发送只需要625个时钟周期,共需要0.625us。相比于传统方案,性能提升了320倍。即,在本申请中的神经网络计算方法实现了较大程度地提升了AI加速器的性能的效果。
此外,本申请还提供一种加速器,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述加速器上存储有神经网络的计算程序,所述神经网络的计算程序执行如上任一所述的神经网络的计算方法。
此外,本申请还提供一种计算机可读存储介质,其上存储有神经网络的计算程序,所述神经网络的计算程序被处理器执行时实现如上任一项所述的神经网络的计算方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词目标、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种神经网络的计算方法,其特征在于,应用于加速器,其中,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述神经网络的计算方法包括:
控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器;
从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器;
控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据;
接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果。
2.如权利要求1所述的神经网络的计算方法,其特征在于,所述从所述寄存器缓存的配置数据中获取目标配置数据的步骤包括:
获取所述寄存器的数据指针当前指向的指针位置;
确定所述指针位置缓存的配置数据为所述目标配置数据;
获取所述目标配置数据。
3.如权利要求1所述的神经网络的计算方法,其特征在于,所述控制所述解码器对所述目标配置数据进行解码,得到解码后的目标配置数据的步骤包括:
控制解码器对所述目标配置数据进行解码,得到解码后的所述目标配置数据。
4.如权利要求1所述的神经网络的计算方法,其特征在于,所述从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤之前,包括:
获取所述解码器当前的解码状态;
在所述解码器的解码状态为空闲状态时,执行从所述寄存器缓存的配置数据中获取目标配置数据,并将所述目标配置数据发送至所述解码器的步骤。
5.如权利要求1所述的神经网络的计算方法,其特征在于,所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤之前,包括:
获取所述配置数据的数据量;
当所述配置数据的数据量大于预设数据量时,执行所述控制直接存储器存取DMA模块获取外部缓存的配置数据,并将所述配置数据缓存至所述寄存器的步骤;
当所述配置数据的数据量小于预设数据量时,通过配置总线获取所述配置数据。
6.如权利要求1所述的神经网络的计算方法,其特征在于,所述接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果的步骤之前,还包括:
从所述直接存储器存取DMA模块获取所述计算数据。
7.如权利要求1所述的神经网络的计算方法,其特征在于,所述接收解码后的所述目标配置数据,根据所述目标配置数据以及计算数据执行神经网络计算,得到计算结果的步骤之后,还包括:
将所述计算结果缓存至外部存储器。
8.一种加速器,其特征在于,所述加速器包括控制器、直接存储器存取DMA模块、至少两个寄存器以及与所述寄存器连接的解码器,所述加速器上存储有神经网络的计算程序,所述神经网络的计算程序执行如权利要求1-7任一所述的神经网络的计算方法。
9.一种计算机可读存储介质,其特征在于,其上存储有神经网络的计算程序,所述神经网络的计算程序被处理器执行时实现权利要求1-7任一项所述的神经网络的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268496.7A CN114004350A (zh) | 2021-10-28 | 2021-10-28 | 神经网络的计算方法、加速器、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111268496.7A CN114004350A (zh) | 2021-10-28 | 2021-10-28 | 神经网络的计算方法、加速器、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114004350A true CN114004350A (zh) | 2022-02-01 |
Family
ID=79924913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111268496.7A Pending CN114004350A (zh) | 2021-10-28 | 2021-10-28 | 神经网络的计算方法、加速器、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114004350A (zh) |
-
2021
- 2021-10-28 CN CN202111268496.7A patent/CN114004350A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043806B2 (en) | Information processing device and task switching method | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
US11210127B2 (en) | Method and apparatus for processing request | |
KR20170013882A (ko) | 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc) | |
CN116010300B (zh) | 一种gpu缓存方法及装置、电子设备和存储介质 | |
CN110750744A (zh) | 页面呈现方法及装置 | |
US7555609B2 (en) | Systems and method for improved data retrieval from memory on behalf of bus masters | |
CN112559403B (zh) | 一种处理器及其中的中断控制器 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN114004350A (zh) | 神经网络的计算方法、加速器、计算机可读存储介质 | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
WO2017011021A1 (en) | Systems and methods facilitating reduced latency via stashing in systems on chips | |
US8677028B2 (en) | Interrupt-based command processing | |
US20210089487A1 (en) | Multi-core processor and inter-core data forwarding method | |
US9299126B2 (en) | Image processing apparatus and a method of storing encoded data blocks generated by such an image processing apparatus | |
CN113741567B (zh) | 矢量加速器及其控制方法、装置 | |
CN116795442B (zh) | 一种寄存器配置方法、dma控制器及图形处理系统 | |
CN117499663B (zh) | 一种视频解码系统及方法、电子设备和存储介质 | |
CN104699219B (zh) | 一种电子设备及信息处理方法 | |
CN113778526B (zh) | 一种基于Cache的流水线的执行方法及装置 | |
US20240134521A1 (en) | Data reduction device, data reduction method, and system including data reduction device | |
US20220308920A1 (en) | Task scheduling method, and computing device and application processor using the same | |
CN112214244A (zh) | 一种运算装置及其操作方法 | |
CN117075820A (zh) | 一种消息缓存器和协处理器 | |
JP2024072010A (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 |