一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种降低多模型任务排队时延的方法和装置与流程

2023-02-04 10:33:24 来源:中国专利 TAG:


1.本发明涉及机器学习领域,尤其涉及一种能降低多模型任务排队时延的方法和装置。


背景技术:

2.在使用机器学习加速器硬件的应用场景中,通常硬件厂商会提供一套工具链软件,应用开发者使用这套工具链来定义、训练、编译和部署机器学习模型,最终在嵌入式软件中实现对模型功能的调用。
3.对于目前常见的工具链,嵌入式软件环境中的机器学习模型是一个“黑箱”,软件调用模型的过程是“原子的”,一个模型一旦启动以后就不可中断,或者中断以后就不可恢复。这对于类似智能驾驶这样的延迟敏感型的应用场景来说会造成一些问题。当软件每次启动一个模型时,由于硬件正在处理其他任务,新的任务必须排队等待直到硬件进入空闲状态。排队会导致完整工作流的延迟显著延长,让关键场景的性能和可用性受到影响。例如智能驾驶场景中可能导致紧急情况下刹车反应时间变长,影响系统的安全性和用户体验。
4.如何根据运行时需求,以较小的代价实时切换和调度多个神经网络模型,避免指令依赖性分析带来的开销,减少硬件资源的闲置和浪费,目前尚未提出有效的解决方案。


技术实现要素:

