CN114816777A - 命令处理装置、方法、电子设备以及计算机可读存储介质 - Google Patents

命令处理装置、方法、电子设备以及计算机可读存储介质 Download PDF

Info

Publication number
CN114816777A
CN114816777A CN202110130200.9A CN202110130200A CN114816777A CN 114816777 A CN114816777 A CN 114816777A CN 202110130200 A CN202110130200 A CN 202110130200A CN 114816777 A CN114816777 A CN 114816777A
Authority
CN
China
Prior art keywords
command
executed
processing block
processing
microcontroller
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
Application number
CN202110130200.9A
Other languages
English (en)
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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent 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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202110130200.9A priority Critical patent/CN114816777A/zh
Priority to PCT/CN2021/108430 priority patent/WO2022160628A1/zh
Publication of CN114816777A publication Critical patent/CN114816777A/zh
Pending legal-status Critical Current

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本公开提供了一种命令处理装置、方法、电子设备以及计算机可读存储介质,其中,该装置包括:微控制器、及运算单元;所述微控制器,用于当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;所述运算单元,用于获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。利用这种命令处理装置,可以提高命令处理的效率。

Description

命令处理装置、方法、电子设备以及计算机可读存储介质
技术领域
本公开涉及计算机科学技术领域,具体而言,涉及一种命令处理装置、方法、电子设备以及计算机可读存储介质。
背景技术
在计算机科学领域中,通过虚拟化的方法,可以将物理资源转变为逻辑上可管理的资源,以提高服务器的物理资源利用率。当前,在通过部署图像处理器(GraphicsProcessing Unit,GPU)或者人工智能(Artificial Intelligence,AI)芯片实现虚拟化时,通常在多进程间采用时分复用的方法实现多进程中命令的同步执行。当前的命令处理方式存在处理效率低的问题。
发明内容
本公开实施例至少提供一种命令处理装置、方法、电子设备以及计算机可读存储介质。
第一方面,本公开实施例提供了一种命令处理装置,包括:微控制器、及运算单元;其中,所述微控制器,用于当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;所述运算单元,用于获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
这样,通过将命令对应的多个处理操作划分为多个处理块,可以在任一待执行命令对应的时间片内,基于该待执行命令在上一个对应的时间片内的处理结果确定的第一处理块标识,确定当前时间片内要执行的起始处理块,并基于起始处理块执行待执行命令的处理任务。由于多个处理操作被划分为较细粒度的多个处理块,因此利用时分复用的方式进行上下文切换时,可以减少由于待执行命令未处理完毕导致的等待时间,从而可以提升对命令处理的效率。
一种可选的实施方式中,所述处理装置还包括命令分发器;所述微控制器,用于当前时间片到达后获取待执行命令,并将所述待执行命令存储至命令队列中;所述命令分发器,用于从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令;所述运算单元,用于获取所述待执行命令,并在接收到所述命令分发器分发的待执行命令后,基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述运算单元用于:基于所述第一处理块标识,从所述多个处理块中确定在所述当前时间片要执行的起始处理块,并基于所述起始处理块,执行所述待执行命令对应的处理任务。
这样,由于第一处理块标识可以指示待执行命令中包括的多个处理块中还未被处理的第一个处理块,因此利用第一处理块标识,运算单元可以直接关注需要进行处理的第一个处理块,而不需要再此对待执行命令中的多个处理块进行检索以确定需要处理的处理块,从而可以有效的提升命令处理的效率。
一种可选的实施方式中,所述微控制器用于:从与当前时间片对应的目标缓存中,读取所述待执行命令;或者,从主机获取所述待执行命令。
这样,微控制器可以灵活的依据不同的时间片、以及不同待执行命令的执行情况,从目标缓存或者主机获取待执行命令。
一种可选的实施方式中,所述微控制器用于:确定所述命令队列是否空闲;在所述命令队列空闲的情况下,监听缓冲器;所述缓冲器用于所述主机存储所述待执行命令;在监听到所述缓冲器中存在所述待执行命令的情况下,从所述缓冲器中读取所述待执行命令。
这样,通过微控制器确定命令队列是否空闲、以及在命令队列空闲时缓冲器中是否存在待执行命令,可以在缓冲器不断接收到待执行命令的情况下,将待执行命令不间断的下发至命令队列中,以使得命令处理装置能够保持高效率地对不断对新下发的待执行命令进行处理。
一种可选的实施方式中,所述缓冲器包括环形缓冲器;所述环形缓冲器有多个入口;不同入口用于所述主机存储不同命令流的待执行命令;所述微控制器用于:基于当前时间片对应的命令流,从所述缓冲器中确定目标入口;基于确定的所述目标入口,监听所述缓冲器中是否存储有所述待执行命令。
这样,利用与命令流对应的目标入口,在环形缓冲器上存储不同命令流对应的命令,从而可以使得微控制器同步监听环形缓冲器的多个入口,能够在一个处理周期内将不同命令流中的命令下拉下来,提升命令获取的效率。同时,环形缓冲器可以向通信程序提供对缓冲区的互斥访问,有利于在使用时规避存储队列在频繁的命令分配时增加的系统开销。
一种可选的实施方式中,所述微控制器用于:确定与当前时间片对应的目标缓存中是否存在待执行命令;在所述当前时间片对应的目标缓存中未存在待执行命令的情况下,从所述主机获取待执行命令。
这样,在将目标缓存中的待执行命令执行完毕后,可以从主机中获取新的待执行命令,以使命令处理装置保持动态的工作,可以更流畅地不断的对新下发待执行命令进行处理,从而使得命令处理装置在对命令进行处理时的效率更高。
一种可选的实施方式中,所述微控制器,还用于:在所述当前时间片对应的目标缓存中存在所述待执行命令的情况下,从所述目标缓存中读取所述待执行命令。
这样,由于目标缓存中存储了未执行完毕的待执行命令,因此微控制器在检测到当前时间片对应的目标缓存中存在待执行命令的情况下,可以从目标缓存中将待执行命令读取出,从而继续完成对此待执行命令的处理,以使得命令处理装置可以根据待处理命令的先后顺序进行有序的处理,并且可以避免同一用户对应的未执行完毕的待执行命令的积压造成目标缓存的过载。
一种可选的实施方式中,所述运算单元,还用于在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识;所述微控制器,还用于在接收到所述运算单元上报的所述第二处理块标识后,基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新。
一种可选的实施方式中,所述运算单元,用于:将当前正在执行的处理块对应的处理任务执行完毕后,将所述当前正在执行的处理块作为所述最近执行完的处理块,并向所述微控制器上报所述最近执行完的处理块对应的第二处理块标识。
这样,由于运算单元在当前时间片中对待执行命令进行处理后,可以较为迅速的确定最近执行完的处理块对应的第二处理块标识,因此由运算单元向微控制器上报第二处理块标识更便捷。同时,微控制器在接收到运算单元上报的第二处理块标识后对命令队列中的待执行命令进行更新,可以使得此更新后的待执行命令在下一个对应的时间片内进行处理时,可以直接根据更新后的待执行命令进行处理。
一种可选的实施方式中,所述运算单元用于:将所述第二处理块标识发送给所述命令分发器;所述命令分发器还用于向所述微控制器发送所述第二处理块标识。
这样,利用运算单元和命令分发器之间的通信通道、以及命令分发器以及微控制器之间的通信通道,运算单元可以完成向微控制器发送第二处理块标识,从而可以不建立运算单元以及微控制器之间的通信通道,减少对微控制器的数据接口的占用。
一种可选的实施方式中,所述微控制器用于:在所述第二处理块标识为所述多个处理块中最后一个处理块的处理块标识的情况下,将所述待执行命令从所述命令队列中删除;在所述第二处理块标识并非所述多个处理块中最后一个命令块对应的处理块标识的情况下,基于所述第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为所述目标处理块标识,生成新的待执行命令;其中,所述目标处理块标识为所述最近执行完的处理块的下一处理块对应的处理块标识。
这样,微控制器可以根据第二处理块标识更准确、且更容易地获知待执行命令的处理情况。微控制器在依据第二处理块标识为多个处理块中最后一个处理块的处理块标识的情况下,可以判断待执行命令已经处理完毕,并将其从命令队列中删除,可以有效地避免可能出现的待执行命令在命令队列中被重复处理的运行错误的情况。
一种可选的实施方式中,所述微控制器,还用于在生成所述新的待执行命令后,将所述新的待执行命令存储至与所述待执行命令对应的目标缓存中。
这样,将新的待执行命令可以存放至目标缓存中,无需再为新的待执行命令生成对应的处理方案,而可以沿用对任一在目标缓存中的待执行命令处理的方法对新的待执行命令进行处理,使得微控制器的工作更加的简洁、稳定,从而使得命令处理装置在进行命令处理时更加稳定,减少出现运行错误的概率。
第二方面,本公开实施例还提供了另外一种命令处理装置,包括:微控制器、及运算单元;所述运算单元,用于响应于当前时间片结束,向所述微控制器上报在该当前时间片执行的目标命令的当前处理块的第一处理块标识;其中,所述当前处理块为所述目标命令中至少一个处理块中任一处理块;所述微控制器,用于接收到所述运算单元上报的第一处理块标识后,利用所述第一处理块标识更新所述目标命令。
第三方面,本公开实施例还提供一种命令处理方法,应用于命令处理装置,所述命令处理装置包括:微控制器、及运算单元;所述命令处理方法包括:所述微控制器在当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;所述运算单元获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述命令处理装置还包括命令分发器;所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器在当前时间片到达后获取待执行命令,并将所述待执行命令存储至命令队列中;所述命令处理方法还包括:所述命令分发器从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令;所述运算单元获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:所述运算单元获取所述待执行命令,并在接收到所述命令分发器分发的待执行命令后,基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:所述运算单元基于所述第一处理块标识,从所述多个处理块中确定在所述当前时间片要执行的起始处理块,并基于所述起始处理块,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器从与当前时间片对应的目标缓存中,读取所述待执行命令;或者,从主机获取所述待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定所述命令队列是否空闲;在所述命令队列空闲的情况下,监听缓冲器;所述缓冲器用于所述主机存储所述待执行命令;在监听到所述缓冲器中存在所述待执行命令的情况下,从所述缓冲器中读取所述待执行命令。
一种可选的实施方式中,所述缓冲器包括环形缓冲器;所述环形缓冲器有多个入口;不同入口用于所述主机存储不同命令流的待执行命令;所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器基于当前时间片对应的命令流,从所述缓冲器中确定目标入口;基于确定的所述目标入口,监听所述缓冲器中是否存储有所述待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定与当前时间片对应的目标缓存中是否存在待执行命令;在所述当前时间片对应的目标缓存中未存在待执行命令的情况下,从所述主机获取待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器所述当前时间片对应的目标缓存中存在所述待执行命令的情况下,从所述目标缓存中读取所述待执行命令。
一种可选的实施方式中,还包括:所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识;所述微控制器在接收到所述运算单元上报的所述第二处理块标识后,基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新。
一种可选的实施方式中,所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识,包括:所述运算单元将当前正在执行的处理块对应的处理任务执行完毕后,将所述当前正在执行的处理块作为所述最近执行完的处理块,并向所述微控制器上报所述最近执行完的处理块对应的第二处理块标识。
一种可选的实施方式中,还包括:所述运算单元将所述第二处理块标识发送给所述命令分发器;所述命令分发器向所述微控制器发送所述第二处理块标识。
一种可选的实施方式中,所述基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新,包括:所述微控制器在所述第二处理块标识为所述多个处理块中最后一个处理块的处理块标识的情况下,将所述待执行命令从所述命令队列中删除;在所述第二处理块标识并非所述多个处理块中最后一个命令块对应的处理块标识的情况下,基于所述第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为所述目标处理块标识,生成新的待执行命令;其中,所述目标处理块标识为所述最近执行完的处理块的下一处理块对应的处理块标识。
一种可选的实施方式中,所述微控制器在生成所述新的待执行命令后,将所述新的待执行命令存储至与所述待执行命令对应的目标缓存中。
第四方面,本公开实施例还提供一种命令处理方法,应用于命令处理装置,所述命令处理装置包括:微控制器、及运算单元;所述命令处理方法报包括:所述运算单元响应于当前时间片结束,向所述微控制器上报在该当前时间片执行的目标命令的当前处理块的第一处理块标识;其中,所述当前处理块为所述目标命令中至少一个处理块中任一处理块;所述微控制器接收到所述运算单元上报的第一处理块标识后,利用所述第一处理块标识更新所述目标命令。
第五方面,本公开实施例还提供一种电子设备,包括主机、缓冲器,以及命令处理装置;所述主机用于下发待执行命令,并存储于所述缓冲器;所述命令处理装置用于执行上述第三方面或第四方面任一实施方式所述的方法。
第六方面,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被微控制器、运算单元执行时实现上述第三方面或第四方面任一实施方式所述的方法。
关于上述命令处理方法的效果描述参见上述命令装置的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种命令处理装置;
图2示出了本公开实施例所提供的一种命令队列的状态示意图;
图3示出了本公开实施例所提供的一种对命令处理的具体过程示例对应的命令处理装置的示意图;
图4示出了本公开实施例所提供的一种命令处理方法的流程图;
图5示出了本公开实施例所提供的另一种命令处理方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,在利用时分复用的方式对不同用户的命令流中的命令进行处理时,通常会设置时间片,在当前的时间片内执行一个用户的命令流中的命令,并在此时间片结束后,进行不同用户的上下文的切换,也即从当前用户切换至下一用户,下一个时间片执行下一个用户对应的命令流中的命令。由于时间片结束时,可能存在当前用户对应的命令正在执行的情况,因此在进行上下文的切换时,需要等待正在执行的命令执行完毕才能切换至下一个用户,导致在上下文切换时存在较长时间的时延,使得下一用户对应的命令需要等待较长时间,才能够被处理,造成了对命令处理存在效率低的问题。
基于上述研究,本公开提供了一种命令处理装置、方法、电子设备以及计算机可读存储介质,通过将命令对应的多个处理操作划分为多个处理块,当轮到某个待执行命令被执行时,是按照对其执行的上一执行周期时确定的第一处理块标识,确定当前执行周期要执行的起始处理块,并基于起始处理块,执行待执行命令的处理任务,从而将命令进行更细粒度的划分,并在时分复用时,按照更细粒度进行时分复用,减少上下文切换需要的等待时间,提升对命令处理的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种命令处理方法进行详细介绍。
本公开实施例提供的命令处理装置,可以用于GPU、人工智能芯片,或者其他包括命令处理器、执行单元的命令处理装置。
下面以将本公开实施例提供的命令处理装置应用于GPU为例对本公开实施例提供的命令处理装置加以说明。
参见图1所示,为本公开实施例提供的命令处理装置的结构示意图,包括:微控制器10、以及运算单元20;其中,
微控制器10,用于当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;
运算单元20,用于获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
本公开实施例中,微控制器10会在当前时间片到达后获取待执行命令;在该待执行命令中,携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识。运算单元20在接收到待执行命令后,能够基于待执行命令中携带的第一处理块标识,执行所述待执行命令对应的处理任务。在该过程中,命令对应的多个处理操作划分为多个处理块,并且用第一处理块标识指示要执行的处理块,从而在执行待执行命令的处理任务中,可以将命令进行更细粒度的划分,并在时分复用时,按照更细粒度进行时分复用,减少上下文切换需要的等待时间,提升对命令处理的效率。在一个实施例中,多个处理块的划分可以参见统一计算设备架构(CUDA,Compute Unified DeviceArchitecture)中线程块的划分,处理块可以相当于线程块。
本公开另一实施例中,还包括命令分发器30;微控制器10,在获取了待执行命令后,还可以将待执行命令存储至命令队列中。命令分发器30从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令。此处,当轮到某个待执行命令被执行时,命令分发器30从命令队列中获取微控制器10存储至命令队列中的待执行命令,并向运算单元分发该待执行命令,运算单元基于待执行命令中的第一处理块标识执行该待执行命令。
下面分别对微控制器10、运算单元20、以及命令分发器30加以详细描述。
本公开实施例中的用户例如可以包括下述任一种:虚拟机、计算机容器(container)、应用程序、或者应用程序中的不同功能。
以用户为应用程序为例,应用程序在被运行时可以生成一主进程,以及多个用于执行不同处理任务的子进程;每一个进程在执行对应的处理任务时,都会生成对应的命令流。进而,一个应用程序在被运行时会生成多个命令流;每个命令流中包括至少一个命令;本公开实施例提供的命令处理装置基于时分复用技术,对不同应用程序的不同命令流进行分时间片的处理。
以用户为应用程序中的不同功能为例,应用程序在被运行时可以生成多个进程;每个进程又可以包括多个线程;每个线程能够执行对应的处理任务,生成与线程对应的命令流;进而,可以将应用程序的不同功能分别作为不同用户,利用本公开实施提供的命令处理装置基于时分复用技术,对相同应用程序中的不同功能进行分时间片的处理。
以用户为虚拟机为例,虚拟机的应用层可以同时存在一个或者多个命令流stream;每个stream中包括至少一个命令,stream中的命令例如从主机host被下发至与用户对应的缓冲器中。
以一个用户(也即一台虚拟机,例如可以表示为VM1)为例,在用户VM1中运行一个软件时,可以运行此软件的一个或者多个软件功能;用户在仅运行其中的一个软件功能时,host可以为运行此软件功能生成一线程,该线程执行处理任务时,会生成命令流stream;用户的CPU将该stream中的命令存储至与该用户VM1对应的缓冲器中。
在具体实施中,虚拟机VM1对应的一个软件功能例如可以包括实现对图像中目标对象的目标识别,或者实现对图像中目标对象的位姿确定等图像处理功能,或者将图像进行存储或者调用的一般数据处理任务。虚拟机具体实现的软件功能可以根据实际情况确定,在此不再赘述。
待执行命令为命令流中的任一命令,以虚拟机VM1为例,虚拟机VM1可以对不同的多张图像,例如Pic1、Pic2等进行图像处理。此时,虚拟机VM1对应的多个命令流stream中的一个命令流例如可以包括对图像Pic1进行图像处理的多个待执行命令(Kernel),例如可以包括对图像Pic1进行卷积运算、池化运算、全连接运算等处理。
待执行命令包括:用于指向操作数的地址信息;用于指示具体算子的处理任务的指示信息、以及用于指示与待执行命令对应的多个处理块中任一处理块对应的第一处理块标识。
其中,运算单元20在执行待执行命令时,可以利用地址信息获取操作数,并按照指示信息,对操作数进行处理。在对操作数进行处理时,处理的过程可以被分解为多个处理操作。不同处理操作对应操作数中的不同数据(如图像中的不同像素点);或者,不同处理操作包括对操作数的不同操作过程(如先计算像素点的像素值与权重参数相乘,然后对不同像素点与权重参数的乘积结果进行求和)。
将一个待执行命令中包括的多个处理操作划分为多个处理块(Block),在一种实施方式中,待执行命令会通过线程块执行,每个线程块包括多个线程,执行了所有处理块中的处理操作后,即完成对待执行命令的处理。
在待执行命令中包括的第一处理块标识,用于指向待执行命令中还未处理的处理块中的任一个,在一种实施方式中,对于执行过程对处理块的执行顺序没有要求的,可以使第一处理块标识指向待执行命令中还未处理的处理块中的任一个。对于执行过程对处理块的执行顺序有要求的,可以使第一处理块标识指向待执行命令中还未处理的处理块中的首个需要执行的处理块。
示例性的,待执行命令K1例如可以包括对图像Pic1进行卷积运算;在Pic1的尺寸为128*128的情况下,可以分别将对图像Pic1中的每个像素点进行卷积运算的运算处理作为一个处理操作,也即对于待执行命令K1,包含有128*128个处理操作,其中,每32*32个处理操作被划分为一个处理块,也即,该待执行命令包括4*4个处理块。可以对16个处理块顺序编号,例如分别编号为:0~15。在一种实施方式中,每32*32个处理操作被分配给一个线程块,由该线程块中的线程执行操作,也即,该待执行命令被分配给4*4个线程块执行操作。
在对该执行命令K1进行处理的第一个时间片内,微控制器10可以从主机下发的命令流中获取待执行命令;此时,该待执行命令中的第一处理块标识可以为缺省状态,表征当前需要从第1个处理块开始,也即,从编号为0的处理块对待执行命令K1进行处理;
在对该待执行命令K1进行处理除第一个时间片之外的其他时间片内,由于已经对该待执行命令K1中的部分处理块进行了处理,因此,此时待执行命令K1对应的第一处理块标识,指向待执行命令中还未处理的处理块。例如,若在当前时间片之前已经对编号为0~12的处理块处理完毕,则待执行命令K1在当前时间片内对应的第一处理块标识为13。
此处,不同虚拟机对应的处理任务可以相同,也可以不同;对于同一虚拟机在对不同图像进行相同的处理任务时,可不对图像的像素大小等的图像属性做出一致性的限定,也即不同的图像Pic1、Pic2等可以是不同的像素大小。
微控制器10在获取待执行命令时,用于从与当前时间片对应的目标缓存中读取待执行命令,或者,从主机获取待执行命令。具体的,微控制器10获取待执行命令的方法包括下述(a1)以及(a2):
(a1):对于微控制器从主机获取待执行命令的情况,微控制器10用于确定命令队列是否空闲。在命令队列空闲的情况下,微控制器10对缓冲器进行监听,并基于当前时间片对应的命令流,从缓冲器中确定目标入口;基于确定的目标入口,监听缓冲器中是否存储有待执行命令。
其中,命令队列有多个,每个命令队列对应一命令流。不同用户的不同命令流,可以在不同时间片段共用一个命令队列。
此处,命令队列可以为软件队列,也可以为硬件队列;在命令队列为软件队列的情况下,微控制器10可以控制命令队列的生成与删除;微控制器10在获取待执行命令时,能够确定用户对应的命令流的数量;在当前已经生成的命令队列的数量小于用户对应的命令流的数量的情况下,微控制器10生成新的命令队列,使得命令队列的数量大于或者等于该用户命令流的数量;若某个命令队列长时间没有被使用,则微控制器10可以删除该命令队列。
示例性的,在虚拟机VM1以及VM2对应的命令流最大数量相同时,例如在虚拟机VM1以及VM2对应的命令流最大数量均为6的情况下,则可以确定命令队列有6个。
在虚拟机VM1以及VM2对应的命令流最大数量不同时,例如在虚拟机VM1对应的命令流最大数量为10,虚拟机VM2对应的命令流最大数量为6的情况下,则可以根据虚拟机VM1以及VM2对应的命令流最大数量的比较结果,确定命令队列有10个。此时,对于虚拟机VM2,对应的命令在命令队列中存在只占用6个命令队列的情况,其余的命令队列在虚拟机VM2对应的时间片内空置即可,微控制器10例如可以不对控制的命令队列进行检测。其中,时间片例如可以包括在向不同虚拟机分配的对命令进行处理的时间。
在命令队列为硬件队列的情况下,微控制器10可以根据用户的命令流的数量,为用户确定在处理该用户的命令时所使用的命令队列。
在将虚拟机对应的命令流存储至命令队列中时,以虚拟机VM1为例,在命令流包括对图像Pic1进行图像处理时,在虚拟机VM1对应的时间片中,命令流对应的命令队列存放有与该虚拟机VM1对应的命令流。例如包括K1以及K2。由于虚拟机VM1可以对应多个命令流,因此虚拟机将命令流存储至对应的命令队列中。
示例性的,当微处理器确定命令队列是否空闲时,例如可以利用命令队列中的多个命令队列分别对应的读指针和写指针确定,当任一命令队列中的读指针和写指针指示同一位置时,命令队列空闲。
在命令队列空闲的情况下,认为从与空闲的命令队列对应的任务流中获取的待执行命令已经被执行完毕,需要重新从任务流中获取待执行命令。
在命令队列非空闲的情况下,认为从与命令队列对应的任务流中获取的待执行命令还未被执行完毕,需要将已经获取的待执行命令处理完后,再从主机获取待执行命令。
在从主机获取待执行命令时,例如可以从缓冲器中获取待执行命令。其中,缓冲器中用于存储主机下发的命令。
参见图2所示,为本公开实施例提供的一种命令队列的状态示意图。在2a中,在命令队列21空闲的情况下,等待接收主机22向缓冲器23中下发的待执行命令,并由控制器10将缓冲器23中接收到的待执行命令下发至命令队列21。命令队列21中的虚线框211表示命令队列中空闲。在2b中,在命令队列24非空闲的情况下,例如包含实线框241表示的待处理命令241,则可以先将该待处理命令241处理完毕后,再接收主机22下发的新待处理命令。
此处,缓冲器例如可以包括环形缓冲器(Ring Buffer)或者存储队列。由于环形缓冲器是是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问,并且在使用时可以规避存储队列在频繁的命令分配时增加的系统开销,因此在本公开实施例中选用环形缓冲器作为命令队列。
对于任一环形缓冲器,有多个入口,用于接收从主机(host)下发的不同的命令流stream的待执行命令。例如,主机对虚拟机VM1下发对一组图像Pic1、Pic2分别进行目标识别处理的两个命令流,例如可以表示为s1以及s2。此时,以命令流s1为例,命令流s1包括对图像Pic1进行目标识别处理的命令K1以及K2,具体对命令K1以及K2的描述已在上文做出详细描述,在此不再重复。
此处,例如可以通过下述方式向缓冲器中下发命令:确定用户对应的至少一个命令流;基于至少一个命令流中的每个待执行命令,确定每个线程对应的至少一个待执行命令;利用缓冲器中与每个命令流对应的存储入口,将至少一个命令流中的每个命令流分别对应的至少一个待执行命令存储至缓冲器中。
在缓冲器中存储待执行命令时,例如可以利用缓冲器对应的读指针根据预先设置的多个目标入口进行查询,并在寻址到与待执行命令对应的目标入口处,利用缓冲器对应的写指针写入主机下发的待执行命令;或者,可以利用缓冲器对应的读指针对缓冲器中的多个命令存储空间进行轮询处理,并将可存放待执行命令的命令存储空间对应的入口作为目标入口,然后利用缓冲器对应的写指针写入待执行命令。在缓冲器中存储待执行命令的具体方法可以根据实际情况确定,在此不再赘述。
微控制器10在对缓冲器进行监听时,由于主机不断在向缓冲器中下发新的命令流,并且运算单元20在不断地处理下发至命令队列(Stream Queue)中的缓冲器中的命令,因此微控制器10在对缓冲器进行监听时,可能存在利用缓冲器的读指针在目标入口的位置轮询时没有相应的待执行命令。此时,微控制器10继续对缓冲器进行监听,直至监听到对应位置的待执行命令,然后,从缓冲器中读取待执行命令。
(a2):对于微控制器10从与当前时间片对应的目标缓存中读取待执行命令的情况,微控制器10用于从目标缓存中读取待执行命令。
其中,目标缓存例如可以包括设备内存或者双倍速率同步动态随机存储器(Synchronous Dynamic Random Access Memory,DDR SDRAM),用于存放在非虚拟机对应的时间片内,由微控制器10读取的待执行命令,或者,存放由微控制器10从命令队列中读取的待执行命令。
此处,由于微控制器10会在不同的时间片,将不同用户的待执行命令传输至命令队列,实现不同用户对命令处理装置的时分复用,因此,对于在一个时间片内未被执行完的待执行命令,微控制器10会在执行该待执行命令的时间片结束后,将其暂时存储在对应的目标缓存中;在下一个对其进行处理的时间片到达后,会将目标缓存中的待执行命令重新传输至命令队列,使得命令分发器30能够将其重新分发至运算单元20进行后续的处理。
具体地,微控制器10在获取待执行命令时,用于确定与当前时间片对应的目标缓存中是否存在待执行命令。以存在两个虚拟机VM1以及VM2为例,微控制器10在确定与当前时间片对应的目标缓存中是否存在待执行命令时,包括下述(b1)或(b2)两种情况:
(b1):在当前时间片对应的目标缓存中存在待执行命令的情况下,将目标缓存中的待执行命令传输至命令队列。
实施时,可以将当前时间片的上一时间片执行结束时的上下文保存至该上一时间片对应的目标缓存,该上下文信息包括执行结束时执行的最后一个处理块对应的处理块标识等,并获取该当前时间片对应的目标缓存中保存的上下文信息,并在该当前时间片继续执行。
示例性的,若将第i(i为正整数)个时间片分配给虚拟机VM1,将第i+1个时间片分配给虚拟机VM2,并将第i+2个时间片也分配给虚拟机VM1,在第i个时间片中,虚拟机VM1对应的命令A未执行完毕的情况下,虚拟机VM1对应的命令A会暂存在与A对应的目标缓存中;等待第i+1个时间片结束后,微控制器10会在第i+2个时间片将该命令A从对应的目标缓冲中下拉至命令队列中。具体的处理过程在此不再赘述。
(b2):在当前时间片对应的目标缓存中未存在待执行命令的情况下,从主机获取待执行命令。
具体地,在任一时间片结束后,若命令队列中的命令处理完毕,则不存在需要放置在目标缓存中等待下一对应时间片进行处理的命令,在对应的用户的下一个对应的时间片到来时,从主机获取新下发的待执行命令即可。
示例性的,仍以用户为虚拟机为例,若将第i(i为正整数)个时间片分配给虚拟机VM1,第i+1个时间片分配给虚拟机VM2,并将第i+2个时间片也分配给虚拟机VM1;在第i个时间片中,若将虚拟机VM1对应的命令A执行完毕,等待第i+1个时间片结束后,微控制器10会在第i+2个时间片检测到与当前时间片对应的目标缓存中未存在待执行命令,则微控制器10从主机中获取新下发的待执行命令。针对从主机获取的待执行指令,可以存储至命令队列,并在执行中将该待执行指令对应的多个处理操作划分为多个处理块,按照本申请实施例提供的处理方式进行处理。
此外,对于虚拟机有多台的情况,例如包括N(N为大于1的正整数)台虚拟机,则根据需要分配对应的目标缓存,在一个实施例中至多需要分配N个对应的目标缓存,以在任一时间片对应的虚拟机未将待执行命令执行完毕的情况下,在下一个不与此虚拟机对应的时间片内,将该虚拟机对应的未执行完毕的待执行命令存储至与此虚拟机对应的目标缓存区中。
其中,对于目标缓存包括设备内存的情况,由于设备内存的数据为单向传输的,也即在一次数据传输的过程中,数据传输通道仅允许单方向的数据进行传输,因此可以为N台虚拟机分配N个内存单元以放置不同的虚拟机对应的未执行完毕的待执行命令;对于目标缓存包括双倍速率同步动态随机存储器的情况,由于双倍速率同步动态随机存储器的数据为双向传输的,也即在一次数据传输的过程中,数据传输通道允许双向的数据进行传输,例如直接存储器访问(Direct Memory Access,DMA),因此可以存在两台虚拟机共用一个目标缓存的情况,例如还可以为两台虚拟机设置同一目标缓存。具体的设置方法在此不再赘述。
在微控制器将待执行命令存储至命令队列中后,命令分发器30即可以从命令队列中获取到待执行命令,并向运算单元20分发待执行命令。
其中,对于待执行命令,携带了用于指示与待执行命令对应的多个处理块中任一处理块对应的第一处理块标识。运算单元20在接收到命令分发器30下发的待执行命令后,能够将该第一处理块标识从待执行命令中解析出来,并将第一处理块标识指示的处理块作为在当前时间片要执行的起始处理块,并基于起始处理块,执行待执行命令对应的处理任务。
示例性的,运算单元20中部署有调度器(scheduler);待执行指令被下发至调度器;调度器从待执行命令中确定第一处理块标识,然后利用第一处理块标识,从待执行命令中对应的多个处理块中确定需要首个执行的起始处理块,然后将处理块标识对应的处理块中各个处理操作作为任务,分配至在运算单元20中运行的各个线程,由各个线程执行处理操作对应的计算任务。
以处理图像任务为例,任一线程在任一处理操作进行处理时,在调度器下发的任务中,会携带需要处理的像素点的地址信息,该线程能够基于该地址信息,从存储图像的存储空间获取对应的操作数,然后对操作数进行对应的处理。
在GPU实现的实施例中,每个算子(kernel)可以由多个线程(thread)组成;硬件执行时,可以将一定数目的线程组合成处理块(block)或线程块,作为最小的调度粒度。
命令分发器30内部的block调度器(scheduler)按顺序调度处理块,当时间片(slot)结束时,调度器进入停止模式(stop mode),block完成之后,向微控制器(MCU)报告已运行完的处理块标识(block_id);用户上下文(context)切换,再次调用该算子时传入该报告的处理块标识;这样,即实现了处理块级别的切换,上下文切换不再需要等待当前算子完成,只需等待已分发的处理块执行完成,缩短了当前任务的等待时间,提高了上下文切换效率。
示例性的,对于待执行命令K1,在待执行命令K1包含有128*128个处理操作的情况下,将每个32*32个处理操作确定为一个处理块,则此时待执行命令K1划分为16个处理块。此时,若运算单元20对待执行命令K1的总处理时间为0.16s,对每个处理块的处理时间为0.01s,在一个时间片为0.1s的情况下,利用处理块可以在0.1s时完成对待执行命令K1中前10个处理块的处理,然后进行虚拟机之间的上下文切换;
在不对待执行命令K1进行更细粒度的划分的情况下,也即在现有技术中,在一个时间片结束后,还需要等待待执行命令K1处理完毕,也即还需要等待0.06s的时间,运算单元20才会将K1处理完毕;运算单元20在将K1处理完毕后,会向微控制器10上报处理完毕的信息,此时,微控制器10才会进行上下文切换,也即切换至下一个虚拟机,执行下一个虚拟机对应的待执行命令。这样,就会导致对于下一虚拟机的命令处理存在0.06s的时延;在存在多个虚拟机的情况下,在对虚拟机上下文进行切换时,对于距离第一个虚拟机较远的第N个虚拟机,由于第一个虚拟机至第N-1个虚拟机在进行上下文切换时有不断积累的时延,因此第N个虚拟机可能产生卡顿等现象。
本公开实施例中,对一个待执行命令进行更细粒度的划分,以在当前时间片结束后,仅将正在处理的处理块执行完毕后,即可以进行虚拟机的上下文切换,减少由于当前时间片正在处理的待执行命令在当前时间片结束后要继续处理完毕才进行上下文切换导致的时延。
此时,在上述示例中,对于待执行命令K1,对应的第一处理块标识例如可以表示为K1_0、K1_2、……、K1_15,在当前时间片结束时,若运算单元20正在处理标识为K1-5的处理块,则运算单元20会将标识为K1_5的处理块处理完成后,即向微控制器10上报处理完毕的信息,微控制器10进行上下文切换;此时,时延至多为0.01s。
示例性的,运算单元20在向微控制器10上报处理完毕的信息时,会向微控制器10上报最近执行完的处理块对应的第二处理块标识。
运算单元20在向微控制器10上报最近处理完的处理块对应的第二处理块标识时,具体用于:将当前正在执行的处理块对应的处理任务执行完毕后,将当前正在执行的处理块作为最近执行完的处理块,并向微控制器10上报最近执行完的处理块对应的第二处理块标识。
示例性的,当待执行命令K1未被运算单元20进行处理时,对应的第一处理块标识为K1_0;在一个时间片结束时,运算单元20正在执行待执行命令K1中的第10个处理块。运算单元20会继续将第待执行命令K1中的第10个处理块执行完毕,并将第10个的处理块标识K1_9作为向微控制器10上报的最近执行完的处理块对应的第二处理块标识。
此处,运算单元20在向微控制器10上报第二处理块标识时,可以将第二处理块标识发送给命令分发器;命令分发器向微控制器10发送第二处理块标识。利用这种方式,无需为控制器10再设置与运算单元20进行数据传输的接口,可以降低接口开销的同时,实现运算单元20与微控制器10之间的硬件隔离。此外,这种方式还可以直接使用已建立的运算单元20与命令分发器之间的数据传输通道、以及命令分发器与微控制器10之间的数据传输通道,进一步提高数据通道的复用率。
微控制器10在接收到运算单元20上报的第二处理块标识后,基于第二处理块标识,对命令队列中的待执行命令进行更新。
此处,微控制器10在对命令队列中的待执行命令进行更新时,在第二处理块标识为多个处理块中最后一个处理块的处理块标识的情况下,将待执行命令从命令队列中删除;在第二处理块标识并非多个处理块中最后一个命令块对应的处理块标识的情况下,基于第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为目标处理块标识,生成新的待执行命令;
其中,目标处理块标识为最近执行完的处理块的下一处理块对应的处理块标识。
微控制器10在将命令队列中的待执行命令进行更新后,若是将待执行命令中的第一处理块标识替换为目标处理块标识,则将新的待执行命令存储至与该待执行命令对应的目标缓存中。
微控制器10在将新的待执行命令存储至与该待执行命令对应的目标缓存中后,会将下一时间片作为新的当前时间片,并从新的当前时间片对应的目标缓存中读取另一虚拟机对应的待执行命令,或者从主机获取该另一虚拟机对应的待执行命令,从而完成对虚拟机的上下文切换工作。
此外,对于从主机下发的多个命令,还可以是包含有关联的先后执行顺序的多个命令流,在一种实施方式中,待执行命令中携带用于指示于待执行命令对于的多个处理模块中下一需要执行的处理块对于的起始处理块标识;在另一种实施方式中,前一个命令的处理结果可以设置为后一个命令的操作数。例如第一个命令流对应的命令包括对图像的目标识别,在第一个命令流对应的命令包括在获得目标识别的结果后,确定识别得到的多个目标对象在图像中的位姿信息。此时,在第二个命令流中,待执行命令对应的处理块中包含的对应图像的像素点的地址可以设置为第一个命令流结束后得到的图像的像素点的地址,也即利用命令处理装置不但可以完成对一个虚拟即对应的多个图像的处理,也可以完成多个虚拟机对同一图像的连续的多个处理任务。
本公开实施例还提供了一种利用本公开实施例提供的命令处理装置对命令处理的具体过程示例,在该示例中,包括虚拟机VM1和虚拟机VM2;其中,与VM1对应的多个命令流中的一个命令流s1中包括命令K1;与虚拟机VM2对应的多个命令流中的一个命令流s2中包括命令K2。命令K1中包括128*128个处理操作,且128*128个处理操作程被划分为4*4个处理块,各个处理块的处理块标识分别为:K1_0~K1_15。命令K2中包括64*128个处理操作,64*128个处理操作被划分为2*4个处理块,各个处理块的处理块标识分别为K2_0~K2_7。
(1):在第一个时间片t1到达时,微控制器从与VM1对应的缓冲器RBUF1中下拉命令K1,并将命令K1下发至与VM1对应的命令队列SQ1中;此时,K1中携带的第一命令块标识为K1_0。
命令分发器从SQ1中获取命令K1,并将命令K1分发至运算单元ALU1;
运算单元ALU1,从K1中解析到第一处理块标识K1_0后,将4*4中的第一个处理块作为初始处理块,并对初始处理块进行处理。
(2):在时间片t1结束,第二个时间片t2开始后,运算单元将K1_0~K1_5处理完毕,并正在执行K1_6。此时,运算单元继续将K1_6处理完毕,并将K1_6作为第二处理块标识上报给命令分发器。
命令分发器将第二处理块标识K1_6上报给微控制器。
微控制器基于第二处理块标识K1_6,确定K1_7为目标处理块标识,并将命令K1中携带的第一处理块标识K1_0替换为K1_7,生成新的命令K1’,并将命令K1’存储至与命令流s1对应的目标缓存中。
微控制器在将命令K1’存储至与命令流s1对应的目标缓存后,从VM2对应的缓冲器RBUF2中下拉命令K2,并将命令K2下发至与VM2对应的命令队列SQ1中;此时,K2中携带的第一命令块标识为K2_0。
命令分发器从SQ1中获取命令K2,并将命令K2分发至运算单元ALU1;
运算单元ALU1,从K2中解析到第一处理块标识K2_0后,将2*4中的第一个处理块作为初始处理块,并对初始处理块进行处理。
(3):在时间片t2结束,第三个时间片t3开始后,运算单元将K2_0~K2_3处理完毕,并正在执行K2_4。此时,运算单元继续将K2_4处理完毕,并将K2_4作为第二处理块标识上报给命令分发器。
命令分发器将第二处理块标识K2_4上报给微控制器。
微控制器基于第二处理块标识K2_4,确定K2_5为目标处理块标识,并将命令K2中携带的第一处理块标识K2_0替换为K2_5,生成新的命令K2’,并将命令K2’存储至与命令流s2对应的目标缓存中。
微控制器从命令流s1对应的目标缓存中读取命令K1’;并将命令K1’下发至与VM1对应的命令队列SQ1中;此时,K1’中携带的第一命令块标识为K1_7。
命令分发器从SQ1中获取命令K1’,并将命令K1’分发至运算单元ALU1;
运算单元ALU1,从K1’中解析到第一处理块标识K1_7后,将4*4中的第8个处理块作为初始处理块,并对初始处理块进行处理。
(4):在时间片t3结束,第三个时间片t4开始后,运算单元将K1_7~K1_12处理完毕,并正在执行K1_13。此时,运算单元继续将K1_13处理完毕,并将K1_13作为第二处理块标识上报给命令分发器。
命令分发器将第二处理块标识K1_13上报给微控制器。
微控制器基于第二处理块标识K1_13,确定K1_14为目标处理块标识,并将命令K1’中携带的第一处理块标识K1_7替换为K1_14,生成新的命令K1”,并将命令K1”存储至与命令流s1对应的目标缓存中。
微控制器从命令流s2对应的目标缓存中读取命令K2’;并将命令K2’下发至与VM2对应的命令队列SQ1中;此时,K2’中携带的第一命令块标识为K2_5。
命令分发器从SQ1中获取命令K2’,并将命令K2’分发至运算单元ALU1;
运算单元ALU1,从K2’中解析到第一处理块标识K2_5后,将2*4中的第6个处理块作为初始处理块,并对初始处理块进行处理。
(5):在时间片t4结束,第三个时间片t5开始后,运算单元将K2_5~K2_7处理完毕。此时,将K2_7作为第二处理块标识上报给命令分发器。
命令分发器将第二处理块标识K2_7上报给微控制器。
微控制器基于第二处理块标识K2_7,确定命令K2被执行完毕,将其从命令队列Q1中删除。
此时,微控制器可以监听s2对应的RBUF2,若有新的命令,则继续下拉至命令队列Q1或者与s2对应的目标缓存中。
(6):在时间片t5结束,第三个时间片t6开始后,微控制器从命令流s1对应的目标缓存中读取命令K1”;并将命令K1”下发至与VM1对应的命令队列SQ1中;此时,K1”中携带的第一命令块标识为K1_14。
命令分发器从SQ1中获取命令K1”,并将命令K1”分发至运算单元ALU1;
运算单元ALU1,从K1”中解析到第一处理块标识K1_14后,将4*4中的第15个处理块作为初始处理块,并对初始处理块进行处理。
(7):在时间片t6结束,第三个时间片t7开始后,运算单元将K1_14~K1_15处理完毕。此时,将K1_15作为第二处理块标识上报给命令分发器。
命令分发器将第二处理块标识K1_15上报给微控制器。
微控制器基于第二处理块标识K1_15,确定命令K1被执行完毕,将其从命令队列Q1中删除。
此时,微控制器可以监听s1对应的RBUF1,若有新的命令,则继续下拉至命令队列Q1或者与s1对应的目标缓存中。
通过上述过程,实现VM1和VM2对命令处理装置的时分复用。
参见图3所示,为本公开实施例提供的一种对命令处理的具体过程示例对应的命令处理装置的示意图;其中,31表示微控制器;32表示多个流队列,其中321表示命令队列SQ1,322表示命令队列SQ2;33表示命令分发器;34表示运算单元,其中包括运算单元0、运算单元1、……、以及运算单元n;35表示多个命令流分别对应的目标缓存,其中351表示命令流s1对应的目标缓存,352表示命令流s2对应的目标缓存,针对任一命令流,对应的目标缓存中,存放的命令分别表示为eSQ1、eSQ2、……、以及eSQm。
参见图4所示,为本公开实施例提供的一种命令处理方法的流程图,包括:
S401:微控制器在当前时间片到达后获取待执行命令;待执行命令中携带有用于指示与待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;
S402:运算单元获取待执行命令,并基于第一处理块标识,执行待执行命令对应的处理任务。
一种可选的实施方式中,所述命令处理装置还包括命令分发器;
所述微控制器在当前时间片到达后获取待执行命令,包括:
所述微控制器在当前时间片到达后获取待执行命令,并将所述待执行命令存储至命令队列中;
所述命令处理方法还包括:
所述命令分发器从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令;
所述运算单元获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:
所述运算单元获取所述待执行命令,并在接收到所述命令分发器分发的待执行命令后,基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:所述运算单元基于所述第一处理块标识,从所述多个处理块中确定在所述当前时间片要执行的起始处理块,并基于所述起始处理块,执行所述待执行命令对应的处理任务。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器从与当前时间片对应的目标缓存中,读取所述待执行命令;
或者,从主机获取所述待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定所述命令队列是否空闲;
在所述命令队列空闲的情况下,监听缓冲器;所述缓冲器用于所述主机存储所述待执行命令;
在监听到所述缓冲器中存在所述待执行命令的情况下,从所述缓冲器中读取所述待执行命令。
一种可选的实施方式中,所述缓冲器包括环形缓冲器;所述环形缓冲器有多个入口;不同入口用于所述主机存储不同命令流的待执行命令;
所述微控制器在当前时间片到达后获取待执行命令,包括:
所述微控制器基于当前时间片对应的命令流,从所述缓冲器中确定目标入口;基于确定的所述目标入口,监听所述缓冲器中是否存储有所述待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定与当前时间片对应的目标缓存中是否存在待执行命令;
在所述当前时间片对应的目标缓存中未存在待执行命令的情况下,从所述主机获取待执行命令。
一种可选的实施方式中,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器所述当前时间片对应的目标缓存中存在所述待执行命令的情况下,从所述目标缓存中读取所述待执行命令。
一种可选的实施方式中,还包括:所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识;
所述微控制器在接收到所述运算单元上报的所述第二处理块标识后,基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新。
一种可选的实施方式中,所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识,包括:所述运算单元将当前正在执行的处理块对应的处理任务执行完毕后,将所述当前正在执行的处理块作为所述最近执行完的处理块,并向所述微控制器上报所述最近执行完的处理块对应的第二处理块标识。
一种可选的实施方式中,还包括:所述运算单元将所述第二处理块标识发送给所述命令分发器;
所述命令分发器向所述微控制器发送所述第二处理块标识。
一种可选的实施方式中,所述基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新,包括:所述微控制器在所述第二处理块标识为所述多个处理块中最后一个处理块的处理块标识的情况下,将所述待执行命令从所述命令队列中删除;
在所述第二处理块标识并非所述多个处理块中最后一个命令块对应的处理块标识的情况下,基于所述第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为所述目标处理块标识,生成新的待执行命令;
其中,所述目标处理块标识为所述最近执行完的处理块的下一处理块对应的处理块标识。
一种可选的实施方式中,所述微控制器在生成所述新的待执行命令后,将所述新的待执行命令存储至与所述待执行命令对应的目标缓存中。
参见图5所示,为本公开实施例提供的另一种命令处理方法的流程图,包括:
S501:运算单元响应于当前时间片结束,向微控制器上报在该当前时间片执行的目标命令的当前处理块的第一处理块标识;其中,当前处理块为目标命令中至少一个处理块中任一处理块;
S502:微控制器接收到运算单元上报的第一处理块标识后,利用第一处理块标识更新目标命令。
本公开实施例还提供一种电子设备,包括主机、缓冲器,以及命令处理装置;所述主机用于下发待执行命令,并存储于所述缓冲器;所述命令处理装置用于执行本公开任一命令处理方法实施例中所述的方法。
本公开实施例提供的命令处理装置可以包括芯片、AI芯片等。本公开实施例提供的电子设备可以包括手机等智能终端,或者也可以是具有摄像头并可以进行图像处理的其他设备、服务器等,这里并不限制。
本公开实施例提供的一种计算机可读存储介质,其上存储有计算机程序,所述程序被微控制器、运算单元执行时实现本公开任一命令处理方法实施例中所述的方法。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与命令处理装置对应的命令处理方法,由于本公开实施例中的装置解决问题的原理与本公开实施例上述命令处理装置相似,因此方法的实施可以参见装置的实施,重复之处不再赘述。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的命令可用于执行上述方法实施例中所述的命令处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (30)

