CN113326221A - 数据处理装置、方法、芯片、计算机设备及存储介质 - Google Patents

数据处理装置、方法、芯片、计算机设备及存储介质 Download PDF

Info

Publication number
CN113326221A
CN113326221A CN202110739277.6A CN202110739277A CN113326221A CN 113326221 A CN113326221 A CN 113326221A CN 202110739277 A CN202110739277 A CN 202110739277A CN 113326221 A CN113326221 A CN 113326221A
Authority
CN
China
Prior art keywords
task
timing
atomic operation
data processing
processed
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.)
Granted
Application number
CN202110739277.6A
Other languages
English (en)
Other versions
CN113326221B (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.)
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 CN202110739277.6A priority Critical patent/CN113326221B/zh
Publication of CN113326221A publication Critical patent/CN113326221A/zh
Application granted granted Critical
Publication of CN113326221B publication Critical patent/CN113326221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本公开提供了一种数据处理装置、方法、芯片、计算机设备及存储介质,其中,该数据处理装置包括:控制器、同步计时器、以及任务处理器;控制器,用于响应于同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;任务处理器,用于响应于接收到控制器分发的待处理任务,执行待处理任务,并基于待处理任务的执行状态信息,更新同步计时器的计时。本公开实施例通过在数据处理装置中设置一同步计时器,并基于任务处理器与同步计时器之间的交互、控制器与同步计时器之间的交互,来实现任务同步,该数据处理装置的结构更加简单;且同步计时器所占据的芯片空间较小,能够有效减小数据处理装置的体积。

Description