5.为了解决上述技术问题,本发明提供了一种降低多模型任务排队时延的方法和装置。
6.本发明提供的技术方案如下:
7.一方面,本方案提出一种降低多模型任务排队时延的方法,包括:
8.接收插入的新模型任务指令及暂停执行指令;
9.在接收到所述暂停执行指令后,继续执行当前的第一模型任务,直到遇到当前第一模型任务指令中的取消点后中断所述第一模型任务,所述取消点为预先在所述第一模型任务指令中编译的标记点;
10.根据所述取消点,获取所述第一模型任务目标数据在芯片内部的目标存储地址;所述目标数据为所述取消点之前的指令执行处理数据;
11.根据所述目标存储地址,将所述目标数据转存至外部存储器;
12.执行所述新模型任务的指令;
13.当所述新模型任务的指令执行完毕后,根据所述目标存储地址,将存储在外部存储器中的目标数据恢复存储至所述芯片内部,继续执行所述第一模型任务。
14.在一些实施方式中,在所述第一模型任务启动执行之前,还包括:
15.将第一模型及其参数编译为硬件可识别的二进制指令序列;
16.在所述二进制执行序列中插入若干取消点,生成第一模型任务指令。
17.在一些实施方式中,在二进制指令序列中插入若干取消点,生成第一模型指令具
体包括:
18.获取所述二进制指令序列中的转储位置;所述转储位置为临时数据总量超出第一数据量时将数据转储到外部存储介质的位置,所述第一数据量小于芯片内部存储介质容量;
19.在所述转储位置设置取消点。
20.在一些实施方式中,在所述二进制指令序列中插入若干取消点,生成第一模型指令具体包括;
21.在所述二进制指令执行序列中,每隔预设的执行时间间隔插入一个取消点。
22.在一些实施方式中,所述降低多模型任务排队时延的方法还包括:
23.当未接收到暂停执行指令时,继续执行当前的所述第一模型任务,且在遇到所述第一模型任务指令中的取消点后仍执行后续的指令序列。
24.另一方面,本发明提出一种降低多模型任务排队时延的装置,包括:
25.命令接收模块,用于接收插入的新模型任务指令及暂停执行指令;
26.任务执行模块,用于在接收到所述暂停执行指令后,继续执行当前的第一模型任务,直到遇到当前第一模型任务指令中的取消点后中断所述第一模型任务,所述取消点为预先在所述第一模型任务指令中编译的标记点;
27.地址获取模块:用于根据所述取消点,获取所述第一任务目标数据在芯片内部的目标存储地址;所述目标数据为所述取消点之前的指令执行处理数据;
28.数据转储模块,根据所述目标存储地址,将所述目标数据转存至外部存储器;
29.所述任务执行模块,还用于执行所述新模型任务的指令;
30.数据恢复模块,用于当所述新模型任务的指令执行完毕后,根据所述目标存储地址,将存储在外部存储器中的目标数据恢复存储至所述芯片内部,继续执行所述第一模型任务。
31.在一些实施方式中,所述降低多模型任务排队时延的装置还包括:
32.编译模块,用于将第一模型及其参数编译为硬件可识别的二进制指令序列;
33.指令生成模块,用于在所述二进制执行序列中插入若干取消点,生成第一模型任务指令。
34.在一些实施方式中,所述指令生成模块具体包括:
35.数据设置子模块,用于获取所述二进制指令序列中的转储位置;所述转储位置为临时数据总量超出第一数据量时将数据转储到外部存储介质的位置,所述第一数据量小于芯片内部存储介质容量;在所述转储位置设置取消点。
36.时间设置子模块,用于在所述二进制指令执行序列中,每隔预设的执行时间间隔插入一个取消点。
37.在一些实施方式中,所述降低多模型任务排队时延的装置还包括:
38.所述任务执行模块,还用于当未接收到暂停执行指令时,继续执行当前的所述第一模型任务,且在遇到所述第一模型任务指令中的取消点后仍执行后续的指令序列。
39.最后,本技术还提供了一种电子设备,包括一个或多个处理器,以及存储器,存储有计算机指令,所述计算机指令在被所述处理器运行时使所述处理器执行上述任意一种降低多模型任务排队时延的方法。
40.由于采用了上述技术方案,本发明至少具有以下有益效果:
41.1)在多模型工作流中,由于在指令序列中插入了若干个取消点,使得大模型执行期间可以被打断并且可以优先执行耗时较小的模型,显著降低了小模型需要等待大模型带来的延迟开销,降低了系统的整体时延。
42.2)在芯片正常执行任务的过程中,也会发生数据的转储与恢复,把发生这种情况的点设置为取消点,能够同时满足任务中数据转储与恢复与中断任务的要求,即减小了硬件资源抢占带来的时间开销。
43.3)由于“取消点”的设置,芯片可以转储和恢复芯片内部存储介质中的关键数据,能够保证被打断的任务在不影响执行结果下恢复执行。
附图说明
44.下面将以明确易懂的方式,结合附图说明优选实施方式,对一种降低多模型任务排队时延的方法和装置的上述特性、技术特征、优点及其实现方式予以进一步说明。
45.图1是本发明降低多模型任务排队时延的方法的一个实施例流程图;
46.图2是本发明降低多模型任务排队时延的方法的另一实施例的流程图;
47.图3是现有技术的多模型任务的时序示意图;
48.图4是采用本技术的降低多模型任务排队时延方法的多模型任务时序示意图;
49.图5是本发明降低多模型任务排队时延的装置的一个实施例的结构框图;
50.图6是本发明降低多模型任务排队时延的装置的另一实施例的结构框图;
51.图7是本发明提供的一种电子设备的结构示意图。
具体实施方式
52.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本技术。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
53.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所述描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或集合的存在或添加。
54.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
55.另外,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
56.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
57.本实施例提供一种降低多模型任务排队时延的方法,具体流程如图1所示,包括如下步骤:
58.s100,接收插入的新模型任务指令及暂停执行指令;
59.s200,在接收到所述暂停执行指令后,继续执行当前的第一模型任务,直到遇到当前第一模型任务指令中的取消点后中断所述第一模型任务,所述取消点为预先在所述第一模型任务指令中编译的标记点;
60.s300,根据所述取消点,获取所述第一模型任务目标数据在芯片内部的目标存储地址,所述目标数据为所述取消点之前的指令执行处理数据;
61.s400,根据所述目标存储地址,将所述目标数据转存至外部存储器;
62.s500,执行所述新模型任务的指令;
63.s600,当所述新模型任务的指令执行完毕后,根据所述目标存储地址,将存储在外部存储器中的目标数据恢复存储至所述芯片内部,继续执行所述第一模型任务。
64.具体的,本实施例中,预先在编译第一模型任务的指令时,会在第一模型任务指令中插入取消点,通过设置取消点,后续在执行第一模型任务时,则可在接收到新任务插入及暂停执行指令后,在取消点位置中断第一模型任务的执行,并根据取消点对应的目标存储地址,将该目标存储地址里的数据转存到外部存储器中,实际上,该目标存储地址里的数据便是该取消点之前的第一模型任务指令执行的处理结果数据,将这些数据存储到外部存储器后,便可开始执行插入的新任务模型,并在新任务模型完成后,再将之前转存外部存储器的目标数据转回芯片的目标存储地址,从而可以继续执行第一模型任务指令。采用本技术的方案,由于在模型任务指令中设置有取消点,从而在遇到需要优先执行的任务指令时,可中断当前的模型任务,优先执行插入的新任务,在新任务执行完毕后,又可继续执行之前中断的模型任务。采用本实施例方案,可使得大模型执行期间可以被打断并且可以优先执行耗时较小的模型,显著降低了小模型需要等待大模型带来的延迟开销,降低了系统的整体时延。
65.本技术的另一实施例,如图2所示,具体的,本方案需要软硬件协同配合实施。
66.方案总体由离线时的软件方案(



)与运行时的软硬件方案(



)构成。其中,离线软件部分只需执行一次,运行时的软硬件流程需要多次执行。流程中的各个步骤详细说明如下:
67.(1)离线软件部分
68.①
:算法开发人员使用编程语言描述的算法机器学习模型及其参数。通常使用pytorch、tensorflow等软件框架进行开发。
69.②
:使用芯片的编译器软件工具链,将机器学习的模型及参数转换成硬件可识别的二进制执行序列。转换过程大致包括前端模型格式解析、模型算子变换、算子优化与内存分配、指令汇编与文件生成。
70.③
:经过