1.一种命令处理装置,其特征在于,包括:微控制器、及运算单元;
其中,所述微控制器,用于当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;
所述运算单元,用于获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
2.根据权利要求1所述的命令处理装置,其特征在于,所述处理装置还包括命令分发器;
所述微控制器,用于当前时间片到达后获取待执行命令,并将所述待执行命令存储至命令队列中;
所述命令分发器,用于从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令;
所述运算单元,用于获取所述待执行命令,并在接收到所述命令分发器分发的待执行命令后,基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
3.根据权利要求1或2所述的命令处理装置,其特征在于,所述运算单元用于:
基于所述第一处理块标识,从所述多个处理块中确定在所述当前时间片要执行的起始处理块,并基于所述起始处理块,执行所述待执行命令对应的处理任务。
4.根据权利要求1-3任一项所述的命令处理装置,其特征在于,所述微控制器用于:
从与当前时间片对应的目标缓存中,读取所述待执行命令;
或者,从主机获取所述待执行命令。
5.根据权利要求4所述的命令处理装置,其特征在于,所述微控制器用于:
确定所述命令队列是否空闲;
在所述命令队列空闲的情况下,监听缓冲器;所述缓冲器用于所述主机存储所述待执行命令;
在监听到所述缓冲器中存在所述待执行命令的情况下,从所述缓冲器中读取所述待执行命令。
6.根据权利要求5所述的命令处理装置,其特征在于,所述缓冲器包括环形缓冲器;所述环形缓冲器有多个入口;不同入口用于所述主机存储不同命令流的待执行命令;
所述微控制器用于:
基于当前时间片对应的命令流,从所述缓冲器中确定目标入口;
基于确定的所述目标入口,监听所述缓冲器中是否存储有所述待执行命令。
7.根据权利要求1-6任一项所述的命令处理装置,其特征在于,所述微控制器用于:
确定与当前时间片对应的目标缓存中是否存在待执行命令;
在所述当前时间片对应的目标缓存中未存在待执行命令的情况下,从所述主机获取待执行命令。
8.根据权利要求7所述的命令处理装置,其特征在于,所述微控制器,还用于:在所述当前时间片对应的目标缓存中存在所述待执行命令的情况下,从所述目标缓存中读取所述待执行命令。
9.根据权利要求1-8任一项所述的命令处理装置,其特征在于,所述运算单元,还用于在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识;
所述微控制器,还用于在接收到所述运算单元上报的所述第二处理块标识后,基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新。
10.根据权利要求9所述的命令处理装置,其特征在于,所述运算单元用于:
将当前正在执行的处理块对应的处理任务执行完毕后,将所述当前正在执行的处理块作为所述最近执行完的处理块,并向所述微控制器上报所述最近执行完的处理块对应的第二处理块标识。
11.根据权利要求9或10所述的命令处理装置,其特征在于,所述运算单元用于:将所述第二处理块标识发送给命令分发器;
所述命令分发器还用于向所述微控制器发送所述第二处理块标识。
12.根据权利要求9-11任一项所述的命令处理装置,其特征在于,所述微控制器用于:
在所述第二处理块标识为所述多个处理块中最后一个处理块的处理块标识的情况下,将所述待执行命令从所述命令队列中删除;
在所述第二处理块标识并非所述多个处理块中最后一个命令块对应的处理块标识的情况下,基于所述第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为所述目标处理块标识,生成新的待执行命令;
其中,所述目标处理块标识为所述最近执行完的处理块的下一处理块对应的处理块标识。
13.根据权利要求12所述的命令处理装置,其特征在于,所述微控制器,还用于在生成所述新的待执行命令后,将所述新的待执行命令存储至与所述待执行命令对应的目标缓存中。
14.一种命令处理装置,其特征在于,包括:微控制器、及运算单元;
所述运算单元,用于响应于当前时间片结束,向所述微控制器上报在该当前时间片执行的目标命令的当前处理块的第一处理块标识;其中,所述当前处理块为所述目标命令中至少一个处理块中任一处理块;
所述微控制器,用于接收到所述运算单元上报的第一处理块标识后,利用所述第一处理块标识更新所述目标命令。
15.一种命令处理方法,其特征在于,应用于命令处理装置,所述命令处理装置包括:微控制器、及运算单元;所述命令处理方法包括:
所述微控制器在当前时间片到达后获取待执行命令;所述待执行命令中携带有用于指示与所述待执行命令对应的多个处理块中该当前时间片需要处理的处理块对应的第一处理块标识;
所述运算单元获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
16.根据权利要求15所述的命令处理方法,其特征在于,所述命令处理装置还包括命令分发器;
所述微控制器在当前时间片到达后获取待执行命令,包括:
所述微控制器在当前时间片到达后获取待执行命令,并将所述待执行命令存储至命令队列中;
所述命令处理方法还包括:
所述命令分发器从所述命令队列中获取所述待执行命令,并向所述运算单元分发所述待执行命令;
所述运算单元获取所述待执行命令,并基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:
所述运算单元获取所述待执行命令,并在接收到所述命令分发器分发的待执行命令后,基于所述第一处理块标识,执行所述待执行命令对应的处理任务。
17.根据权利要求15或16所述的命令处理方法,其特征在于,所述基于所述第一处理块标识,执行所述待执行命令对应的处理任务,包括:所述运算单元基于所述第一处理块标识,从所述多个处理块中确定在所述当前时间片要执行的起始处理块,并基于所述起始处理块,执行所述待执行命令对应的处理任务。
18.根据权利要求15-17任一项所述的命令处理方法,其特征在于,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器从与当前时间片对应的目标缓存中,读取所述待执行命令;
或者,从主机获取所述待执行命令。
19.根据权利要求18所述的命令处理方法,其特征在于,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定所述命令队列是否空闲;
在所述命令队列空闲的情况下,监听缓冲器;所述缓冲器用于所述主机存储所述待执行命令;
在监听到所述缓冲器中存在所述待执行命令的情况下,从所述缓冲器中读取所述待执行命令。
20.根据权利要求19所述的命令处理方法,其特征在于,所述缓冲器包括环形缓冲器;所述环形缓冲器有多个入口;不同入口用于所述主机存储不同命令流的待执行命令;
所述微控制器在当前时间片到达后获取待执行命令,包括:
所述微控制器基于当前时间片对应的命令流,从所述缓冲器中确定目标入口;基于确定的所述目标入口,监听所述缓冲器中是否存储有所述待执行命令。
21.根据权利要求15-20任一项所述的命令处理方法,其特征在于,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器确定与当前时间片对应的目标缓存中是否存在待执行命令;
在所述当前时间片对应的目标缓存中未存在待执行命令的情况下,从所述主机获取待执行命令。
22.根据权利要求21所述的命令处理方法,其特征在于,所述微控制器在当前时间片到达后获取待执行命令,包括:所述微控制器所述当前时间片对应的目标缓存中存在所述待执行命令的情况下,从所述目标缓存中读取所述待执行命令。
23.根据权利要求15-22任一项所述的命令处理方法,其特征在于,还包括:所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识;
所述微控制器在接收到所述运算单元上报的所述第二处理块标识后,基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新。
24.根据权利要求23所述的命令处理方法,其特征在于,所述运算单元在当前时间片结束后,向所述微控制器上报最近执行完的处理块对应的第二处理块标识,包括:所述运算单元将当前正在执行的处理块对应的处理任务执行完毕后,将所述当前正在执行的处理块作为所述最近执行完的处理块,并向所述微控制器上报所述最近执行完的处理块对应的第二处理块标识。
25.根据权利要求23或24所述的命令处理方法,其特征在于,还包括:所述运算单元将所述第二处理块标识发送给所述命令分发器;
所述命令分发器向所述微控制器发送所述第二处理块标识。
26.根据权利要求23-25任一项所述的命令处理方法,其特征在于,所述基于所述第二处理块标识,对所述命令队列中的待执行命令进行更新,包括:所述微控制器在所述第二处理块标识为所述多个处理块中最后一个处理块的处理块标识的情况下,将所述待执行命令从所述命令队列中删除;
在所述第二处理块标识并非所述多个处理块中最后一个命令块对应的处理块标识的情况下,基于所述第二处理块标识,确定目标处理块标识,并将待执行命令中的第一处理块标识替换为所述目标处理块标识,生成新的待执行命令;
其中,所述目标处理块标识为所述最近执行完的处理块的下一处理块对应的处理块标识。
27.根据权利要求26所述的命令处理方法,其特征在于,还包括:所述微控制器在生成所述新的待执行命令后,将所述新的待执行命令存储至与所述待执行命令对应的目标缓存中。
28.一种命令处理方法,其特征在于,应用于命令处理装置,所述命令处理装置包括:微控制器、及运算单元;
所述命令处理方法包括:
所述运算单元响应于当前时间片结束,向所述微控制器上报在该当前时间片执行的目标命令的当前处理块的第一处理块标识;其中,所述当前处理块为所述目标命令中至少一个处理块中任一处理块;
所述微控制器接收到所述运算单元上报的第一处理块标识后,利用所述第一处理块标识更新所述目标命令。
29.一种电子设备,其特征在于,包括主机、缓冲器,以及命令处理装置;
所述主机用于下发待执行命令,并存储于所述缓冲器;
所述命令处理装置用于执行权利要求15至27任一项所述的命令处理方法,或者执行权利要求28所述的命令处理方法。
30.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被微控制器、运算单元执行时实现权利要求15至27任一项所述的命令处理方法,或者执行权利要求28所述的命令处理方法。
CN202110130200.9A 2021-01-29 2021-01-29 命令处理装置、方法、电子设备以及计算机可读存储介质 Pending CN114816777A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110130200.9A CN114816777A (zh) 2021-01-29 2021-01-29 命令处理装置、方法、电子设备以及计算机可读存储介质
PCT/CN2021/108430 WO2022160628A1 (zh) 2021-01-29 2021-07-26 命令处理装置、方法、电子设备以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110130200.9A CN114816777A (zh) 2021-01-29 2021-01-29 命令处理装置、方法、电子设备以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114816777A true CN114816777A (zh) 2022-07-29

