任务切换方法、装置及电子设备与流程

文档序号:30270791发布日期:2022-06-02 08:59阅读:95来源:国知局
任务切换方法、装置及电子设备与流程

1.本发明实施例涉及计算机技术领域,尤其涉及一种任务切换方法、装置及电子设备。


背景技术:

2.在现有技术中,对于x处理单元(x processing unit,简称xpu)的使用场景具体可以参见图1所示。xpu在计算过程中,包括如下内容:
3.1、主机给xpu下载程序。
4.2、主机将需要计算的原始数据,传输给xpu。
5.3、主机启动xpu的程序,让它开始进行计算。
6.4、xpu计算完成后,发送中断给主机。
7.5、主机收到中断后,从xpu的内存中获取结果数据。
8.上述计算流程中,xpu无法处理突发数据。比如当主机发送给xpu进行数据计算命令后,xpu开始运行。如果此时主机有突发的计算需求,则需要等待xpu完成上一个计算流程后,才可以处理当前突发的计算需求,导致突发数据处理不及时,计算延时过大,必然导致某些不可避免的影响。


技术实现要素:

9.本技术提供了一种任务切换方法、装置及电子设备,以解决现有技术中因为xpu计算过程中无法处理其他突发计算请求的情况,导致突发数据处理不及时,计算延时过大的问题。
10.第一方面,本技术提供了一种任务切换方法,该方法包括:
11.当接收到第一操作指令时,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置;
12.根据第一操作指令,执行与第一操作指令对应的第二任务;
13.接收第二操作指令,其中,第二操作指令为目标对象确定第二任务执行完成后,发出的操作指令;
14.根据第二操作指令,从预设位置提取进程信息;
15.根据进程信息,继续执行第一任务。
16.第二方面,本技术提供了一种任务切换装置,该装置包括:
17.接收模块,用于接收第一操作指令;
18.处理模块,用于中断正在执行的第一任务,并保存第一任务的进程信息至预设位置;根据第一操作指令,执行与第一操作指令对应的第二任务;
19.接收模块,还用于接收第二操作指令,其中,第二操作指令为目标对象确定第二任务执行完成后,发出的操作指令;
20.提取模块,用于根据第二操作指令,从预设位置提取进程信息;
21.处理模块,还用于根据进程信息,继续执行第一任务。
22.第三方面,提供了一种电子设备,包括x处理单元、通信接口、存储器和通信总线,其中,x处理单元,通信接口,存储器通过通信总线完成相互间的通信;
23.存储器,用于存放计算机程序;
24.x处理单元,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的任务切换方法的步骤。
25.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被x处理单元执行时实现如第一方面任一项实施例的任务切换方法的步骤。
26.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
27.本技术实施例提供的该方法,当接收到第一操作指令后,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置。根据第一操作指令,执行与第一操作指令对应的第二任务。然后,当接收到第二操作指令后,再根据第二操作指令,恢复对第一任务的执行操作,完成第一任务的执行过程。通过该方式,xpu可以在执行某个任务过程中,如果遇到突发情况,可以中断对当前任务的执行过程,启动对突发任务的执行操作。而当突发任务执行完毕后,因为已经预先保留了第一任务的进程信息,所以可以继续根据进程信息,完成对第一任务的操作。如此一来,即不会因为第一任务的中断,导致后续无法继续执行第一任务,也不会因为需要对第一任务持续执行,延误对突发任务的执行过程。即,通过该方式,可以及时处理突发任务,避免延时过大而导致的不可避免的影响,还可以完成对第一任务的执行操作。
附图说明
28.图1为本发明实施例提供的一种任务切换方法流程示意图;
29.图2为本发明提供的xpu处理任务阶段生成结果数据存储的局部结构示意图;
30.图3为本发明实施例提供的一种任务切换装置结构示意图;
31.图4为本发明实施例提供一种电子设备结构示意图。
具体实施方式
32.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
34.针对背景技术中所提及的技术问题,本技术实施例提供了一种任务切换方法,具体参见图1所示,图1为本发明实施例提供的一种任务切换方法流程示意图。
35.在介绍本技术实施例的内容之前,首先解释说明一下xpu。xpu是多种芯片的整合体,但是其不仅仅是多种芯片的整合体,同时也考虑与硬件的兼容性和硬件之间的互联互通,跨架构的软件和生态构建。在一个具体的例子中xpu例如可以是cpu和gpu的整合体,或者是cpu和fpga等的整合体。由此,企业也可以通过算力的针对性配置实现更高的性能、更
低的能耗和更快的创新。
36.xpu主要与上位机中的驱动软件建立通信连接。其中,上位机中的驱动软件用以发送控制指令至xpu,然后由xpu执行相应的运算过程。并将运算结果反馈至上位机中,以便上位机根据反馈的结果执行其他的操作。因此,在本实施例中,xpu获取的操作指令是由上位机中的驱动软件发出,用以完成相应任务的执行操作,以及与上位机之间的交互等操作。具体参见如下。
37.综上,本技术实施例中的方法步骤将由xpu执行,该方法步骤包括:
38.步骤110,当接收到第一操作指令时,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置。
39.具体的,当接收到上位机中的驱动软件发送的第一操作指令后,中断正在执行的第一任务。该操作指令用以指示xpu立即执行突发任务。所以,需要中断目前正在执行的任务操作流程。既然要执行其他任务,为了保存当前已执行的任务流程,所以需要先将当前执行的任务(第一任务)的进程信息予以保留到预设位置。以便后续可以恢复进程,继续执行。
40.步骤120,根据第一操作指令,执行与第一操作指令对应的第二任务。
41.具体的,当中断第一任务后,则可以根据第一操作指令,执行与第一操作指令对应的第二任务。
42.在第一操作指令中,将会包括相应的源数据,也即是用以执行第二任务所需要的数据。xpu也会开启新的计算流程(进程),用以执行第二任务。
43.步骤130,接收第二操作指令。
44.具体的,目标对象,例如上位机中的驱动软件可以以轮询的方式来查看xpu是否已经完成对第二任务的操作。或者,xpu可以在执行完成第二任务后,将执行结果反馈至上位机,或者仅反馈一个响应信息用以指示第二任务已经完成,上位机到xpu中读取该执行结果。
45.不论哪种方式,只要上位机中的驱动软件获知第二任务已经完成后,则会发送第二操作指令至xpu,用以指示xpu继续完成对第一任务的操作过程。
46.在本技术的一个可选的例子中,当第二任务执行完毕后,xpu会向目标对象,发送中断响应信息,中断响应信息用以指示第二任务执行完毕。
47.例如上位机中的驱动软件发送该中断响应信息,当然也可以是向上位机发送,由上位机将该中断响应信息转发至驱动软件。具体如何实现,完全根据实际情况设定,这里不做过多赘述。
48.步骤140,根据第二操作指令,从预设位置提取进程信息。
49.具体的,当接收到第二操作指令以后,则表明需要继续执行第一任务。所以,需要从预设位置提取与第一任务对应的进程信息。
50.步骤150,根据进程信息,继续执行第一任务。
51.在一个可选的例子中,进程信息包括与任务进程对应的标识信息,以及与任务进程对应的处理结果。
52.通常而言,某个任务可能包括多个执行阶段。那么,当任务包括多个执行阶段时,因为接收到第一操作指令的时间比较随机,有可能在第一个阶段,有可能在第二个阶段,
……
,在第n个阶段(n为正整数)。
53.那么,当接收到第一操作指令后,需要判断第一任务的执行进程。
54.例如,若第一任务恰好执行完当前阶段的任务进程,则处理结果为与当前阶段的任务进程对应的处理结果,标识信息为与当前阶段的进程对应的标识信息。
55.或者,或者,若第一任务未执行完当前阶段的任务进程,则处理结果为在当前阶段之前的前一阶段对应的处理结果,标识信息为与前一阶段的进程对应的标识信息。
56.即,通过进程信息来判断第一任务在中断之前具体执行到哪个阶段,考虑到前一阶段的结果,通常是后一阶段的输入数据。所以,主要是判断当前阶段是否有执行完毕,是否有相应的处理结果。如果有,再继续执行第一任务时,则可以从下一个阶段开始执行。如果当前阶段没有执行完毕,自然也没有获取到相应的处理结果。那么则需要从当前阶段开始继续执行任务。相应的标识信息也会随着中断之前的任务执行情况进行标注,以便后续可以根据标识信息来确定继续执行任务时,该从哪个阶段开始执行。
57.在另一个可选的例子中,若当前阶段为第一任务对应的首个执行阶段,且第一任务未执行完当前阶段的任务进程,则处理结果为无,任务进程标识信息为与首个执行阶段的进程对应的标识信息。
58.即,考虑到如果该任务刚开始执行,第一阶段还没有完毕,自然没有任何处理结果。所以,进程信息中处理结果为无,进程信息中的标识信息为首个执行阶段对应的标识信息。
59.进一步可选的,如上文所介绍的,执行第一任务时,通常第一阶段的结果为第二阶段的输入数据。当执行到第二阶段后,相当于xpu已经使用了第一阶段的结果。那么,第一阶段的结果不仅占用预设位置的存储空间,也没有任何利用价值。类似的道理,当执行到下一阶段完成后,必然会生成与下一阶段对应的结果,此时上一阶段的结果没有任何用途。因此,可以在每次执行完毕第一任务中下一阶段的任务后,将下一阶段的处理结果覆盖掉上一阶段的结果,保存到预设位置。
60.类似的道理,既然下一阶段已经完成,预设位置中存储的标识信息也需要相应的替换为下一阶段对应的标识信息,所以需要覆盖掉上一阶段任务进程对应的标识信息。
61.在一个可选的例子中,预设位置为与x处理单元建立通信连接的存储器。
62.存储器例如可以是静态随机存取存储器(staticrandom-accessmemory,简称sram)。
63.具体参见图2所示,图2为本发明提供的xpu处理任务阶段生成结果数据存储的局部结构示意图。图2中示意出xpu在执行任务过程中,每次都会将结果存储到sram中。不过,在获取到中间数据结果2后,会将中间数据结果1覆盖掉,类似的道理,在获取到中间数据结果3后,会将中间数据结果2覆盖掉。
64.本发明实施例提供的任务切换方法,当接收到第一操作指令后,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置。根据第一操作指令,执行与第一操作指令对应的第二任务。然后,当接收到第二操作指令后,再根据第二操作指令,恢复对第一任务的执行操作,完成第一任务的执行过程。通过该方式,xpu可以在执行某个任务过程中,如果遇到突发情况,可以中断对当前任务的执行过程,启动对突发任务的执行操作。而当突发任务执行完毕后,因为已经预先保留了第一任务的进程信息,所以可以继续根据进程信息,完成对第一任务的操作。如此一来,即不会因为第一任务的中断,导致后续无法继续执行第
一任务,也不会因为需要对第一任务持续执行,延误对突发任务的执行过程。即,通过该方式,可以及时处理突发任务,避免延时过大而导致的不可避免的影响,还可以完成对第一任务的执行操作。
65.以上,为本技术所提供的任务切换方法实施例,下文中则介绍说明本技术所提供的任务切换其他实施例,具体参见如下。
66.图3为本发明实施例提供的一种任务切换装置,该装置包括:接收模块301、处理模块302,以及提取模块303。
67.接收模块301,用于接收第一操作指令;
68.处理模块302,用于中断正在执行的第一任务,并保存第一任务的进程信息至预设位置;根据第一操作指令,执行与第一操作指令对应的第二任务;
69.接收模块301,还用于接收第二操作指令,其中,第二操作指令为目标对象确定第二任务执行完成后,发出的操作指令;
70.提取模块303,用于根据第二操作指令,从预设位置提取进程信息;
71.处理模块302,还用于根据进程信息,继续执行第一任务。
72.可选的,该装置还包括:发送模块304。
73.发送模块304,用于当第二任务执行完毕后,向目标对象发送中断响应信息,中断响应信息用以指示第二任务执行完毕。
74.可选的,进程信息包括与任务进程对应的标识信息,以及与任务进程对应的处理结果;
75.若第一任务包括多个执行阶段,当接收模块301接收到第一操作指令时,若第一任务恰好执行完当前阶段的任务进程,则处理结果为与当前阶段的任务进程对应的处理结果,标识信息为与当前阶段的进程对应的标识信息;
76.或者,若第一任务未执行完当前阶段的任务进程,则处理结果为在当前阶段之前的前一阶段对应的处理结果,标识信息为与前一阶段的进程对应的标识信息。
77.可选的,若当前阶段为第一任务对应的首个执行阶段,且第一任务未执行完当前阶段的任务进程,则处理结果为无,任务进程标识信息为与首个执行阶段的进程对应的标识信息。
78.可选的,处理模块302,还用于每次执行完第一任务中的下一阶段任务后,将下一阶段的处理结果覆盖掉上一阶段的处理结果,保存至预设位置;
79.以及,将下一阶段任务进程对应的标识信息覆盖掉上一阶段任务进程对应的标识信息后,保存至预设位置。
80.可选的,预设位置为与x处理单元建立通信连接的存储器。
81.本发明实施例提供的任务切换装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
82.本发明实施例提供的一种任务切换装置,当接收到第一操作指令后,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置。根据第一操作指令,执行与第一操作指令对应的第二任务。然后,当接收到第二操作指令后,再根据第二操作指令,恢复对第一任务的执行操作,完成第一任务的执行过程。通过该方式,xpu可以在执行某个任务过程中,如果遇到突发情况,可以中断对当前任务的执行过程,启动对突发任务的执行操作。而
当突发任务执行完毕后,因为已经预先保留了第一任务的进程信息,所以可以继续根据进程信息,完成对第一任务的操作。如此一来,即不会因为第一任务的中断,导致后续无法继续执行第一任务,也不会因为需要对第一任务持续执行,延误对突发任务的执行过程。即,通过该方式,可以及时处理突发任务,避免延时过大而导致的不可避免的影响,还可以完成对第一任务的执行操作。
83.如图4所示,本技术实施例提供了一种电子设备,包括x处理单元111、通信接口112、存储器113和通信总线114,其中,x处理单元111,通信接口112,存储器113通过通信总线114完成相互间的通信。
84.存储器113,用于存放计算机程序;
85.在本技术一个实施例中,x处理单元111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的任务切换方法,包括:
86.当接收到第一操作指令时,中断正在执行的第一任务,并保存第一任务的进程信息至预设位置;
87.根据第一操作指令,执行与第一操作指令对应的第二任务;
88.接收第二操作指令,其中,第二操作指令为目标对象确定第二任务执行完成后,发出的操作指令;
89.根据第二操作指令,从预设位置提取进程信息;
90.根据进程信息,继续执行第一任务。
91.可选的,当第二任务执行完毕后,向目标对象发送中断响应信息,中断响应信息用以指示第二任务执行完毕。
92.可选的,进程信息包括与任务进程对应的标识信息,以及与任务进程对应的处理结果;
93.若第一任务包括多个执行阶段,当接收到第一操作指令时,若第一任务恰好执行完当前阶段的任务进程,则处理结果为与当前阶段的任务进程对应的处理结果,标识信息为与当前阶段的进程对应的标识信息;
94.或者,若第一任务未执行完当前阶段的任务进程,则处理结果为在当前阶段之前的前一阶段对应的处理结果,标识信息为与前一阶段的进程对应的标识信息。
95.可选的,若当前阶段为第一任务对应的首个执行阶段,且第一任务未执行完当前阶段的任务进程,则处理结果为无,任务进程标识信息为与首个执行阶段的进程对应的标识信息。
96.可选的,每次执行完第一任务中的下一阶段任务后,将下一阶段的处理结果覆盖掉上一阶段的处理结果,保存至预设位置;
97.以及,将下一阶段任务进程对应的标识信息覆盖掉上一阶段任务进程对应的标识信息后,保存至预设位置。
98.可选的,预设位置为与x处理单元建立通信连接的存储器。
99.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被x处理单元执行时实现如前述任意一个方法实施例提供的任务切换方法的步骤。
100.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
101.以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1