的编译优化,机器学习模型将变换成芯片可执行的二进制指令序列。得到的芯片指令序列中会带有若干的“取消点“(cancellationpoint)。在这些“取消点”的位置,芯片内部存储介质中没有关键数据或者关键数据的量比较少,这是为了避免整体延迟被增大的情况发生,因为数据转储与恢复同样需要时间,如果数据量过大,转储与恢复所述数据需要的时间长于任务排队产生的时延,会导致整体任务执行完毕的时间被拉长了,得不偿失;编译器同时会输出每个取消点对应的芯片内部关键数据的地址范围,以便后续步骤中对数据进行转储与恢复。
71.(2)运行时部分
72.④
:从

开始为运行时循环执行的实时软硬件流程视角。起点为软件向芯片提交一个新的任务指令。
73.⑤
:软件提交新任务时,底层驱动将向芯片发出“暂停执行”的命令。芯片收到命令后不会立即停下来,而是向后执行若干条指令直到遇到过程

中标记的“取消点”,遇到取消点后芯片停止执行,之后等待底层驱动发出进一步的命令。
74.⑥
:芯片停止执行后,底层驱动查询当前芯片执行到的“取消点”序号,并根据序号向过程

产生的“取消点”到有效数据地址范围的映射查询此时芯片内部关键数据的地址范围,然后将此范围内的数据从芯片内部的存储介质转储到芯片外部的存储介质。
75.⑦
:关键数据转储完毕后,底层驱动向芯片下达命令开始新任务的执行。至此完成旧任务的中断与新任务的执行。
76.⑧
:新任务执行完毕后,底层驱动将过程

转储出去的关键数据再恢复到芯片内部存储介质中。
77.⑨
:芯片继续执行过程

