CN111190716B - 基于中断的神经网络加速器多任务调度方法 - Google Patents

基于中断的神经网络加速器多任务调度方法 Download PDF

Info

Publication number
CN111190716B
CN111190716B CN201911423801.8A CN201911423801A CN111190716B CN 111190716 B CN111190716 B CN 111190716B CN 201911423801 A CN201911423801 A CN 201911423801A CN 111190716 B CN111190716 B CN 111190716B
Authority
CN
China
Prior art keywords
instruction
neural network
virtual
normal
interrupt
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
CN201911423801.8A
Other languages
English (en)
Other versions
CN111190716A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201911423801.8A priority Critical patent/CN111190716B/zh
Publication of CN111190716A publication Critical patent/CN111190716A/zh
Application granted granted Critical
Publication of CN111190716B publication Critical patent/CN111190716B/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于中断的神经网络加速器多任务调度方法,该方法包括:通过待部署神经网络模型的每个神经网络生成正常指令序列,处理正常指令序列生成中断位置;获取中断位置进行网络切换所需必要数据,并将必要数据对应操作编码为虚拟指令;将正常指令序列和虚拟指令封装,得到包含虚指令的指令序列;在运行阶段时,同时调度多个神经网络对应的指令序列,对每个神经网络对应的封装后的包含虚指令的指令序列进行解封,得到正常指令和虚拟指令,根据任务切换请求对正常指令和虚拟指令进行微调。该方法通过监控当前神经网络任务执行状态,在任务切换时仅仅对极少数必须备份和恢复片上缓存进行备份和恢复,实现低延迟、低代价的多任务切换。

Description

