CN115168060B - 神经网络处理器npu调度方法和计算机存储介质 - Google Patents

神经网络处理器npu调度方法和计算机存储介质 Download PDF

Info

Publication number
CN115168060B
CN115168060B CN202211092764.9A CN202211092764A CN115168060B CN 115168060 B CN115168060 B CN 115168060B CN 202211092764 A CN202211092764 A CN 202211092764A CN 115168060 B CN115168060 B CN 115168060B
Authority
CN
China
Prior art keywords
tasks
priority class
npu
task
executed
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.)
Active
Application number
CN202211092764.9A
Other languages
English (en)
Other versions
CN115168060A (zh
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.)
Shenzhen MicroBT Electronics Technology Co Ltd
Original Assignee
Shenzhen MicroBT Electronics Technology Co 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 Shenzhen MicroBT Electronics Technology Co Ltd filed Critical Shenzhen MicroBT Electronics Technology Co Ltd
Priority to CN202211092764.9A priority Critical patent/CN115168060B/zh
Publication of CN115168060A publication Critical patent/CN115168060A/zh
Application granted granted Critical
Publication of CN115168060B publication Critical patent/CN115168060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Machine Translation (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本公开涉及神经网络处理器NPU调度方法和计算机存储介质。一种NPU调度方法,其中NPU用于执行多个任务,该方法包括:基于多个任务的运行时间和执行频率确定每个任务的优先级;将多个任务按照优先级从低到高分类为多个优先类;对于第一优先类中的任务,在其代码中插入抢占指令作为抢占点,抢占指令在被NPU执行时使得NPU轮询并执行较后优先类中待执行的任务,在执行较后优先类中的任务之前保存现场、在执行较后优先类中的任务之后恢复现场并继续执行该任务;NPU运行时循环执行以下步骤:依次执行第二优先类中待执行的所有任务;执行第一优先类中待执行的一个任务,在该任务的每个抢占点处依次执行第二优先类中待执行的所有任务。

Description

神经网络处理器NPU调度方法和计算机存储介质
技术领域
本公开涉及神经网络处理器(NPU)。
具体来说,涉及用于执行多个任务的神经网络处理器的调度方法。
背景技术
NPU是专门针对人工智能(AI)算法的处理器,其可以提供强大的算力以支持各种AI算法。
在实际应用中,NPU往往需要同时运行多个AI算法以达到较好的用户体验。例如,在智能摄像头的NPU中,可能需要同时运行人形检测算法、人脸识别算法和行为动作算法。其中,一些算法的运行时间较短,但需要以较高的频率执行;另外一些算法的运行时间较长,但执行的频率较低。即,NPU需要同时执行多个算法任务,这多个任务的运行时间和执行频率有所不同。因此,需要对执行多个任务的NPU进行调度。
作为比较,用于执行多个任务的中央处理器(CPU)的调度方法是通过复杂的操作系统和硬件配置实现的。但是,NPU并没有如CPU那样复杂的操作系统和硬件配置,因此CPU的调度方法无法直接应用于NPU。
因此,需要一种较为简单的、能够在NPU上实现的NPU调度方法。
发明内容
本公开的目的之一是提供一种神经网络处理器NPU调度方法。
根据本公开的一个方面,提供了一种神经网络处理器NPU调度方法,其中,NPU用于执行多个任务,所述方法包括:基于所述多个任务的运行时间和执行频率确定每个任务的优先级;将所述多个任务按照优先级从低到高分类为多个优先类,所述多个优先类至少包括第一优先类和第二优先类;对于第一优先类中的至少一个任务,在其代码中插入至少一组抢占指令作为该任务中的抢占点,其中所述抢占指令在被NPU执行时使得NPU轮询并执行较后优先类中待执行的任务,以及在执行较后优先类中的任务之前保存现场、在执行较后优先类中的任务之后恢复现场并继续执行该任务;以及NPU运行时循环地执行以下步骤:依次执行第二优先类中的待执行的所有任务;执行第一优先类中的待执行的一个任务,其中在该任务的每个抢占点处依次执行较后优先类中的待执行的所有任务。
根据本公开的另一个方面,提供了一种计算机存储介质,其上存储有可执行指令,所述指令在被执行时能够实现以上所述的方法。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出了根据本公开的至少一个实施例的NPU调度方法的预处理步骤的流程图。
图2示出了根据本公开的至少一个实施例的NPU调度方法的运行步骤的流程图。
图3A-图3I示出了根据本公开的至少一个实施例的NPU调度方法的运行步骤的示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在一些情况中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,本公开并不限于附图等所公开的位置、尺寸及范围等。
具体实施方式
下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出,来说明本公开中的结构和方法的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
在NPU运行相应任务之前,首先对NPU要执行的任务进行预处理。图1示出了根据本公开的至少一个实施例的用于执行多个任务的NPU的调度方法的预处理步骤的流程图。
在框101处,预处理开始。
在框102处,基于NPU要执行的多个任务的运行时间和执行频率确定每个任务的优先级。
本发明的发明人认识到,NPU需要执行的任务的运行时间和执行频率往往可以被预先确定。例如,对于智能摄像头的NPU,可以预先确定人形检测算法的运行时间为大约3ms、执行频率为大约每秒30次,而跌倒检测算法的运行时间为大约100ms、执行频率为大约每秒2次。于是,可以基于NPU要执行的多个任务的运行时间和执行频率来确定其优先级。
在优选的实施例中,可以将所需的运行时间较短且执行频率较高的任务设定为较高优先级,而将所需的运行时间较长且执行频率较低的任务设定为较低优先级。例如,在智能摄像头的NPU中,人形检测算法需要较短的运行时间(约3ms)和较高的执行频率(约每秒30次),而跌倒检测算法需要较长的运行时间(约100ms)和较低的执行频率(约每秒2次)。这样,可以将人形检测算法任务设定为较高优先级,而跌倒检测算法任务设定为较低优先级。
在其他实施例中,可以仅根据运行时间或执行频率中的一者来确定每个任务的优先级。例如,可以将所需的运行时间较短的任务设定为较高优先级,将所需的运行时间较长的任务设定为较低优先级,而不管其执行频率如何。在其他实施例中,还可以适当地根据任务的其他特性来确定每个任务的优先级。
在框104处,将多个任务按照优先级从低到高分类为多个优先类,其中多个优先类至少包括第一优先类和第二优先类。
根据实际应用的需要,可以将多个任务分类为两个优先类,其中第一优先类中的任务的优先级较低,第二优先类中的任务的优先级较高。例如,可以将跌倒检测算法任务分类为第一优先类,而将人形检测算法任务分类为第二优先类。或者,可以将多个任务分类为三个优先类,其中第一优先类中的任务的优先级最低,第二优先类中的任务的优先级较高,第三优先类中的任务的优先级最高。
在框106处,对于第一优先类中的至少一个任务,在其代码中插入至少一组抢占指令作为该任务中的抢占点。其中,该抢占指令在被NPU执行时使得NPU轮询并执行较后优先类中待执行的任务,以及在执行较后优先类中的任务之前保存现场、在执行较后优先类中的任务之后恢复现场并继续执行该任务。在优选的实施例中,可以在内存中保存现场以及从内存恢复现场。
例如,对于第一优先类中的跌倒检测算法任务(具有较低优先级),可以在其代码中插入至少一组抢占指令作为抢占点。对于第二优先类中的人形检测算法任务(具有较高优先级),可以不在其中插入抢占点。在执行到跌倒检测算法任务的抢占点处时,NPU执行预先被插入到代码中的抢占指令,轮询是否有较后优先类(例如,第二优先类)中的任务等待执行。如果有(例如,第二优先类中的人形检测算法任务等待执行),则暂停执行当前的跌倒检测算法任务、保存现场,并且执行较后优先类中的任务(例如,第二优先类中的人形检测算法任务)。在较后优先类中的等待执行的任务执行完毕之后,NPU恢复现场,并且继续执行当前的跌倒检测算法任务。
在优选的实施例中,每个优先类中的每个任务中的抢占点的间隔时间至少部分地基于较后优先类中的任务的执行频率来设定。例如,对于第一优先类中的跌倒检测算法任务,其抢占点的间隔时间可以至少部分地基于第二优先类中的人形检测算法任务的执行频率(约每秒30次)而设定为20-25ms。
在将多个任务分类为三个以上优先类的实施例中,对于除了最后一个优先类以外的其他优先类中的至少一个任务,可以在其代码中插入至少一组抢占指令作为该任务中的抢占点。换言之,除了对应于最高优先级的一个优先类以外,对于其他优先类中的任务都可以插入抢占点。例如,在将多个任务分类为三个优先类的实施例中,可以对于对应于较低优先级的第一和第二优先类中的至少一个任务插入抢占点。
在框108处,预处理结束。
在预处理结束后,NPU可以开始运行相应的任务。
图2示出了根据本公开的至少一个实施例的NPU调度方法的运行步骤的流程图。
在框201处,NPU开始运行。
在框202处,NPU依次执行第二优先类中的待执行的所有任务。换言之,NPU依次执行对应于较高优先级的优先类中的待执行的所有任务。
在框204处,NPU执行第一优先类中的待执行的一个任务。其中,在该任务的每个抢占点处依次执行较后优先类中的待执行的所有任务。其中,第一优先类中的任务的抢占点在预处理过程中被适当地插入到任务中,并且在NPU执行到每个抢占点时轮询并执行较后优先类中待执行的任务。
在将多个任务分类为三个以上优先类的实施例中,在框202处,NPU可以从最后一个优先类到第二优先类依次执行每个优先类中的待执行的所有任务。换言之,NPU可以按照优先级从高到低的顺序依次执行相应优先类中的待执行的所有任务。例如,在将多个任务分类为三个优先类的实施例中,NPU可以首先依次执行对应于最高优先级的第三优先类中的待执行的所有任务,然后依次执行对应于较高优先级的第二优先类中的待执行的所有任务。在框204处,类似地,执行第一优先类中的待执行的一个任务。
其中,在步骤202和步骤204中,在执行除了最后一个优先类以外的其他优先类中的每个任务时,在该任务的每个抢占点处依次执行较后优先类中的待执行的所有任务。例如,在将多个任务分类为三个优先类的实施例中,NPU在步骤202中执行对应于较高优先级的第二优先类中的任务时,在每个抢占点处依次执行对应于最高优先级的第三优先类中的待执行的所有任务。并且,NPU在步骤204中执行对应于较低优先级的第一优先类中的任务时,在每个抢占点处首先依次执行对应于最高优先级的第三优先类中的待执行的所有任务,然后依次执行对应于较高优先级的第二优先类中的待执行的所有任务。类似地,每个抢占点在预处理过程中被适当地插入到相应的任务中,并且在NPU执行到每个抢占点时轮询并执行较后优先类中待执行的任务。
NPU循环地执行步骤202和204,直到停止运行。
这样,可以以简单的方式在NPU上实现多个任务的调度方法,而无须借助于复杂的操作系统和硬件机制(如CPU的情形)。
在优选的实施例中,可以利用队列来实现上述调度方法。
具体而言,可以由NPU和另一个处理器(例如,CPU)共同维护多个队列,每个队列中存储相应优先类中的待执行的任务。其中,NPU运行时,另一个处理器将相应优先类中的待执行的任务在相应队列中依次入队,而NPU循环地执行以下步骤:将第二队列(对应于第二优先类)中的任务依次出队并执行;将第一队列(对应于第一优先类)中的第一个任务出队并执行,其中在该任务的每个抢占点处将较后队列中的任务依次出队并执行。
其中,每个队列可以由多个寄存器构成。
在将多个任务分类为三个以上优先类的实施例中,可以类似地利用队列来实现上述调度方法。其中,NPU可以循环地执行以下步骤:从最后一个队列到第二队列将队列中的任务依次出队并执行;将第一队列中的第一个任务出队并执行,其中,在执行除了最后一个队列以外的其他队列中的每个任务时,在该任务的每个抢占点处将较后队列中的任务依次出队并执行。
图3A-图3I示出了根据本公开的至少一个实施例的NPU调度方法的运行步骤的示意图,其中利用队列来实现NPU调度方法。
在图3A-图3I所示的示意性实施例中,多个任务被分类为三个优先类,分别对应于三个队列。NPU 310能够读取这三个队列,并且适当地将队列中的每个任务出队并执行。
NPU开始运行时,如图3A所示,队列1中依次排列有待执行的任务A1、A2、A3,队列2中依次排列有待执行的任务B1、B2,队列3中排列有待执行的任务C1。此时,NPU首先从最后一个队列到第二队列将队列中的任务依次出队并执行。即,NPU首先将队列3中的任务C1出队并执行。这样,队列3中的任务全部出队,队列3为空。
之后,NPU依次执行第二优先类(对应于队列2)中的任务B1、B2。如图3B所示,NPU将队列2中的任务B1出队并执行。之后,如图3C所示,NPU将队列2中的任务B2出队并执行。这样,队列2中的任务全部出队,队列2为空。
之后,NPU执行第一优先类中的待执行的一个任务。如图3D所示,NPU将队列1中的任务A1出队并执行。
在执行任务A1的过程中,如图3E所示,在任务A1的一个抢占点处,NPU轮询队列3和队列2,并且读取到队列2中有新的任务B3等待执行。于是,NPU暂停执行任务A1、保存现场,并且将队列2中的任务B3出队并执行。
在执行任务B3的过程中,如图3F所示,在任务B3的一个抢占点处,NPU轮询队列3,并且读取到队列3中有新的任务C2等待执行。于是,NPU暂停执行任务B3、保存现场,并且将队列3中的任务C2出队并执行。
在任务C2执行完毕之后,队列3为空。如图3G所示,NPU恢复任务B3的运行现场,并且继续执行任务B3。
之后,如图3H所示,NPU将队列2中的任务B4出队并执行。这样,队列2中的任务全部出队,队列2为空。
之后,如图3I所示,NPU恢复任务A1的运行现场,并且继续执行任务A1。
在任务A1执行完毕之后,NPU循环地执行上述步骤。即,NPU再次从队列3到队列2将队列中的任务依次出队并执行。
根据本公开的方法可以以软件、硬件、软件与硬件的结合等各种适当的方式实现。
本公开还涉及一种计算机存储介质,其上存储有可执行指令,该指令在被执行时能够实现以上所述的方法。
在说明书及权利要求中的词语“前”、“后”、“顶”、“底”、“之上”、“之下”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。
如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,前面的描述可能提及了被“连接”或“耦接”在一起的元件或节点或特征。如在此所使用的,除非另外明确说明,“连接”意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,“耦接”意指一个元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,“耦接”意图包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。

Claims (9)

1.一种神经网络处理器NPU调度方法,其特征在于,NPU用于执行多个任务,所述方法包括:
基于所述多个任务的运行时间和执行频率确定每个任务的优先级;
将所述多个任务按照优先级从低到高分类为多个优先类,所述多个优先类至少包括第一优先类和第二优先类;
对于第一优先类中的至少一个任务,在其代码中插入至少一组抢占指令作为该任务中的抢占点,其中所述抢占指令在被NPU执行时使得NPU轮询并执行较后优先类中待执行的任务,以及在执行较后优先类中的任务之前保存现场、在执行较后优先类中的任务之后恢复现场并继续执行该任务,每个优先类中的待执行的任务被存储在与该优先类相应的队列中;以及
NPU运行时循环地执行以下步骤:
依次出队并执行与第二优先类相应的队列中的待执行的所有任务;
出队并执行与第一优先类相应的队列中的待执行的一个任务,其中在该任务的每个抢占点处依次出队并执行与较后优先类相应的队列中的待执行的所有任务,
其中,在每个抢占点处,在与较后优先类相应的队列中的一个任务出队并执行完毕之后,NPU继续轮询并依次出队并执行与较后优先类相应的队列中的待执行的任务,并且在较后优先类中的待执行的任务全部出队并执行完毕之后,NPU恢复现场并继续执行第一优先类中的该任务。
2.根据权利要求1所述的方法,还包括:
对于除了最后一个优先类以外的其他优先类中的至少一个任务,在其代码中插入至少一组所述抢占指令作为该任务中的抢占点;并且
NPU运行时循环地执行以下步骤:
从最后一个优先类到第二优先类依次执行每个优先类中的待执行的所有任务;
执行第一优先类中的待执行的一个任务,
其中,在执行除了最后一个优先类以外的其他优先类中的每个任务时,在该任务的每个抢占点处依次执行较后优先类中的待执行的所有任务。
3.根据权利要求1所述的方法,其中,将所需的运行时间较短且执行频率较高的任务设定为较高优先级,而将所需的运行时间较长且执行频率较低的任务设定为较低优先级。
4.根据权利要求1所述的方法,其中,每个优先类中的每个任务中的抢占点的间隔时间至少部分地基于较后优先类中的任务的执行频率来设定。
5.根据权利要求1所述的方法,还包括:
由NPU和另一个处理器共同维护多个队列,并且
NPU运行时,另一个处理器将相应优先类中的待执行的任务在相应队列中依次入队。
6.根据权利要求2所述的方法,还包括:
由NPU和另一个处理器共同维护多个队列,并且
NPU运行时,另一个处理器将相应优先类中的待执行的任务在相应队列中依次入队,而NPU循环地执行以下步骤:
从最后一个队列到第二队列将队列中的任务依次出队并执行;
将第一队列中的第一个任务出队并执行,
其中,在执行除了最后一个队列以外的其他队列中的每个任务时,在该任务的每个抢占点处将较后队列中的任务依次出队并执行。
7.根据权利要求1所述的方法,其中每个队列由多个寄存器构成。
8.根据权利要求1所述的方法,其中NPU在执行较后优先类中的任务之前在内存中保存现场,在执行较后优先类中的任务之后从内存恢复现场。
9.一种计算机存储介质,其上存储有可执行指令,所述指令在被执行时能够实现根据权利要求1-8中任一项所述的方法。
CN202211092764.9A 2022-09-08 2022-09-08 神经网络处理器npu调度方法和计算机存储介质 Active CN115168060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211092764.9A CN115168060B (zh) 2022-09-08 2022-09-08 神经网络处理器npu调度方法和计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211092764.9A CN115168060B (zh) 2022-09-08 2022-09-08 神经网络处理器npu调度方法和计算机存储介质

Publications (2)

Publication Number Publication Date
CN115168060A CN115168060A (zh) 2022-10-11
CN115168060B true CN115168060B (zh) 2023-05-16

Family

ID=83480464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211092764.9A Active CN115168060B (zh) 2022-09-08 2022-09-08 神经网络处理器npu调度方法和计算机存储介质

Country Status (1)

Country Link
CN (1) CN115168060B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848549A (zh) * 2010-04-29 2010-09-29 中国人民解放军国防科学技术大学 无线传感器网络节点任务调度方法
CN107203428A (zh) * 2017-05-25 2017-09-26 电子科技大学 一种基于Xen的VCPU多核实时调度算法
CN107430523A (zh) * 2014-11-18 2017-12-01 英特尔公司 图形处理器的高效抢占

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721291B2 (en) * 2004-10-15 2010-05-18 International Business Machines Corporation Apparatus, system, and method for automatically minimizing real-time task latency and maximizing non-real time task throughput
US9652282B2 (en) * 2011-11-08 2017-05-16 Nvidia Corporation Software-assisted instruction level execution preemption
CN104536835B (zh) * 2014-12-12 2018-02-06 北京控制工程研究所 一种热备份实时控制系统中自适应任务调度方法
US20200082273A1 (en) * 2018-09-11 2020-03-12 Apple Inc. Compiling models for dedicated hardware
US20210256373A1 (en) * 2020-02-13 2021-08-19 Samsung Electronics Co., Ltd. Method and apparatus with accelerator
CN112579271A (zh) * 2020-12-07 2021-03-30 联创汽车电子有限公司 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质
WO2022139795A1 (en) * 2020-12-21 2022-06-30 Google Llc Preemption in a machine learning hardware accelerator
CN113986484B (zh) * 2021-10-12 2023-10-27 丰辰网络科技(无锡)有限公司 社交软件的任务处理全局调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848549A (zh) * 2010-04-29 2010-09-29 中国人民解放军国防科学技术大学 无线传感器网络节点任务调度方法
CN107430523A (zh) * 2014-11-18 2017-12-01 英特尔公司 图形处理器的高效抢占
CN107203428A (zh) * 2017-05-25 2017-09-26 电子科技大学 一种基于Xen的VCPU多核实时调度算法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Chimera: Collaborative Preemption for Multitasking on a Shared GPU;Jason Jong Kyu Park 等;《ACM SIGARCH Computer Architecture News》;第43卷(第1期);593-606 *
Cross-layer customization for rapid and low-cost task preemption in multitasked embedded systems;Xiangrong Zhou 等;《ACM Transactions on Embedded Computing Systems》;第8卷(第2期);1-28 *
面向AADL模型的存储资源约束可调度性分析;陆寅 等;《软件学报》;第32卷(第6期);1663-1681 *

Also Published As

Publication number Publication date
CN115168060A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
EP3631624B1 (en) Multifunction vector processor circuits
US10061858B2 (en) Method and apparatus for processing exploding data stream
CN109901920A (zh) 任务调度方法及装置、电子终端
CN112948079B (zh) 任务调度方法、装置、设备和计算机存储介质
CN106371889B (zh) 一种调度镜像的高性能集群系统实现方法及装置
CN111897633A (zh) 一种任务处理的方法和装置
CN108958789B (zh) 一种并行流式计算方法、电子设备、存储介质及系统
CN112114973A (zh) 一种数据处理方法及装置
CN116302381B (zh) 并行拓扑调度组件及方法、任务调度方法和任务处理方法
CN114217966A (zh) 基于资源调整的深度学习模型动态批处理调度方法和系统
CN112199180A (zh) 多任务调度的方法及装置、电子设备及可读存储介质
CN110781180A (zh) 一种数据筛选方法和数据筛选装置
CN111580948A (zh) 任务调度方法、装置及计算机设备
CN115168060B (zh) 神经网络处理器npu调度方法和计算机存储介质
CN112766470B (zh) 特征数据处理方法、指令序列生成方法、装置及设备
CN116627659B (zh) 模型检查点文件保存方法、装置、设备及存储介质
CN110825342A (zh) 存储调度器件和用于处理信息的系统、方法及装置
CN115344370A (zh) 任务调度方法、装置、设备及存储介质
CN113849287A (zh) 算法服务的处理方法、装置、电子设备及存储介质
CN113806055A (zh) 一种轻量级任务调度方法、系统、装置及存储介质
CN109150951B (zh) Android系统Activity的启动方法和装置
CN109766170A (zh) 存储器、移动终端及其应用程序的动态重启方法
CN117742928B (zh) 一种用于联邦学习的算法组件执行调度方法
CN110968327A (zh) 服务系统及其部署方法
US20230252328A1 (en) Scheduling of inference models based on preemptable boundaries

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
GR01 Patent grant
GR01 Patent grant