Family

ID=82526771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110130200.9A Pending CN114816777A (zh) 2021-01-29 2021-01-29 命令处理装置、方法、电子设备以及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN114816777A (zh)
WO (1) WO2022160628A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878521A (zh) * 2023-01-17 2023-03-31 北京象帝先计算技术有限公司 命令处理系统、电子装置及电子设备
CN116521376A (zh) * 2023-06-29 2023-08-01 南京砺算科技有限公司 物理显卡的资源调度方法及装置、存储介质、终端

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120229481A1 (en) * 2010-12-13 2012-09-13 Ati Technologies Ulc Accessibility of graphics processing compute resources
US10387992B2 (en) * 2017-04-07 2019-08-20 Intel Corporation Apparatus and method for dynamic provisioning, quality of service, and prioritization in a graphics processor
CN110083388B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用于调度的处理系统及其访存方法
CN110046053B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用以分配任务的处理系统及其访存方法
CN111708639A (zh) * 2020-06-22 2020-09-25 中国科学技术大学 任务调度系统及方法、存储介质及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878521A (zh) * 2023-01-17 2023-03-31 北京象帝先计算技术有限公司 命令处理系统、电子装置及电子设备
CN116521376A (zh) * 2023-06-29 2023-08-01 南京砺算科技有限公司 物理显卡的资源调度方法及装置、存储介质、终端
CN116521376B (zh) * 2023-06-29 2023-11-21 南京砺算科技有限公司 物理显卡的资源调度方法及装置、存储介质、终端