数据处理装置、方法、芯片、计算机设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理装置、方法、芯片、计算机设备及存储介质。
背景技术
在深度学习领域,构建模型并利用大量数据优化模型参数是通用的方法。随着深度学习模型的不断发展,模型规模越来越大,模型参数越来越多。同时,用于训练模型的数据也越来越庞大。在此过程中,利用并行计算缩短模型训练时间是必然的选择。当前能够执行并行计算的人工智能(Artificial Intelligence,AI)芯片存在电路结构复杂的问题。
发明内容
本公开实施例至少提供一种数据处理装置、方法、芯片、计算机设备及存储介质。
第一方面,本公开实施例提供了一种数据处理装置,包括:控制器、同步计时器以及任务处理器;其中,所述控制器,用于响应于所述同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;所述任务处理器,用于响应于接收到所述控制器分发的所述待处理任务,执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时。
在上述方法中,通过在数据处理装置中设置一同步计时器,并基于任务处理器与同步计时器之间的交互、控制器与同步计时器之间的交互,来实现任务同步,该数据处理装置的结构更加简单;同时,同步计时器所占据的芯片空间,较之大量用于进行任务同步的寄存器所占据的芯片空间更小,因而能够有效减小数据处理装置的体积。
一种可选的实施方式中,所述执行状态信息包括:与所述待处理任务对应的操作链中的至少部分原子操作所需要的执行周期数;其中,所述操作链中包括:执行所述待处理任务所需要的各原子操作。
这样,可以在原子操作的粒度上精确确定待处理任务的执行周期,因而能够使得任务的分发具有更高的时钟控制精度,减少时间的空耗,提高处理效率。
一种可选的实施方式中,所述任务处理器,在执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时时,用于:基于所述待处理任务,生成所述操作链;按照各原子操作在所述操作链中的位置,依次执行所述操作链中的各原子操作,并在执行当前原子操作之前,响应于根据所述同步计时器的当前计时、以及所述当前原子操作对应的执行周期数,确定需要对所述同步计时器的计时进行更新,更新所述同步计时器的计时。
这样,将待处理任务拆分为至少一个原子操作,从而便于根据各原子操作对应的执行周期数,确定该待处理任务对应的执行周期数,降低了确定待处理任务对应的执行周期数的复杂度。
一种可选的实施方式中,所述任务处理器,还用于:将所述同步计时器的当前计时、以及当前待加入原子操作对应的执行周期数进行比对;在所述当前计时小于或等于所述当前待加入原子操作对应的执行周期数时,确定需要对所述同步计时器的计时进行更新。
一种可选的实施方式中,所述任务处理器,在更新所述同步计时器的计时时,用于:将所述当前待加入原子操作对应的执行周期数,作为所述同步计时器的计时更新后的结果,更新所述同步计时器的计时。
一种可选的实施方式中,所述任务处理器,在更新所述同步计时器的计时时,用于:计算所述同步计时器的当前计时、以及所述当前待加入原子操作对应的执行周期数的和值;基于所述和值,更新所述同步计时器的计时。
这样,能够减少不同任务处理器对同步计时器的更新次数,提升对同步计时器的更新效率。
一种可选的实施方式中,所述任务处理器还用于:基于所述原子操作的类型,确定所述原子操作所需要的执行周期数。
一种可选的实施方式中,所述任务处理器,在基于所述原子操作的类型,确定所述原子操作所需要的执行周期数时,用于:响应于所述原子操作的类型为第一类型,则从预设存储位置读取与所述原子操作对应的执行周期数;响应于所述原子操作的类型为第二类型,将预设执行周期数,确定为所述原子操作对应的执行周期数。
第二方面,本公开实施例还提供一种数据处理方法,应用于数据处理装置,所述数据处理装置包括:控制器、同步计时器以及任务处理器;所述数据处理方法包括:所述控制器,响应于所述同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;所述任务处理器,响应于接收到所述控制器分发的所述待处理任务,执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时。
一种可选的实施方式中,所述执行状态信息包括:与所述待处理任务对应的操作链中的至少部分原子操作所需要的执行周期数;其中,所述操作链包括:执行所述待处理任务所需要的各原子操作。
一种可选的实施方式中,所述任务处理器执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时,包括:基于所述待处理任务,生成所述操作链;按照各原子操作在所述操作链中的位置,依次执行所述操作链中的各原子操作,并在执行当前原子操作之前,响应于根据所述同步计时器的当前计时、以及所述当前原子操作对应的执行周期数,确定需要对所述同步计时器的计时进行更新,更新所述同步计时器的计时。
一种可选的实施方式中,所述数据处理方法还包括:所述任务处理器将所述同步计时器的当前计时、以及当前待加入原子操作对应的执行周期数进行比对;在所述当前计时小于或等于所述当前待加入原子操作对应的执行周期数时,确定需要对所述同步计时器的计时进行更新。
一种可选的实施方式中,所述任务处理器更新所述同步计时器的计时,包括:将所述当前待加入原子操作对应的执行周期数,作为所述同步计时器的计时更新后的结果,更新所述同步计时器的计时。
一种可选的实施方式中,所述任务处理器更新所述同步计时器的计时,包括:计算所述同步计时器的当前计时、以及所述当前待加入原子操作对应的执行周期数的和值;基于所述和值,更新所述同步计时器的计时。
一种可选的实施方式中,所述数据处理方法还包括:所述任务处理器基于所述原子操作的类型,确定所述原子操作所需要的执行周期数。
一种可选的实施方式中,所述任务处理器基于所述原子操作的类型,确定所述原子操作所需要的执行周期数,包括:响应于所述原子操作的类型为第一类型,则从预设存储位置读取与所述原子操作对应的执行周期数;响应于所述原子操作的类型为第二类型,将预设执行周期数,确定为所述原子操作对应的执行周期数。
第三方面,本公开可选实现方式还提供一种数据处理芯片,包括:如上述第一方面、或第一方面任一项所述的数据处理装置。
第四方面,本公开可选实现方式还提供一种计算机设备,包括:存储器和上述第一方面或第一方面任一项所述的数据处理装置、或上述第三方面所述的数据处理芯片。
第五方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
关于上述数据处理方法、芯片、计算机设备、及计算机可读存储介质的效果描述参见上述数据处理装置的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据处理装置的示意图;
图2示出了本公开实施例所提供的一种控制器、同步计时器以及任务处理器之间的交互流程图;
图3示出了本公开实施例所提供的一种数据处理方法的流程图;
图4示出了本公开实施例所提供的一种数据处理方法的具体实施过程的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,在数据的并行处理中,AI芯片包括控制器、以及多个任务处理器;控制器会将并行执行的多个任务下发至不同的任务处理器;多个任务处理器在接收到各自分别对应的任务后,并行对多个任务进行处理;在将任务处理完成后,向控制器上报处理结果;控制器在接收到所有任务处理器的上报结果后,再转入执行下一步处理。由于任务处理器无法直接向控制器传输信息,会将上报结果存储至一与该任务处理器对应的寄存器中;控制器通过读取该寄存器中存储的数据,以获得对应任务处理器对任务的处理进度;这导致了需要为每一个任务处理器设置一寄存器;在任务处理器较多的情况下,AI芯片内设置的寄存器数量也较多,而控制器需要与所有的寄存器均具有连接关系,造成AI芯片的电路结构复杂;且寄存器数量的增多,也会导致AI芯片体积的增加,造成AI芯片难以应用在对体积有限制的场景下。
基于上述研究,本公开提供了一种数据处理装置、方法、芯片、计算机设备及存储介质,通过在数据处理装置中设置一同步计时器,并基于任务处理器与同步计时器之间的交互、控制器与同步计时器之间的交互,来实现任务同步,该数据处理装置的结构更加简单;同时,同步计时器所占据的芯片空间,较之大量用于进行任务同步的寄存器所占据的芯片空间更小,因而能够有效减小数据处理装置的体积。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理装置进行详细介绍。
参见图1所示,为本公开实施例提供的一种数据处理装置10的示意图,所述数据处理装置包括:控制器11、同步计时器12以及至少一个任务处理器13(例如包括任务处理器13-1~任务处理器13-n),其中:
控制器11,用于响应于同步计时器12的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器13分发。
任务处理器13,用于响应于接收到控制器11分发的待处理任务,执行该待处理任务,并基于该待处理任务的执行状态信息,更新同步计时器12的计时。
在具体实施中,以将本公开实施例提供的数据处理装置用于神经网络训练的过程中为例,将神经网络训练过程中可以在时间上同时发生的计算分别交给不同的任务处理器13独立完成。待这些任务处理器13完成计算后,再整体转入下一步计算。
例如,将本公开实施例提供的数据处理装置应用于AI芯片,该AI芯片用于实现对神经网络的训练;多个并行执行的待处理任务例如包括对多个样本数据分别进行相同处理,对各样本数据进行处理,即视作一个待处理任务。在将多个样本数据处理完后,才可进行下一步训练过程。
任务处理器13也可以称为线程,其例如为AI芯片中的最小执行单元。
执行状态信息包括但不限于:与待处理任务对应的操作链中的至少部分原子操作所需要的执行周期数。
原子操作所需要的执行周期数包括:任务处理器13处理该原子操作所需要消耗的时钟周期数量,该时钟周期为计算机中最基本、最小的时间单位,为时钟脉冲的倒数,也可以称为振荡周期。
示例性的,分发至不同任务处理器13的各待处理任务并行执行,各待处理任务可以被分解为基本指令的集合。
该待处理任务对应的操作链中包括:执行待处理任务所需要的各原子操作;其中,原子操作可以包括至少一个基本指令的组合,用来表征不会被线程调度机制打断的操作,原子操作在运行过程中,一旦开始就会一直运行到结束;例如可以包括原子加操作、原子替换操作等中的至少一种;一般任一任务处理器根据指令执行原子加操作时,即该任务处理器对指定的外部存储器中的数据进行加法操作的过程中,外部存储器中的数据不会被其他任务处理器改写;此外,任一处理器根据指令,将指定的操作数写入指定的内部存储单元中,并获取内部存储单元中的数据的过程中,内部存储器中的数据不会被其他任务处理器改写。
同步计时器12用于对不同任务处理器13处理多个并行执行的待处理任务所需要的执行周期数进行计时,同步计时器12物理实现上可以为一个寄存器;预设数值用来表征同步计时器12的初始计时值,其根据实际需求设定,例如,将之设置为0,或根据需要设置的非0数值。其计数的数值,表征执行周期数。
同步计时器12的计时方法可以包括:
(1):减计时方法。
在同步计时器12的计时方法为减计时方法的情况下,同步计时器12的初始计时值可以为零或数值较小的非零正整数;随着时间的增加,同步计时器12的计数逐渐降低。
(2):加计时方法。
在同步计时器12的计时方法为加计时方法的情况下,同步计时器12的初始计时值可以为数值较大的非零正整数,随着时间的增加,同步计时器12的计数逐渐增加。
在具体实施时,控制器11可以实时从同步计时器12中获取同步计时器12的计时,当获取到的同步计时器12的计时达到预设数值时,确定与该同步计时器12进行数据交互的各任务处理器13中均不存在需要处理的任务,将多个并行执行的待处理任务分别分发至与该同步计时器12进行数据交互的不同的任务处理器13。
各任务处理器13在接收待处理任务后,将该待处理任务拆分为至少一个原子操作,生成操作链;按照各原子操作在操作链中的位置,依次执行操作链中的各原子操作,并在执行当前原子操作之前,从同步计时器12中获取同步计时器12的当前计时。
基于同步计时器12的当前计时、以及当前原子操作对应的执行周期数,确定是否需要对同步计时器12的计时进行更新。
在同步计时器12的计时方法为减计时的计时方法的情况下:
将同步计时器12的当前计时、与当前待加入原子操作对应的执行周期数进行比对,确定是否需要对同步计时器的计时进行更新;在确定需要对同步计时器12的计时进行更新时,更新同步计时器12的计时。
其中,当前原子操作可以包括至少一个当前待加入原子操作;当前待加入原子操作可以包括各任务处理器13即将执行的原子操作,例如包括待处理任务中的任一原子操作。
若当前计时大于当前待加入原子操作对应的执行周期,则确定不需要对同步计时器12的计时进行更新;若当前计时小于或等于当前待加入原子操作对应的执行周期数,则确定需要对同步计时器12的计时进行更新。
在对同步计时器12的计时进行更新时,可以将同步计时器12的当前计时、与当前待加入原子操作对应的执行周期数相加的和值,作为更新后的同步计时器12的计时。
另外,还可以将当前待加入原子操作对应的执行周期数,作为同步计时器的计时更新后的结果,更新同步计时器的计时。
在更新同步计时器12的计时之后,同步计时器12的计时随着时间的推移逐渐减少,直到减少到预设数值,则确定各任务处理器13将待处理任务执行完,控制器11即可确定将其他待处理任务分别分发至各任务处理器13进行下一步计算。
示例性的,若同步计时器的计时方法为减计时方法、且同步计时器的初始计时值为零,控制器当前从同步计时器获取到的当前计时为零,则将需要同步处理的待处理任务1、待处理任务2分别分发至任务处理器13-1、任务处理器13-2进行处理。
任务处理器13-1在接收到待处理任务1后,将该待处理任务拆分为原子操作a、原子操作b,并生成原子操作a→原子操作b的操作链;同时,任务处理器13-2在接收到待处理任务2后,将该待处理任务拆分为原子操作c、原子操作d,并生成原子操作c→原子操作d的操作链;任务处理器13-1按照原子操作a和原子操作b分别在原子操作a→原子操作b的操作链中的位置,先执行原子操作a再执行原子操作b;同理,任务处理器13-2按照原子操作c、原子操作d分别在原子操作c→原子操作d的操作链中的位置,先执行原子操作c再执行原子操作d。
若执行原子操作a所需要消耗的执行周期数为20、执行原子操作b所需要消耗的执行周期数为10、执行原子操作c所需要消耗的执行周期数为50、执行原子操作d所需要消耗的执行周期数为30;则在执行当前原子操作(即原子操作a和原子操作c)之前,任务处理器13-1和任务处理器13-2分别从同步计时器中获取当前计时零,由于当前计时小于原子操作a对应的执行周期数,则将原子操作1对应的执行周期数20与当前计时零相加,作为更新后的同步计时器的计时:20(表征20个执行周期,后续不再赘述);此时,将同步计时器的计时:20、与原子操作c对应的执行周期数进行比对,由于同步计时器的计时小于原子操作c对应的执行周期数,则将同步计时器的计时:20、与原子操作c对应的执行周期数相加之和,作为更新后的同步计时器的计时:20+50=70。
在同步计时器的计时更新后,任务处理器13-1执行原子操作a、且同时任务处理器13-2执行原子操作c;由于此时的同步计时器的计时为70,而原子操作a对应的执行周期数为20,所以任务处理器13-1执行完原子操作a后,同步计时器的计时为50;在任务处理器13-1执行原子操作b之前,获取同步计时器的当前计时:50,由于原子操作b的执行周期数为10,小于同步计时器的当前计时:50,则不需要对同步计时器的计时进行更新,任务处理器13-1直接执行原子操作b;同时,任务处理器13-2执行原子操作c,由于原子操作c对应的执行周期数为50,则在前30个执行周期中,任务处理器13-1执行原子操作a并执行原子操作b、且任务处理器13-2执行原子操作c;在任务处理器13-2执行完原子操作c时,同步计时器的计时为20;在任务处理器13-2执行原子操作d之前,获取同步计时器的当前计时:20,由于原子操作d的执行周期数为30,大于同步计时器的当前计时:20,则将同步计时器的计时:20、与原子操作d对应的执行周期数相加之和,作为更新后的同步计时器的计时:20+30=50。
在更新完同步计时器的计时之后,任务处理器13-2执行原子操作d,在执行完原子操作d之后,同步计时器的计时为:20;此时,需要等待同步计时器的计时消耗为初始计时值零之后,控制器才可以将其他多个需求同步执行的待处理任务分别分发至任务处理器13-1和任务处理器13-2。
在同步计时器12的计时方法为加计时的计时方法的情况下:
计算同步计时器12的当前计时、以及预设数值之间的第一差值;将第一差值和当前待加入原子操作对应的执行周期数进行比对;若第一差值小于当前待加入原子操作对应的执行周期数,则确定需要对同步计时器12的计时进行更新。
由于同步计时器12的初始计时值很大,则同步计时器12的当前计时远大于当前待加入原子操作对应的执行周期,将同步计时器12的当前计时、与当前待加入原子操作对应的执行周期数相减的第二差值,作为更新后的同步计时器12的计时。
同步计时器12的计时随着时间推移逐渐增加,直到增加到预设数值,则可以确定各任务处理器13将待处理任务执行完,控制器11即可确定将其他待处理任务分别分发至各任务处理器13进行下一步计算。
示例性的,若同步计时器的计时方法为加计时方法、且同步计时器的初始计时值为10000,控制器当前从同步计时器获取到的当前计时为10000,则将需要同步处理的待处理任务1、待处理任务2分别分发至任务处理器13-1、任务处理器13-2进行处理。
任务处理器13-1在接收到待处理任务1后,将该待处理任务拆分为原子操作a、原子操作b,并生成原子操作a→原子操作b的操作链;同时,任务处理器13-2在接收到待处理任务2后,将该待处理任务拆分为原子操作c、原子操作d,并生成原子操作c→原子操作d的操作链;任务处理器13-1按照原子操作a和原子操作b分别在原子操作a→原子操作b的操作链中的位置,先执行原子操作a再执行原子操作b;同理,任务处理器13-2按照原子操作c、原子操作d分别在原子操作c→原子操作d的操作链中的位置,先执行原子操作c再执行原子操作d。
若执行原子操作a所需要消耗的执行周期数为20、执行原子操作b所需要消耗的执行周期数为10、执行原子操作c所需要消耗的执行周期数为50、执行原子操作d所需要消耗的执行周期数为30;则在执行当前原子操作(即原子操作a和原子操作c)之前,任务处理器13-1和任务处理器13-2分别从同步计时器中获取当前计时10000,由于当前计时与初始计时值之间的第一差值为0,第一差值0小于原子操作a对应的执行周期数20,则将当前计时10000与原子操作a对应的执行周期数20相减的第二差值:9980,作为更新后的同步计时器的计时:9980(表征9980个执行周期,后续不再赘述);此时,将同步计时器的计时:9980与初始计时值10000之间的第一差值20、与原子操作c对应的执行周期数50进行比对,由于第一差值20小于原子操作c对应的执行周期数50,则将同步计时器的计时:9980、与原子操作c对应的执行周期数相减之间的第二差值:9930,作为更新后的同步计时器的计时:9930。
在同步计时器的计时更新后,任务处理器13-1执行原子操作a、且同时任务处理器13-2执行原子操作c;在任务处理器13-1执行原子操作a、以及任务处理器13-2执行原子操作c过程中,同步计时器的计时随着时间的增加而增加;在任务处理器13-1执行完原子操作a时,同步计时器的计时为9930+20=9950;此时,在任务处理器13-1执行原子操作b之前,获取同步计时器的当前计时:9950,由于当前计时9950、与初始计时值10000之间的第一差值50,大于原子操作b的执行周期数10,则不需要对同步计时器的计时进行更新,任务处理器13-1直接执行原子操作b;同时,任务处理器13-2执行原子操作c,由于原子操作c对应的执行周期数为50,则在30个执行周期中,任务处理器13-1执行原子操作a并执行原子操作b、且任务处理器13-2执行原子操作c;在任务处理器13-2执行完原子操作c后,同步计时器的计时为:9980;在任务处理器13-2执行原子操作d之前,获取同步计时器的当前计时:9980,由于当前计时9980与初始计时值10000之间的第一差值20、小于原子操作d的执行周期数30,则将同步计时器的当前计时:9980、与原子操作d对应的执行周期数30相减的第二差值9950,作为更新后的同步计时器的计时:9950。
在更新完同步计时器的计时之后,任务处理器13-2执行原子操作d,在执行原子操作d的过程中,同步计时器的计时随着时间的增加而增加,在执行完原子操作d时,同步计时器的计时为:9980;此时,需要等待同步计时器的计时随着时间增加到初始计时值10000之后,控制器才可以将其他多个需求同步执行的待处理任务分别分发至任务处理器13-1和任务处理器13-2。
本公开实施例中,在确定需要对同步计时器12的计时进行更新后,根据同步计时器12的当前计时、以及当前待加入原子操作对应的执行周期数之间的和值或差值,更新同步计时器12的计时;这种通过和值和差值的方式,更新同步计时器12的计时,能够减少不同任务处理器对同步计时器的更新次数,提升对同步计时器的更新效率。
示例性的,若任务处理器13-3即将要执行的当前原子操作为原子操作e、任务处理器13-4即将要执行的当前原子操作为原子操作f、任务处理器13-5即将要执行的当前原子操作为原子操作g、且原子操作e对应的执行周期数为5、原子操作f对应的执行周期数为7、原子操作g对应的执行周期数为6;若此时从同步计时器中获取的计时为0(表征0个执行周期,后续不再赘述),则首先将原子操作e对应的执行周期数5、与同步计时器的计时0相加,将和值作为更新后的同步计时器的计时:5;此时,将更新后的同步计时器的计时5与原子操作f对应的执行周期数7进行比较,由于更新后的同步计时器的计时5小于原子操作f对应的执行周期数7,即在前5个执行周期中,任务处理器13-4无法将原子操作f执行完,则将原子操作f对应的执行周期数7、与更新后同步计时器的计时5相加,将和值作为再次更新后的同步计时器的计时:12;此时,将更新后的同步计时器的计时12与原子操作g对应的执行周期数6进行比较,由于更新后的同步计时器的计时12大于原子操作g对应的执行周期数6,即在前12个执行周期中,任务处理器13-5能够将原子操作g执行完,则不需要再次更新同步计时器的计时;这里采用和值的方式,更新同步计时器的计时,能够减少不同任务处理器对同步计时器的更新次数,提升对同步计时器的更新效率。
示例性的,控制器11、同步计时器12、以及任务处理器13之间的交互流程图如图2所示,图2中示出控制器11与同步计时器12、以及任务处理器13之间的交互流程,即控制器11从同步计时器12中获取同步计时器12的当前计时,在确定获取到的当前计时达到预设数值时,将待处理任务1~待处理任务n分别分发至任务处理器13-1~任务处理器13-n;图2中还示出各任务处理器13与同步计时器12之间的交互流程,即各任务处理器在执行当前待加入原子操作之前,从同步计时器12中获取同步计时器12的当前计时,并根据同步计时器12的当前计时、以及当前待加入原子操作对应的执行周期数,确定需要对同步计时器12的计时进行更新,更新同步计时器12的计时。
在具体实施中,任务处理器13可以根据原子操作的类型,确定原子操作所需要的执行周期数;具体的,在原子操作的类型为第一类型的情况下,任务处理器13从预设存储位置读取与该原子操作对应的执行周期数;在原子操作的类型为第二类型的情况下,任务处理器13可以将预设执行周期数,确定为该原子操作对应的执行周期数。
其中,第一类型的原子操作可以包括:仅涉及数据处理装置内部各个器件之间的数据交互的操作,该第一类型的原子操作对应的执行周期数预先存储在预设存储位置;第二类型的原子操作可以包括:涉及与外部器件进行数据交互的操作,例如包括读取外部存储器中的数据的操作,该第二类型的原子操作由于涉及与外部数据的交互,因而无法准确预知执行该原子操作所需要的执行周期数,因此可以设置预设执行周期数作为该第二类型的原子操作对应的执行周期数;该预设执行周期数可以根据实际需要设定,此处不做限制,一般预设周期数大于任一第一类型的原子操作对应的执行周期数。
本公开实施例中,通过在数据处理装置中设置一同步计时器,并基于任务处理器与同步计时器之间的交互、控制器与同步计时器之间的交互,来实现任务同步,该数据处理装置的结构更加简单;同时,同步计时器所占据的芯片空间,较之大量用于进行任务同步的寄存器所占据的芯片空间更小,因而能够有效减小数据处理装置的体积。
基于同一发明构思,本公开实施例中还提供了与数据处理装置对应的数据处理方法,由于本公开实施例中的方法解决问题的原理与本公开实施例上述数据处理装置相似,因此方法的实施可以参见装置的实施,重复之处不再赘述。
参照图3所示,为本公开实施例的一种数据处理方法的流程图,所述数据处理方法应用于上述实施方式提供的数据处理装置,数据处理装置包括控制器、同步计时器以及任务处理器;所述数据处理方法包括:
S301、所述控制器,响应于所述同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;
S302、所述任务处理器,响应于接收到所述控制器分发的所述待处理任务,执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时。
本公开实施例中,通过在数据处理装置中设置一同步计时器,并基于任务处理器与同步计时器之间的交互、控制器与同步计时器之间的交互,来实现任务同步,该数据处理装置的结构更加简单;同时,同步计时器所占据的芯片空间,较之大量用于进行任务同步的寄存器所占据的芯片空间更小,因而能够有效减小数据处理装置的体积。
一种可选的实施方式中,所述执行状态信息包括:与所述待处理任务对应的操作链中的至少部分原子操作所需要的执行周期数;其中,所述操作链包括:执行所述待处理任务所需要的的各原子操作。
一种可选的实施方式中,所述任务处理器执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时,包括:基于所述待处理任务,生成所述操作链;按照各原子操作在所述操作链中的位置,依次执行所述操作链中的各原子操作,并在执行当前原子操作之前,响应于根据所述同步计时器的当前计时、以及所述当前原子操作对应的执行周期数,确定需要对所述同步计时器的计时进行更新,更新所述同步计时器的计时。
一种可选的实施方式中,所述数据处理方法还包括:所述任务处理器将所述同步计时器的当前计时、以及所述当前待加入原子操作对应的执行周期数进行比对;在所述当前计时小于或等于所述当前待加入原子操作对应的执行周期数时,确定需要对所述同步计时器的计时进行更新。
一种可选的实施方式中,所述任务处理器更新所述同步计时器的计时,包括:将所述当前待加入原子操作对应的执行周期数,作为所述同步计时器的计时更新后的结果,更新所述同步计时器的计时。
一种可选的实施方式中,所述任务处理器更新所述同步计时器的计时,包括:计算所述同步计时器的当前计时、以及当前待加入原子操作对应的执行周期数的和值;基于所述和值,更新所述同步计时器的计时。
一种可选的实施方式中,所述数据处理方法还包括:所述任务处理器基于所述原子操作的类型,确定所述原子操作所需要的执行周期数。
一种可选的实施方式中,所述任务处理器基于所述原子操作的类型,确定所述原子操作所需要的执行周期数,包括:响应于所述原子操作的类型为第一类型,则从预设存储位置读取与所述原子操作对应的执行周期数;响应于所述原子操作的类型为第二类型,将预设执行周期数,确定为所述原子操作对应的执行周期数。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
关于方法的处理流程可以参照上述装置实施例中的相关说明,这里不再详述。
图4示出本公开实施例提供的一种数据处理过程的具体实例,包括:
S401、控制器响应于同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发。
S402、各任务处理器响应于接收到控制器分发的待处理任务,基于待处理任务,生成由至少一个原子操作构成的操作链。
S403、各任务处理器在按照各原子操作在操作链中的位置,依次执行该操作链中的各原子操作;在执行当前原子操作之前,从同步计时器中获取同步计时器的当前计时。
S404、将各任务处理器将同步计时器的当前计时、与当前待加入原子操作对应的执行周期数进行比对,判断同步计时器的当前计时是否大于当前待加入原子操作对应的执行周期数。
S405、在确定同步计时器的当前计时大于当前待加入原子操作对应的执行周期数的情况下,不更新同步计时器的计时。
S406、在同步计时器的当前计时小于或等于当前待加入原子操作对应的执行周期的情况下,计算同步计时器的当前计时、以及当前待加入原子操作对应的执行周期数的和值。
S407:将和值作为同步计时器更新后的计数,使得同步计时器基于更新后的计数进行计时。
本公开实施例还提供了一种数据处理芯片,包括本公开实施例提供的数据处理装置。
本公开实施例还提供一种计算机设备,包括:存储器和本公开实施例提供的数据处理装置、或者包括如本公开实施例提供的数据处理芯片。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例提供的计算机设备可以包括手机等智能终端,或者也可以是其他可以用于进行数据处理的设备、服务器等,这里并不限制。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种数据处理装置,其特征在于,包括:控制器、同步计时器、以及任务处理器;
其中,所述控制器,用于响应于所述同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;
所述任务处理器,用于响应于接收到所述控制器分发的所述待处理任务,执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时。
2.根据权利要求1所述的数据处理装置,其特征在于,所述执行状态信息包括:与所述待处理任务对应的操作链中的至少部分原子操作所需要的执行周期数;
其中,所述操作链中包括:执行所述待处理任务所需要的各原子操作。
3.根据权利要1或2所述的数据处理装置,其特征在于,所述任务处理器,在执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时时,用于:
基于所述待处理任务,生成操作链;
按照各原子操作在所述操作链中的位置,依次执行所述操作链中的各原子操作,并在执行当前原子操作之前,响应于根据所述同步计时器的当前计时、以及所述当前原子操作对应的执行周期数,确定需要对所述同步计时器的计时进行更新,更新所述同步计时器的计时。
4.根据权利要求3所述的数据处理装置,其特征在于,所述任务处理器,还用于:将所述同步计时器的当前计时、以及当前待加入原子操作对应的执行周期数进行比对;
在所述当前计时小于或等于所述当前待加入原子操作对应的执行周期数时,确定需要对所述同步计时器的计时进行更新。
5.根据权利要求4所述的数据处理装置,其特征在于,所述任务处理器,在更新所述同步计时器的计时时,用于:
将所述当前待加入原子操作对应的执行周期数,作为所述同步计时器的计时更新后的结果,更新所述同步计时器的计时。
6.根据权利要求4或5所述的数据处理装置,其特征在于,所述任务处理器,在更新所述同步计时器的计时时,用于:
计算所述同步计时器的当前计时、以及所述当前待加入原子操作对应的执行周期数的和值;
基于所述和值,更新所述同步计时器的计时。
7.根据权利要求2-6任一项所述的数据处理装置,其特征在于,所述任务处理器还用于:基于所述原子操作的类型,确定所述原子操作所需要的执行周期数。
8.根据权利要求7所述的数据处理装置,其特征在于,所述任务处理器,在基于所述原子操作的类型,确定所述原子操作所需要的执行周期数时,用于:
响应于所述原子操作的类型为第一类型,则从预设存储位置读取与所述原子操作对应的执行周期数;
响应于所述原子操作的类型为第二类型,将预设执行周期数,确定为所述原子操作对应的执行周期数。
9.一种数据处理方法,其特征在于,应用于数据处理装置,所述数据处理装置包括:控制器、同步计时器以及任务处理器;所述数据处理方法包括:
所述控制器,响应于所述同步计时器的计时达到预设数值,将多个并行执行的待处理任务向不同任务处理器分发;
所述任务处理器,响应于接收到所述控制器分发的所述待处理任务,执行所述待处理任务,并基于所述待处理任务的执行状态信息,更新所述同步计时器的计时。
10.一种数据处理芯片,其特征在于,包括:如权利要求1-8任一项所述的数据处理装置。
11.一种计算机设备,其特征在于,包括:存储器和如权利要求1-8任一项所述的数据处理装置、或如权利要求10所述的数据处理芯片。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求9所述的数据处理方法的步骤。
CN202110739277.6A 2021-06-30 2021-06-30 数据处理装置、方法、芯片、计算机设备及存储介质 Active CN113326221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110739277.6A CN113326221B (zh) 2021-06-30 2021-06-30 数据处理装置、方法、芯片、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110739277.6A CN113326221B (zh) 2021-06-30 2021-06-30 数据处理装置、方法、芯片、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113326221A true CN113326221A (zh) 2021-08-31
CN113326221B CN113326221B (zh) 2024-03-22

