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

数据处理方法、数据处理设备、加速卡和存储介质与流程

2021-11-30 21:49:00 来源:中国专利 TAG:


1.本技术涉及数据处理领域,尤其涉及一种数据处理方法、数据处理设备、加速卡和存储介质。


背景技术:

2.常见的加速处理器包括图形处理器、现场可编程门阵列芯片、张量处理器以及神经网络处理器等等,这些加速处理器可以集成在数据处理设备的加速卡上。当数据处理设备中的应用程序需要使用硬件加速时,可以调用加速卡进行加速计算。在实际应用场景中,应用程序的处理流程比较复杂,处理过程中可能会频繁调用加速卡进行加速计算;其中不合适调用加速卡进行加速的部分算法,只能使用数据处理设备中的处理器进行计算,从而数据需要在数据处理设备的处理器和加速卡之间来回搬运,极大的降低数据的处理效率。
3.因此,如何提高数据的处理效率成为亟需解决的问题。


技术实现要素:

4.本技术提供了一种数据处理方法、数据处理设备、加速卡和存储介质,通过将待处理数据中原本由数据处理设备中的处理器处理的第一类数据发送给加速卡中的协处理器进行处理,以及将待进行加速计算的第二类数据发送至加速卡中的加速处理器进行加速计算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高了数据的处理效率。
5.第一方面,本技术提供了一种数据处理方法,所述方法包括:
6.获取待处理数据,所述待处理数据包括待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据;
7.将所述待处理数据发送至加速卡,以使所述加速卡中的协处理器对所述第一类数据进行第一类处理,所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;
8.获取所述第一类数据对应的第一处理结果,以及获取所述第二类数据对应的第二处理结果。
9.第二方面,本技术还提供了一种数据处理方法,所述方法包括:
10.获取数据处理设备发送的第一类数据,以及获取所述数据处理设备发送的第二类数据;
11.调用加速卡中的协处理器对所述第一类数据进行第一类处理,以及调用所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;
12.将所述第一类数据对应的第一处理结果与所述第二类数据对应的第二处理结果返回至所述数据处理设备。
13.第三方面,本技术还提供了一种数据处理设备,所述数据处理设备包括存储器和处理器;
14.所述存储器,用于存储计算机程序;
15.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述数据处理设备对应的数据处理方法。
16.第四方面,本技术还提供了一种加速卡,所述加速卡包括存储器、加速处理器和协处理器;
17.所述存储器,用于存储计算机程序,其中,所述存储器设有共享内存,所述共享内存用于在所述数据处理设备与所述加速卡之间传递数据;
18.所述加速处理器,用于对第二类数据进行加速计算;
19.所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述加速卡对应的数据处理方法。
20.第五方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述数据处理设备对应的数据处理方法或加速卡对应的数据处理方法。
21.本技术公开了一种数据处理方法、数据处理设备、加速卡和存储介质,通过获取待处理数据,可以获得待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据;通过将待处理数据发送至加速卡,可以实现将待处理数据中原本由数据处理设备中的处理器处理的第一类数据发送给加速卡中的协处理器进行第一类处理,以及将待进行加速计算的第二类数据发送至加速卡中的加速处理器进行加速计算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高数据的处理效率。
附图说明
22.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是本技术实施例提供的一种数据处理设备的结构示意图;
24.图2是本技术实施例提供的一种加速卡的结构示意图;
25.图3是本技术实施例提供的一种数据处理方法的示意性流程图;
26.图4是本技术实施例提供的一种启动协处理器中的操作系统的示意性交互图;
27.图5是本技术实施例提供的一种将待处理数据发送至加速卡的子步骤的示意流程图;
28.图6是本技术实施例提供的另一种数据处理方法的示意性流程图;
29.图7是本技术实施例提供的一种软件架构与数据处理设备进行指令交互的示意性交互图。
具体实施方式
30.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本技术保护的范围。
31.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
32.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
33.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
34.本技术的实施例提供了一种数据处理方法、数据处理设备、加速卡和存储介质。其中,该数据处理方法可以应用数据处理设备中,实现通过将待处理数据中原本由数据处理设备中的处理器处理的第一类数据发送给加速卡中的协处理器进行处理,以及将待进行加速计算的第二类数据发送至加速卡中的加速处理器进行加速计算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运,有效提高数据的处理效率。
35.请参阅图1,图1是本技术实施例提供的一种数据处理设备的结构示意图。如图1所示,数据处理设备10可以包括处理器11和存储器12,其中处理器11以及存储器12可以通过总线连接,该总线比如为i2c(inter

integrated circuit)总线等任意适用的总线。
36.其中,存储器12可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器11执行数据处理设备10对应的数据处理方法。
37.其中,处理器11用于提供计算和控制能力,支撑整个数据处理设备10的运行。
38.其中,处理器11可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
39.在一实施例中,处理器11用于运行存储在存储器12中的计算机程序,并在执行计算机程序时实现如下步骤:
40.获取待处理数据,所述待处理数据包括待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据;将所述待处理数据发送至加速卡,以使所述加速卡中的协处理器对所述第一类数据进行第一类处理,所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;获取所述第一类数据对应的第一处理结果,以及获取所述第二类数据对应的第二处理结果。
41.在一个实施例中,处理器11在实现将所述待处理数据发送至加速卡之前,还用于实现:
42.控制所述加速卡启动所述协处理器中的操作系统。
43.在一个实施例中,处理器11在实现将所述待处理数据发送至加速卡时,用于实现:
44.当所述操作系统启动成功后,生成所述第一类数据对应的处理指令;将所述第一
类数据与所述处理指令发送至所述加速卡的共享内存,以使所述操作系统中的软件架构从所述共享内存中获取所述第一类数据与所述处理指令;将所述第二类数据发送至所述加速处理器。
45.在一个实施例中,处理器11在实现控制所述加速卡启动所述协处理器中的操作系统时,用于实现:
46.获取操作系统镜像文件;将所述操作系统镜像文件发送至所述共享内存,以及将所述操作系统镜像文件的启动标志信息写入所述共享内存,以使所述协处理器在检测到所述共享内存中的启动标志信息时,从所述共享内存中加载并运行所述操作系统镜像文件,所述操作系统镜像文件用于启动操作系统以及加载所述软件架构。
47.在一个实施例中,处理器11在实现将所述操作系统镜像文件发送至所述共享内存之后,还用于实现:
48.当接收到所述协处理器发送的中断通知时,根据所述中断通知查询所述共享内存是否存储有启动完成信息,所述中断通知与所述启动完成信息是加载所述软件架构后生成,所述中断通知用于通知所述数据处理设备所述软件架构加载完毕;当查询到所述启动完成信息时,确定所述操作系统启动成功。
49.请参阅图2,图2是本技术实施例提供的一种加速卡的结构示意图。如图2所示,加速卡20可以包括存储器21、加速处理器22和协处理器23,其中存储器21、加速处理器22以及协处理器23可以通过总线连接,该总线比如为i2c(inter

integrated circuit)总线等任意适用的总线。
50.其中,存储器21可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得协处理器23执行加速卡20对应的数据处理方法。
51.示例性的,存储器21设有共享内存,共享内存用于在数据处理设备10与加速卡20之间传递数据。
52.其中,协处理器23用于提供计算和控制能力,支撑整个加速卡20的运行。
53.其中,协处理器23可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
54.在一实施例中,协处理器23用于运行存储在存储器21中的计算机程序,并在执行计算机程序时实现如下步骤:
55.获取数据处理设备发送的第一类数据,以及获取所述数据处理设备发送的第二类数据;调用加速卡中的协处理器对所述第一类数据进行第一类处理,以及调用所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;将所述第一类数据对应的第一处理结果与所述第二类数据对应的第二处理结果返回至所述数据处理设备。
56.在一个实施例中,协处理器23在实现获取数据处理设备发送的第一类数据时,用
于实现:
57.当检测到所述共享内存中的启动标志信息时,从所述共享内存中加载并运行所述数据处理设备发送的操作系统镜像文件,所述操作系统镜像文件用于启动操作系统以及加载软件架构;若所述软件架构加载完毕,则生成中断通知和启动完成信息,并将所述启动完成信息写入所述共享内存;将所述中断通知发送至所述数据处理设备,以使所述数据处理设备查询到所述共享内存存在所述启动完成信息时,确定所述操作系统启动成功。
58.在一个实施例中,协处理器23安装有操作系统;协处理器23在实现获取数据处理设备发送的第一类数据时,用于实现:
59.调用所述操作系统中的软件架构检测所述加速卡的共享内存中是否存在处理指令;当检测到所述处理指令时,控制所述软件架构获取所述共享内存存储的所述第一类数据;其中,所述第一类数据与所述处理指令为所述数据处理设备在确定所述操作系统启动成功后发送至所述共享内存。
60.在一个实施例中,协处理器23在实现调用所述加速卡中的协处理器对所述第一类数据进行第一类处理之前,还用于实现:
61.调用所述软件架构创建并启动处理单元。
62.在一个实施例中,协处理器23在实现调用所述加速卡中的协处理器对所述第一类数据进行第一类处理时,用于实现:
63.将所述第一类数据与所述处理指令发送至所述处理单元,由所述处理单元根据所述处理指令对所述第一类数据进行处理,所述处理指令包括地址映射、算法模块加载以及算法执行中的至少一项。
64.请参阅图3,图3是本技术实施例提供的一种数据处理方法的示意性流程图。其中,该数据处理方法可以应用于数据处理设备中,实现通过将待处理数据中原本由数据处理设备中的处理器处理的第一类数据发送给加速卡中的协处理器进行处理,以及将待进行加速计算的第二类数据发送至加速卡中的加速处理器进行加速计算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运,有效提高数据的处理效率。
65.示例性的,数据处理设备可以是服务器或终端。其中,服务器可以为独立的服务器,也可以为服务器集群。终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。
66.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。如图3所示,数据处理方法包括步骤s101至步骤s103。
67.步骤s101、获取待处理数据,所述待处理数据包括待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据。
68.示例性的,待处理数据可以是数据处理设备中的应用程序需要处理的数据。其中,待处理数据可以存储在本地数据库或本地磁盘中,也可以存储在外部存储设备中。
69.在本技术实施例中,数据处理设备可以将待处理数据分成第一类数据和第二类数据。其中,第一类数据为不需要进行加速计算的数据,第二类数据为需要进行加速计算的数据。第一类处理是指除加速计算之外的常规处理,例如地址映射、算法模块加载以及算法执行等处理;第二类处理是指加速计算。
70.需要说明的是,本技术实施例提供的数据处理方法可以应用于异构计算场景中。可以理解的是,异构计算是指在异构计算系统上进行的并行计算。例如,在应用程序中的部分特定算法需要使用硬件加速时,可以调用加速卡对这部分特定算法进行加速计算,以提升应用程序的数据处理效率和保证应用程序的正常运行。
71.需要说明的是,现有技术在进行异构计算时,一般是通过数据处理设备中的处理器处理待处理数据中的第一类数据,通过调用加速卡处理待处理数据中的第二类数据,从而存在需要在加速卡与数据处理设备的处理器之间来回搬运待处理数据的问题,降低了数据的处理效率。而在本技术实施例中,通过将待处理数据中原本由数据处理设备中的处理器处理的第一类数据发送给加速卡中的协处理器进行处理,以及将待进行加速计算的第二类数据发送至加速卡中的加速处理器进行加速计算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高了数据的处理效率。
72.示例性的,加速卡是指专门用来加速计算的设备;其中,加速卡可以安装在数据处理设备中。在本技术实施例中,加速卡可以包括协处理器和加速处理器。其中,协处理器用于处理原本由数据处理设备中的处理器处理的第一类数据;加速处理器对第二类数据进行加速计算。
73.通过获取待处理数据,可以获得待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据。
74.步骤s102、将所述待处理数据发送至加速卡,以使所述加速卡中的协处理器对所述第一类数据进行第一类处理,所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算。
75.示例性的,数据处理设备可以基于sdk(software development kit,软件开发工具包)接口,通过pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)总线与加速卡进行通信连接。
76.在一些实施例中,数据处理设备在将待处理数据发送至加速卡之前,还可以包括:控制加速卡启动协处理器中的操作系统。在本技术实施例中,为了实现加速卡中的协处理器正常处理第一类数据,需要启动协处理器中的操作系统。
77.请参阅图4,图4是本技术实施例提供的一种启动协处理器中的操作系统的示意性交互图。如图4所示,数据处理设备在控制加速卡启动协处理器中的操作系统时,可以包括:获取操作系统镜像文件;然后将操作系统镜像文件发送至共享内存,以及将操作系统镜像文件的启动标志信息写入共享内存,以使协处理器在检测到共享内存中的启动标志信息时,从共享内存中加载并运行操作系统镜像文件,操作系统镜像文件用于启动操作系统以及加载软件架构。
78.需要说明的是,操作系统镜像文件是一种用于安装操作系统的压缩文件。示例性的,数据处理设备可以获取预先打包好的操作系统镜像文件;基于sdk接口,通过pcie总线将操作系统镜像文件发送至共享内存中,并在共享内存中写入操作系统镜像文件的启动标志信息。
79.示例性的,可以在共享内存的某个固定地址中写入操作系统镜像文件的启动标志信息。
80.其中,共享内存是加速卡的存储器的一部分存储空间。共享内存用于在数据处理
设备与加速卡之间传递数据,以实现数据处理设备与加速卡之间的数据共享。例如,可以传递操作系统镜像文件、第一类数据、第二类数据、处理指令以及处理结果等等。
81.如图4所示,加速卡中的协处理器在检测到共享内存中的启动标志信息时,可以从共享内存中加载并运行操作系统镜像文件。需要说明的是,协处理器可以是多核处理器,协处理器在上电后运行boot代码,根据boot代码完成基本配置;然后协处理器运行一段循环检测程序,通过循环检测共享内存的某个固定地址上是否存在启动标志信息。协处理器在检测到共享内存存在启动标志信息时,从共享内存中加载并运行操作系统镜像文件。其中,操作系统镜像文件用于启动操作系统以及加载软件架构。
82.示例性的,协处理器可以运行操作系统镜像文件,从而实现启动操作系统;操作系统启动之后,可以自动加载软件架构。其中,启动操作系统与加载软件架构的具体过程,在此不作限定。
83.需要说明的是,在本技术实施例中,操作系统支持smp(symmetric multiprocessing,对称多处理)模式,可以对数据进行并行加速。其中,smp模式是指一个操作系统的实例可以同时管理所有cpu内核,且应用并不绑定某一个内核。软件架构可以是framework软件架构,framework是指构成一类特定软件可复用设计的一组相互协作的类。在本技术实施例中,framework软件架构用于与数据处理设备进行指令交互。数据处理设备可以给framework软件架构同时发送多条处理指令,从而可以提升系统性能。
84.通过将操作系统镜像文件发送至共享内存,并将操作系统镜像文件的启动标志信息写入共享内存,可以使得协处理器在检测到共享内存中的启动标志信息时,启动操作系统以及加载软件架构,可以实现数据处理设备与加速卡中的软件架构进行指令交互,进而实现加速卡对待处理数据进行联合运算。
85.需要说明的是,联合运算是指由加速卡中的协处理器对第一类数据进行处理和加速卡中的加速处理器对第二类数据进行加速计算。
86.在一些实施例中,在将操作系统镜像文件发送至共享内存之后,还可以包括:当接收到协处理器发送的中断通知时,根据中断通知查询共享内存是否存储有启动完成信息,中断通知与启动完成信息是加载软件架构后生成,中断通知用于通知数据处理设备软件架构加载完毕;当查询到启动完成信息时,确定操作系统启动成功。
87.示例性的,如图4所示,加速卡中的协处理器在加载软件架构之后,协处理器可以生成一个启动完成信息与一个中断通知;然后,将启动完成信息写入共享内存中,以及通过pcie总线将中断通知发送至数据处理设备。
88.示例性的,中断通知可以是msi(message signaled interrupt,消息信号中断)通知。需要说明的是,msi通知是指通过写一个特定消息到特定地址,从而触发一个cpu中断。
89.在本技术实施例中,msi通知用于触发数据处理设备到共享内存中读取处理结果。例如,在数据处理设备控制加速卡启动协处理器中的操作系统之后,协处理器可以通过msi通知触发数据处理设备到共享内存中读取操作系统的启动结果。又例如,在数据处理设备将处理指令发送至共享内存,由软件架构根据处理指令执行相应的数据处理之后,软件架构可以通过msi通知触发数据处理设备到共享内存中读取处理结果。
90.示例性的,当接收到协处理器发送的中断通知时,数据处理设备可以根据中断通知查询共享内存是否存储有启动完成信息;若查询到启动完成信息,则可以确定操作系统
启动成功。
91.在本技术实施例中,数据处理设备在确定协处理器中的操作系统启动成功之后,可以将待处理数据发送至加速卡。
92.请参阅图5,图5是本技术实施例提供的一种将待处理数据发送至加速卡的子步骤的示意流程图,具体可以包括以下步骤s1021至s1023。
93.步骤s1021、当所述操作系统启动成功后,生成所述第一类数据对应的处理指令。
94.示例性的,当操作系统启动成功后,数据处理设备可以生成第一类数据对应的处理指令。其中,处理指令用于控制加速卡中的软件架构对第一类数据进行处理。
95.步骤s1022、将所述第一类数据与所述处理指令发送至所述加速卡的共享内存,以使所述操作系统中的软件架构从所述共享内存中获取所述第一类数据与所述处理指令。
96.示例性的,可以基于sdk接口,通过pcie总线将第一类数据与处理指令发送至加速卡的共享内存。从而,可以使得操作系统中的软件架构从共享内存中获取第一类数据与处理指令。
97.需要说明的是,软件架构可以循环检测共享内存否存在处理指令。当检测到处理指令时,可以根据处理指令对第一类数据进行数据处理,获得对应的第一处理结果。
98.通过将第一类数据与处理指令发送至加速卡的共享内存,可以使得软件架构根据处理指令对第一类数据进行处理,实现数据处理设备只需控制处理流程,无需对第一类数据进行处理,降低了数据处理设备的工作负荷,进而提高了数据处理设备的整体吞吐量。
99.步骤s1023、将所述第二类数据发送至所述加速处理器。
100.示例性的,可以直接将第二类数据发送至加速卡中的加速处理器,以使加速处理器对第二类数据进行加速处理,获得对应的第二处理结果。
101.示例性的,还可以将第二类数据发送至加速卡中的共享内存,并对第二类数据添加加速处理标识;由加速处理器在检测到加速处理标识时,从共享内存中读取第二类数据,并对第二类数据进行加速处理。需要说明的是,加速处理标识用于将第二类数据与第一类数据进行区分,以使加速处理器可以正确地从共享内存中读取到第二类数据。其中,加速处理标识的具体形式,在此不作限定。
102.通过将第二类数据发送至加速处理器进行加速计算,实现由加速卡中的协处理器与加速处理器对待处理数据进行联合运算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运,有效提高数据的处理效率。
103.步骤s103、获取所述第一类数据对应的第一处理结果,以及获取所述第二类数据对应的第二处理结果。
104.示例性的,数据处理设备可以根据软件架构发送的msi通知从共享内存中读取第一类数据对应的第一处理结果。需要说明的是,软件架构在根据处理指令对第一类数据进行处理之后,可以将获得的第一处理结果写入共享内存,并通过msi通知触发数据处理设备到共享内存中读取第一处理结果。
105.示例性的,数据处理设备可以接收加速处理器发送的第二处理结果。当然,也可以通过共享内存读取第二处理结果。需要说明的是,加速处理器可以将第二处理结果写入共享内存,并向数据处理设备发送msi通知,由数据处理设备根据msi通知读取共享内存中的第二处理结果。
106.上述实施例提供的数据处理方法,通过获取待处理数据,可以获得待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据;通过将操作系统镜像文件发送至共享内存,并将操作系统镜像文件的启动标志信息写入共享内存,可以使得协处理器在检测到共享内存中的启动标志信息时,启动操作系统以及加载软件架构,可以实现数据处理设备与加速卡中的软件架构进行指令交互,进而实现加速卡对待处理数据进行联合运算;通过将第一类数据与处理指令发送至加速卡的共享内存,可以使得软件架构根据处理指令对第一类数据进行处理,实现数据处理设备只需控制处理流程,无需对第一类数据进行处理,降低了数据处理设备的工作负荷,进而提高了数据处理设备的整体吞吐量;通过将第二类数据发送至加速处理器进行加速计算,实现由加速卡中的协处理器与加速处理器对待处理数据进行联合运算,避免了待处理数据在进行加速计算时,需要在加速卡与数据处理设备之间来回搬运,有效提高数据的处理效率。
107.请参阅图6,图6是本技术实施例提供的另一种数据处理方法的示意性流程图。其中,该数据处理方法可以应用于加速卡中,通过调用加速卡中的协处理器对原本由数据处理设备中的处理器处理的第一类数据进行处理,以及调用加速卡中的加速处理器对第二类数据进行加速计算,避免了在对数据进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高了数据的处理效率。
108.如图6所示,数据处理方法包括步骤s201至步骤s203。
109.步骤s201、获取数据处理设备发送的第一类数据,以及获取所述数据处理设备发送的第二类数据。
110.示例性的,加速卡可以获取数据处理设备发送的第一类数据,以及获取所述数据处理设备发送的第二类数据。
111.需要说明的是,加速卡中的协处理器安装有操作系统,操作系统加载有软件架构。其中,软件架构用于与数据处理设备进行指令交互。
112.示例性的,软件架构与数据处理设备之间的指令交互,可以基于环形队列实现。需要说明的是,环形队列是一种首尾相连的先入先出的数据结构,用于网络数据收发、不同程序间的数据交换。其中,环形队列可以包括接收队列和发送队列。在本身申请实施例中,数据处理设备可以向接收队列写入处理指令,由软件架构读取接收队列中的处理指令并执行;软件架构在执行处理指令后,将处理结果写入发送队列,由数据处理设备从发送队列读取处理结果。
113.在一些实施例中,获取数据处理设备发送的第一类数据之前,还可以包括:当检测到共享内存中的启动标志信息时,从共享内存中加载并运行数据处理设备发送的操作系统镜像文件,操作系统镜像文件用于启动操作系统以及加载软件架构;若软件架构加载完毕,则生成中断通知和启动完成信息,并将启动完成信息写入共享内存;将中断通知发送至数据处理设备,以使数据处理设备查询到共享内存存在启动完成信息时,确定操作系统启动成功。
114.示例性的,可以通过软件架构循环检测共享内存中是否有启动标志信息;当检测到共享内存中有启动标志信息时,从共享内存中加载并运行操作系统镜像文件。从而可以启动操作系统并加载软件架构。
115.示例性的,可以通过软件架构生成中断通知和启动完成信息。
116.需要说明的是,通过将中断通知发送至数据处理设备,可以使得数据处理设备查询到共享内存存在启动完成信息时,确定操作系统启动成功;进而可以在确定操作系统启动成功之后,将第一类数据与第一类数据对应的处理指令写入至共享内存。
117.在一些实施例中,获取数据处理设备发送的第一类数据,可以包括:调用操作系统中的软件架构检测加速卡的共享内存中是否存在处理指令;当检测到处理指令时,控制软件架构获取共享内存存储的第一类数据。其中,第一类数据与处理指令为数据处理设备在确定操作系统启动成功后发送至共享内存。
118.需要说明的是,数据处理设备在发送第一类数据时,可以生成第一类数据对应的处理指令,并将处理指令与第一类数据发送至加速卡中的共享内存。其中,处理指令用于控制加速卡中的软件架构对第一类数据进行处理。
119.请参阅图7,图7是本技术实施例提供的一种软件架构与数据处理设备进行指令交互的示意性交互图。如图7所示,数据处理设备可以将第一类数据对应的处理指令发送到共享内存中。软件架构可以循环检测共享内存否存在处理指令;当检测到处理指令时,由软件架构获取共享内存存储的第一类数据。其中,处理指令可以包括但不限于算法模块加载、地址映射以及算法执行等指令。
120.通过获取数据处理设备发送的第一类数据以及获取数据处理设备发送的第二类数据,后续可以实现由加速卡对第一类数据与第二类数据进行联合运算。
121.步骤s202、调用加速卡中的协处理器对所述第一类数据进行第一类处理,以及调用所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算。
122.示例性的,加速卡可以调用加速卡中的协处理器对第一类数据进行第一类处理,以及调用加速卡中的加速处理器对第二类数据进行第二类处理,第二类处理包括加速计算。其中,加速计算的具体过程,在此不作限定。
123.通过调用协处理器对原本由数据处理设备中的处理器处理的第一类数据进行处理,以及调用加速处理器对第二类数据进行加速计算,避免了在对数据进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高了数据的处理效率。
124.在一些实施例中,调用加速卡中的协处理器对第一类数据进行第一类处理之前,还可以包括:调用软件架构创建并启动处理单元。
125.示例性的,协处理器可以主动调用软件架构创建并启动处理单元;协处理器也可以根据数据处理设备的请求,调用软件架构创建并启动处理单元。例如,数据处理设备在确定协处理器中的操作系统启动成功之后,可以生成一个处理单元创建指令,并将处理单元创建指令写入共享内存。软件架构检测到共享内存中的处理单元创建指令时,可以根据处理单元创建指令创建并启动处理单元。
126.示例性的,软件架构可以创建并启动预设数量的处理单元。其中,处理单元的数量可以根据实际情况设定,具体数值在此不作限定。例如,软件架构可以根据第一类数据的数据量大小调整处理单元的数量。
127.需要说明的是,处理单元可以被操作系统独立调度,并发执行;软件架构还可以设置处理单元的优先级,以及处理单元是否具有cpu亲和性。
128.通过调用软件架构创建并启动处理单元,后续可以调用处理单元根据处理指令对
第一类数据进行处理。
129.在一些实施例中,调用加速卡中的协处理器对第一类数据进行第一类处理,可以包括:将第一类数据与处理指令发送至处理单元,由处理单元根据处理指令对第一类数据进行处理,处理指令包括地址映射、算法模块加载以及算法执行中的至少一项。
130.在本技术实施中,软件架构具有算法模块加载、地址映射指令以及算法执行等功能,可以通过处理单元实现。
131.需要说明的是,算法模块加载是指将算法模块加载到处理单元中;处理单元中的算法,可以由用户自定义的算法模块决定;处理单元可以根据需要加载多个不同的算法库。其中,算法库可以是数据处理设备通过扩展的编译器关键字,自动提取出运行在协处理器上的代码文件,并对代码文件交叉编译生成;算法库还可以是数据处理设备单独创建协处理器上运行的代码文件,对代码文件单独交叉编译生成。地址映射是指在数据所在的物理地址映射到运行单元的地址空间内,从而使得数据可以被处理单元处理。算法执行是指算法库被加载到处理单元后,可以被数据处理设备以函数调用方式进行远程调用,可以通过传入函数名与参数实现调用算法库。此外,软件架构还可以进行日志属性设置、日志信息提取、数据处理设备与协处理器之间的时间同步以及协处理器复位等系统配置操作。
132.示例性的,软件架构可以将第一类数据与处理指令发送至处理单元,由处理单元根据处理指令对第一类数据进行处理。
133.例如,若处理指令为算法执行,则处理单元对第一类数据进行算法执行操作,获得第一处理结果。
134.又例如,若处理指令为地址映射、算法执行,则处理单元对第一类数据进行地址映射操作与算法执行操作,获得第一处理结果。
135.通过将第一类数据与处理指令发送至处理单元,可以使得处理单元针对性地根据处理指令对第一类数据进行处理,提高了数据处理的效率。
136.步骤s203、将所述第一类数据对应的第一处理结果与所述第二类数据对应的第二处理结果返回至所述数据处理设备。
137.示例性的,如图7所示,软件架构在调用处理单元根据处理指令对第一类数据进行处理之后,还可以对应的第一处理结果写入共享内存,并通过msi通知触发数据处理设备到共享内存中读取第一处理结果。
138.例如,软件架构可以将第一处理结果写入发送队列,由数据处理设备从发送队列读取第一处理结果。
139.通过将第一类数据对应的第一处理结果写入共享内存并通过msi通知触发数据处理设备到共享内存中读取第一处理结果,可以使得数据处理设备及时地读取第一处理结果。
140.示例性的,加速卡在调用加速处理器对第二类数据进行第二类处理之后,可以将得到的第二处理结果直接发送至数据处理设备;也可以将第二处理结果写入共享内存,并向数据处理设备发送msi通知,由数据处理设备根据msi通知到共享内存中读取第二处理结果。
141.上述实施例提供的数据处理方法,通过获取数据处理设备发送的第一类数据以及获取数据处理设备发送的第二类数据,后续可以实现由加速卡对第一类数据与第二类数据
进行联合运算;通过调用协处理器对原本由数据处理设备中的处理器处理的第一类数据进行处理,以及调用加速处理器对第二类数据进行加速计算,避免了在对数据进行加速计算时,需要在加速卡与数据处理设备之间来回搬运的问题,有效提高了数据的处理效率;通过将第一类数据与处理指令发送至处理单元,可以使得处理单元针对性地根据处理指令对第一类数据进行处理,提高了数据处理的效率;通过将第一类数据对应的第一处理结果写入共享内存并通过中断通知触发数据处理设备到共享内存中读取第一处理结果,可以使得数据处理设备及时地读取第一处理结果。
142.本技术的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本技术实施例提供的数据处理设备对应的数据处理方法或者加速卡对应的数据处理方法。
143.例如,该计算机程序被处理器加载,可以执行如下步骤:
144.获取待处理数据,所述待处理数据包括待进行第一类处理的第一类数据以及待进行第二类处理的第二类数据;将所述待处理数据发送至加速卡,以使所述加速卡中的协处理器对所述第一类数据进行第一类处理,所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;获取所述第一类数据对应的第一处理结果,以及获取所述第二类数据对应的第二处理结果。
145.又例如,该计算机程序被处理器加载,可以执行如下步骤:
146.获取数据处理设备发送的第一类数据,以及获取所述数据处理设备发送的第二类数据;调用加速卡中的协处理器对所述第一类数据进行第一类处理,以及调用所述加速卡中的加速处理器对所述第二类数据进行第二类处理,所述第二类处理包括加速计算;将所述第一类数据对应的第一处理结果与所述第二类数据对应的第二处理结果返回至所述数据处理设备。
147.其中,所述计算机可读存储介质可以是前述实施例所述的数据处理设备的内部存储单元,例如所述数据处理设备的硬盘或内存。所述计算机可读存储介质也可以是所述数据处理设备的外部存储设备,例如所述数据处理设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital card,sd card),闪存卡(flash card)等。
148.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
149.在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在可存储介质上,存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以
被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
150.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献