基于中断的神经网络加速器多任务调度方法
技术领域
本发明涉及人工智能算法加速器技术领域,特别涉及一种基于中断的神经网络加速器多任务调度方法。
背景技术
近年来,神经网络已经引起了越来越多的关注,并在人工智能技术领域引起了巨大的进步。然而,神经网络推理需要消耗大量的计算和存储资源,传统的CPU难以对神经网络进行实时计算。有工作利用GPU对神经网络推理进行加速,然而GPU存在计算功耗高、计算资源利用率低等缺点。为了解决CPU和GPU处理神经网络存在的实时性和功耗问题,基于ASIC和FPGA的神经网络加速器被提出来实现神经网络的高能效推理。加速器具有很多优点:其一,专用加速器可以根据应用设计专门优化的计算和存储单元,进行高效率的数据重复使用,减少对片外存储的访问,降低功耗。其二,专用加速器可以充分利用神经网络的数据冗余,利用低比特的数据表示和完成计算,同时减少计算硬件资源和带宽资源需求。其三,神经网络专用加速器可以非常容易地与其他加速单元(如向量计算单元)等相结合,提升应用系统整体能效。
神经网络加速器在机器人、服务器等应用场景中取得了不错的效果,但是现有加速器工作主要对单一网络进行加速,缺乏对多种神经网络的同时运行的支持,导致系统灵活性和应用范围大幅下降。例如,在机器人应用中,由于加速器缺乏多任务支持,无法在一个加速器上同时完成视觉里程计和场景识别,需要添加额外的加速器,导致额外的硬件资源浪费和能量消耗。
一些指令驱动的加速器,可以通过不同的指令控制需要运行的网络,实现多个任务之间的切换。当前常见的多任务切换方法有两种:其一是按层/按网络调度方法,即在完成一个神经网络的一层/全部计算(取决于调度粒度)之后才能进行网络任务切换。其二是即时中断方法,即在结束当前运行指令之后立即对正在运行的神经网络状态进行备份,切换目标任务,待新任务完成之后,恢复原神经网络运行状态并继续执行。
但该任务切换方法都存在一些问题,如神经网络计算量大,某些层的计算延迟很高,整体网络计算延迟更高。如果采用按层/按网络调度方法,新任务需要等待当前层/网络计算结束之后才能开始,导致任务切换延迟巨大,按层/按模型调度的任务切换延迟在数毫秒到数十毫秒之间。即时中断方法需要对运行状态进行恢复和备份,不同于CPU中断只需要备份和恢复少数寄存器,神经网络加速器需要备份和恢复的寄存器数目巨大,导致高额的数据备份和恢复代价,即时中断的任务切换方法延迟超过2ms,并且有数毫秒的额外时间开销。
因此,亟待一种全新的基于中断的神经网络加速器多任务调度方案,实现低延迟、低代价的神经网络多任务切换。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种基于中断的神经网络加速器多任务调度方法,该方法可实现低延迟、低代价的多任务切换。
为达到上述目的,本发明实施例提出了基于中断的神经网络加速器多任务调度方法,包括以下步骤:通过待部署神经网络模型的每个神经网络生成正常指令序列,处理所述正常指令序列生成中断位置;获取所述中断位置进行网络切换所需必要数据,并将所述必要数据对应操作编码为虚拟指令;将所述正常指令序列和所述虚拟指令封装,得到包含虚指令的指令序列;在运行阶段时,调度并解封多个神经网络封装后的包含虚指令的指令序列,生成正常指令和虚拟指令,根据多个任务间切换请求对正常指令和虚拟指令进行微调,调至下一任务的指令序列。
本发明实施例的基于中断的神经网络加速器多任务调度方法,旨在神经网络加速器多任务调度问题,指令驱动的神经网络加速器将计算流程编码为指令,并通过不同的指令序列完成不同的神经网络计算,但传统不同指令序列之间的切换方式存在切换延迟高(等待一整层/所有层计算完成)、切换代价高(对加速器中所有片上缓存进行备份和恢复)的缺点,本发明实施例通过监控当前神经网络任务执行状态,在任务切换时仅仅对极少数必须备份和恢复片上缓存进行备份和恢复,实现低延迟、低代价的多任务切换。
另外,根据本发明上述实施例的基于中断的神经网络加速器多任务调度方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述正常指令序列为基于指令的神经网络加速器的一段指令序列,所述一段指令序列将一个神经网络的计算任务映射到加速器上。
进一步地,在本发明的一个实施例中,所述必要数据为进行网络切换所需备份数据和恢复数据。
进一步地,在本发明的一个实施例中,所述备份数据将片上数据搬运至片外,所述恢复数据将片外数据搬运至片上。
进一步地,在本发明的一个实施例中,所述中断位置为所述正常指令序列执行过程中进行切换的地方,如果要进行网络任务切换,在最近到来的中断位置处进行运行状态的备份和恢复。
进一步地,在本发明的一个实施例中,封装过程是将所述虚拟指令和所述正常指令进行打包,并且在打包时添加标志位,以将所述正常指令和所述虚拟指令进行区分。
进一步地,在本发明的一个实施例中,所述在运行阶段时,调度并解封多个神经网络封装后的包含虚指令的指令序列,生成正常指令和虚拟指令,根据多个任务间切换请求对正常指令和虚拟指令进行微调,调至下一任务的指令序列,包括:在运行阶段时,利用所述待部署神经网络模型中的预设硬件单元将所述包含虚指令的指令序列解封,并监控程序运行状态和任务切换请求;当发生所述任务切换请求时,所述预设硬件单元将所述虚拟指令发送给执行单元,或根据所述运行状态对所述正常指令进行修改和调整,调至下一任务的指令序列。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例快速低代价任务切换方案的两个部分,其中,包含虚指令的指令序列生成和运行时调度指令微调;
图2为根据本发明一个实施例的基于中断的神经网络加速器多任务调度方法流程图;
图3为评估本发明实施例的基于中断的神经网络加速器多任务调度方法的结果示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
首先,本发明实施例实现原理是在指令生成阶段在正常指令中添加一些虚拟指令实现对网络执行状态的监控,并且在执行阶段根据虚指令和任务切换请求对指令进行微调,实现低延迟、低代价的任务切换。如图1所示,主要包含两个步骤,第一部分是包含虚拟指令的指令序列生成,第二个部分是运行时指令微调。下面参照附图具体描述根据本发明实施例提出的基于中断的神经网络加速器多任务调度方法。
图2是本发明一个实施例的基于中断的神经网络加速器多任务调度方法流程图。
如图2所示,该基于中断的神经网络加速器多任务调度方法包括以下步骤:
在步骤S201中,通过待部署神经网络模型的每个神经网络生成正常指令序列,处理正常指令序列生成中断位置。
其中,正常指令序列指的是基于指令的神经网络加速器的一段指令序列,该指令序列将一个神经网络的计算任务映射到加速器上。中断位置是正常指令序列执行过程中进行切换的地方,如果要进行网络任务切换,在最近到来的中断位置处进行运行状态的备份和恢复。既可以在每条指令后中断,也可以在执行完所有紫菱指令之后中断。在本发明实施例中优化了中断位置选择方法,实现了延迟与额外的时间开销的平衡。
需要说明的是,生成中断位置的步骤为可选项,如果不执行生成中断位置的步骤,可以直接指定所有指令均可以中断,即每条指令之间都是可中断位置。
在步骤S202中,获取中断位置进行网络切换所需必要数据,并将必要数据对应操作编码为虚拟指令。
进一步地,在本发明的一个实施例中,必要数据为进行网络切换所需备份数据和恢复数据。其中,备份数据为存储指令,将片上数据搬运至片外,恢复数据为加载指令,将片外数据搬运至片上。
具体而言,在步骤S1中得到中断位置之后,分析在各个中断位置进行网络切换所需要备份和恢复的数据,并且将对应的备份和恢复操作编码为相应指令。
在步骤S203中,将正常指令序列和虚拟指令封装,得到包含虚指令的指令序列。
进一步地,在本发明的一个实施例中,封装过程是将虚拟指令和正常指令进行打包,并且在打包时添加一些标志位,以将正常指令和虚拟指令进行区分。
需要说明的是,正常指令总是需要执行,虚拟指令仅在需要任务切换的情况下执行。
通过上述步骤S201-S203三个步骤,完成对待部署神经网络模型的包含虚指令的指令序列的生成。
在步骤S204中,在运行阶段时,调度并解封多个神经网络封装后的包含虚指令的指令序列,生成正常指令和虚拟指令,根据多个任务间切换请求对正常指令和虚拟指令进行微调,调至下一任务的指令序列。
进一步地,在本发明的一个实施例中,步骤S4包括:
在运行阶段时,利用待部署神经网络模型中的预设硬件单元将包含虚指令的指令序列解封,并监控程序运行状态和任务切换请求;
当发生任务切换请求时,预设硬件单元将虚拟指令发送给执行单元,或根据运行状态对正常指令进行修改和调整,调至下一任务的指令序列。
具体而言,在运行阶段,在待部署神经网络模型中有专门的硬件单元IAU(指令安排单元,Instruction Arrangement Unit)负责调度指令,将封装过后的指令解封,对正常指令与虚拟指令进行分割。同时IAU也监控程序运行状态和任务切换请求。当发生任务切换请求时,IAU将虚拟指令发送给执行单元。在一些情况下,IAU也会根据运行状态对正常指令进行修改和调整,使得神经网络加速器在执行阶段可以快速低代价地完成任务切换。
下面将本发明实施例的方法在不同神经网络不同的位置进行任务切换,对性能进行评估,评估网络为VGG16和Resnet101,输入图片尺寸为448x448。
主要考量两个指标:任务切换延迟(latency)和额外开销(cost),对比在中断位置的方法和其他两种方法:按层调度(layer-by-layer)和即时中断(CPU-Like)的区别。
如图3所示,可知本发明实施例在任务切换延迟和任务切换额外开销两个指标上,相比于其他方法具备明显优势。按层/按模型调度的任务切换延迟在数毫秒到数十毫秒之间,无法满足嵌入式实时任务切换需求。即时中断的任务切换方法延迟也超过2ms,并且有数毫秒的额外开销。采用本发明实施例方法延迟和额外开销均小于0.5ms,完全满足实时任务切换需求。
根据本发明实施例提出的基于中断的神经网络加速器多任务调度方法,解决了传统不同指令序列之间的切换方式存在切换延迟高(等待一整层/所有层计算完成)、切换代价高(对加速器中所有片上缓存进行备份和恢复)的神经网络加速器多任务调度问题,通过监控当前神经网络任务执行状态,在任务切换时仅仅对极少数必须备份和恢复片上缓存进行备份和恢复,实现低延迟、低代价的多任务切换。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (7)

