CN111143272A - 异构计算平台的数据处理方法、装置及可读存储介质 - Google Patents
异构计算平台的数据处理方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN111143272A CN111143272A CN201911385140.4A CN201911385140A CN111143272A CN 111143272 A CN111143272 A CN 111143272A CN 201911385140 A CN201911385140 A CN 201911385140A CN 111143272 A CN111143272 A CN 111143272A
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- host
- data processing
- calculated
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种异构计算平台的数据处理方法、装置及计算机可读存储介质。其中,方法包括预先在主机内存空间中开辟数据存储区域和数据处理结果存储区域,在FPGA加速板卡内存空间中开辟待处理数据存储区域和计算结果存储区域。主机将待计算数据存储在数据存储区域后,向FPGA加速板卡下发数据处理请求,FPGA加速板卡主动从数据存储区域读取待计算数据并存储至自己的待处理数据存储区域;然后调用相应数据处理算法对待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果并存储于自己的计算结果存储区域;最后主动将数据计算结果写回至主机的数据处理结果存储区域。本申请提高了异构计算平台的数据传递效率,提升FPGA加速板卡的计算性能。
Description
技术领域
本申请涉及异构计算技术领域,特别是涉及一种异构计算平台的数据处理方法、装置及计算机可读存储介质。
背景技术
随着机器学***台上,主机和FPGA加速卡之间为PCIE接口,信号交互和数据传递都通过该接口完成。主机端负责整体调度,FPGA加速板卡负责并行处理数据,不仅可缓解主机的计算压力,还可有效提升数据处理效率。
对于异构计算平台来说,原始数据或者说是待计算数据均是来自主机端,数据处理过程中,主机端需要源源不断地将这些需要借用FPGA加速板卡执行数据处理操作的数据通过PCIE接口写到加速卡的内存上,如图1所示。通常这个过程是由主机端软件来控制的,在主机和加速卡之间按照一种命令-应答的交互机制,主机将数据写到加速卡的内存上后,发送命令给调度核控制加速器启动计算,加速器完成计算后,将计算结果写到本地内存上,这时调度核产生一个中断信号给主机,主机收到后将结果读回主机内存,随后将下一组数据写到加速卡上,如此循环。
由于主机软件发出控制命令、得到中断应答、启动传输数据这些过程都需要较多的时钟周期,且主机端可能会有别的软件进程占用***资源,数据传递效率不高,影响FPGA加速板卡的计算性能,对于例如深度学习推理计算中卷积加速器这种对时间极其敏感、追求极致性能的应用来说,如何消除这些时钟周期的浪费,进一步提高计算效率为本领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种异构计算平台的数据处理方法、装置及计算机可读存储介质,提高异构计算平台的数据传递效率,提升FPGA加速板卡的计算性能。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种异构计算平台的数据处理方法,包括:
当接收到主机下发的数据处理请求,主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;
调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;所述数据计算结果存储于计算结果存储区域;
主动将所述数据计算结果写回至所述主机的数据处理结果存储区域;
其中,所述数据存储区域和所述数据处理结果存储区域为预先从所述主机的内存空间中开辟得到;所述待处理数据存储区域和所述计算结果存储区域为预先从FPGA加速板卡的内存空间中开辟得到。
可选的,所述主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域为:
主动从所述主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域;
其中,所述第一数据存储区域和所述第二数据存储区域为预先从所述主机的内存空间中开辟得到,用于存储所述待计算数据;所述第一待处理数据存储区域和所述第二待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到,用于存储从所述主机读取的所述待计算数据。
可选的,所述主动将所述数据计算结果写回至所述主机的数据处理结果存储区域之后,还包括:
若所述数据存储区域中的待计算数据全部计算完成,则向所述主机发送中断信息,以使所述主机将所述数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
可选的,所述数据处理请求为卷积神经网络数据处理请求,所述主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域包括:
主动从所述数据存储区域读取待计算的特征图数据,从所述主机的内存空间中读取所述卷积神经网络的网络参数和卷积核系数。
可选的,采用数据读取线程主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;相应的,采用数据处理线程调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;通过数据写入线程主动将所述数据计算结果写回至所述主机的结果存储区域;
所述数据读取线程、所述数据处理线程和所述数据写入线程并列执行。
本发明实施例另一方面提供了一种异构计算平台的数据处理装置,包括:
数据读取模块,用于当接收到主机下发的数据处理请求,主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;所述数据存储区域为预先从所述主机的内存空间中开辟得到;所述待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据处理模块,用于调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;所述数据计算结果存储于计算结果存储区域;所述计算结果存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据写回模块,用于主动将所述数据计算结果写回至所述主机的数据处理结果存储区域;所述数据处理结果存储区域为预先从所述主机的内存空间中开辟得到。
可选的,所述数据读取模块具体用于主动从所述主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域;
其中,所述第一数据存储区域和所述第二数据存储区域为预先从所述主机的内存空间中开辟得到,用于存储所述待计算数据;所述第一待处理数据存储区域和所述第二待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到,用于存储从所述主机读取的所述待计算数据。
可选的,还包括中断信息发送模块,所述中断信息发送模块用于若所述数据存储区域中的待计算数据全部计算完成,则向所述主机发送中断信息,以使所述主机将所述数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
本发明实施例还提供了一种异构计算平台的数据处理装置,包括设置在FPGA加速板卡中的,所述调度核用于执行存储器中存储的计算机程序时实现如前任一项所述异构计算平台的数据处理方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有异构计算平台的数据处理程序,所述异构计算平台的数据处理程序被处理器执行时实现如前任一项所述异构计算平台的数据处理方法的步骤。
本申请提供的技术方案的优点在于,主机只需要将FPGA加速板卡在执行数据处理过程中所需的数据存储在预先开辟的区域中,发出开始计算命令后,便无需干预整个计算过程乃至计算结果的返回,FPGA加速板卡通过主动访问主机资源,自主完成待计算数据的读入和计算结果的写回,增强板上数据存取的自主性,避免由于主机频繁进行干预产生较大的***延时的现象发生,降低了主机和加速卡之间数据传输操作的延迟,大大提高了异构计算平台的数据传递效率;通过在主机内存和FPGA加速板卡内存上开辟多块内存区域的方式来隐藏主机读写主机内存的时间和加速卡读写主机内存与加速卡内存的时间,整个过程的时间主要集中FPGA加速板卡的计算时间,排除了对内存的数据访问对加速卡性能造成的影响,提高了FPGA加速板卡的计算性能。
此外,本发明实施例还针对异构计算平台的数据处理方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一个示例性应用场景的框架示意图;
图2为本发明实施例提供的一种异构计算平台的数据处理方法的流程示意图;
图3为本发明实施例提供的FPGA计算过程中数据内存使用流程示意图;
图4为本发明实施例提供的异构计算平台的数据处理装置的一种具体实施方式结构图;
图5为本发明实施例提供的异构计算平台的数据处理装置的另一种具体实施方式结构图;
图6为本发明实施例提供的异构计算平台的数据处理装置的再一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图2,图2为本发明实施例提供的一种异构计算平台的数据处理方法的流程示意图,本发明实施例可包括以下内容:
预先在主机内存空间中开辟数据存储区域和数据处理结果存储区域,在FPGA加速板卡内存空间中开辟待处理数据存储区域和计算结果存储区域。数据存储区域用于存储待计算数据,数据处理结果存储区域用于存储待计算数据由FPGA加速板卡计算完成并主动写回的数据。待处理数据存储区域用于存储从主节端读取的待计算数据,计算结果存储区域用于待计算数据的计算结果。各区域的个数可根据实际情况进行选择,本申请对此不作任何限定。
S201:当接收到主机下发的数据处理请求,主动从主机的数据存储区域读取待计算数据并存储至待处理数据存储区域。
本申请中,主机预先将需要FPGA加速板卡处理的数据存储至预先开辟出来的数据存储区域,在准备好数据后,向FPGA加速板卡发送开始工作的命令。FPGA加速板卡在接收到命令时,主动从主机的数据存储区域中读取数据,并将读取的数据存储在自己的待处理数据存储区域中。
S202:调用相应数据处理算法对待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果。
可以理解的是,不同的数据处理方式对应不同的算法,例如数据加解密,需要调用加解密算法来处理。FPGA加速板卡中预先存储多种数据处理算法,根据S101的数据处理请求中携带的数据处理方式从中匹配相符合的数据处理算法对待计算数据进行处理,得到数据处理结果,并将该数据处理结果存储于自己的计算结果存储区域。
S203:主动将数据计算结果写回至主机的数据处理结果存储区域。
FPGA加速板卡在计算完成后,会主动将数据计算结果写回至主机的数据处理结果存储区域中,不需要主机干预。可以定时写回,也可完成一个数据存储区域的数据后主动写回,这均不影响本申请的实现。为了提高数据处理效率,若数据存储区域中的待计算数据全部计算完成,则向主机发送中断信息,以使主机将数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
在本发明实施例提供的技术方案中,主机只需要将FPGA加速板卡在执行数据处理过程中所需的数据存储在预先开辟的区域中,发出开始计算命令后,便无需干预整个计算过程乃至计算结果的返回,FPGA加速板卡通过主动访问主机资源,自主完成待计算数据的读入和计算结果的写回,增强板上数据存取的自主性,避免由于主机频繁进行干预产生较大的***延时的现象发生,降低了主机和加速卡之间数据传输操作的延迟,大大提高了异构计算平台的数据传递效率;通过在主机内存和FPGA加速板卡内存上开辟多块内存区域的方式来隐藏主机读写主机内存的时间和加速卡读写主机内存与加速卡内存的时间,整个过程的时间主要集中FPGA加速板卡的计算时间,排除了对内存的数据访问对加速卡性能造成的影响,提高了FPGA加速板卡的计算性能。
为了进一步提升计算性能,可设置多个数据存储区域,以便主机和FPGA加速板卡交叉访问,可以预先从主机的内存空间中开辟第一数据存储区域和第二数据存储区域,这两个区域均用于存储待计算数据;预先从FPGA加速板卡的内存空间中开辟第一待处理数据存储区域和第二待处理数据存储区域,这两区域均用于存储从主机读取的待计算数据。FPGA加速板卡在接收到主机指令后,可主动可从主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域,当第一待处理数据存储区域中存储数据后,可同时执行从第一数据存储区域和/或第二数据存储区域读取数据至第二待处理数据存储区域,以及计算第一待处理数据存储区域上的待计算数据,如图2所示。也就是说,采用数据读取线程主动从主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;采用数据处理线程调用相应数据处理算法对待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;通过数据写入线程主动将数据计算结果写回至主机的结果存储区域;数据读取线程、数据处理线程和数据写入线程可并列同时执行。
为了使本领域技术人员更加清楚明白本申请提供的计算方案,本申请还提供了一个以FPGA加速板卡处理卷积神经网络数据的实例,可包括下述内容:
FPGA加速板卡插到服务器的PCIE插槽,给服务器上电。
主机把将要计算的卷积神经网络的网络参数写到主机内存的一块区域上。
主机把卷积核系数写到主机内存的同一块区域或不同区域块上。
主机开辟四块以上的内存空间用于存储特征图数据;其中两块(第一数据存储区域和第二数据存储区域)用于写待计算的输入特征图数据,两块(第一数据处理结果存储区域和第二数据处理结果存储区域)用于存储FPGA加速板卡的计算结果。每个开辟两块以上的空间便于加速卡交叉访问,使加速卡在处理一块数据的同时主机可以处理另一块数据,保证加速卡可以连续不断地从主机内存中取数,提高***效率。可根据主机硬件配置、主机操作***分配和主机写内存与加速核计算用时的比例来具体实施,每块内存空间的大小和开辟的内存空间的数量本申请不作限定。考虑到服务器上的内存容量较大,开辟的每块内存空间可以尽量大一些,这样能够减少加速卡和主机的交互次数。
主机可随机把一组Batch为N的输入特征图写到其中一块数据存储区域后,向FPGA加速板卡的调度核发送开始计算的命令。
调度核收到开始命令后,将网络参数信息、特征图数据和卷积核系数直接从主机内存读取到自己的内存,控制加速器进行计算,其中加速卡的内存也可分为四个以上内存空间,两个(第一待处理数据存储区域和第二待处理数据存储区域)用于存储待计算数据,两个(第一计算结果存储区域和第二计算结果存储区域)用于存储计算结果,由于加速卡的内存空间较小,会执行一个读取-计算-写回的过程的多次循环,这个过程中都是由调度核在主动控制,不需要主机干预。
当一块数据存储区域中数据全部计算完成后,调度核产生中断信息给主机,主机收到中断后将该块数据存储区域中的数据存储到硬盘上,以便这块空间用于顺序存储其他待计算数据。
全部计算任务完成后,主机发出停止命令,结束***工作。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对异构计算平台的数据处理方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的异构计算平台的数据处理装置进行介绍,下文描述的异构计算平台的数据处理装置与上文描述的异构计算平台的数据处理方法可相互对应参照。
基于功能模块的角度,参见图4,图4为本发明实施例提供的异构计算平台的数据处理装置在一种具体实施方式下的结构图,该装置可包括:
数据读取模块401,用于当接收到主机下发的数据处理请求,主动从主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;数据存储区域为预先从主机的内存空间中开辟得到;待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据处理模块402,用于调用相应数据处理算法对待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;数据计算结果存储于计算结果存储区域;计算结果存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据写回模块403,用于主动将数据计算结果写回至主机的数据处理结果存储区域;数据处理结果存储区域为预先从主机的内存空间中开辟得到。
可选的,在本实施例的一些实施方式中,请参阅图5,所述装置例如还可以包括中断信息发送模块404,中断信息发送模块404可用于若数据存储区域中的待计算数据全部计算完成,则向主机发送中断信息,以使主机将数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
作为一种可选的实施方式,所述数据读取模块401可具体用于主动从主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域;其中,第一数据存储区域和第二数据存储区域为预先从主机的内存空间中开辟得到,用于存储待计算数据;第一待处理数据存储区域和第二待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到,用于存储从主机读取的待计算数据。
此外,在另外一些实施方式中,所述数据读取模块401可具体用于主动从数据存储区域读取待计算的特征图数据,从主机的内存空间中读取卷积神经网络的网络参数和卷积核系数。
本发明实施例所述异构计算平台的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例提高异构计算平台的数据传递效率,提升FPGA加速板卡的计算性能。
上文中提到的异构计算平台的数据处理装置是从功能模块的角度描述,进一步的,本申请还提供一种异构计算平台的数据处理装置,是从硬件角度描述。图6为本申请实施例提供的另一种异构计算平台的数据处理装置的结构图。如图6所示,该装置包括存储器60,用于存储计算机程序;
调度核61,用于执行计算机程序时实现如上述实施例提到的异构计算平台的数据处理方法的步骤。
其中,调度核61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。调度核61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。在一些实施例中,调度核61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,调度核61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器60可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器60还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器60至少用于存储以下计算机程序601,其中,该计算机程序被调度核61加载并执行之后,能够实现前述任一实施例公开的异构计算平台的数据处理方法的相关步骤。另外,存储器60所存储的资源还可以包括操作***602和数据603等,存储方式可以是短暂存储或者永久存储。其中,操作***602可以包括Windows、Unix、Linux等。数据603可以包括但不限于测试结果对应的数据等。
在一些实施例中,异构计算平台的数据处理装置还可包括显示屏62、输入输出接口63、通信接口64、电源65以及通信总线66。
本领域技术人员可以理解,图6中示出的结构并不构成对异构计算平台的数据处理装置的限定,可以包括比图示更多或更少的组件,例如传感器67。
本发明实施例所述异构计算平台的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例提高了异构计算平台的数据传递效率,提升了FPGA加速板卡的计算性能。
可以理解的是,如果上述实施例中的异构计算平台的数据处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有异构计算平台的数据处理程序,所述异构计算平台的数据处理程序被处理器执行时如上任意一实施例所述异构计算平台的数据处理方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例提高异构计算平台的数据传递效率,提升FPGA加速板卡的计算性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种异构计算平台的数据处理方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种异构计算平台的数据处理方法,其特征在于,包括:
当接收到主机下发的数据处理请求,主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;
调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;所述数据计算结果存储于计算结果存储区域;
主动将所述数据计算结果写回至所述主机的数据处理结果存储区域;
其中,所述数据存储区域和所述数据处理结果存储区域为预先从所述主机的内存空间中开辟得到;所述待处理数据存储区域和所述计算结果存储区域为预先从FPGA加速板卡的内存空间中开辟得到。
2.根据权利要求1所述的异构计算平台的数据处理方法,其特征在于,所述主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域为:
主动从所述主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域;
其中,所述第一数据存储区域和所述第二数据存储区域为预先从所述主机的内存空间中开辟得到,用于存储所述待计算数据;所述第一待处理数据存储区域和所述第二待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到,用于存储从所述主机读取的所述待计算数据。
3.根据权利要求2所述的异构计算平台的数据处理方法,其特征在于,所述主动将所述数据计算结果写回至所述主机的数据处理结果存储区域之后,还包括:
若所述数据存储区域中的待计算数据全部计算完成,则向所述主机发送中断信息,以使所述主机将所述数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
4.根据权利要求1所述的异构计算平台的数据处理方法,其特征在于,所述数据处理请求为卷积神经网络数据处理请求,所述主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域包括:
主动从所述数据存储区域读取待计算的特征图数据,从所述主机的内存空间中读取所述卷积神经网络的网络参数和卷积核系数。
5.根据权利要求1至4任意一项所述的异构计算平台的数据处理方法,其特征在于,采用数据读取线程主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;相应的,采用数据处理线程调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;通过数据写入线程主动将所述数据计算结果写回至所述主机的结果存储区域;
所述数据读取线程、所述数据处理线程和所述数据写入线程并列执行。
6.一种异构计算平台的数据处理装置,其特征在于,包括:
数据读取模块,用于当接收到主机下发的数据处理请求,主动从所述主机的数据存储区域读取待计算数据并存储至待处理数据存储区域;所述数据存储区域为预先从所述主机的内存空间中开辟得到;所述待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据处理模块,用于调用相应数据处理算法对所述待处理数据存储区域中的待计算数据进行数据计算,得到数据计算结果;所述数据计算结果存储于计算结果存储区域;所述计算结果存储区域为预先从FPGA加速板卡的内存空间中开辟得到;
数据写回模块,用于主动将所述数据计算结果写回至所述主机的数据处理结果存储区域;所述数据处理结果存储区域为预先从所述主机的内存空间中开辟得到。
7.根据权利要求6所述的异构计算平台的数据处理装置,其特征在于,所述数据读取模块具体用于主动从所述主机的第一数据存储区域和/或第二数据存储区域读取待计算数据分别存储至第一待处理数据存储区域和第二待处理数据存储区域;
其中,所述第一数据存储区域和所述第二数据存储区域为预先从所述主机的内存空间中开辟得到,用于存储所述待计算数据;所述第一待处理数据存储区域和所述第二待处理数据存储区域为预先从FPGA加速板卡的内存空间中开辟得到,用于存储从所述主机读取的所述待计算数据。
8.根据权利要求7所述的异构计算平台的数据处理装置,其特征在于,还包括中断信息发送模块,所述中断信息发送模块用于若所述数据存储区域中的待计算数据全部计算完成,则向所述主机发送中断信息,以使所述主机将所述数据存储区域中的待计算数据存储至硬盘后存储新的待计算数据。
9.一种异构计算平台的数据处理装置,其特征在于,包括设置在FPGA加速板卡中的调度核,所述调度核用于执行存储器中存储的计算机程序时实现如权利要求1至5任一项所述异构计算平台的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有异构计算平台的数据处理程序,所述异构计算平台的数据处理程序被处理器执行时实现如权利要求1至5任一项所述异构计算平台的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385140.4A CN111143272A (zh) | 2019-12-28 | 2019-12-28 | 异构计算平台的数据处理方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385140.4A CN111143272A (zh) | 2019-12-28 | 2019-12-28 | 异构计算平台的数据处理方法、装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143272A true CN111143272A (zh) | 2020-05-12 |
Family
ID=70521391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911385140.4A Withdrawn CN111143272A (zh) | 2019-12-28 | 2019-12-28 | 异构计算平台的数据处理方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143272A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204502A (zh) * | 2021-04-20 | 2021-08-03 | 深圳致星科技有限公司 | 异构加速计算优化方法、装置、设备及可读存储介质 |
CN113238869A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 一种计算加速方法、设备和***及存储介质 |
CN113704301A (zh) * | 2021-07-15 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、***、设备及介质 |
WO2022001128A1 (zh) * | 2020-06-30 | 2022-01-06 | 浪潮电子信息产业股份有限公司 | Fpga板卡内存数据的读取方法、装置及介质 |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
CN115526302A (zh) * | 2022-08-19 | 2022-12-27 | 北京应用物理与计算数学研究所 | 基于异构多核处理器的多层神经网络计算方法及装置 |
CN117112596A (zh) * | 2023-07-28 | 2023-11-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN117331945A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、计算机存储介质及加速卡 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速***和设计方法 |
CN108416433A (zh) * | 2018-01-22 | 2018-08-17 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和*** |
US20180284992A1 (en) * | 2017-03-28 | 2018-10-04 | International Business Machines Corporation | Near memory accelerator |
CN109739558A (zh) * | 2019-01-07 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据去重方法、***及fpga和数据处理*** |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***及fpga加速卡 |
CN109787918A (zh) * | 2019-01-08 | 2019-05-21 | 郑州云海信息技术有限公司 | 基于网络传输的数据加速方法、装置、***及一种加速卡 |
CN109921895A (zh) * | 2019-02-26 | 2019-06-21 | 成都国科微电子有限公司 | 一种数据Hash值的计算方法及*** |
CN110334801A (zh) * | 2019-05-09 | 2019-10-15 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的硬件加速方法、装置、设备及*** |
-
2019
- 2019-12-28 CN CN201911385140.4A patent/CN111143272A/zh not_active Withdrawn
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180284992A1 (en) * | 2017-03-28 | 2018-10-04 | International Business Machines Corporation | Near memory accelerator |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速***和设计方法 |
CN108416433A (zh) * | 2018-01-22 | 2018-08-17 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和*** |
CN109739558A (zh) * | 2019-01-07 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据去重方法、***及fpga和数据处理*** |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***及fpga加速卡 |
CN109787918A (zh) * | 2019-01-08 | 2019-05-21 | 郑州云海信息技术有限公司 | 基于网络传输的数据加速方法、装置、***及一种加速卡 |
CN109921895A (zh) * | 2019-02-26 | 2019-06-21 | 成都国科微电子有限公司 | 一种数据Hash值的计算方法及*** |
CN110334801A (zh) * | 2019-05-09 | 2019-10-15 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的硬件加速方法、装置、设备及*** |
Non-Patent Citations (2)
Title |
---|
王一达等: "异构计算环境下的三维Kirchhoff叠前深度偏移混合域并行算法", 《石油地球物理勘探》 * |
鲍云峰等: "基于OpenCL与FPGA异构模式的Sobel算法研究", 《计算机测量与控制》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022001128A1 (zh) * | 2020-06-30 | 2022-01-06 | 浪潮电子信息产业股份有限公司 | Fpga板卡内存数据的读取方法、装置及介质 |
US11687242B1 (en) | 2020-06-30 | 2023-06-27 | Inspur Electronic Information Industry Co., Ltd. | FPGA board memory data reading method and apparatus, and medium |
CN113204502A (zh) * | 2021-04-20 | 2021-08-03 | 深圳致星科技有限公司 | 异构加速计算优化方法、装置、设备及可读存储介质 |
CN113238869A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 一种计算加速方法、设备和***及存储介质 |
CN113704301A (zh) * | 2021-07-15 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、***、设备及介质 |
CN113704301B (zh) * | 2021-07-15 | 2023-06-20 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、***、设备及介质 |
CN114003392A (zh) * | 2021-12-28 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
WO2023123849A1 (zh) * | 2021-12-28 | 2023-07-06 | 苏州浪潮智能科技有限公司 | 一种数据加速计算方法及相关装置 |
CN115526302A (zh) * | 2022-08-19 | 2022-12-27 | 北京应用物理与计算数学研究所 | 基于异构多核处理器的多层神经网络计算方法及装置 |
CN117112596A (zh) * | 2023-07-28 | 2023-11-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN117331945A (zh) * | 2023-10-31 | 2024-01-02 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、计算机存储介质及加速卡 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143272A (zh) | 异构计算平台的数据处理方法、装置及可读存储介质 | |
US11687242B1 (en) | FPGA board memory data reading method and apparatus, and medium | |
US11003429B1 (en) | Compile-time scheduling | |
US10761822B1 (en) | Synchronization of computation engines with non-blocking instructions | |
US20150235339A1 (en) | Hybrid engine for central processing unit and graphics processor | |
CN112363763A (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN110223216B (zh) | 一种基于并行plb的数据处理方法、装置及计算机存储介质 | |
CN112100090A (zh) | 数据访问请求处理方法、装置、介质及内存映射控制器 | |
CN112529995B (zh) | 图像渲染计算方法、装置、存储介质以及终端 | |
CN113704301B (zh) | 异构计算平台的数据处理方法、装置、***、设备及介质 | |
CN112527452A (zh) | 跨OpenStack的虚拟机迁移方法、装置及介质 | |
US9105208B2 (en) | Method and apparatus for graphic processing using multi-threading | |
CN114003392A (zh) | 一种数据加速计算方法及相关装置 | |
US11562554B1 (en) | Workload reduction for non-maximum suppression operation | |
US9513923B2 (en) | System and method for context migration across CPU threads | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
KR20210014561A (ko) | 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체 | |
US8224871B2 (en) | Triangulated irregular network | |
US11610128B2 (en) | Neural network training under memory restraint | |
CN113918233A (zh) | 一种ai芯片控制方法、电子设备及ai芯片 | |
CN111159124A (zh) | Linux内核文件***异步写缓存方法、装置及介质 | |
CN115049531B (zh) | 图像渲染方法、装置、图形处理设备及存储介质 | |
CN110825326A (zh) | 提升ssd随机读性能的方法、装置、计算机设备及存储介质 | |
CN109426529B (zh) | 基于x窗口***图形绘制的方法、装置及终端 | |
CN113272785A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200512 |
|
WW01 | Invention patent application withdrawn after publication |