Family

ID=77425283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110739277.6A Active CN113326221B (zh) 2021-06-30 2021-06-30 数据处理装置、方法、芯片、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113326221B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1089740A (zh) * 1992-12-23 1994-07-20 电子钟表中心有限公司 多任务处理低功率控制器
US20040153813A1 (en) * 2002-12-17 2004-08-05 Swoboda Gary L. Apparatus and method for synchronization of trace streams from multiple processors
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
TW201009713A (en) * 2008-08-21 2010-03-01 Ind Tech Res Inst Multitasking processor and task switch method thereof
CN102799212A (zh) * 2012-07-16 2012-11-28 中船重工(武汉)凌久电子有限责任公司 用于多核多处理器并行系统的全局时钟系统及其使用方法
CN103870350A (zh) * 2014-03-27 2014-06-18 浪潮电子信息产业股份有限公司 一种基于watchdog的微处理器多核加固方法
CN104156264A (zh) * 2014-08-01 2014-11-19 西北工业大学 一种基于多gpu的基带信号处理任务并行实时调度方法
CN105117281A (zh) * 2015-08-24 2015-12-02 哈尔滨工程大学 一种基于任务申请信号和处理器内核执行代价值的任务调度方法
CN107168778A (zh) * 2017-03-30 2017-09-15 联想(北京)有限公司 一种任务处理方法及任务处理装置
CN110300962A (zh) * 2017-02-16 2019-10-01 奥斯卡科技株式会社 处理器系统以及多处理器系统
CN112631982A (zh) * 2020-12-25 2021-04-09 清华大学 基于众核架构的数据交换方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1089740A (zh) * 1992-12-23 1994-07-20 电子钟表中心有限公司 多任务处理低功率控制器
US20040153813A1 (en) * 2002-12-17 2004-08-05 Swoboda Gary L. Apparatus and method for synchronization of trace streams from multiple processors
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
TW201009713A (en) * 2008-08-21 2010-03-01 Ind Tech Res Inst Multitasking processor and task switch method thereof
CN102799212A (zh) * 2012-07-16 2012-11-28 中船重工(武汉)凌久电子有限责任公司 用于多核多处理器并行系统的全局时钟系统及其使用方法
CN103870350A (zh) * 2014-03-27 2014-06-18 浪潮电子信息产业股份有限公司 一种基于watchdog的微处理器多核加固方法
CN104156264A (zh) * 2014-08-01 2014-11-19 西北工业大学 一种基于多gpu的基带信号处理任务并行实时调度方法
CN105117281A (zh) * 2015-08-24 2015-12-02 哈尔滨工程大学 一种基于任务申请信号和处理器内核执行代价值的任务调度方法
CN110300962A (zh) * 2017-02-16 2019-10-01 奥斯卡科技株式会社 处理器系统以及多处理器系统
CN107168778A (zh) * 2017-03-30 2017-09-15 联想(北京)有限公司 一种任务处理方法及任务处理装置
CN112631982A (zh) * 2020-12-25 2021-04-09 清华大学 基于众核架构的数据交换方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
史鸣飞;祝永新;: "基于性能计数器的多核处理器功耗估算", 微计算机信息, no. 23 *
肉仙古丽.艾合买提;: "多核处理器调度方法研究", 科技致富向导, no. 17 *