1.一种基于中断的神经网络加速器多任务调度方法,其特征在于,包括以下步骤:
通过待部署神经网络模型的每个神经网络生成正常指令序列,处理所述正常指令序列生成中断位置;
获取所述中断位置进行网络切换所需必要数据,并将所述必要数据对应操作编码为虚拟指令;
将所述正常指令序列和所述虚拟指令封装,得到包含虚拟 指令的指令序列;以及
在运行阶段时,调度并解封多个神经网络封装后的包含虚拟 指令的指令序列,生成正常指令和虚拟指令,根据多个任务间切换请求对正常指令和虚拟指令进行微调,调至下一任务的指令序列。
2.根据权利要求1所述的基于中断的神经网络加速器多任务调度方法,其特征在于,所述正常指令序列为基于指令的神经网络加速器的一段指令序列,所述一段指令序列将一个神经网络的计算任务映射到加速器上。
3.根据权利要求1所述的基于中断的神经网络加速器多任务调度方法,其特征在于,所述必要数据为进行网络切换所需备份数据和恢复数据。
4.根据权利要求3所述的基于中断的神经网络加速器多任务调度方法,其特征在于,所述备份数据将片上数据搬运至片外,所述恢复数据将片外数据搬运至片上。
5.根据权利要求1所述的基于中断的神经网络加速器多任务调度方法,其特征在于,所述中断位置为所述正常指令序列执行过程中进行切换的地方,如果要进行网络任务切换,在最近到来的中断位置处进行运行状态的备份和恢复。
6.根据权利要求1所述的基于中断的神经网络加速器多任务调度方法,其特征在于,封装过程是将所述虚拟指令和所述正常指令进行打包,并且在打包时添加标志位,以将所述正常指令和所述虚拟指令进行区分。
7.根据权利要求1所述的基于中断的神经网络加速器多任务调度方法,其特征在于,所述在运行阶段时,调度并解封多个神经网络封装后的包含虚拟 指令的指令序列,生成正常指令和虚拟指令,根据多个任务间切换请求对正常指令和虚拟指令进行微调,调至下一任务的指令序列,包括:
在运行阶段时,利用所述待部署神经网络模型中的预设硬件单元将所述包含虚拟 指令的指令序列解封,并监控程序运行状态和任务切换请求;
当发生所述任务切换请求时,所述预设硬件单元将所述虚拟指令发送给执行单元,或根据所述运行状态对所述正常指令进行修改和调整,调至下一任务的指令序列。
CN201911423801.8A 2019-12-31 2019-12-31 基于中断的神经网络加速器多任务调度方法 Active CN111190716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911423801.8A CN111190716B (zh) 2019-12-31 2019-12-31 基于中断的神经网络加速器多任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911423801.8A CN111190716B (zh) 2019-12-31 2019-12-31 基于中断的神经网络加速器多任务调度方法