Also Published As

Publication number Publication date
WO2022160628A1 (zh) 2022-08-04

Similar Documents

Publication Publication Date Title
US11550627B2 (en) Hardware accelerated dynamic work creation on a graphics processing unit
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
WO2006059543A1 (ja) スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
CN108351783A (zh) 多核数字信号处理系统中处理任务的方法和装置
KR20090080753A (ko) 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치
US9471387B2 (en) Scheduling in job execution
JP5660149B2 (ja) 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
CN114816777A (zh) 命令处理装置、方法、电子设备以及计算机可读存储介质
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
US20140259022A1 (en) Apparatus and method for managing heterogeneous multi-core processor system
CN114637536A (zh) 任务处理方法、计算协处理器、芯片及计算机设备
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
CN110245024B (zh) 静态存储块的动态分配系统及其方法
CN107528871B (zh) 存储系统中的数据分析
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
Markthub et al. Using rcuda to reduce gpu resource-assignment fragmentation caused by job scheduler
CN110955461A (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
CN116382844A (zh) 一种分布式存储多异步任务动态控制方法及系统
CN113032154B (zh) 一种虚拟cpu的调度方法、装置、电子设备及存储介质
JP5238876B2 (ja) 情報処理装置及び情報処理方法
CN114637594A (zh) 多核处理设备、任务分配方法、装置及存储介质
CN113268356A (zh) 基于LINUX系统的多GPU板卡bounding的系统、方法及介质
CN112114967A (zh) 一种基于服务优先级的gpu资源预留方法
CN113076180A (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