Also Published As

Publication number Publication date
CN113326221B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
US10180996B2 (en) Multi-component computational fluid dynamics simulations
CN114356578A (zh) 自然语言处理模型的并行计算方法、装置、设备及介质
EP2738675B1 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
CN111160560B (zh) 预估模拟量子计算所需资源的方法、系统
CN109597687A (zh) 数据同步的资源分配方法、装置、存储介质和电子设备
CN111563598B (zh) 预估量子计算模拟时间的方法、系统
CN114840322A (zh) 任务调度方法及装置、电子设备和存储
Shang et al. Slopes: hardware–software cosynthesis of low-power real-time distributed embedded systems with dynamically reconfigurable fpgas
CN105094949A (zh) 一种基于指令计算模型与反馈补偿的模拟方法与系统
CN113326221A (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
Kumar et al. Iterative probabilistic performance prediction for multi-application multiprocessor systems
CN114090219A (zh) 调度系统、方法、装置、芯片、计算机设备及存储介质
CN114298329A (zh) 一种模型训练方法、装置、设备及存储介质
Madougou et al. Using colored petri nets for GPGPU performance modeling
Wang et al. Optimal synthesis of communication procedures in real-time synchronous reactive models
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
US20200279199A1 (en) Generating a completion prediction of a task
Ye et al. Parallel program performance modeling for runtime optimization of multi-algorithm circuit simulation
Glimberg et al. Development of software components for heterogeneous many-core architectures
Cornelis et al. The pipeline performance model: a generic executable performance model for GPUs
Jensen et al. Predictive modeling of the performance of asynchronous iterative methods
Macchiarulo A massively parallel implementation of Gillespie algorithm on FPGAs
CN117807930A (zh) 芯片仿真方法、装置及设备
KR102408222B1 (ko) 전력 모델 증분 학습 방법 및 장치
Zheng et al. Hierarchical resampling architecture for distributed particle filters

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