Publications (2)

Publication Number Publication Date
CN111190716A CN111190716A (zh) 2020-05-22
CN111190716B true CN111190716B (zh) 2022-06-03

Family

ID=70705936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911423801.8A Active CN111190716B (zh) 2019-12-31 2019-12-31 基于中断的神经网络加速器多任务调度方法

Country Status (1)

Country Link
CN (1) CN111190716B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913812B (zh) * 2020-07-03 2023-06-27 中用科技有限公司 一种数据处理方法、装置、设备及存储介质
CN112689827B (zh) * 2020-10-27 2022-06-28 华为技术有限公司 模型推理异常处理方法及装置
CN112817715A (zh) * 2021-01-28 2021-05-18 展讯通信(天津)有限公司 任务切换方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10719760B2 (en) * 2017-04-09 2020-07-21 Intel Corporation Neural network scheduling mechanism
US10410098B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Compute optimizations for neural networks
US10186011B2 (en) * 2017-04-28 2019-01-22 Intel Corporation Programmable coarse grained and sparse matrix compute hardware with advanced scheduling
US11423254B2 (en) * 2019-03-28 2022-08-23 Intel Corporation Technologies for distributing iterative computations in heterogeneous computing environments

Also Published As

Publication number Publication date
CN111190716A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111190716B (zh) 基于中断的神经网络加速器多任务调度方法
US7287254B2 (en) Affinitizing threads in a multiprocessor system
US8365009B2 (en) Controlled automatic healing of data-center services
US10467048B2 (en) Techniques for virtual machine migration
US8782649B2 (en) Real-time scheduling of task sets and determination of task sets based on verified weight, cache hit radio of the tasks and available processing cores
KR20070080089A (ko) 재구성 어레이에서의 인터럽트 처리 방법 및 장치
KR100663709B1 (ko) 재구성 아키텍처에서의 예외 처리 방법 및 장치
EP3391211B1 (en) Controlling scheduling of a gpu
CN103188521B (zh) 转码分配方法及装置,转码方法及设备
US11361217B2 (en) Chip and chip-based data processing method
EP1004061A2 (en) Architecture for a hybrid real-time control system and method of operation thereof
US10417012B2 (en) Reprogramming a field programmable device on-demand
CN102810071B (zh) 控制方法、控制装置以及计算机
CN104977860B (zh) 使用多核心处理器执行顺序程序的控制装置
US11609791B2 (en) Precise suspend and resume of workloads in a processing unit
CN115543696A (zh) 一种磁盘阵列重构任务加速方法、系统、存储介质及设备
CN115964181A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN113553288B (zh) 针对hpcg基准测试的两层分块多色并行优化方法
CN103970611A (zh) 基于计算机集群的任务处理方法
Yu et al. Stateful large language model serving with pensieve
CN116402091A (zh) 面向人工智能芯片的混合引擎智能计算方法和装置
CN115421851A (zh) 一种微服务伸缩方法、系统、云服务器及存储介质
CN111897631A (zh) 基于批处理的模型推断系统、方法、电子设备和介质
CN114625691B (zh) 一种基于乒乓结构的存内计算装置及方法
Li et al. A PSO-based Resource Allocation and Task Assignment Approach for Real-Time Cloud Computing-based Robotic Systems

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200522

Assignee: Shanghai Wuwen Core Dome Intelligent Technology Co.,Ltd.

Assignor: TSINGHUA University

Contract record no.: X2024980001700

Denomination of invention: Interrupt based Neural Network Accelerator Multi task Scheduling Method

Granted publication date: 20220603

License type: Common License

Record date: 20240130