中被打断的任务。
78.在此以一个简化的智能驾驶工作流为示例来说明,该工作流中至少包括两个模型,感知模型与路径规划模型,其中感知模型为大模型,需要的处理时间相对长一些(假设耗时30ms),路径规划模型为小模型,处理时间相对短一些(假设耗时10ms),并且感知模型与路径规划模型由于需要相同的加速芯片硬件资源进行执行,所以它们不能并行执行(技术上称为structural hazard)。具体流程为先由机器学习加速芯片先执行一个耗时30ms的感知模型,然后由cpu解析处理模型的感知结果,解析过程耗时15ms,最后再由机器学习加速芯片执行一个耗时10ms的路径规划模型。在不采用本发明方案下,任务的时序图如附图3所示(图中感知模型与路径规划模型采用相同的加速芯片硬件资源,故不能并行执行)。由于每次路径规划模型需要等待后续帧的感知模型运行完毕,整个工作流的延迟从55ms(30ms 15ms 10ms)变为了80ms(30ms 30ms 10ms 10ms)。
79.若用户采用本发明提出的技术方案,则可以达到附图4(图中感知模型与路径规划模型采用相同的加速芯片硬件资源,故不能并行执行)的执行时序效果。每次路径规划模型执行时,将后续帧的感知模型执行过程打断,优先执行耗时较短的路径规划模型。图中路径规划模型前后红色部分的d和r表示转储(dump)和恢复(restore)芯片内部关键数据。假设转储和恢复芯片内部关键数据耗时为1ms,则本案可以将系统延迟从80ms降低到67ms,显著提升了整体任务的处理速度,有效提升了智能驾驶的安全性,保障了用户体验。
80.在一些实施方式中,在上述实施例的基础上,具体的取消点的插入策略可采用多种方式实现,具体的,本实施例中提出了以下两种取消点的插入策略:
81.(1)获取待插入的模型任务的二进制指令序列中的转储位置;所述转储位置为临时数据总量超出第一数据量时将数据转储到外部存储介质的位置,所述第一数据量小于芯片内部存储介质容量;在所述转储位置设置取消点。
82.由于芯片内部的存储介质容量相对比较有限,编译优化本身就需要在临时数据总量超出存储介质容量限制时将数据转储到外部存储介质。这时候就会产生一个天然的“取消点”,将任务能够继续执行的必要关键数据转储到外部存储介质,发生这种转储的位置可以标记为“取消点”,这样处理的好处不仅能够在合适的位置中断正在执行的任务,还能够
有效的降低系统的整体延迟。
83.(2)在待插入的模型任务的二进制指令执行序列中,每隔预设的执行时间间隔插入一个取消点。
84.具体的可以设置一个产生“取消点”的预期时间间隔(例如1毫秒)。在编译器根据输入的机器学习模型产生芯片指令序列之后,可以离线预估其中每段指令的执行时间。从头开始逐一遍历每一条指令,当累计执行时间达到预期时间间隔后,产生一个“取消点”,当然,优先保证设置取消点位置处需要转储和恢复的数据量小于用户预设的值,防止出现转储和恢复数据的耗时大于正常任务排队延迟的情况。
85.在一些实施方式中,在上述实施例的基础上,还包括:
86.当未接收到暂停执行指令时,继续执行当前的所述第一模型任务,且在遇到所述第一模型任务指令中的取消点后仍执行后续的指令序列。
87.具体的,芯片如果没有接收到暂停执行的命令,会继续执行当前正在执行的模型任务,即使遇到指令序列中的取消点也不会停下来,继续执行当前的模型任务。
88.基于相同的技术构思,本发明还提供了一种降低多模型任务排队时延的装置,参考图5,包括:
89.命令接收模块10,用于接收插入的新模型任务指令及暂停执行指令;
90.任务执行模块20,用于在接收到所述暂停执行指令后,继续执行当前的第一模型任务,直到遇到当前第一模型任务指令中的取消点后中断所述第一模型任务,所述取消点为预先在所述第一模型任务指令中编译的标记点;
91.地址获取模块30:用于根据所述取消点,获取所述第一任务目标数据在芯片内部的目标存储地址;所述目标数据为所述取消点之前的指令执行处理数据;
92.数据转储模块40,根据所述目标存储地址,将所述目标数据转存至外部存储器;
93.所述任务执行模块20,还用于执行所述新模型任务的指令;
94.数据恢复模块50,用于当所述新模型任务的指令执行完毕后,根据所述目标存储地址,将存储在外部存储器中的目标数据恢复存储至所述芯片内部,继续执行所述第一模型任务。
95.具体的,命令接收模块用来接收任务指令,包括新模型任务指令以及暂停执行指令;任务执行模块用来执行命令接收模块接收到的任务指令,同时处理在遇到取消点后的情况,即先执行当前模型任务,如果有新模型任务指令或暂停执行指令时,继续执行当前模型任务,直到遇到取消点后暂停执行当前模型任务,优先执行新任务指令;地址获取模块用来获取任务被中断时,芯片内部任务继续执行所需的关键数据的有效存储地址范围;数据转储模块用来根据地址获取模块得到的有效数据存储地址,进行数据转储至外部存储器的操作;数据恢复模块用来恢复数据转储模块转储到外部存储介质中的数据,恢复位置仍为之前地址获取模块获取到的数据地址。
96.在一些实施方式中,在上述实施例的基础上,还包括:
97.编译模块60,用于将第一模型及其参数编译为硬件可识别的二进制指令序列;
98.指令生成模块70,用于在所述二进制执行序列中插入若干取消点,生成第一模型任务指令。
99.具体的,编译模块与指令生成模块主要用于将取消点编译成硬件可识别的二进制
序列,然后插入到模型任务的序列指令中。
100.在一些实施方式中,在上述实施例的基础上,参考图6,所述指令生成模块具体包括:
101.数据设置子模块71,用于获取所述二进制指令序列中的转储位置;所述转储位置为临时数据总量超出第一数据量时将数据转储到外部存储介质的位置,所述第一数据量小于芯片内部存储介质容量;在所述转储位置设置取消点。
102.时间设置子模块72,用于在所述二进制指令执行序列中,每隔预设的执行时间间隔插入一个取消点。
103.具体的,数据设置子模块是根据任务执行过程中发生数据转储时设置的天然取消点,而时间设置子模块是根据预设的时间间隔来控制插入取消点。
104.在一些实施方式中,在上述实施例的基础上,所述任务执行模块20还用于当未接收到暂停执行指令时,继续执行当前的所述第一模型任务,且在遇到所述第一模型任务指令中的取消点后仍执行后续的指令序列。
105.具体的,在没有收到新任务指令或暂停执行的指令时,任务执行过程中碰到取消点也不会停下来,会继续执行当前模型任务。
106.在一些实施方式中,参考图7,本方案还提供了一种电子设备90,包括一个或多个处理器93,以及存储器91,存储有计算机程序92,所述计算机程序在被所述处理器运行时使所述处理器执行上述任意一种降低多模型任务时延的方法。例如,存储介质可以是只读内存(rom)、随机存取存储器(ram)、只读光盘(cd-rom)、磁带、软盘和光数据存储设备等。
107.它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
108.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
109.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
110.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
111.另外,在本技术各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
112.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提
下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献