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

数据处理方法、装置、电子设备和存储介质与流程

2022-02-20 13:36:52 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种数据处理方法、一种数据处理装置、一种电子设备和一种存储介质。


背景技术:

2.异构计算(heterogeneous computing)技术是一种使计算任务的并行性类型与机器能有效支持的计算类型相匹配、能充分利用各种计算资源的并行和分布计算技术。
3.一种现有的异构计算系统包括主机cpu和加速器(或称加速芯片),在进行数据处理之前,主机cpu与加速器之间进行握手(handshake),以进行加速器的配置。其中,握手也可称为交握,握手是在通信电路建立之后,信息传输开始之前,用于达成参数,如信息传输率,字母表,奇偶校验,中断过程,和其他协议特性。通过主机cpu与加速器之间的握手,来对加速器进行配置。主机cpu还可控制配置好的加速器完成数据的加速处理。
4.但是采用这种方案,主机cpu需要对多个加速器进行配置,并控制多个加速器进行数据的处理,在数据处理量大的情况下,主机cpu需要完成复杂的控制,系统的稳定性差。


技术实现要素:

5.本技术实施例提供了一种数据处理方法,以提高处理效率。
6.相应的,本技术实施例还提供了一种数据处理装置、一种电子设备和一种存储介质,用以保证上述系统的实现及应用。
7.为了解决上述问题,本技术实施例公开了一种数据处理方法,所述方法包括:建立第一计算设备与第二计算设备之间的连接;所述第二计算设备接收所述第一计算设备传输的配置参数,并依据所述第二计算设备对加速器进行配置;所述第一计算设备将待处理数据发送到存取存储器的数据缓存中,并发送数据写入消息给第二计算设备,以便配置好的加速器对所述待处理数据进行处理;加速器将处理结果发送到存取存储器的结果缓存后,所述第二计算设备发送结果写入消息给所述第一计算设备,以便所述第一计算设备依据所述结果写入消息获取所述处理结果。
8.本技术实施例还公开了一种数据处理装置,所述装置包括:第一计算设备和第二计算设备,其中,第一计算设备与第二计算设备建立连接;所述第二计算设备,接收所述第一计算设备传输的配置参数,以对加速器进行配置,并接收所述第一计算设备发送的数据写入消息,以便配置好的加速器对所述第一计算设备发送到存取存储器的数据缓存的待处理数据进行处理,以将处理结果发送到存取存储器的结果缓存中,并发送结果写入消息给所述第一计算设备,以便所述第一计算设备依据所述结果写入消息获取所述处理结果。
9.本技术实施例还公开了一种电子设备,包括:处理器,和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本技术实施例中一个或多个所述的方法。
10.本技术实施例还公开了一个或多个机器可读介质,其上存储有可执行代码,当所
述可执行代码被执行时,使得处理器执行如本技术实施例中一个或多个所述的方法。
11.与现有技术相比,本技术实施例包括以下优点:
12.在本技术实施例中,建立第一计算设备和第二计算设备的连接,第一计算设备向第二计算设备传输配置参数,通过第二计算设备对加速器进行配置,之后第一计算设备将待处理数据发送到存取存储器的数据缓存中,并发送数据写入消息给第二计算设备,第二计算设备将数据写入消息发送给加速器,使得加速器依据数据写入消息获取存取存储器的数据缓存中的待处理数据,并对待处理数据进行处理,然后加速器将处理结果发送到存取存储器的结果缓存中,并通过第二计算设备发送结果写入消息给第一计算设备,以便第一计算设备依据所述结果写入消息获取处理结果;本技术实施例,能够通过第二计算设备配置加速器,以及依据第一计算设备和第二计算设备之间的消息交互,通过第二计算设备使得配置好的加速器进行数据处理,减小了第一计算设备的控制压力,能够提高数据的处理效率。
附图说明
13.图1是本技术一个实施例的数据处理方法的流程示意图;
14.图2a是本技术一个实施例的数据处理系统的结构示意图;
15.图2b是本技术另一个实施例的数据处理系统的结构示意图;
16.图3是本技术另一个实施例的数据处理方法的流程示意图;
17.图4是本技术再一个实施例的数据处理方法的流程示意图;
18.图5是本技术一个实施例的数据处理装置的结构示意图;
19.图6是本技术一个实施例的示例性装置的结构示意图。
具体实施方式
20.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
21.本技术实施例可以应用在基于异构计算进行数据处理的领域,异构计算主要指不同类型的指令集和体系架构的计算单元组成的系统计算方式。基于异构计算进行数据处理的领域可以包括高效率视频编码(high efficiency video coding,hevc)领域、人工智能领域和语音合成等领域。
22.本技术实施例公开了一种数据处理系统,如图2a所示,该系统包括:第一计算设备、第二计算设备和加速器(accelerators),第一计算设备用于为第二计算设备分配加速任务;第二计算设备用于与第一计算设备进行通信,以接收加速任务并调度给加速器。加速器用于对数据进行加速处理。其中,第一计算设备可以包括主机cpu,第二计算设备可以包括片上(system on chip,soc)cpu。下面以第一计算设备为主机cpu,第二计算设备为片上cpu为例,对数据处理系统进行描述,主机cpu用于为片上cpu分配加速任务;片上cpu用于与主机cpu进行通信,以接收加速任务并调度给加速器。加速器还可称为加速芯片,加速器用于对数据进行加速处理,加速器可以包括通用图形处理器(general-purpose computing on graphics processing units,gpgpu)和通用数字信号处理(general-purpose computing digital signal processing,gpdsp)设备等。
23.具体的,第一计算设备、第二计算设备和加速器均可集成为芯片,插在主板上,通过pcie桥(peripheral component interconnect express bridge)连接通信,例如片上cpu可以为包括cpu和控制器的系统级的芯片,主机cpu的芯片和片上cpu的芯片可以插接主板上,使得主机cpu可以通过pcie桥与片上cpu进行连接,以进行主机cpu与加速器之间的通信。主机cpu可以通过pcie桥、直接存储器访问(direct memoryaccess,dma)连接网络和片上互连(chip interconnect)的通路向动态随机存取存储器(dynamic randomaccess memory,dram)进行通信,以写入待处理数据以及获取处理结果。片上cpu可以通过片上互联网络对加速器进行控制和管理。加速器可以通过片上互联网络与dram进行通信,以获取待处理数据和写入处理结果。
24.另外,在一个可选的实施例中,在加速任务的数据量小的情况下,dram还可为静态随机存取存储器(static random-access memory,sram)。
25.本技术实施例中,主机cpu可以将待处理数据调度给dram,并通知片上cpu,片上cpu根据通知,使得加速器获取待处理数据并进行处理。然后,加速器可以通过dram将处理结果返回给主机cpu。本技术实施例中,主机cpu不直接与加速器进行握手,而是通过片上cpu与加速器进行握手,能够利用片上cpu对加速器进行配置和控制,能够更稳定的进行数据处理,并能有效降低加速器的控制延时,更高效的进行数据的处理。
26.具体的,在数据处理过程中,主机cpu和片上cpu除了需要通过dram进行数据的通信之外,还需要进行指令、参数和消息等小格式的消息的通信,如图2b所示,主机cpu和片上cpu之间可以通过存储器进行指令、参数和消息的通信。其中,通过在存储器上进行指令的通信,能够完成加速器的启动、确定加速器的配置状态。通过在存储器上进行配置参数的通信,能够进行加速器的配置。通过在存储器上进行消息的通信,能够将主机cpu的待处理数据的写入消息传输给片上cpu、将加速器的处理结果的写入消息返回给主机cpu,其中,数据接收方可以依据写入消息,从dram中获取对应的数据(待处理数据或处理结果)。
27.在实际处理过程中,指令通常为小规模的数据,配置参数通常为大规模的静态数据,该静态数据可以理解为在一个加速任务中通常不会随运行而改变的数据,消息通常为大规模的动态数据,该动态数据可以理解为在一个加速任务中会变化的数据,因此,为了传输小规模的指令、大规模静态数据和大规模的动态数据,在一个可选的实施例中,存储器可以包括第一存储器、第二存储器和第三存储器。第一存储器还可以称为指令存储器,第一存储器用于指令的通信,通过指令的通信,能够完成加速器的启动、以及确定加速器的配置状态。在一个可选的示例中,在指令的数据量偏小的情况下,第一存储器可以为寄存器(register);在另一个可选的示例中,在指令的数据量偏大的情况下,第一存储器可以依据片上cpu的sram实现。第二存储器还可以称为参数存储器、共享缓存(share memory)等。第二存储器用于静态的配置参数的通信,静态的配置参数用于对加速器进行配置。在一个可选的示例中,在静态参数的规模偏大的情况下,第二存储器可以依据外部的dram;在静态参数的规模偏小的情况下,第二存储器可以依据片上cpu的sram实现。第三存储器还可以称为消息存储器、消息缓存(message buffer)等。第三存储器用于消息的通信,主要承载了单个加速任务中动态信息,比如单笔输入数据(如待处理数据)/输出数据(如处理结果)的写入消息(描述符)。
28.本技术实施例公开了基于主机cpu和片上cpu通信,实现加速器的加速处理过程,
可以划分为四个阶段,包括:任务建立阶段、任务执行阶段、加速器清空阶段和任务终止阶段。具体的,在任务建立阶段中,主机cpu通过片上cpu与加速器进行握手,以完成加速器的配置。在任务执行阶段中,加速器对待处理数据进行加速处理,并向主机cpu返回处理结果。在加速器清空阶段中,主机cpu将待处理数据传输完毕的情况下,片上cpu告知加速器清空已传输的待处理数据。在任务终止阶段中,主机cpu接收完毕处理结果,通过片上cpu将加速器清空并关闭。
29.任务建立阶段:
30.步骤102、建立第一计算设备与第二计算设备之间的连接。
31.在主机cpu确定了加速任务之后,主机cpu可以筛选出空闲状态的片上cpu,并建立主机cpu与片上cpu之间的连接。具体的,片上cpu在加速器启动之后,可以在第一存储器中写入空闲指令(idle),空闲指令表征片上cpu处在空闲状态,已准备好接收加速任务。在一个可选的实施例中,第一计算设备确定第二计算设备的空闲状态;建立第一计算设备与空闲的第二计算设备之间的连接。主机cpu可以监控第一存储器中的空闲指令,在监控到空闲指令的情况下,确定片上cpu处在空闲状态,主机cpu建立与空闲的片上cpu之间的连接。
32.主机cpu与空闲的片上cpu之间建立连接之后,主机cpu可以在第二存储器中写入配置参数。
33.步骤104、所述片上cpu接收所述主机cpu传输的配置参数,并依据所述第二计算设备对加速器进行配置。
34.主机cpu在第二存储器写入了配置参数之后,可以向第一存储器写入建立指令(start),建立指令用于通知片上cpu可以开始加速器的配置。在一个可选的实施例中,第二计算设备可以监控第一存储器中由第一计算设备写入的建立指令;在监控到建立指令的情况下,第二计算设备可以从第二存储器中获取由第一计算设备写入的配置参数,并对加速器进行配置。
35.在任务执行阶段:
36.步骤106、第一计算设备将待处理数据发送到存取存储器的数据缓存中,并发送数据写入消息给第二计算设备,以便配置好的加速器对所述待处理数据进行处理。
37.主机cpu和片上cpu之间可以通过存取存储器(如dram)来完成待处理数据的传输。在一个可选的实施例中,在加速器配置完成的情况下,第一计算设备将待处理数据传输给存取存储器的数据缓存。在加速器完成配置之后,片上cpu可以向第一存储器写入配置完成指令(init),配置完成指令用于通知主机cpu已经配置完成,能够进行数据的处理。主机cpu可以监控第一存储器中的配置完成指令,来确定加速器是否配置完成,并在监控到配置完成指令的情况下,主机cpu可以通过存取存储器的数据缓存将待处理数据传输给加速器。然后加速器对待处理数据进行处理。
38.主机cpu将待处理数据写入到存取存储器的数据缓存之后,可以通过第三存储器来传输数据写入消息给片上cpu,以便加速器获取数据写入消息对应的待处理数据。具体的,在一个可选的实施例中,所述发送数据写入消息给第二计算设备,以便配置好的加速器对所述待处理数据进行处理,包括:所述第一计算设备向第三存储器写入数据写入消息;所述第二计算设备从第三存储器中获取所述数据写入消息,以使得配置好的加速器从所述存取存储器中的数据缓存中获取所述待处理数据,并进行处理。存取存储器包括多个缓存,如
多个数据缓存和多个结果缓存,数据缓存用于存储待处理数据,结果缓存用于存储处理结果。在存储待处理数据和处理结果时,可以依据数据缓存和结果缓存的缓存状态,调用对应的缓存对数据进行存储。其中,在进行数据存储的过程中,可以一次申请一个缓存以进行数据的存储;也可以一次申请多个缓存以进行数据的存储。在任务开始之前,在主机cpu的一侧可以设置数据缓存管理器,数据缓存管理器用于管理存取存储器中用于存储待处理数据的数据缓存的缓存状态,主机cpu可以根据数据缓存的缓存状态,确定能够存储待处理数据的目标数据缓存。在一个可选的实施例中,所述第一计算设备获取所述存取存储器的数据缓存的缓存状态,并依据所述缓存状态,确定目标数据缓存,以存储待处理数据;所述第一计算设备获取所述存取存储器的数据缓存的缓存状态,并依据所述缓存状态,确定目标数据缓存,以存储待处理数据。主机cpu将待处理数据存储到目标数据缓存之后,可以以参数的形式将该目标数据缓存的地址添加到数据写入消息(reserve in)中,之后将数据写入消息(reserve in)写入到第三存储器。片上cpu从第三存储器中读取数据写入消息(reserve in),并告知加速器,使得加速器依据数据写入消息(reserve in)从目标数据缓存读取待处理数据。
39.加速器清空阶段:
40.主机cpu在将加速任务的待处理数据写入到存取存储器之后,可以向第三存储器中写入数据传输完毕消息(flush),以通知片上cpu完成存取存储器中的数据的处理。在一个可选的实施例中,在第一计算设备完成数据的传输的情况下,配置好的加速器处理所述存取存储器的数据缓存中的剩余数据。片上cpu在监控到第三存储器中的数据传输完毕消息(flush)之后,通知加速器完成存取存储器中剩余的待处理数据的处理,并不再等待新的待处理数据。
41.步骤108、加速器将处理结果发送到存取存储器的结果缓存后,所述第二计算设备发送结果写入消息给所述第一计算设备,以便所述第一计算设备依据所述结果写入消息获取所述处理结果。
42.在配置好的加速器对待处理数据进行处理之后,片上cpu可以申请存取存储器的结果缓存,并向加速器告知结果缓存的分配信息,使得加速器将处理结果传输给存取存储器的结果缓存,并向第一计算设备发送结果写入消息,第一计算设备可以依据结果写入消息,从存取存储器的结果缓存中获取处理结果。其中,结果写入消息可以通过第三存储器发送,在一个可选的实施例中,所述发送结果写入消息给所述第一计算设备,以便所述第一计算设备依据所述结果写入消息获取所述处理结果,包括:所述第二计算设备在第三存储器中写入所述结果写入消息;所述第一计算设备从所述第三存储器中获取所述结果写入消息,以从存取存储器的结果缓存中获取所述处理结果。在片上cpu一侧可以设置结果缓存管理器,结果缓存管理器用于管理存取存储器中用于存储处理结果的结果缓存的缓存状态,片上cpu可以根据结果缓存的缓存状态,确定能够存储处理结果的目标数据缓存。在一个可选的实施例中,所述第二计算设备获取所述存取存储器的结果缓存的缓存状态,并依据所述缓存状态,确定目标结果缓存,以存储处理结果。加速器将处理结果写入到目标结果缓存之后,片上cpu可以向第三存储器中写入结果写入消息(reserveout),结果写入消息包含目标结果缓存的地址,主机cpu从第三存储器中读取结果写入消息,以从目标结果缓存获取对应的处理结果。
43.在任务执行阶段中,为了释放存取存储器中缓存的数据,可以在数据被消费之后,释放存取存储器中的该数据。在一个可选的实施例中,在待处理数据中的目标待处理数据处理完毕的情况下,所述第一计算设备释放所述目标待处理数据对应的数据缓存;在所述第一计算设备对处理结果中的目标处理结果接收完毕的情况下,所述第二计算设备释放所述目标处理结果对应的结果缓存。在待处理数据被加速器进行处理之后,片上cpu可以向第三存储器中写入数据释放消息(releasein),主机cpu可以读取该数据释放消息,主机cpu根据该数据释放消息,可以修改数据缓存管理器中数据缓存的缓存状态,以使待处理数据对应的数据缓存释放,使该数据缓存能够存储后续的待处理数据。在一个示例中,主机cpu可以利用新的待处理数据覆盖该待处理数据,以释放数据缓存。在处理结果被主机cpu接收之后,主机cpu可以向第三存储器中写入结果释放消息(release out),片上cpu可以从第三存储器读取该结果释放消息,片上cpu可以根据该结果释放消息,修改结果缓存管理器中结果缓存的缓存状态,以使处理结果对应的结果缓存释放。在一个示例中,片上cpu可以利用新的处理结果来覆盖结果缓存内的处理结果。
44.在上述实施例中,通过任务的发送方主动申请缓存,以存储数据。本技术实施例除了可以通过该方式向存取存储器写入数据之外,还可以通过主机cpu来申请存储待处理数据和处理结果的缓存,具体的,在一个可选的实施例中,所述第一计算设备确定所述目标存储器的数据缓存和结果缓存的缓存状态,以依据缓存状态确定目标数据缓存和目标结果缓存,所述目标数据缓存用于存储待处理数据,所述目标结果缓存用于存储处理结果。在待处理数据发送之前,主机cpu可以申请待处理数据对应的数据缓存和处理结果对应的结果缓存,来确定数据缓存分配消息和结果缓存分配消息,主机cpu可以依据数据缓存分配消息来存储待处理数据,主机cpu可以利用第三存储器发送结果缓存分配消息给片上cpu,片上cpu可以根据结果缓存分配消息来存储处理结果。
45.通过主机cpu确定存取存储器的数据缓存和结果缓存的方式中,待处理数据和处理结果占用的缓存可以在主机cpu接收到处理结果之后,进行释放。在一个可选的实施例中,在所述第一计算设备对处理结果接收完毕的情况下,所述第一计算设备释放所述目标处理结果对应的结果缓存,并释放所述目标处理结果对应的待处理数据的数据缓存。在本实施例中,主机cpu通过存取存储器的数据缓存向加速器发送待处理数据,待处理数据经过加速器的加速处理之后,得到处理结果。然后加速器通过存取存储器的结果缓存将处理结果返回给主机cpu。主机cpu在接收到处理结果之后,释放所述目标处理结果对应的结果缓存和所述目标处理结果对应的待处理数据的数据缓存。相比于待处理数据消费后进行释放的方式,本技术实施例能够减少主机cpu和片上cpu之间的通信次数,能够更加简单的进行缓存的释放。
46.在任务终止阶段:
47.在主机cpu对加速任务对应的处理结果接收完毕之后,主机cpu还可向片上cpu发送通知消息,以通过片上cpu将加速器关闭。具体的,在一个可选的实施例中,在所述第一计算设备对处理结果接收完毕的情况下,所述第二计算设备关闭所述加速器,并向第一存储器写入空闲指令(idle),以接收建立指令,以便进行下一次数据处理。
48.主机cpu可以向片上cpu发送结果接收完毕指令(close),来通知处理结果的接收情况。具体的,在一个可选的实施例中,第一计算设备向第一存储器中写入结果接收完毕指
令,所述第二计算设备监控第一存储器中由所述第一计算设备写入的结果接收完毕指令,以确定所述第一计算设备对处理结果接收情况。在主机cpu对处理结果接收完毕的情况下,片上cpu可以清空加速器的数据,并关闭加速器。此时加速器对任务中的待处理数据处理完毕,处在空闲状态,片上cpu可以向第一存储器中写入空闲指令,以进行下一次任务的处理。
49.另外,为了使加速器能够在主机cpu发生异常的情况下对数据重新进行处理,在一个可选的实施例中,在满足预设条件的情况下,所述第一计算设备向第一存储器写入建立指令(start),所述预设条件包括第一计算设备数据写入异常、第一计算设备数据接收异常和第一计算设备异常退出中的至少一个。在数据处理过程中,主机cpu可能因意外导致异常退出、数据写入异常和数据接收异常中的一种情况。在该情况下,主机cpu可以通过重新在第一存储器中写入建立指令,使片上cpu清空加速器相关的数据,并重新对加速器进行配置,以重新完成数据的处理过程,便于异常恢复,能够提升整个系统的鲁棒性。
50.在本技术实施例中,建立主机cpu和片上cpu的连接,主机cpu向片上cpu传输配置参数,通过片上cpu对加速器进行配置,之后主机cpu将待处理数据发送到存取存储器的数据缓存中,并发送数据写入消息给片上cpu,加速器依据数据写入消息获取存取存储器的数据缓存中的待处理数据。并对待处理数据进行处理,然后加速器将处理结果发送到存取存储器的结果缓存中,并发送结果写入消息给主机cpu,以便主机cpu依据所述结果写入消息获取处理结果;本技术实施例,能够通过片上cpu配置加速器,以及依据主机cpu和片上cpu之间的消息交互,通过片上cpu使得配置好的加速器进行数据处理,减小了主机cpu的控制压力,能够更加稳定、更加快速的进行数据的处理。
51.在上述实施例的基础上,本技术实施例还提供一种数据处理方法,可以将加速任务的处理划分为以下四个阶段:任务建立阶段、任务执行阶段、加速器清空阶段和任务终止阶段。在本实施例中,第一计算设备可以包括主机cpu,第二计算设备可以包括片上cpu,主机cpu和片上cpu之间通过存储器和存取存储器进行通信,存储器用于进行指令、配置参数和消息的通信。存储器包括第一存储器、第二存储器和第三存储器。存取存储器用于进行待处理数据和处理结果的通信。
52.任务建立阶段包括:建立主机cpu与片上cpu之间的连接的过程和片上cpu对加速器进行配置的过程。具体的,如图3所示,任务的建立阶段包括:
53.步骤302、片上cpu向第一存储器写入空闲指令(idle)。在加速器启动或加速器对待处理数据处理完成之后,片上cpu可以向第一存储器写入空闲指令,以表征该加速器能够进行数据的处理。
54.步骤304、主机cpu可周期性的监控第一存储器中的空闲指令(idle),以确定加速器能够进行数据的处理。在第一存储器中存在空闲指令的情况下,确定加速器能够进行数据处理;在第一存储器中不存在空闲指令的情况下,确定加速器无法进行数据处理。
55.步骤306、主机cpu向第二存储器中写入配置参数,配置参数用于对加速器进行配置。
56.步骤308、主机cpu在向第二存储器中写入配置参数之后,主机cpu向第一存储器写入建立指令(start)。
57.步骤310、片上cpu可周期性的监控第一存储器中的建立指令(start)。
58.步骤312、在监控到建立指令的情况下,片上cpu从第二存储器中获取配置参数,以
对加速器进行配置。
59.步骤314、在加速器配置完成的情况下,片上cpu向第一存储器中写入配置完毕指令(init)。
60.步骤316、主机cpu周期性的监控第一存储器中的配置完毕指令(init)。在监控到配置完毕指令的情况下,主机cpu通过片上cpu与加速器完成握手,可以向加速器发送待处理数据,以进行数据的处理。
61.任务执行阶段包括:配置好的加速器对待处理数据进行处理的过程和将加速器的处理结果返回给主机cpu的过程。具体的,任务执行阶段包括:
62.步骤318、主机cpu在监控到第一存储器中的配置完毕指令的情况下,向存取存储器中写入待处理数据,并向第三存储器中写入数据写入消息(reservein),主机cpu可以依据数据缓存管理器,确定数据缓存的缓存状态,确定能够存储待处理数据的数据缓存。
63.步骤320、片上cpu从第三存储器中获取数据写入消息,以使得加速器获取数据写入消息对应的待处理数据,并进行处理。其中,主机cpu可以一次申请一个数据缓存来存储待处理数据,也可以一次申请多个缓存来存储多个待处理数据。因此,片上cpu可以在接收到一个数据写入消息的情况下,告知加速器,使得加速器进行数据的处理;片上cpu也可以在接收到多个数据写入消息的情况下,告知加速器,使得加速器进行数据的处理。
64.步骤322、片上cpu向第三存储器中写入数据释放消息(release in)。
65.步骤324、主机cpu从第三存储器中获取数据释放消息,以释放存储存储器中待处理数据对应的数据缓存。
66.步骤326、片上cpu向存取存储器写入待处理数据的处理结果,并向第三存储器中写入结果写入消息。片上cpu可以依据结果缓存管理器,确定结果缓存的缓存状态,确定能够存储处理结果的结果缓存。
67.步骤328、主机cpu从第三存储器中获取结果写入消息,以从存取存储器获取处理结果。
68.步骤330、主机cpu向第三存储器中写入结果释放消息(release out)。
69.步骤332、片上cpu从第三存储器中获取结果释放消息,以释放处理结果对应的结果缓存。
70.加速器清空阶段包括:主机cpu发送完毕待处理数据的过程和加速器对剩余数据的处理过程。具体的,加速器清空阶段包括:
71.步骤334、主机cpu在将任务的待处理数据全部写入到第三存储器之后,向第三存储器写入数据传输完毕消息(flush)。
72.步骤336、片上cpu获取数据传输完毕消息。片上cpu根据数据传输完毕消息,处理存取存储器中的剩余数据,并不再等待新数据。
73.步骤338、片上cpu将剩余数据的处理结果写入到存取存储器中,并在第三存储器中写入结果写入消息。
74.步骤340、主机cpu从第三存取器中获取结果写入消息,以从存取存储器获取处理结果。
75.步骤342、主机cpu向第三存储器中写入结果释放消息(release out)。
76.步骤344、片上cpu从第三存储器中获取结果释放消息,以释放处理结果对应的结
果缓存。
77.任务终止阶段可包括:主机cpu对处理消息接收完毕的过程和关闭加速器的过程。具体的,任务终止阶段包括:
78.步骤346、主机cpu在接收完毕任务的处理结果之后,向第一存储器写入结果接收完毕指令(close),以关闭加速器。
79.步骤348、片上cpu获取第一存储器中的结果接收完毕指令,并清空加速器中的数据,以及关闭加速器。
80.步骤350、片上cpu在关闭加速器之后,向第一存储器中写入空闲指令,以进行下一次数据处理。
81.在本技术实施例中,片上cpu在加速器的状态空闲的情况下,向第一存储器写入空闲指令(idle)。主机cpu根据空闲指令向第二存储器写入配置参数,并向第一存储器写入建立指令(start)。片上cpu根据建立指令从第二存储器中获取配置参数,以配置加速器。在加速器配置完成的情况下,片上cpu向第一存储器写入配置完毕指令(init)。主机cpu根据配置完毕指令,向存取存储器写入待处理数据。加速器从存取存储器获取待处理数据,并进行数据处理,得到处理结果。片上cpu将处理结果写入到存取存储器中。主机cpu从存取存储器获取处理结果。主机cpu在接收完毕任务的处理结果之后,主机cpu可以向第一存储器写入结果接收完毕指令(close),片上cpu根据结果接收完毕指令,关闭加速器,并向第一存储器写入空闲指令,以进行下一次数据处理。本技术实施例中,能够通过片上cpu配置加速器以及使得配置好的加速器进行数据处理,能够更加稳定的进行数据的处理。
82.在上述实施例的基础上,本技术还提供一种数据处理方法,本方法与上述实施例的数据处理方法区别在于任务执行阶段的不同。上述实施例在任务执行阶段中,在数据消费完毕后,通过主机cpu和片上cpu之间的消息交互,能够将数据进行释放,但是采用该方法,在主机cpu和片上cpu之间的消息量偏大,具体的,如图4所示,
83.任务建立阶段包括:
84.步骤402、片上cpu向交换层的第一存储器写入空闲指令(idle)。在加速器启动或加速器对待处理数据处理完成之后,片上cpu可以向第一存储器写入空闲指令,以表征该加速器能够进行数据的处理。
85.步骤404、主机cpu可周期性的监控第一存储器中的空闲指令(idle),以确定加速器能够进行数据的处理。在第一存储器中存在空闲指令的情况下,确定加速器能够进行数据处理;在第一存储器中不存在空闲指令的情况下,确定加速器无法进行数据处理。
86.步骤406、主机cpu向第二存储器中写入配置参数,配置参数用于对加速器进行配置。
87.步骤408、主机cpu在向第二存储器中写入配置参数之后,主机cpu向第一存储器写入建立指令(start)。
88.步骤410、片上cpu可周期性的监控第一存储器中的建立指令(start)。
89.步骤412、在监控到建立指令的情况下,片上cpu从第二存储器中获取配置参数,以对加速器进行配置。
90.步骤414、在加速器配置完成的情况下,片上cpu向第一存储器中写入配置完毕指令(init)。
91.步骤416、主机cpu周期性的监控第一存储器中的配置完毕指令(init)。在监控到配置完毕指令的情况下,主机cpu通过片上cpu与加速器完成握手,可以向片上cpu发送待处理数据,以进行数据的处理。
92.任务执行阶段包括:
93.步骤418、在监控到配置完毕指令的情况下,主机cpu向存取存储器写入待处理数据,并在第三存储器中写入数据写入以及结果缓存分配消息。其中,主机cpu依据数据缓存和结果缓存的缓存状态,确定能够存储待处理数据的数据缓存和能够存储处理结果的结果缓存,数据写入以及结果缓存分配消息可包括数据写入消息和结果缓存分配消息,片上cpu可以依据数据写入消息读取存取存储器中的待处理数据,片上cpu可以依据结果缓存分配消息将处理结果存入存取存储器中。
94.步骤420、片上cpu从第三存储器中读取数据写入以及结果缓存分配消息;片上cpu发送数据写入消息给加速器,使得加速器从存取存储器中获取待处理数据,并对待处理数据进行处理。
95.步骤422、片上cpu根据结果缓存分配消息向存取存储器中写入处理结果,并在第三存储器中写入结果写入消息。
96.步骤424、主机cpu从第三存储器中读取结果写入消息,以从存取存储器中获取处理结果。并释放存取存储器中缓存的处理结果和相关的待处理数据。
97.加速器清空阶段包括:
98.步骤426、主机cpu在将任务的待处理数据全部写入到第三存储器之后,向第三存储器写入数据传输完毕消息(flush)。
99.步骤428、片上cpu获取数据传输完毕消息。片上cpu根据数据传输完毕消息,处理存取存储器中的剩余数据,并不再等待新数据。
100.步骤430、片上cpu将剩余数据的处理结果写入到存取存储器中,并在第三存储器中写入结果写入消息。
101.步骤432、主机cpu从第三存取器中获取结果写入消息,以从存取存储器获取处理结果。
102.步骤434、主机cpu向第三存储器中写入结果释放消息(release out)。
103.步骤436、片上cpu从第三存储器中获取结果释放消息,以释放对应的处理结果。
104.任务终止阶段可包括:
105.步骤438、主机cpu在接收完毕任务的处理结果之后,向第一存储器写入结果接收完毕指令(close),以关闭加速器。
106.步骤440、片上cpu获取第一存储器中的结果接收完毕指令,并清空加速器中的数据,以及关闭加速器。
107.步骤442、片上cpu在关闭加速器之后,向第一存储器中写入空闲指令,以进行下一次数据处理。
108.本技术实施例中,在主机cpu接收到处理结果之后,主机cpu将存取存储器中缓存的待处理数据和处理结果释放,能够减少主机cpu和片上cpu之间的交互的消息量。本技术实施例中的其他阶段与上述实施例的处理方式类似,此处不再赘述。
109.本技术实施例中,第一计算设备可基于与第二计算设备的交互,实现对加速器的
配置和处理任务的传递,其中,有些场景中数据所需的缓存可随着执行过程申请,如上述图3的处理方式,而有些场景中可预先申请好所需的各缓存,如上述图4的处理方法。因此在一些可选实施例中,可基于上述不同缓存处理方式设置标签,从而能够根据应用场景选择不同的标签,基于不同的缓存方式处理数据。例如,在一些场景中,计算设备的运算能力较好,可采用如上述图3的方式,从而不占用过多的缓存。在另外一些场景中,如果存储器如dram的存储能力较好,可选择如图4的方式,将缓存和计算设备、加速器的处理绑定,处理过程更加简单、可靠。
110.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
111.在上述实施例的基础上,本实施例还提供了一种数据处理装置,如图5所示,具体可以包括:第一计算设备和第二计算设备,第一计算设备可以包括主机cpu,第二计算设备可以包括片上cpu,其中,第一计算设备与第二计算设备建立连接;
112.所述第二计算设备,接收所述第一计算设备传输的配置参数,以对加速器进行配置,并接收所述第一计算设备发送的数据写入消息,以便配置好的加速器对所述第一计算设备发送到存取存储器的数据缓存的待处理数据进行处理,以将处理结果发送到存取存储器的结果缓存中,并发送结果写入消息给所述第一计算设备,以便所述第一计算设备依据所述结果写入消息获取所述处理结果。
113.综上,本技术实施例中第一计算设备与第二计算设备的结构可与图2a所述的数据处理系统的结构类似,此处不再赘述,本技术实施例中,建立第一计算设备和第二计算设备的连接,第一计算设备向第二计算设备传输配置参数,通过第二计算设备对加速器进行配置,并利用第二计算设备使得配置好的加速器对第一计算设备传输的待处理数据进行处理,然后加速器将处理结果返回给第一计算设备;本技术实施例,能够通过第二计算设备配置加速器以及使得配置好的加速器进行数据处理,能够更加稳定的进行数据的处理。
114.在上述实施例的基础上,本实施例还提供了一种数据处理装置,具体可以包括:第一计算设备和第二计算设备,第一计算设备可包括主机cpu,第二计算设备可包括片上cpu,其中,第一计算设备与第二计算设备建立连接;
115.所述第二计算设备,接收第一计算设备传输的配置参数,以对加速器进行配置,并使得配置好的加速器对所述第一计算设备传输的待处理数据进行处理,以将处理结果发送给所述第一计算设备。
116.第一存储器,接收第二计算设备写入的空闲指令,以使第一计算设备依据所述空闲指令,确定第二计算设备的空闲状态,以建立第一计算设备与空闲的第二计算设备之间的连接。
117.第二存储器,接收第一计算设备写入的配置参数,以使第二计算设备依据所述配置参数对加速器进行配置。其中,第一存储器可接收第一计算设备写入的建立指令,以使第二计算设备在监控到建立指令的情况下,从第二存储器中获取配置参数。
118.存取存储器,接收第一计算设备传输的待处理数据,以将待处理数据传输给加速
器进行数据处理;接收加速器传输的处理结果,以将处理结果传输给第一计算设备。
119.第三存储器,接收第一计算设备写入的待处理数据对应的数据写入消息,以使加速器依据所述数据写入消息获取存取存储器的数据缓存中的待处理数据;接收第二计算设备写入的处理结果对应的结果写入消息,以使主机cpu依据所述结果写入消息获取存取存储器的结果缓存中的处理结果。另外,第三存储器还可接收第一计算设备写入的数据传输完毕消息,以使配置好的加速器处理存取存储器的数据缓存中的剩余数据。第一存储器还可接收第一计算设备写入的结果接收完毕指令,以使第二计算设备依据结果接收完毕指令关闭加速器并向第一存储器写入空闲指令。
120.在本技术实施例中,本技术实施例的装置结构与图2a所示的数据处理系统的结构类似,此处不再赘述。第二计算设备在加速器的状态空闲的情况下,向第一存储器写入空闲指令。第一计算设备根据空闲指令向第二存储器写入配置参数,并向第一存储器写入建立指令。第二计算设备根据建立指令从第二存储器中获取配置参数,以配置加速器。在加速器配置完成的情况下,第二计算设备向第一存储器写入配置完毕指令。第一计算设备根据配置完毕指令,向存取存储器写入待处理数据,使得加速器从存取存储器获取待处理数据,并进行数据处理,得到处理结果。第二计算设备将处理结果写入到存取存储器中。第一计算设备从存取存储器获取处理结果。第一计算设备在接收完毕任务的处理结果之后,第一计算设备可以向第一存储器写入结果接收完毕指令,第二计算设备根据结果接收完毕指令,关闭加速器,并向第一存储器写入空闲指令,以进行下一次数据处理。本技术实施例中,能够通过第二计算设备配置加速器以及使得配置好的加速器进行数据处理,能够更加稳定的进行数据的处理。
121.可选的,作为一个实施例,数据处理装置还包括:
122.数据缓存管理器,保存有存取存储器中数据缓存的缓存状态,以使第一计算设备依据所述数据缓存的缓存状态,确定目标数据缓存,以存储待处理数据。
123.结果缓存管理器,保存有存取存储器的结果缓存的缓存状态,以使第二计算设备依据所述结果缓存的缓存状态,确定目标结果缓存,以存储处理结果。
124.第三存储器还可接收第二计算设备传输的目标待处理数据对应的数据释放消息,以在待处理数据中的目标待处理数据处理完毕的情况下,释放所述目标待处理数据对应的数据缓存。
125.第三存储器还可接收第一计算设备传输的目标处理结果对应的结果释放消息,以在处理结果中的目标处理结果接收完毕的情况下,释放所述目标处理结果对应的结果缓存。
126.可选的,作为一个实施例,数据处理装置还包括:
127.数据缓存管理器,保存有存取存储器中数据缓存的缓存状态,以使第一计算设备依据所述数据缓存的缓存状态,确定目标数据缓存,以存储待处理数据。
128.结果缓存管理器,保存有存取存储器的结果缓存的缓存状态,以使第一计算设备依据所述结果缓存的缓存状态,确定目标结果缓存,以存储处理结果。
129.第三存储器可以接收第一计算设备传输的结果缓存分配消息,以使第二计算设备依据结果缓存分配消息将处理结果传输到存取存储器的结果缓存。
130.在本实施例中,第一计算设备通过存取存储器向第二计算设备发送待处理数据,
待处理数据经过加速器的加速处理之后,得到处理结果。然后加速器通过存取存储器将处理结果返回给第一计算设备。第一计算设备在接收到处理结果之后,对存取存储器中的待处理数据和处理结果进行释放。相比于待处理数据消费后进行释放的方式,本技术实施例能够减少第一计算设备和第二计算设备之间的通信次数,能够更加简单的进行缓存的释放。
131.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例中各方法步骤的指令(instructions)。
132.本技术实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本技术实施例中,所述电子设备包括服务器、终端设备等设备。
133.本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端等电子设备。图6示意性地示出了可被用于实现本技术中所述的各个实施例的示例性装置600。
134.对于一个实施例,图6示出了示例性装置600,该装置具有一个或多个处理器602、被耦合到(一个或多个)处理器602中的至少一个的控制模块(芯片组)604、被耦合到控制模块604的存储器606、被耦合到控制模块604的非易失性存储器(nvm)/存储设备608、被耦合到控制模块604的一个或多个输入/输出设备610,以及被耦合到控制模块604的网络接口612。
135.处理器602可包括一个或多个单核或多核处理器,处理器602可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。处理器602可包括第一计算设备和第二计算设备,如主机cpu和片上cpu。在一些实施例中,装置600能够作为本技术实施例中所述服务端、终端等设备。
136.在一些实施例中,装置600可包括具有指令614的一个或多个计算机可读介质(例如,存储器606或nvm/存储设备608)以及与该一个或多个计算机可读介质相合并被配置为执行指令614以实现模块从而执行本公开中所述的动作的一个或多个处理器602。
137.对于一个实施例,控制模块604可包括任意适当的接口控制器,以向(一个或多个)处理器602中的至少一个和/或与控制模块604通信的任意适当的设备或组件提供任意适当的接口。
138.控制模块604可包括存储器控制器模块,以向存储器606提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
139.存储器606可被用于例如为装置600加载和存储数据和/或指令614。对于一个实施例,存储器606可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器606可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。
140.对于一个实施例,控制模块604可包括一个或多个输入/输出控制器,以向nvm/存储设备608及(一个或多个)输入/输出设备610提供接口。
141.例如,nvm/存储设备608可被用于存储数据和/或指令614。nvm/存储设备608可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或
多个数字通用光盘(dvd)驱动器)。
142.nvm/存储设备608可包括作为装置600被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备608可通过网络经由(一个或多个)输入/输出设备610进行访问。
143.(一个或多个)输入/输出设备610可为装置600提供接口以与任意其他适当的设备通信,输入/输出设备610可以包括通信组件、音频组件、传感器组件等。网络接口612可为装置600提供接口以通过一个或多个网络通信,装置600可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。
144.对于一个实施例,(一个或多个)处理器602中的至少一个可与控制模块604的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器602中的至少一个可与控制模块604的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器602中的至少一个可与控制模块604的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器602中的至少一个可与控制模块604的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。
145.在各个实施例中,装置600可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置600可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置600包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
146.其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或nvm/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
147.本技术实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本技术实施例中一个或多个所述的方法。
148.本技术实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本技术实施例中一个或多个所述的方法。
149.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
150.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
151.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中
指定的功能的装置。
152.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
153.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
154.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
155.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
156.以上对本技术所提供的一种数据处理方法、一种数据处理装置、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献