CN113869484A - 一种计算同步方法、同步管理装置以及计算单元 - Google Patents
一种计算同步方法、同步管理装置以及计算单元 Download PDFInfo
- Publication number
- CN113869484A CN113869484A CN202010616263.0A CN202010616263A CN113869484A CN 113869484 A CN113869484 A CN 113869484A CN 202010616263 A CN202010616263 A CN 202010616263A CN 113869484 A CN113869484 A CN 113869484A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network layer
- computing
- computing unit
- task
- 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/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/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
- 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 Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例公开了一种计算同步方法、同步管理装置及计算单元。本申请实施例方法包括:获取所述人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息,并在根据所述第一神经网络层中的每个计算单元的负载状态信息确定所述第一神经网络层中的每个计算单元均完成各自所处理的计算任务后,可以向所述第一神经网络层中的每个计算单元发送同步指示消息。与当前的采用固定时间片的同步方案相比,这种方式可以根据各计算单元计算的数据量动态调整各神经网络层的计算时间片,减少了计算单元的等待时间,提高了计算效率。
Description
技术领域
本申请涉及人工神经网络(artificial neural networks,ANNs)领域,尤其涉及一种计算同步方法、同步管理装置以及计算单元。
背景技术
人工神经网络包括多层神经网络层,一层神经网络层由一个或多个计算单元组成。神经网络层之间互相连接,通过两层神经网络层之间的计算单元互相连接实现。以全连接的方式为例,神经网络层1的每个计算单元,连接神经网络层2的每个计算单元,即可称神经网络层1和神经网络层2之间的连接方式为全连接。
神经网络层内的计算单元之间逻辑并行,神经网络层之间逻辑串行,且神经网络层之间的计算结果的输出相互依赖和影响。例如,神经网络层1和神经网络层2之间全连接,神经网络层1的每个计算单元处理完第一计算任务后,得到计算结果,发送给神经网络层2的每个计算单元,以使得神经网络层2的每个计算单元以接收到的计算结果作为输入数据,开启第二计算任务。由此可知,神经网络层之间,某层神经网络层的工作依赖于上一层神经网络层的计算结果,并在处理当前计算任务得到计算结果后,需要将计算结果发送给下一层神经网络层,下一层神经网络层对该计算结果继续处理。
在通过人工神经网络系统进行神经网络计算时,某层神经网络层若要启动新的计算任务,必须等待上一层神经网络层对其当前的计算任务计算完毕,得到计算结果,该神经网络层才可以启动新的计算任务。当前,主要采用时间片定时的同步机制进行神经网络层之间计算同步。在时间片定时的同步机制中,各神经网络层统一分配固定长度的时间片,时间片长度一般取各神经网络层的计算所需时长的最大值。根据这种方式,即使某一层神经网络层提前完成当前的计算任务,也需要等当前周期的时间片结束后才可以启动新的计算任务。同时,若当前周期的时间片结束时,当前的计算任务仍未完成,那么该神经网络层需要接收并缓存新的数据,造成存储压力,可能造成数据丢失。
发明内容
本申请实施例提供了一种计算同步方法、同步管理装置及计算单元,能够动态调整各神经网络层的计算时间片,提高计算效率。
本申请第一方面提供了一种计算同步方法,所述方法可以应用于人工神经网络系统中。根据该方法,可以获取所述人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息,其中,所述每个计算单元的负载状态信息分别用于指示对应的计算单元所处理的计算任务的完成情况,所述第一神经网络层包括多个计算单元。在根据所述第一神经网络层中的每个计算单元的负载状态信息确定所述第一神经网络层中的每个计算单元均完成各自所处理的计算任务后,可以向所述第一神经网络层中的每个计算单元发送同步指示消息,所述同步指示消息用于指示所述第一神经网络层中的每个计算单元启动新的计算任务。
在本申请的技术方案中,由于可以根据人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息来启动新的计算任务,与当前的采用固定时间片的同步方案相比,可以在第一神经网络层中的多个计算单元均完成当前的计算任务后,及时开启新的计算任务。这种方式可以根据各计算单元计算的数据量动态调整各神经网络层的计算时间片,减少了计算单元的等待时间,提高了计算效率,提升了芯片的处理性能和能效比。
在一些可能的实现方式中,所述向所述第一神经网络层中的每个计算单元发送同步指示消息之前,还可以获取所述人工神经网络系统中第二神经网络层中的每个计算单元的负载状态信息,所述第二神经网络层包括多个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层。之后,可以根据所述第二神经网络层中的每个计算单元的负载状态信息确定所述第二神经网络层中的每个计算单元均完成各自所处理的计算任务。
由于确定该第二神经网络层中的各个计算单元已经完成了其当前的计算任务,当第一神经网络层中的各个计算单元需要启动新的计算任务时,则可以将当前的计算任务的计算结果发送给第二神经网络层的各个计算单元,以便空出缓存空间,以便马上接收输入数据,快速开始执行新的计算任务。
在一些可能的实现方式中,所述向所述第一神经网络层中的每个计算单元发送同步指示消息之前,还可以获取所述人工神经网络系统中第三神经网络层中每个计算单元的负载状态信息,其中,所述第三神经网络层包括多个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层。接着,可以根据所述第三神经网络层中每个计算单元的负载状态信息确定所述第三神经网络层中每个计算单元均完成各自所处理的计算任务。
由于确定该第三神经网络层中的各个计算单元已经完成了当前的计算任务,当第一神经网络层中的各个计算单元需要启动新的计算任务时,则可以立刻接收第三神经网络层中各个计算单元发送的其当前的计算任务的计算结果,以便快速开始执行第一神经网络层中各个计算单元的新的计算任务。
在一些可能的实现方式中,所述负载状态信息包括所述计算任务的起始时间点和持续时长,所述计算任务的结束时间点,以及用于指示是否完成所述计算任务的指示消息中的至少一项,以使得所述同步管理装置确定所述第一神经网络层中的每个计算单元已完成各自的当前的计算任务。
在一些可能的实现方式中,所述同步指示消息包括所述第一神经网络层的标识,以便接收到同步指示消息的计算单元可以确定是否启动第二计算任务。
在一些可能的实现方式中,还可以分别向所述第一神经网络层中的每个计算单元发送负载状态信息获取请求,则可以通过负载状态信息获取请求向所述第一神经网络层中的每个计算单元获取负载状态信息。
本申请第二方面提供了一种计算同步方法,所述方法由人工神经网络系统中的第一计算单元执行,根据该方法,可以向所述人工神经网络系统中的同步管理装置发送第一负载状态信息,所述第一负载状态信息用于指示所述第一计算单元处理的第一计算任务的完成情况,所述第一计算单元为所述人工神经网络系统中第一神经网络层中的一个计算单元。接着,接收所述同步管理装置发送的同步指示消息,并根据所述同步指示信息启动第二计算任务。
在本申请的技术方案中,由于可以根据人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息来启动新的计算任务,与当前的采用固定时间片的同步方案相比,可以在第一神经网络层中的多个计算单元均完成当前的计算任务后,及时开启新的计算任务。这种方式可以根据各计算单元计算的数据量动态调整各神经网络层的计算时间片,减少了计算单元的等待时间,提高了计算效率,提升了芯片的处理性能和能效比。
在一些可能的实现方式中,还可以根据所述同步指示消息向第二计算单元发送所述第一计算任务的计算结果,所述第二计算单元为所述人工神经网络系统中第二神经网络层的一个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层,以便空出缓存空间,以便马上接收输入数据,快速开始执行新的计算任务。
在一些可能的实现方式中,所述根据所述同步指示信息启动第二计算任务之前,还可以接收所述人工神经网络系统中的第三计算单元发送的输入数据,所述输入数据为所述第三计算单元处理的第三计算任务的计算结果,所述第三计算单元为所述人工神经网络系统中的第三神经网络层中的一个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层,以便快速开始执行第一神经网络层中各个计算单元的新的计算任务。
在一些可能的实现方式中,所述第一负载状态信息包括所述第一计算任务的起始时间点和持续时长,或起始时间点和结束时间点,或用于指示是否完成所述第一计算任务的指示消息,以使得所述同步管理装置确定所述第一神经网络层中的每个计算单元已完成各自的第一计算任务。
在一些可能的实现方式中,所述同步指示消息包括所述第一神经网络层的标识,以便接收到同步指示消息的计算单元可以确定是否启动第二计算任务。
在一些可能的实现方式中,还可以接收所述同步管理装置发送的负载状态信息获取请求,以使得所述同步管理装置可以通过负载状态信息获取请求向所述第一神经网络层中的每个计算单元获取负载状态信息。
本申请第三方面提供了一种同步管理装置,包括用于实现上述第一方面或第一方面的任意一种实现方式的计算同步方法的功能模块。
本申请第四方面提供了一种计算单元,包括用于实现上述第二方面或第二方面的任意一种实现方式的计算同步方法的功能模块。
本申请第五方面提供了一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如第一方面或第二方面中的各种实现方式所述的方法。
本申请第六方面提供了一种同步管理装置,包括处理器和存储器,所述处理器与所述存储器耦合;所述存储器,用于存储程序;所述处理器,用于执行所述存储器中的程序,使得所述终端设备执行如第一方面的各种实现方式所述的方法。
本申请第七方面提供了一种计算单元,由人工神经网络系统中的第一计算单元执行,包括处理器和存储器,所述处理器与所述存储器耦合;所述存储器,用于存储程序;所述处理器,用于执行所述存储器中的程序,使得所述终端设备执行如第一方面的各种实现方式所述的方法。
本申请第八方面提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一种可能实现方式中的方法。
附图说明
图1a为人工神经网络系统的架构示意图;
图1b为人工神经网络系统各层神经网络层之间全连接方式的示意图;
图1c为人工神经网络系统各层神经网络层之间非全连接方式的示意图;
图2a为人工神经网络系统的架构示意图;
图2b为片上网络内各个计算单元的示意图;
图2c为同步管理装置连接人工神经网络系统内的计算单元的示意图;
图2d为同步管理装置连接人工神经网络系统内的计算单元的示意图;
图3为本申请提出的一种计算同步方法的实施例示意图;
图4a为本申请提出的一种同步管理装置的实施例示意图;
图4b为本申请提出的一种计算单元的实施例示意图。
具体实施方式
本申请实施例提供了一种计算同步方法、同步管理装置以及计算单元,能够动态调整各神经网络层的计算时间片,提高计算效率。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
人工神经网络是一种通过模仿动物的神经网络的行为特征,进行分布式并行信息处理的算法数学模型。常见的人工神经网络包括卷积神经网络(convolutional neuralnetworks,CNN)和脉冲神经网络(spiking neural network,SNN)。
需要说明的是,人工神经网络通过多个计算单元执行,称该多个计算单元组成了一个人工神经网络系统。通常,一个完成的神经网络系统包含多层神经网络层,其中每层神经网络层包括多个计算单元。一般的,人工神经网络系统包括输入层、输出层和隐藏层。隐藏层为人工神经网络系统中非输入层或输出层的所有层的总称,隐藏层可以包括依次相连的至少2层。神经网络层之间互相连接,通过两层神经网络层之间的计算单元互相连接实现。神经网络层内的计算单元之间逻辑并行,神经网络层之间逻辑串行,且神经网络层之间的计算结果的输出相互依赖和影响。
例如,如图1a所示的人工神经网络系统具有5层,其中第一层为输入层,第五层为输出层,第二层到第四层均为隐藏层,称为隐藏层1、隐藏层2、隐藏层3。其中,输入层、隐藏层1、隐藏层2、隐藏层3和输出层依次相连。当该人工神经网络系统接收到输入数据时,首先作为输入数据交给输入层处理。输入层处理完成后,得到输出数据,发送给隐藏层1,作为隐藏层1的输入数据。隐藏层1对接收的输入数据进行处理后,将计算结果发送给隐藏层2,如此类推。最后,输出层对隐藏层3的输出数据进行运算,得到最后的计算结果,作为该人工神经网络系统最终的输出数据。
需要说明的是,各层神经网络层之间可以有不同的连接方式。例如,如图1b所示,若隐藏层1具有3个计算单元,隐藏层2具有5个计算单元,隐藏层1中的每个计算单元分别与隐藏层2中的每个计算单元连接,这样的连接方式称为全连接。
在一些可能的实现方式中,也可以为其他连接方式。例如,如图1c所示,隐藏层2具有5个计算单元,隐藏层3具有5个计算单元,隐藏层2中每个计算单元均连接隐藏层3的其中一个计算单元,例如卷积神经网络中的卷积层和池化层。
需要说明的是,计算单元指的是处理器中运算器的最小单元的硬件结构。在计算单元中,主要通过电子电路极微小的元器件构成的逻辑电路来完成运算的,处理的都是高低电平信号,即是二进制信号。
在一些可能的实现方式中,将属于同一个人工神经网络系统的多个计算单元设置在一个芯片上,称为片上网络(network on chip,NOC)。例如,一个该Noc内设3层神经网络层,其中神经网络层1连接神经网络层2,神经网络层2连接神经网络层3,每层神经网络层包括3个计算单元,神经网络层之间可以通全连接的方式连接。在全连接的方式下,上一层神经网络层的每个计算单元输出数据发送给连接的下一层神经网络层中的每个计算单元,上一层神经网络层的计算单元发送的输出数据,作为下一层神经网络层的每个计算单元的输入数据,下一层神经网络层对这些输入数据进行计算,得到输出数据后,发送给再下一层神经网络层的每个计算单元。需要说明的是,上一层神经网络层也可以称为前一层神经网络层。
在一些可能的实现方式中,不同的计算单元可以不在同一个Noc中,可以分别设置在不同的芯片中,此处不做限定。需要说明的是,若不同的计算单元分别设置在不同的芯片中,那么不同的计算单元之间可以通过路由器进行发送数据。
对于一层神经网络层,若要启动新的计算任务,必须等待连接的上一层神经网络层的计算任务全部完成,并接收其计算结果后才能进行。一层神经网络层的计算任务需要每个计算单元分别完成各自部分,方可称为完成该计算任务,才能接收新的输入数据以执行新的计算任务。但是不同的计算单元所分配的计算任务的部分的计算量不尽相同,造成某些计算单元较快完成自己的一部分,而另外一些计算单元则较慢完成。那么,需要一种对各个计算单元进行对新的计算任务的计算同步的方案。
当前,人工神经网络系统在实现时,通常采用固定时间片的计算同步机制。时间片同步机制为各层统一分配相同的固定时间片,固定时间片的长度通常取各层神经网络层中计算单元的计算时间的最大值。那么,即使某一层神经网络层提前完成当前的计算任务,也必须等待该固定时间片结束,才会计算新的计算任务;同时,若某一层神经网络层尚未完成当前的计算任务,也必须启动新的计算任务。
例如,在SNN中,通过稀疏矩阵计算,假定输入脉冲的平均稀疏率是10%,但是在某些固定时间片内,某些神经网络层的实际输入稀疏率可能小于3%,但是在另一些固定时间片内,这些神经网络层的实际输入稀疏率可能达到30%以上。那么,这些神经网络层每次完成计算的时间可能会在很大的范围内变动。如果固定时间片设置的太小了,那么可能某些神经网络层还未完成计算任务,而又启动了新的计算任务,芯片在功能上会出现异常;如果固定时间片设置得太大,某些神经网络层早早完成了计算任务,将进入空等,芯片的性能会被浪费,同时输出到输入的时延无法达到最优。
为此,本申请提出了一种计算同步方法、同步管理装置以及计算单元,能够动态调整各神经网络层的计算时间片,提高计算效率。
在本申请的技术方案中,由于可以根据人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息来启动新的计算任务,与当前的采用固定时间片的同步方案相比,可以在第一神经网络层中的多个计算单元均完成当前的计算任务后,及时开启新的计算任务。这种方式可以根据各计算单元计算的数据量动态调整各神经网络层的计算时间片,减少了计算单元的等待时间,提高了计算效率,提升了芯片的处理性能和能效比。
如图2a所示,为人工神经网络系统100的架构示意图,人工神经网络系统100包括多个计算单元110和同步管理装置120,该多个计算单元110包括多层神经网络层,多层神经网络层中每层神经网络层包括至少一个计算单元。在本申请实施例中,同步管理装置120连接多个计算单元110中的每一个计算单元,对多个计算单元110中的各个计算单元进行计算同步。
在一些可能的实现方式中,多个计算单元110中各个计算单元可以集成在Noc中。例如,如图2b所示,该Noc具有9个计算单元,其中每3个计算单元组成一层神经网络层,即神经网络层1、神经网络层2和神经网络层3依次连接,神经网络层1包括计算单元11、计算单元12和计算单元13,神经网络层2包括计算单元21、计算单元22和计算单元23,神经网络层3包括计算单元31、计算单元32和计算单元33。
如图2c所示,同步管理装置120可以连接该多个计算单元110中每个计算单元,这样,同步管理装置120可以与该多个计算单元110中每个计算单元进行信息交互。
在一些可能的实现方式中,如图2d所示,同步管理装置120与多个计算单元110中每个计算单元可以通过至少两条线连接,其中一条线(图2d中的实线)用于接收多个计算单元110中每个计算单元发送的负载状态信息,另一条线(图2d中的虚线)用于向多个计算单元110中的计算单元发送同步指示消息。
具体的,请参考图3,本申请提出的一种计算同步方法,应用于人工神经网络系统中,包括:
301、同步管理装置向人工神经网络系统中每个计算单元发送负载状态信息获取请求。
为了可以获取人工神经网络系统中每个计算单元的负载状态信息,可选的,同步管理装置可以向人工神经网络系统中的计算单元发送负载状态信息获取请求。可选的,同步管理装置也可以不发送该负载状态信息获取请求,而是通过在计算单元上进行设置,使得计算单元自动发送负载状态信息,此处不做限定。在一些可能的实现方式中,同步管理装置可以周期性地发送向人工神经网络系统中每个计算单元发送负载状态信息获取请求,此处不做限定。
302、人工神经网络系统中的计算单元向同步管理装置发送负载状态信息。
在一些可能的实现方式中,计算单元可以周期性地向同步管理装置发送负载状态信息,以告知是否已经完成其当前的计算任务。需要说明的是,对于计算单元,负载状态信息中的“负载”指的是当前所处理的计算任务的数据量。
在一些可能的实现方式中,计算单元可以在完成其当前的计算任务时向同步管理装置发送负载状态信息,以指示计算单元已经完成了当前的计算任务,而在未完成其当前的计算任务时不发送负载状态信息。
在一些可能的实现方式中,计算单元可以在接收到同步管理装置发送的负载状态信息获取请求时,向同步管理在发送负载状态信息,以告知是否已经完成其当前的计算任务;而在未接收到负载状态信息获取请求时,则不发送负载状态信息。
在一些可能的实现方式中,计算单元也可以周期性地向同步管理装置发送负载状态信息,同时,在接收到负载状态信息获取请求时,向同步管理在发送负载状态信息,此处不做限定。
需要说明的是,计算单元的负载状态信息指示当前所处理的计算任务的完成情况。在一些可能的实现方式中,负载状态信息包括下述信息中的至少一项:计算任务的起始时间点和持续时长,计算任务的结束时间点,以及用于指示是否完成计算任务的指示消息。
下面第一计算单元为例,第一计算单元为第一神经网络层中的一个计算单元,第一神经网络层为人工神经网络系统中的一层神经网络层。
在一些可能的实现方式中,第一计算单元在接收到第一计算任务的输入数据时,根据自身的计算能力,确定所需要的时长,即持续时长,然后在启动第一计算任务的时间点作为起始时间点,得到起始时间点和持续时长。第一计算单元以起始时间点和持续时长作为第一负载状态信息,发送给同步管理装置。那么,同步管理装置根据第一计算任务的起始时间点、持续时长及当前时间点,也可以确定该第一计算任务是否完成。具体的,同步管理装置根据起始时间点、持续时长计算第一计算任务的结束时间点,若结束时间点晚于当前时间点,则确定该第一计算任务尚未完成;若已经到达结束时间点,或当前时间点晚于结束时间点,则确定该第一计算任务已经完成。
在一些可能的实现方式中,第一计算单元可以在接收到第一计算任务时,根据自身的计算能力,确定所需要的时长,即持续时长,然后在启动第一计算任务的时间点作为起始时间点,加上该持续时长,得到结束时间点,作为负载状态信息,发送给同步管理装置。那么,同步管理装置根据第一计算任务的结束时间点及当前时间点,也可以确定该计算任务是否完成。具体的,若结束时间点晚于当前时间点,则同步管理装置确定该第一计算任务尚未完成;若已经到达结束时间点,或当前时间点晚于结束时间点,则确定该第一计算任务已经完成。
在一些可能的实现方式中,第一计算单元在接收到第一计算任务时,在未完成该第一计算任务时,不发送任何信息。当第一计算单元完成该第一计算任务时,就发送第一负载状态信息,则该第一负载状态信息指示已完成第一计算任务。在一些可能的实现方式中,该第一负载状态信息的内容可以为1个字符,如1或0。那么,同步管理装置接收到第一负载状态信息时,即可认为该第一计算单元已经完成该第一计算任务,否则表示未完成该第一计算任务。
在一些可能的实现方式,在第一计算单元未完成该第一计算任务时,也可以发送第一负载状态信息,则该第一负载状态信息指示未完成第一计算任务。在一些可能的实现方式中,若第一计算单元未完成该第一计算任务,则第一负载状态信息的内容为0,若第一计算单元已完成该第一计算任务,则该第一负载状态信息的内容为1。在一些可能的实现方式中,若第一计算单元未完成该第一计算任务,则第一负载状态信息的内容为1,若第一计算单元已完成该第一计算任务,则该第一负载状态信息的内容为0,此处不做限定。那么,同步管理装置根据第一负载状态信息的内容,可以确定该第一计算任务是否已经完成。
需要说明的是,第一计算任务可以为卷积计算任务,也可以为池化计算任务,也可以为其他计算任务,此处不做限定。
303、同步管理装置根据第一神经网络层中的每个计算单元的负载状态信息确定第一神经网络层中的每个计算单元均完成各自所处理的计算任务。
在本申请实施例中,基于第一神经网络层中的每个计算单元的负载状态信息确定第一神经网络层是否完成当前的计算任务。具体的,若第一神经网络层中的每个计算单元均已完成各自当前的计算任务,那么认为该第一神经网络层已经完成当前的计算任务;若第一神经网络层中存在一个计算单元未完成其当前的计算任务,那么认为该第一神经网络层未完成当前的计算任务。
例如,若第一神经网络层由3个计算单元组成,分别为计算单元11、计算单元12和计算单元13。若计算单元11和计算单元13均完成其当前的计算任务,但是计算单元12未完成其当前的计算任务,那么认为该第一神经网络层未完成其当前的计算任务;若计算单元11、计算单元12和计算单元13均完成其当前的计算任务,那么认为该第一神经网络层已完成其当前的计算任务。
在一些可能的实现方式中,当同步管理装置确定第一神经网络层已完成其当前的计算任务,那么同步管理装置可以使第一神经网络层启动新的计算任务(对于第一计算单元,即为启动第二计算任务)。在一些可能的实现方式中,在执行了步骤303之后,可以执行步骤306;在另一些可能的实现方式中,在执行了步骤303之后,也可以执行步骤304和/或步骤305。
304、同步管理装置根据第二神经网络层中的每个计算单元的负载状态信息确定第二神经网络层中的每个计算单元均完成各自所处理的计算任务,第二神经网络层为第一神经网络层的下一层神经网络层。
当第一神经网络层中的第一计算单元将计算结果发送给第二神经网络层的第二计算单元时,若第二计算单元未完成其当前的计算任务,由于第二计算单元优先于其当前的计算任务,未必有足够的存储空间存储该第一计算单元的计算结果,可能造成第一计算单元的计算结果的数据丢失。如果第一计算单元将计算结果存储在本地,则占用存储空间,可能无法启动第二计算任务。因此,可选的,在同步管理装置向第一神经网络层中的各个计算单元发送同步指示消息之前,除了需要确定第一神经网络层完成其当前的计算任务,还需要确定该第二神经网络层也完成了其当前的计算任务。
确定第二神经网络层是否完成其当前的计算任务的方式可以与确定第一神经网络层是否完成其当前的计算任务的方式相同,此处不做赘述。
在一些可能的实现方式中,当同步管理装置确定第一神经网络层和第二神经网络层均已分别完成其当前的计算任务,那么同步管理装置可以使第一神经网络层启动新的计算任务(对于第一计算单元,即为启动第二计算任务)。在一些可能的实现方式中,在执行了步骤304之后,可以执行步骤306;在另一些可能的实现方式中,在执行了步骤304之后,也可以执行步骤305。
305、同步管理装置根据第三神经网络层中每个计算单元的负载状态信息确定第三神经网络层中每个计算单元均完成各自所处理的计算任务,第三神经网络层为第一神经网络层的上一层神经网络层。
当第一计算单元完成第一计算任务后,若第三神经网络层中的第三计算单元未完成其当前的计算任务,将无法马上将计算结果发送给第一计算单元,那么第一计算单元将陷入空等。因此,可选的,在同步管理装置向第一神经网络层中的各个计算单元发送同步指示消息之前,除了需要确定第一神经网络层完成第一计算任务,还需要确定该第三神经网络层也完成了其当前的计算任务。
确定第三神经网络层是否完成其当前的计算任务的方式可以与确定第一神经网络层是否完成其当前的计算任务的方式相同,此处不做赘述。
在一些可能的实现方式中,当同步管理装置确定第一神经网络层和第三神经网络层均已分别完成其当前的计算任务,那么同步管理装置可以使第一神经网络层启动新的计算任务,那么同步管理装置向第一神经网络层中的各个计算单元发送同步指示消息。
在一些可能的实现方式中,当同步管理装置确定第一神经网络层、第二神经网络层和第三神经网络层均已分别完成其当前的计算任务,那么同步管理装置可以使第一神经网络层启动新的计算任务(对于第一计算单元,即为启动第二计算任务)。
需要说明的是,步骤304和步骤305可以都执行,也可以择一执行,此处不做限定。若步骤304和305均执行,步骤304和步骤305无时序上的关系,即可以先执行步骤304,也可以先执行步骤305,此处不做限定。
306、同步管理装置向第一神经网络层中的每个计算单元发送同步指示消息,同步指示消息用于指示第一神经网络层中的每个计算单元启动新的计算任务。
综上所述,在一些可能的实现方式中,当确定第一神经网络层完成其当前的计算任务后,即可向第一神经网络层中的各个计算单元发送同步指示消息;在一些可能的实现方式中,当第一神经网络层和第二神经网络层均完成其当前的计算任务后,即可向第一神经网络层中的各个计算单元发送同步指示消息;在一些可能的实现方式中,当第一神经网络层和第三神经网络层均完成其当前的计算任务后,即可向第一神经网络层中的各个计算单元发送同步指示消息;在一些可能的实现方式中,当第一神经网络层、第二神经网络层和第三神经网络层均完成其当前的计算任务后,即可向第一神经网络层中的各个计算单元发送同步指示消息。
在一些可能的实现方式中,同步指示消息可以为广播的形式,且该同步指示消息携带第一神经网络层的标识,以使得第一神经网络层的第一计算单元接收到同步指示消息根据第一神经网络层的标识开启第二计算任务。
307、人工神经网络系统中第一神经网络层中的每个计算单元根据同步指示信息启动新的计算任务。
例如,第一计算单元启动第二计算任务。那么,第一计算单元根据同步指示消息向第二神经网络层中的第二计算单元发送第一计算任务的计算结果,作为第二计算单元的输入数据,第二神经网络层为第一神经网络层的下一层神经网络层。然后,第一计算单元接收第三神经网络层中的第三计算单元发送的输入数据,输入数据为第三计算单元处理的第三计算任务的计算结果,第三计算任务为第三计算单元的当前的计算任务,第三计算单元为人工神经网络系统中的第三神经网络层中的一个计算单元,第三神经网络层为第一神经网络层的上一层神经网络层。
在本申请的技术方案中,由于可以根据人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息来启动新的计算任务,与当前的采用固定时间片的同步方案相比,可以在第一神经网络层中的多个计算单元均完成当前的计算任务后,及时开启新的计算任务。这种方式可以根据各计算单元计算的数据量动态调整各神经网络层的计算时间片,减少了计算单元的等待时间,提高了计算效率,提升了芯片的处理性能和能效比。
以下结合附图对实现上述方法的同步管理装置和计算单元进行说明。
在本申请提出了一种同步管理装置120,如图4a所示,同步管理装置120可以为一个微控制单元(microcontroller unit,MCU),也可以为一个中央处理器(centralprocessingunit,CPU),此处不做限定。
该同步管理装置120包括同步指示接收模块121、同步仲裁模块122、同步指示发送模块123、多个输入端口124和多个输出端口125,多个输入端口124耦合同步指示接收模块121、同步指示接收模块121耦合连接同步仲裁模块122、同步仲裁模块122耦合同步指示发送模块123、同步指示发送模块123耦合多个输出端口125。
多个输入端口124,用于分别连接多个计算单元。
多个输出端口125,用于分别连接多个计算单元。
同步指示接收模块123,用于通过多个输入端口124获取第一神经网络层中的多个计算单元的负载状态信息,其中,多个计算单元的负载状态信息分别用于指示对应的计算单元所处理的计算任务的完成情况。
同步仲裁模块122,用于根据第一神经网络层中的每个计算单元的负载状态信息确定第一神经网络层中的每个计算单元均完成各自所处理的计算任务。
同步指示发送模块123,用于通过多个输出端口125分别向第一神经网络层中的多个计算单元发送同步指示消息,同步指示消息用于指示第一神经网络层中的每个计算单元启动新的计算任务。
在一些可能的实现方式中,同步指示接收模块123,还用于通过多个输入端口124获取人工神经网络系统中第二神经网络层中的每个计算单元的负载状态信息,第二神经网络层包括多个计算单元,第二神经网络层为第一神经网络层的下一层神经网络层。
同步仲裁模块122,还用于根据第二神经网络层中的每个计算单元的负载状态信息确定第二神经网络层中的每个计算单元均完成各自所处理的计算任务。
在一些可能的实现方式中,同步指示接收模块123,还用于通过多个输入端口124获取人工神经网络系统中的第三神经网络层中每个计算单元的负载状态信息,第三神经网络层包括多个计算单元,第三神经网络层为第一神经网络层的上一层神经网络层。
同步仲裁模块122,还用于根据第三神经网络层中每个计算单元的负载状态信息确定第三神经网络层中每个计算单元均完成各自所处理的计算任务。
请参考图4b,本申请还提出了一种计算单元130,用于人工神经网络系统中的第一计算单元,包括:
输出端口131,用于向人工神经网络系统中的同步管理装置发送第一负载状态信息,第一负载状态信息用于指示第一计算单元处理的第一计算任务的完成情况,第一计算单元为人工神经网络系统中第一神经网络层中的一个计算单元。
输入端口132,用于接收同步管理装置发送的同步指示消息。
计算模块133,用于根据同步指示信息启动第二计算任务。
在一些可能的实现方式中,输入端口132,还用于根据同步指示消息向第二计算单元发送第一计算任务的计算结果,第二计算单元为人工神经网络系统中第二神经网络层的一个计算单元,第二神经网络层为第一神经网络层的下一层神经网络层。
在一些可能的实现方式中,输入端口132,还用于接收人工神经网络系统中的第三计算单元发送的输入数据,输入数据为第三计算单元处理的第三计算任务的计算结果,第三计算单元为人工神经网络系统中的第三神经网络层中的一个计算单元,第三神经网络层为第一神经网络层的上一层神经网络层。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令该指令被执行时执行网络设备执行的所述方法。
在另一种可能的设计中,当该装置为设备内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该设备内的芯片执行上述第一方面任意一项的无线通信方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述设备内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制上述第一方面无线通信方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (18)
1.一种计算同步方法,其特征在于,所述方法应用于人工神经网络系统中,所述方法包括:
获取所述人工神经网络系统中第一神经网络层中的每个计算单元的负载状态信息,其中,所述每个计算单元的负载状态信息分别用于指示对应的计算单元所处理的计算任务的完成情况,所述第一神经网络层包括多个计算单元;
根据所述第一神经网络层中的每个计算单元的负载状态信息确定所述第一神经网络层中的每个计算单元均完成各自所处理的计算任务;
向所述第一神经网络层中的每个计算单元发送同步指示消息,所述同步指示消息用于指示所述第一神经网络层中的每个计算单元启动新的计算任务。
2.根据权利要求1所述方法,其特征在于,所述向所述第一神经网络层中的每个计算单元发送同步指示消息之前,还包括:
获取所述人工神经网络系统中第二神经网络层中的每个计算单元的负载状态信息,所述第二神经网络层包括多个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层;
根据所述第二神经网络层中的每个计算单元的负载状态信息确定所述第二神经网络层中的每个计算单元均完成各自所处理的计算任务。
3.根据权利要求1或2所述方法,其特征在于,所述向所述第一神经网络层中的每个计算单元发送同步指示消息之前,还包括:
获取所述人工神经网络系统中第三神经网络层中每个计算单元的负载状态信息,所述第三神经网络层包括多个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层;
根据所述第三神经网络层中每个计算单元的负载状态信息确定所述第三神经网络层中每个计算单元均完成各自所处理的计算任务。
4.根据权利要求1-3中任一项所述方法,其特征在于,所述负载状态信息包括下述信息中的至少一项:所述计算任务的起始时间点和持续时长,所述计算任务的结束时间点,以及用于指示是否完成所述计算任务的指示消息。
5.根据权利要求1-4中任一项所述方法,其特征在于,所述同步指示消息包括所述第一神经网络层的标识。
6.一种计算同步方法,其特征在于,所述方法由人工神经网络系统中的第一计算单元执行,所述方法包括:
向所述人工神经网络系统中的同步管理装置发送第一负载状态信息,所述第一负载状态信息用于指示所述第一计算单元处理的第一计算任务的完成情况,所述第一计算单元为所述人工神经网络系统中第一神经网络层中的一个计算单元;
接收所述同步管理装置发送的同步指示消息;
根据所述同步指示信息启动第二计算任务。
7.根据权利要求6所述方法,其特征在于,还包括:
根据所述同步指示消息向第二计算单元发送所述第一计算任务的计算结果,所述第二计算单元为所述人工神经网络系统中第二神经网络层的一个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层。
8.根据权利要求6或7所述方法,其特征在于,所述根据所述同步指示信息启动第二计算任务之前,还包括:
接收所述人工神经网络系统中的第三计算单元发送的输入数据,所述输入数据为所述第三计算单元处理的第三计算任务的计算结果,所述第三计算单元为所述人工神经网络系统中的第三神经网络层中的一个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层。
9.根据权利要求6-8中任一项所述方法,其特征在于,所述第一负载状态信息包括所述第一计算任务的起始时间点和持续时长,或起始时间点和结束时间点,或用于指示是否完成所述第一计算任务的指示消息。
10.根据权利要求6-9中任一项所述方法,其特征在于,所述同步指示消息包括所述第一神经网络层的标识。
11.一种同步管理装置,其特征在于,包括:
同步指示接收模块,用于获取人工神经网络系统中第一神经网络层中的多个计算单元的负载状态信息,其中,所述多个计算单元的负载状态信息分别用于指示对应的计算单元所处理的计算任务的完成情况;
同步仲裁模块,用于根据所述第一神经网络层中的每个计算单元的负载状态信息确定所述第一神经网络层中的每个计算单元均完成各自所处理的计算任务;
同步指示发送模块,用于分别向所述第一神经网络层中的多个计算单元发送同步指示消息,所述同步指示消息用于指示所述第一神经网络层中的每个计算单元启动新的计算任务。
12.根据权利要求11所述装置,其特征在于,
所述同步指示接收模块,还用于获取所述人工神经网络系统中第二神经网络层中的每个计算单元的负载状态信息,所述第二神经网络层包括多个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层;
所述同步仲裁模块,还用于根据所述第二神经网络层中的每个计算单元的负载状态信息确定所述第二神经网络层中的每个计算单元均完成各自所处理的计算任务。
13.根据权利要求11或12所述装置,其特征在于,
所述同步指示接收模块,还用于获取所述人工神经网络系统中的第三神经网络层中每个计算单元的负载状态信息,所述第三神经网络层包括多个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层;
所述同步仲裁模块,还用于根据所述第三神经网络层中每个计算单元的负载状态信息确定所述第三神经网络层中每个计算单元均完成各自所处理的计算任务。
14.一种计算单元,其特征在于,包括:
输出端口,用于向人工神经网络系统中的同步管理装置发送第一负载状态信息,所述第一负载状态信息用于指示所述第一计算单元处理的第一计算任务的完成情况,所述第一计算单元为所述人工神经网络系统中第一神经网络层中的一个计算单元;
输入端口,用于接收所述同步管理装置发送的同步指示消息;
计算模块,用于根据所述同步指示信息启动第二计算任务。
15.根据权利要求14所述计算单元,其特征在于,
所述输入端口,还用于根据所述同步指示消息向第二计算单元发送所述第一计算任务的计算结果,所述第二计算单元为所述人工神经网络系统中第二神经网络层的一个计算单元,所述第二神经网络层为所述第一神经网络层的下一层神经网络层。
16.根据权利要求14或15所述计算单元,其特征在于,
所述输入端口,还用于接收所述人工神经网络系统中的第三计算单元发送的输入数据,所述输入数据为所述第三计算单元处理的第三计算任务的计算结果,所述第三计算单元为所述人工神经网络系统中的第三神经网络层中的一个计算单元,所述第三神经网络层为所述第一神经网络层的上一层神经网络层。
17.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1至10中任一项所述的方法。
18.一种同步管理装置,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合;
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述终端设备执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616263.0A CN113869484A (zh) | 2020-06-30 | 2020-06-30 | 一种计算同步方法、同步管理装置以及计算单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616263.0A CN113869484A (zh) | 2020-06-30 | 2020-06-30 | 一种计算同步方法、同步管理装置以及计算单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113869484A true CN113869484A (zh) | 2021-12-31 |
Family
ID=78981527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010616263.0A Pending CN113869484A (zh) | 2020-06-30 | 2020-06-30 | 一种计算同步方法、同步管理装置以及计算单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113869484A (zh) |
-
2020
- 2020-06-30 CN CN202010616263.0A patent/CN113869484A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110896404B (zh) | 数据处理的方法、装置和计算节点 | |
CN110991632B (zh) | 一种基于fpga的异构神经网络计算加速器设计方法 | |
US10943324B2 (en) | Data processing method, apparatus, and electronic device | |
CN114281521B (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN115150471B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN109634989B (zh) | 一种hive任务执行引擎选择方法和系统 | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
US6789258B1 (en) | System and method for performing a synchronization operation for multiple devices in a computer system | |
CN114356578A (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN111984402A (zh) | 一种线程池统一调度监控方法及系统 | |
WO2022104991A1 (zh) | 控制装置及类脑计算系统 | |
WO2022104990A1 (zh) | 触发装置及类脑计算系统 | |
CN111736904B (zh) | 多任务并行处理方法、装置、计算机设备及存储介质 | |
CN113869484A (zh) | 一种计算同步方法、同步管理装置以及计算单元 | |
CN116521573A (zh) | 一种自动化测试方法、装置、设备及存储介质 | |
CN114817107B (zh) | Pcie设备切换系统、方法、装置、计算机设备和存储介质 | |
CN115269131A (zh) | 一种任务调度方法及装置 | |
CN113722053A (zh) | 数据访问控制电路、方法、电子设备及计算机可读存储介质 | |
CN113568718A (zh) | 任务分配方法、装置、电子设备及计算机可读存储介质 | |
CN111476663B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
US20130107878A1 (en) | Method for node communication | |
CN109522262B (zh) | 适用于不定长数据帧的接收方法、系统、电子终端及存储介质 | |
CN115129651B (zh) | 一种多gpu数据传输方法、装置、设备及存储介质 | |
CN115604198B (zh) | 一种网卡控制器、网卡控制方法、设备及介质 | |
CN111209103A (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 |