CN107111662B - 用于处理数据的系统、装置和方法 - Google Patents
用于处理数据的系统、装置和方法 Download PDFInfo
- Publication number
- CN107111662B CN107111662B CN201580072310.7A CN201580072310A CN107111662B CN 107111662 B CN107111662 B CN 107111662B CN 201580072310 A CN201580072310 A CN 201580072310A CN 107111662 B CN107111662 B CN 107111662B
- Authority
- CN
- China
- Prior art keywords
- target
- fpga
- node
- algorithm module
- configuration file
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种用于处理数据的系统、装置和方法,能够缩短FPGA程序开发周期并降低FPGA程序开发复杂度。该系统包括通用处理器节点(110)和多个FPGA节点(120),其中,该系统设置有配置文件库,该配置文件库包括该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块;该通用处理器节点用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,向至少一个目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件;该目标FPGA节点用于接收该通用处理器节点发送的该配置消息,并且根据该配置消息中指示的目标配置文件,执行配置操作。
Description
技术领域
本发明实施例涉及数据处理领域,并且更具体地,涉及用于处理数据的系统、装置和方法。
背景技术
随着互联网技术的发展和高性能计算的市场需求的扩大,集群计算越来越普及。在集群计算中,异构集群是未来发展的趋势,与此同时,由于现场可编辑门阵列(FieldProgrammable Gate Array,FPGA)对某些算法具有无可替代的加速性能,FPGA作为加速器在集群计算中引起越来越多的关注。
然而,FPGA的程序开发流程相比通用处理器的开发流程复杂许多。对于同样复杂度的算法,FPGA的程序开发周期远长于通用处理器的程序开发周期。典型的FPGA的程序开发流程大致包括以下步骤:建立工程、综合、映射、布局布线和时序分析,如果设计结果正确并且时序分析结果满足时序约束条件,则可以生成配置文件;反之,如果设计结果不正确或者时序分析结果不满足时序约束条件,则需要进行下一次迭代,直到完全符合设计要求。
在现有技术中,各个FPGA节点之间相互独立,并且一个FPGA节点同时负责各个算法模块的数据面和控制面。随着FPGA的容量越来越大,设计越来越复杂,单次编译时间短则需要十几分钟,长则需要数小时。此外,如果在调试过程中需要对某一种算法模块的个数做出调整,则需要重新完成上述各个步骤以生成一个新的配置文件,对于设计变动频繁的情况,FPGA的程序调试会耗费大量的时间。如何缩短FPGA的开发周期是本领域亟待解决的技术问题。
发明内容
本发明实施例提供一种用于处理数据的系统、装置和方法,能够缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度。
第一方面,本发明实施例提供了一种用于处理数据的系统,包括:通用处理器节点和多个现场可编辑门阵列FPGA节点,其中,该系统设置有配置文件库,该配置文件库包括该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块;该通用处理器节点用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;该通用处理器节点还用于向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件;该目标FPGA节点用于接收该通用处理器节点发送的该配置消息,并且根据该配置消息中指示的目标配置文件,执行配置操作。
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。
结合上述可能的实现方式,在第六种可能的实现方式中,该通用处理器节点具体用于:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
结合上述可能的实现方式,在第七种可能的实现方式中,该通用处理器节点具体用于:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
结合上述可能的实现方式,在第八种可能的实现方式中,在从该配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,该通用处理器节点还用于:根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
结合上述可能的实现方式,在第九种可能的实现方式中,该通用处理器节点还用于:确定该至少一个目标FPGA节点的调用次序;根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;该目标FPGA节点还用于:接收该通用处理器节点发送的该调用消息,根据该调用消息对该待处理数据进行处理,并向该通用处理器节点发送处理结果。
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息携带该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
结合上述可能的实现方式,在第十一种可能的实现方式中,该通用处理器节点还用于:向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
结合上述可能的实现方式,在第十二种可能的实现方式中,该配置文件库存储在该通用处理器节点中;或者该系统还包括:共享服务器,该配置文件库存储在该共享服务器中,该通用处理器节点还用于从该共享服务器获取该配置文件库包括的多个配置文件的信息。
第二方面,提供了一种用于处理数据的装置,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该装置包括:确定单元,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;发送单元,用于向该确定单元确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。
结合上述可能的实现方式,在第六种可能的实现方式中,该确定单元具体用于:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
结合上述可能的实现方式,在第七种可能的实现方式中,该确定单元具体用于:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
结合上述可能的实现方式,在第八种可能的实现方式中,该确定单元还用于:在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
结合上述可能的实现方式,在第九种可能的实现方式中,该确定单元还用于确定该至少一个目标FPGA节点的调用次序;该发送单元还用于根据该确定单元确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;该装置还包括:接收单元,用于接收该目标FPGA节点根据该发送单元发送的该调用消息发送的数据处理结果。
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
结合上述可能的实现方式,在第十一种可能的实现方式中,该发送单元还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者该确定单元还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
结合上述可能的实现方式,在第十二种可能的实现方式中,还包括:存储单元,用于存储该配置文件库。
第三方面,提供了另一种用于处理数据的装置,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该装置包括:接收单元,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;处理单元,用于根据该接收单元接收的该调用消息,对该待处理数据进行处理,以获得处理结果;发送单元,用于向该通用处理器节点发送该处理单元获得的该处理结果。
在第一种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
结合上述可能的实现方式,在第二种可能的实现方式中,在该接收通用处理器节点发送的调用消息之前,该接收单元还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件;该装置还包括:获取单元,用于根据该接收单元接收的该配置消息,获取该目标配置文件;配置单元,用于根据该获取单元获取的该目标配置文件,执行配置操作。
结合上述可能的实现方式,在第二种可能的实现方式中,该配置消息携带该目标配置文件;该获取单元具体用于从该配置消息中获取该目标配置文件。
结合上述可能的实现方式,在第三种可能的实现方式中,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息;该获取单元具体用于根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。
结合上述可能的实现方式,在第四种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该FPGA节点和该目标算法模块;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
结合上述可能的实现方式,在第五种可能的实现方式中,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。
结合上述可能的实现方式,在第六种可能的实现方式中,该接收单元还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。
结合上述可能的实现方式,在第七种可能的实现方式中,该空闲配置文件包括:基本信息逻辑,用于描述该FPGA节点;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
第四方面,提供了一种用于处理数据的方法,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该方法包括:根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。
结合上述可能的实现方式,在第六种可能的实现方式中,该根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
结合上述可能的实现方式,在第七种可能的实现方式中,该根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
结合上述可能的实现方式,在第八种可能的实现方式中,在该从该配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,该方法还包括:根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
结合上述可能的实现方式,在第九种可能的实现方式中,该方法还包括:确定该至少一个目标FPGA节点的调用次序;根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;接收该目标FPGA节点根据该调用消息发送的数据处理结果。
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
结合上述可能的实现方式,在第十一种可能的实现方式中,该方法还包括:向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
第五方面,提供了另一种用于处理数据的方法,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该方法包括:接收通用处理器节点发送的调用消息,该调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;根据该调用消息,对该待处理数据进行处理,以获得处理结果;向该通用处理器节点发送该处理结果。
在第一种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
结合上述可能的实现方式,在第二种可能的实现方式中,在该接收通用处理器节点发送的调用消息之前,该方法还包括:接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件;根据该配置消息,获取该目标配置文件;执行该目标配置文件的配置操作。
结合上述可能的实现方式,在第三种可能的实现方式中,该配置消息携带该目标配置文件;该根据该配置消息,获取该目标配置文件,包括:从该配置消息中获取该目标配置文件。
结合上述可能的实现方式,在第四种可能的实现方式中,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息;该根据该配置消息,获取该目标配置文件,包括:根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。
结合上述可能的实现方式,在第五种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该FPGA节点和该目标算法模块;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
结合上述可能的实现方式,在第六种可能的实现方式中,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。
结合上述可能的实现方式,在第七种可能的实现方式中,该方法还包括:接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;根据该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。
结合上述可能的实现方式,在第八种可能的实现方式中,该空闲配置文件包括:基本信息逻辑,用于描述该FPGA节点;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
基于上述技术方案,本发明实施例提供的用于处理数据的系统、装置和方法,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送配置消息,该配置消息用于指示该通用处理器节点为该目标FPGA节点分配的目标配置文件,该目标FPGA节点根据该配置消息执行配置操作,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用于处理数据的系统的示意性框图。
图2为本发明实施例提供的用于处理数据的系统中算法模块的配置示例。
图3为本发明实施例提供的用于处理数据的系统示例的示意性框架图。
图4为本发明实施例提供的用于处理数据的系统的另一示例的示意性框架图。
图5为本发明实施例提供的用于处理数据的装置的示意性框图。
图6为本发明另一实施例提供的用于处理数据的装置的示意性框图。
图7为本发明另一实施例提供的用于处理数据的装置的示意性框图。
图8为本发明另一实施例提供的用于处理数据的装置的示意性框图。
图9为本发明实施例提供的计算设备的示意性框图。
图10为本发明实施例提供的用于处理数据的方法的示意性流程图。
图11为本发明另一实施例提供的用于处理数据的方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,本发明实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,GSM)系统、码分多址(Code DivisionMultiple Access,CDMA)系统、宽带码分多址(Wideband Code Division MultipleAccess,WCDMA)系统、通用分组无线业务(General Packet Radio Service,GPRS)、长期演进(Long Term Evolution,LTE)系统、LTE频分双工(Frequency Division Duplex,FDD)系统、LTE时分双工(Time Division Duplex,TDD)、通用移动通信系统(Universal MobileTelecommunication System,UMTS)、全球互联微波接入(Worldwide Interoperabilityfor Microwave Access,WiMAX)通信系统等。
还应理解,本发明实施例的技术方案还可以应用于各种图像处理系统,例如图像处理系统、基因序列图谱分析(DNA Sequence Mapping)领域、大数据领域等。
图1是本发明实施例的用于处理数据的系统100的示意性框图,该用于处理数据的系统100可以为任意能够利用通用处理器节点和FPGA节点处理数据的系统或设备。下面以该用于处理数据的系统100应用于通信领域为例进行描述,但该用于处理数据的系统100也可以应用于其它领域,本发明实施例对此不做限定。
如图1所示,该用于处理数据的系统100包括:通用处理器节点110和多个FPGA节点120,其中,
该系统100设置有配置文件库,该配置文件库包括该多个FPGA节点120中的每个FPGA节点120对应的至少一个配置文件,每个该FPGA节点120对应的每个配置文件用于配置该FPGA节点120实现一种算法模块;
该通用处理器节点110用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点120中的目标FPGA节点120实现目标算法模块;
该通用处理器节点110还用于向至少一个该目标FPGA节点120发送配置消息,该配置消息用于指示该目标FPGA节点120对应的目标配置文件;
该目标FPGA节点120用于接收该通用处理器节点110发送的该配置消息,并且根据该配置消息中指示的该目标配置文件,执行配置操作。
因此,根据本发明实施例的用于处理数据的系统,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送配置消息,该配置消息用于指示该通用处理器节点为该目标FPGA节点分配的目标配置文件,该目标FPGA节点根据该配置消息执行配置操作,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
在该用于处理数据的系统100中,该通用处理器节点110可以与该多个FPGA节点120中的每个FPGA节点直接或间接连接,例如,该通用处理器节点110可以通过交换机与该多个FPGA节点120中的每个FPGA节点连接。该通用处理器节点110可以与该多个FPGA节点120组成节点簇。此时,该节点簇的控制面和数据面可以分离,其中,该通用处理器节点110可以实现该节点簇的控制面,用于对该多个FPGA节点120实现的算法模块进行管理和控制,而FPGA节点120可以实现该节点簇的数据面,用于在该通用处理器节点110的控制下,实现一种或多种算法模块,但本发明实施例不限于此。
可选地,该通用处理器节点可以为x86、ARM(Acorn RISC machine)、MIPS或PowerPC,等等,本发明实施例对此不做限定。
该用于处理数据的系统100可以设置有标准的配置文件库,该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。具体地,与FPGA节点对应的一个配置文件可以用于配置该FPGA节点实现一种算法模块,即该配置文件用于将该FPGA节点的资源配置为该算法模块,以使得该FPGA节点能够实现该算法模块对应的算法。可选地,该多个配置文件可以通过现有的程序开发流程获得,例如,通过建立工程、综合、映射、布局布线和时序分析等步骤获得配置文件,但本发明实施例不限于此。应理解,在本发明实施例中,在获得该配置文件库之后,可以通过与开发通用处理程序类似的流程实现FPGA程序开发,此时,FPGA节点实现的算法模块可以标准化复用,使用时可以对应于通用处理器节点中的一个调用函数,无需再次通过现有流程进行FPGA程序开发,从而极大降低FPGA节点程序开发复杂度,提高程序开发效率。
作为一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。
作为另一个可选实施例,该配置文件库中的配置文件可以用于配置一种类型的FPGA节点,即对于相同的算法模块参数,同一种类型的FPGA节点对应于相同的配置文件。此时,该配置文件库还包括该多个FPGA节点中的第二FPGA节点对应的多个第二配置文件,其中,该第一FPGA节点与该第二FPGA节点具有不同的类型,并且与同一种算法模块对应的至少一个第一配置文件和至少一个第二配置文件不同。
相应地,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
作为另一个可选实施例,系统可用的多种算法模块和该多个FPGA节点中包括的不同类型的FPGA节点可以任意组合,该配置文件库可以包括与所有组合中的每个组合对应的至少一个配置文件。一种配置文件库的示例如表1所示,其中,FPGA节点的类型可以由FPGA节点的厂商和型号共同确定。此时,FPGA节点的类型、算法模块的类型和算法模块的例化数量这三个参数可以确定唯一一个配置文件,但本发明实施例不限于此。
表1配置文件库示例
该系统可用的多种算法可以具体为通信系统的所有算法、图像处理领域的所有算法或大数据领域的所有算法,本发明实施例对此不做限定。
可选地,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点110进行通信的接口功能。
该通用处理器节点110可以根据该接口逻辑与该目标FPGA节点通信,例如,数据下发,接收处理结果,等等。该基本信息逻辑中可以包括用于描述该目标配置文件配置的目标FPGA节点和目标算法模块的信息,其中,该目标FPGA节点的信息可以包括能够表示该目标FPGA节点的类型的任意信息,例如,目标FPGA节点的厂商和该目标FPGA节点的型号,但本发明实施例不限于此。该目标算法模块的信息可以包括该目标算法模块的名称、该目标算法模块的例化(instance)个数以及该目标FPGA节点实现上述个数的该目标算法模块时的处理性能,例如,处理时延、处理精度等等,本发明实施例不限于此。
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
该配置文件库可以存储在该通用处理器节点110中。此时,该通用处理器节点110可以直接查询存储的该配置文件库。或者,该配置文件库可以存储于该系统中的其它节点上。例如,该系统100还包括:共享服务器,并且该配置文件库存储在该共享服务器中。此时,该通用处理器节点110可以通过与该共享服务器之间的通信接口,查询该共享服务器中存储的该配置文件库,并根据查询结果确定该至少一个目标配置文件。
例如,该通用处理器节点110可以向该共享服务器发送查询消息,该查询消息中可以携带该至少一个目标算法模块的信息,例如,该至少一个目标算法模块的标识信息,或者进一步携带该多个FPGA节点的模式信息或该多个FPGA节点中处于省电模式的FPGA节点的信息,本发明实施例不限于此。该共享服务器在接收到该查询消息之后,可以根据该请求消息确定该至少一个目标配置文件,并向该通用处理器节点110发送查询响应,该查询响应中携带用于指示该至少一个目标配置文件的指示信息或携带该至少一个目标配置文件。此时,该通用处理器节点110可以根据该查询响应确定该至少一个目标配置文件,本发明实施例不限于此。
作为另一个可选实施例,该共享服务器在接收到该查询消息之后,也可以根据该查询消息中携带的至少一个目标算法模块的信息,确定与该至少一个目标算法模块对应的配置文件的信息,并向该通用处理器节点110发送与该至少一个目标算法模块对应的至少一个配置文件,其中,与该至少一个目标算法模块对应的配置文件可以用于配置FPGA节点实现该目标算法模块。相应地,该通用处理器节点110可以接收该共享服务器发送的用于指示与该至少一个目标算法模块对应的至少一个配置文件的指示信息,并且根据该指示信息,确定该至少一个目标配置文件。具体地,该通用处理器节点110可以根据该至少一个目标算法模块的信息和特定标准,例如速度优先或资源优先,从该指示信息指示的与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。例如,根据该至少一个目标算法模块的目标数量和目标计算时间,确定该至少一个目标配置文件,但本发明实施例不限于此。
作为一个可选实施例,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。
该通用处理器节点110可以根据该至少一个目标算法模块的信息,确定实现该至少一个目标算法模块的至少一个目标FPGA节点以及对应的目标配置文件。作为一个可选实施例,该通用处理器节点110从该配置文件库包括的多个配置文件中确定至少一个目标配置文件可以包括:
该通用处理器节点110从该多个配置文件中确定与该目标算法模块对应的至少一个配置文件;
该通用处理器节点110根据该目标算法模块的信息,从与该目标算法模块对应的至少一个配置文件中确定该目标配置文件。
该通用处理器节点110可以首先确定与该至少一个目标算法模块对应的至少一个配置文件,并且根据该至少一个目标算法模块的信息,从该至少一个目标算法模块对应的至少一个配置文件中确定至少一个目标配置文件,如果该至少一个目标配置文件对应的FPGA节点的个数为多个,则该通用处理器节点110可以根据一定标准,从与该至少一个目标配置文件对应的多个FPGA节点中确定至少一个目标FPGA节点,该标准可以为随机选择,或者选择对应的多个FPGA节点中处于省电模式的FPGA节点,等等。如果该至少一个目标配置文件对应的FPGA节点的个数为一个,则该通用处理器节点110可以将该至少一个目标配置文件对应的FPGA节点确定为目标FPGA节点,但本发明实施例不限于此。
作为另一个可选实施例,该通用处理器节点110还可以根据该多个FPGA节点的当前模式和该至少一个目标算法模块的信息,确定该至少一个目标配置文件和该至少一个目标FPGA节点。相应地,该通用处理器节点110具体用于:
从该多个FPGA节点120中确定可用的至少一个FPGA节点;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
该通用处理器节点110可以确定该多个FPGA节点120中的每个FPGA节点的当前模式,一个FPGA节点当前可以具有以下两种模式中的一种:省电模式和工作模式,其中,处于省电模式的FPGA节点未配置配置文件或者配置有不用于实现任何有效算法模块的配置文件,处于工作模式的FPGA节点配置有用于实现一种有效算法模块的配置文件。该通用处理器节点110可以将该多个FPGA节点中当前处于省电模式的FPGA节点确定为可用的FPGA节点,但本发明实施例不限于此。
该通用处理器节点110可以确定与该可用的至少一个FPGA节点以及该至少一个目标算法模块对应的至少一个配置文件,并根据该至少一个配置文件中的基本信息逻辑和该至少一个目标算法模块的性能要求信息,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点和对应的目标配置文件,但本发明实施例不限于此。
例如,该至少一个目标算法模块及其目标计算时间具体为:28天线×14个快速傅里叶变换(Fast Fourier Transformation,FFT)模块,目标计算时间为100μs;6天线×13个turbo模块,目标计算时间为50μs。此时,该通用处理器节点110可以确定配置文件库中包括的与FFT模块对应的多个配置文件,并且根据该多个FPGA节点的当前模式、FFT模块对应的多个配置文件以及FFT模块的目标数量和目标计算时间,确定采用三个FPGA节点实现该28×14个FFT模块,并且向该三个FPGA节点中的每个FPGA节点发送用于配置该FPGA节点实现FFT模块的目标配置文件。此外,该通用处理器节点110可以确定配置文件库中包括的与turbo模块对应的多个配置文件,并且根据该多个FPGA节点的当前模式、turbo模块对应的多个配置文件以及该turbo模块的目标数量和目标计算时间,确定采用两个FPGA节点实现该6×13个turbo模块,并且向该两个FPGA节点中的每个FPGA节点发送用于配置该FPGA节点实现turbo模块的目标配置文件。
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该通用处理器节点110可以从该多个FPGA节点120中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。
在确定该至少一个目标配置文件之前,该通用处理器节点110还可以用于确定该至少一个目标算法模块的信息。作为一个可选实施例,该通用处理器节点110可以根据用户输入,确定该至少一个目标算法模块的信息。该用户输入可以具体为用户输入的指令或用户向通用处理器节点输入的可执行程序,该用户输入可以指示至少一个用户所需的算法模块的信息。作为一个可选实施例,该至少一个用户所需的算法模块可以全部由FPGA节点实现,此时,该通用处理器节点110可以将至少一个所需算法模块确定为该至少一个目标算法模块。作为另一个实施例,该至少一个所需算法模块的数量为多个,此时,该通用处理器节点110可以将多个所需算法模块中的一部分确定为由FPGA节点实现的该目标算法模块,而另一部分算法模块由通用处理器节点110实现。
相应地,在该通用处理器节点110从该配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,该通用处理器节点110还用于:
根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;
从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
此时,该多个所需算法模块可以由该至少一个目标算法模块和至少一个其它算法模块组成,其中,该至少一个目标算法模块由FPGA节点120实现,该至少一个其它算法模块由通用处理器节点110实现,并且该其它算法模块可以与该至少一个目标算法模块具有不同的种类。该通用处理器节点110可以通过多种方式确定该至少一个目标算法模块。具体地,该通用处理器节点110可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该通用处理器节点110可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点上实现。该通用处理器节点110还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM处理节点)处理FFT算法模块的时间比FPGA长,则该通用处理器节点110可以将该FFT算法模块确定为该至少一个目标算法模块,以使得FFT模块在FPGA节点上实现,但本发明实施例不限于此。
在图2所示的例子中,该多个所需算法模块包括1个算法1模块、3个算法2模块、1个算法3模块、1个算法4模块、2个算法5模块和3个算法6模块。该通用处理器节点110确定算法1模块、算法3模块和算法4模块由该通用处理器节点110自身实现,并且算法2模块、算法5模块和算法6模块由FPGA节点实现。可选地,该算法1-6可以分别为传输块循环冗余校验(Transport Block Cyclic Redundancy Check,TB-CRC)、编码块循环冗余校验(CodeBlock Cyclic Redundancy Check,CB-CRC)、加扰(scramble)或正交幅度调制(QuantizedAmplitude Modulation,QAM)、解调参考信号(DMRS)或物理下行共享信道(PhysicalDownlink Shared Channel,PDSCH)或资源单元映射(Resource Element Map,Re-Map)、BF(Beamforming)/RS(Reference Signal)-Map和快速傅里叶变换(Fast FourierTransformation,FFT),但本发明实施例不限于此。
该通用处理器节点110可以向该至少一个目标PFGA节点中的每个目标FPGA节点发送配置消息,该配置消息可以携带用于指示为该目标FPGA节点分配的目标配置文件的指示信息,或者携带为该目标FPGA节点分配的目标配置文件。每个目标FPGA节点在接收到通用处理器节点发送的配置消息之后,可以根据该配置消息获取该目标配置文件,并执行针对该目标配置文件的配置操作。其中,在配置了该目标配置文件之后,该目标FPGA节点中例化的一种目标算法模块的个数等于该目标配置文件的基本信息逻辑中描述的例化个数,并且该目标FPGA节点中例化的多个目标算法模块按序编号。此外,在该目标FPGA节点配置了对应的目标配置文件之后,该目标FPGA节点就处于工作模式,此时,该目标FPGA节点所需的逻辑资源将被使用。其中,在未接收到该通用处理器节点110发送的待处理数据时,该目标FPGA节点仅实现“基本信息逻辑”和“接口逻辑”,其它逻辑资源将不被使用,以降低FPGA节点的功耗,其中,该其它逻辑资源包括但不限于:Bram、Slice、DSP、DCM和DLL等。作为另一个可选实施例,该通用处理器节点110还用于:
确定该至少一个目标FPGA节点的调用次序;
根据该调用次序,向至少一个该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。
相应地,该目标FPGA节点还用于:接收该通用处理器节点110发送的该调用消息,根据该调用消息对该处理数据进行处理,并向该通用处理器节点发送处理结果。
该通用处理器节点110可以根据用户输入和该至少一个FPGA节点分别实现的目标算法模块,确定该至少一个目标FPGA节点的调用次序,并按照该次序调用该至少一个目标FPGA节点。当该通用处理器节点110调用该至少一个目标FPGA节点中的某个目标FPGA节点时,该通用处理器节点110可以向该目标FPGA节点发送调用消息,该调用消息可以用于指示该目标FPGA节点采用多个例化的目标算法模块中的指定的目标算法模块,对待处理数据进行处理。
可选地,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号。此时,该调用消息携带该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。该目标FPGA节点可以采用该调用消息中携带的编号信息对应的目标算法模块,对该待处理数据进行处理,并向该通用处理器节点110返回处理结果。
作为一个可选实施例,该调用消息可以采用调用函数的形式来实现,其中,该调用函数可以具有以下形式:Func fft(dst IP,src IP,fft module num,data),其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用fft模块的编号,data表示待处理数据。
在图3所示的例子中,九个FPGA节点120(加速卡)用于实现FFT模块,每个FPGA节点上例化有多个FFT模块。七个FPGA节点120用于实现turbo模块,每个FPGA节点上可以例化有多个turbo模块。该通用处理器节点110可以通过交换机发送调用消息,该调用消息指示调用哪个FPGA节点以及调用该FPGA节点上的哪个算法模块,但本发明实施例不限于此。
作为另一个可选实施例,该通用处理器节点110还用于:
向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者
将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
该通用处理器节点110的上述节点资源配置功能可以由该通用处理器节点110中的资源管理模块来实现。作为另一个可选实施例,该通用处理器节点110可以在初始化时或者在数据处理的过程中确定需要释放FPGA节点资源,以节省FPGA资源。具体地,当该通用处理器节点确定需要释放FPGA节点资源(例如释放第一目标FPGA节点)时,该通用处理器节点可以将该第一目标FPGA节点的模式由工作模式配置为省电模式,或者将该第一目标FPGA节点从该通用处理器节点中存储的待调用FPGA节点列表中删除,以使得该通用处理器节点在当前的数据处理过程中不调用该第一目标FPGA节点,并且该通用处理器节点可以为该第一目标FPGA节点分配新的配置文件。此时,该通用处理器节点中的控制模块可以向资源管理模块发送资源释放消息,该资源释放消息可以通过资源释放函数delete_FPGA_card(IP_addr)的形式实现,其中,IP_addr表示释放的FPGA节点的地址,但本发明实施例不限于此。
作为一个可选实施例,为了进一步降低该FPGA节点的功耗,该通用处理器节点可以向该第一目标FPGA节点发送用于指示该第一目标FPGA节点进入省电模式的模式转换指示信息,该第一目标FPGA节点在接收到该模式转换指示信息时,可以获取一个不用于配置该第一目标FPGA节点实现任何有效算法模块的空闲配置文件,并执行针对该空闲配置文件的配置操作。这样,该第一目标FPGA节点可以处于省电模式,但本发明实施例不限于此。
作为另一个可选实施例,该通用处理器节点还可以在数据处理过程中申请新的FPGA节点资源。此时,该通用处理器节点可以从处于省电模式的至少一个FPGA节点中确定第二目标FPGA节点,并将该第二目标FPGA节点添加至该至少一个目标FPGA节点中。具体地,该通用处理器节点110可以确定该第二目标FPGA节点对应的配置文件,并向该第二目标FPGA节点发送该对应的配置文件。
此时,该通用处理器节点110的控制模块可以向资源管理模块发送资源请求消息,该资源请求消息可以通过资源请求函数create_FPGA_card(算法模块名称,算法模块数量,计算时间)的形式实现。该资源管理模块可以根据该资源请求消息确定该第二目标FPGA节点,并向该控制模块发送携带该第二目标FPGA节点的信息的资源请求响应,但本发明实施例不限于此。
作为另一个可选实施例,该系统100可以包括多个通用处理器节点和多个FPGA节点。如图4所示,该用于处理数据的系统100可以包括M1个通用处理器节点、M2个FPGA节点和交换机,M1和M2均为大于1的整数,其中,该M1个通用处理器节点中的每个通用处理器节点可以与M2个FPGA节点中的部分或所有FPGA节点进行通信,该M2个FPGA节点中的每个FPGA节点可以与M1个通用处理器节点中的部分或所有通用处理器节点进行通信。可选地,该系统100可以采用10G以太网(10gigabit Ethernet,10GE)或infiniband网络进行通信,但本发明实施例不限于此。该M1个通用处理器节点中的每个通用处理器节点中可以存储有配置文件库,该配置文件库可以包括该M2个FPGA节点中的每个FPGA节点对应的多个配置文件,其中,与同一个FPGA节点对应的多个配置文件可以分别用于配置该FPGA节点实现系统可用的多种不同的算法模块,每个配置文件用于配置该FPGA节点实现一种算法模块,但本发明实施例不限于此。
应注意,图2至图4的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图2至图4的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
因此,根据本发明实施例的用于处理数据的系统,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图5示意性地示出了本发明实施例提供的用于处理数据的装置200,该装置200应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图5所示,该装置200包括:
确定单元210,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;
发送单元220,用于向该确定单元210确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
作为一个可选实施例,该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。
作为另一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
该配置文件库中的算法可以为通信系统的算法、图像处理领域的算法或大数据领域的算法,本发明实施例对此不做限定。
可选地,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
该配置文件库可以存储在该装置200中。此时,该装置200还可以包括用于存储该配置文件库的存储单元,相应地,该确定单元210可以通过查询该存储单元存储的该配置文件库,确定该至少一个目标配置文件。或者,该配置文件库可以存储于其它节点中,例如,共享服务器,等等。此时,该确定单元210可以通过查询该共享服务器中存储的该配置文件库,确定该至少一个目标配置文件。
例如,该确定单元210可以包括发送子单元、接收子单元和确定子单元,该发送子单元可以用于向该共享服务器发送查询消息,该查询消息中可以携带该至少一个目标算法模块的信息,例如,该至少一个目标算法模块的标识信息,或者进一步携带该多个FPGA节点的模式信息或该多个FPGA节点中处于省电模式的FPGA节点的信息,本发明实施例不限于此。该共享服务器在接收到该查询消息之后,可以根据该请求消息确定该至少一个目标配置文件,并向该装置200发送查询响应,该查询响应中携带用于指示该至少一个目标配置文件的指示信息或携带该至少一个目标配置文件。此时,该接收子单元可以接收该共享服务器发送的该查询响应,该确定子单元可以根据接收子单元接收的该查询响应,确定该至少一个目标配置文件,本发明实施例不限于此。
作为另一个可选实施例,该共享服务器在接收到该发送子单元发送的该查询消息之后,也可以根据该查询消息中携带的至少一个目标算法模块的信息,确定与该至少一个目标算法模块对应的配置文件的信息,并向该装置200发送与该至少一个目标算法模块对应的至少一个配置文件,其中,与该至少一个目标算法模块对应的配置文件可以用于配置FPGA节点实现该目标算法模块。相应地,该接收子单元可以接收该共享服务器发送的用于指示与该至少一个目标算法模块对应的至少一个配置文件的指示信息,该确定子单元可以根据该接收子单元接收的该指示信息,确定该至少一个目标配置文件。具体地,该确定子单元可以根据该至少一个目标算法模块的信息和特定标准,例如速度优先或资源优先,从该指示信息指示的与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。例如,根据该至少一个目标算法模块的目标数量和目标计算时间,确定该至少一个目标配置文件,但本发明实施例不限于此。
可选地,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。
作为一个可选实施例,该确定单元210具体用于:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
作为一个可选实施例,该确定单元210可以根据该多个FPGA节点的当前模式,确定与至少一个目标算法模块对应的至少一个目标配置文件。此时,该确定单元210具体用于:
从该多个FPGA节点中确定可用的至少一个FPGA节点;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该确定单元210可以从该多个FPGA节点中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。
作为另一个可选实施例,该确定单元210还用于:
在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
该确定单元210可以通过多种方式确定该至少一个目标算法模块。具体地,该确定单元210可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该确定单元210可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点上实现。该确定单元210还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM)处理FFT算法模块的时间比FPGA长,则该确定单元210可以将该FFT算法模块确定为该至少一个目标算法模块,以使得FFT模块在FPGA节点上实现,但本发明实施例不限于此。
作为另一个可选实施例,该装置200还可以确定该至少一个目标FPGA节点的调用次序并根据该次序调用该至少一个目标FPGA节点。此时,该确定单元210还用于确定该至少一个目标FPGA节点的调用次序;
该发送单元220还用于根据该确定单元210确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。
相应地,该装置200还包括:接收单元,用于接收该目标FPGA节点根据该发送单元220发送的该调用消息发送的数据处理结果。
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
该调用消息可以采用调用函数Func fft(dst IP,src IP,fft module num,data)来实现,其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用的fft模块的编号,data表示待处理数据,但本发明实施例不限于此。
作为另一个可选实施例,该发送单元220还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者
该确定单元210还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
本发明实施例提供的装置200可对应于根据本发明实施例的用于处理数据的系统中的通用处理器节点110,并且装置200中的各个模块的上述和其它操作可以用于实现通用处理器节点110的功能,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图6示出了本发明另一实施例提供的用于处理数据的装置300。该装置300应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图6所示,该装置300包括:
接收单元310,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;
处理单元320,用于根据该接收单元310接收的该调用消息,对该待处理数据进行处理,以获得处理结果;
发送单元330,用于向该通用处理器节点发送该处理单元320获得的该处理结果。
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
该FPGA节点配置有用于使得该FPGA节点实现目标算法模块的目标配置文件。具体地,该FPGA节点中可以例化有具有同一种类型的多个目标算法模块,其中,该例化的多个该目标算法模块按序编号。
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
可选地,作为另一实施例,在接收通用处理器节点发送的调用消息之前,该接收单元310还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件。相应地,该装置300还包括:
获取单元,用于根据该接收单元310接收的该配置消息,获取该目标配置文件;
配置单元,用于根据该获取单元获取的该目标配置文件,执行配置操作。
作为一个可选实施例,该配置消息携带该目标配置文件。此时,该获取单元具体用于从该配置消息中获取该目标配置文件。
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,该获取单元具体用于根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。
可选地,作为另一实施例,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
可选地,作为另一实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。
可选地,作为另一实施例,该接收单元310还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;
该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。
作为一个可选实施例,该空闲配置文件包括:
基本信息逻辑,用于描述该FPGA节点;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
本发明实施例提供的装置300可对应于根据本发明实施例的用于处理数据的系统中的目标FPGA节点120,并且装置300中的各个模块的上述和其它操作可以用于实现目标FPGA节点120的功能,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图7示意性地示出了本发明实施例提供的用于处理数据的装置400,该装置400应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图7所示,该装置400包括:
处理器410,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;
发送器420,用于向该处理器410确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
应理解,在本发明实施例中,该处理器410可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器410还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该用于处理数据的装置400还可以包括存储器,该存储器可以包括只读存储器和随机存取存储器,并向处理器410提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器410读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。
作为一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
该配置文件库中的算法可以为通信系统的算法、图像处理领域的算法或大数据领域的算法,本发明实施例对此不做限定。
可选地,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
该配置文件库可以存储在该装置400中。此时,该装置400还可以包括用于存储该配置文件库的存储器,相应地,该处理器410可以通过查询该存储器存储的该配置文件库,确定该至少一个目标配置文件。或者,该配置文件库可以存储于其它节点中,例如,共享服务器,等等。此时,该处理器410可以通过查询该共享服务器中存储的该配置文件库,确定该至少一个目标配置文件。
可选地,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。
作为一个可选实施例,该处理器410具体用于:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
作为一个可选实施例,该处理器410可以根据该多个FPGA节点的当前模式,确定与至少一个目标算法模块对应的至少一个目标配置文件。此时,该处理器410具体用于:
从该多个FPGA节点中确定可用的至少一个FPGA节点;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该处理器410可以从该多个FPGA节点中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。
作为另一个可选实施例,该处理器410还用于:
在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
该处理器410可以通过多种方式确定该至少一个目标算法模块。具体地,该处理器410可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该处理器410可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点上实现。该处理器410还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM处理节点)处理FFT算法模块的时间比FPGA长,则该处理器410可以将该FFT算法模块确定为该至少一个目标算法模块,以使得FFT模块在FPGA节点上实现,但本发明实施例不限于此。
作为另一个可选实施例,该处理器410还可以确定该至少一个目标FPGA节点的调用次序并根据该次序调用该至少一个目标FPGA节点。此时,该处理器410还用于确定该至少一个目标FPGA节点的调用次序;
该发送器420还用于根据该处理器410确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。
相应地,该装置400还包括:接收器,用于接收该目标FPGA节点根据该发送器420发送的该调用消息发送的数据处理结果。
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
该调用消息可以采用调用函数Func fft(dst IP,src IP,fft module num,data)来实现,其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用的fft模块的编号,data表示待处理数据,但本发明实施例不限于此。
作为另一个可选实施例,该发送器420还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者
该处理器410还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
本发明实施例提供的装置400可对应于根据本发明实施例的用于处理数据的系统中的通用处理器节点110,并且装置400中的各个模块的上述和其它操作可以用于实现通用处理器节点110的功能,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图8示出了本发明另一实施例提供的用于处理数据的装置500。该装置500应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图8所示,该装置500包括:
接收器510,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;
处理器520,用于根据该接收器510接收的该调用消息,对该待处理数据进行处理,以获得处理结果;
发送器530,用于向该通用处理器节点发送该处理器520获得的该处理结果。
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
应理解,在本发明实施例中,该处理器520可以是FPGA。该用于处理数据的装置500还可以包括存储器,该存储器可以包括只读存储器和随机存取存储器,并向处理器520提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器520中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器520读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
该FPGA节点配置有用于使得该FPGA节点实现目标算法模块的目标配置文件。具体地,该FPGA节点中可以例化有具有同一种类型的多个目标算法模块,其中,该例化的多个该目标算法模块按序编号。
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
可选地,作为另一实施例,在接收通用处理器节点发送的调用消息之前,该接收器510还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件。相应地,该处理器520用于根据该接收器510接收的该指示信息,获取该目标配置文件,以及根据该目标配置文件,执行配置操作。
作为一个可选实施例,该配置消息携带该目标配置文件。此时,该处理器520具体用于从该配置消息中获取该目标配置文件。
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,该处理器520具体用于根据该配置消息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。
可选地,作为另一实施例,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
可选地,作为另一实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。
可选地,作为另一实施例,该接收器510还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;
该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。
作为一个可选实施例,该空闲配置文件包括:
基本信息逻辑,用于描述该FPGA节点;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
本发明实施例提供的装置500可对应于根据本发明实施例的用于处理数据的系统中的目标FPGA节点120,并且装置500中的各个模块的上述和其它操作可以用于实现目标FPGA节点120的功能,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图9示出了本发明实施例提供的一种计算设备600,该计算设备600包括:
处理器602、存储器604、输入/输出接口606、通信接口608和总线610。其中,处理器602、存储器604、输入/输出接口606和通信接口608通过总线610实现彼此之间的通信连接。
处理器602可以采用通用的CPU、微处理器或FPGA,应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器604可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器604可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器604中,并由处理器602来执行。
输入/输出接口606用于接收输入的数据和信息,输出操作结果等数据。
通信接口608使用例如但不限于收发器一类的收发装置,来实现计算设备600与其他设备或通信网络之间的通信。
总线610可包括一通路,在计算设备600各个部件(例如处理器602、存储器604、输入/输出接口606和通信接口608)之间传送信息。
具体地,存储器604可以用于存储可执行指令,也可以用于存储各种信息,例如,配置文件库。处理器602可以通过总线系统610读取该存储器604存储的信息,或者将查询结果存储至存储器604。此外,当该计算设备600运行时,处理器602可以执行存储器604存储的可执行指令,以执行上述方法实施例中的各个流程,但本发明实施例不限于此。
上文中结合图1至图9,详细描述了根据本发明实施例的用户处理数据的系统和通用处理器节点,下面将结合图10和图11,描述根据本发明实施例的用于处理数据的方法。
图10示意性地示出了本发明实施例提供的用于处理数据的方法700。该方法700可以应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图10所示,该方法700包括:
S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;
S720,向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
作为另一个可选实施例,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。
可选地,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。
作为一个可选实施例,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。
作为另一个可选实施例,S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。
作为另一个可选实施例,S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
从该多个FPGA节点中确定可用的至少一个FPGA节点;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。
作为另一个可选实施例,在S710之前,该方法700还包括:
根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。
作为另一个可选实施例,该方法700还包括:
确定该至少一个目标FPGA节点的调用次序;
根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;
接收该目标FPGA节点根据该调用消息发送的数据处理结果。
作为另一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
作为另一个可选实施例,该方法700还包括:
向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者
将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。
根据本发明实施例的用于处理数据的方法700可以由通用处理器节点110、用于处理数据的装置200或用于处理数据的装置400实现,其各个流程可以由上述装置的各个模块的上述和其它操作和/或功能实现,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
图11示出了本发明实施例提供的另一用于处理数据的方法800。该方法800可以应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图11所示,该方法800包括:
S810,接收通用处理器节点发送的调用消息,该调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;
S820,根据该调用消息,对该待处理数据进行处理,以获得处理结果;
S830,向该通用处理器节点发送该处理结果。
因此,根据本发明实施例的用于处理数据的方法,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;
相应地,该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。
作为另一个可选实施例,在S810之前,该方法800还包括:
接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件;
根据该配置消息,获取该目标配置文件;
执行该目标配置文件的配置操作。
作为另一个可选实施例,该配置消息携带该目标配置文件,此时,该获取单元具体用于从该配置消息中获取该目标配置文件。
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,S810,根据该配置消息,获取该目标配置文件,包括:
根据该配置消息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。
作为另一个可选实施例,该目标配置文件包括:
算法模块逻辑,用于实现该目标算法模块;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
作为另一个可选实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。
作为另一个可选实施例,该方法800还包括:
接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;
根据该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。
作为一个可选实施例,该空闲配置文件包括:
基本信息逻辑,用于描述该FPGA节点;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。
根据本发明实施例的用于处理数据的方法800可以由目标FPGA节点120、用于处理数据的装置300或用于处理数据的装置500实现,其各个流程可以由上述装置的各个模块的上述和其它操作和/或功能实现,为了简洁,在此不再赘述。
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应理解,在本发明实施例中,术语和/或仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符/,一般表示前后关联对象是一种或的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (56)
1.一种用于处理数据的系统,其特征在于,包括:通用处理器节点和多个现场可编辑门阵列FPGA节点,其中,
所述系统设置有配置文件库,所述配置文件库包括所述多个FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块;
所述通用处理器节点用于根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;
所述通用处理器节点还用于向至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件;
所述目标FPGA节点用于接收所述通用处理器节点发送的所述配置消息,并且根据所述配置消息中指示的目标配置文件,执行配置操作。
2.根据权利要求1所述的系统,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
3.根据权利要求1或2所述的系统,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
4.根据权利要求1或2所述的系统,其特征在于,所述目标配置文件包括:
算法模块逻辑,用于实现所述目标算法模块;
基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;
接口逻辑,用于实现所述目标FPGA节点与所述通用处理器节点进行通信的接口功能。
5.根据权利要求4所述的系统,其特征在于,所述基本信息逻辑用于描述所述目标FPGA节点的类型;
所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。
6.根据权利要求1或2所述的系统,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述至少一个目标算法模块的目标数量和所述至少一个目标算法模块的目标处理时间。
7.根据权利要求1或2所述的系统,其特征在于,所述通用处理器节点具体用于:
从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;
根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。
8.根据权利要求1或2所述的系统,其特征在于,所述通用处理器节点具体用于:
从所述多个FPGA节点中确定可用的至少一个FPGA节点;
根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定所述至少一个所述目标FPGA节点;
从所述配置文件库包括的多个配置文件中确定与所述至少一个所述目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。
9.根据权利要求1或2所述的系统,其特征在于,在从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,所述通用处理器节点还用于:
根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;
根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标算法模块之外的算法模块由所述通用处理器节点实现。
10.根据权利要求1或2所述的系统,其特征在于,所述通用处理器节点还用于:
确定所述至少一个所述目标FPGA节点的调用次序;
根据所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;
所述目标FPGA节点还用于:
接收所述通用处理器节点发送的所述调用消息,根据所述调用消息对所述待处理数据进行处理,并向所述通用处理器节点发送处理结果。
11.根据权利要求10所述的系统,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
所述调用消息携带所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
12.根据权利要求1或2所述的系统,其特征在于,所述通用处理器节点还用于:
向所述至少一个所述目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者
将所述多个FPGA节点中除所述至少一个所述目标FPGA节点之外的FPGA节点添加至所述至少一个所述目标FPGA节点中。
13.根据权利要求1或2所述的系统,其特征在于,所述配置文件库存储在所述通用处理器节点中;或者
所述系统还包括:共享服务器,所述配置文件库存储在所述共享服务器中,所述通用处理器节点还用于从所述共享服务器获取所述配置文件库包括的多个配置文件的信息。
14.一种用于处理数据的装置,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述装置包括:
确定单元,用于根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;
发送单元,用于向所述确定单元确定的至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件。
15.根据权利要求14所述的装置,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
16.根据权利要求14或15所述的装置,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
17.根据权利要求14或15所述的装置,其特征在于,所述目标配置文件包括:
算法模块逻辑,用于实现所述目标算法模块;
基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;
接口逻辑,用于实现所述目标FPGA节点与通用处理器节点进行通信的接口功能。
18.根据权利要求17所述的装置,其特征在于,所述基本信息逻辑用于描述所述目标FPGA节点的类型;
所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。
19.根据权利要求14或15所述的装置,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述至少一个目标算法模块的目标数量、所述至少一个目标算法模块的目标处理时间。
20.根据权利要求14或15所述的装置,其特征在于,所述确定单元具体用于:
从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;
根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。
21.根据权利要求14或15所述的装置,其特征在于,所述确定单元具体用于:
从所述多个FPGA节点中确定可用的至少一个FPGA节点;
根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定所述至少一个所述目标FPGA节点;
从所述配置文件库包括的多个配置文件中确定与所述至少一个所述目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。
22.根据权利要求14或15所述的装置,其特征在于,所述确定单元还用于:
在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;
根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标算法模块之外的算法模块由通用处理器节点实现。
23.根据权利要求14或15所述的装置,其特征在于,所述确定单元还用于确定所述至少一个所述目标FPGA节点的调用次序;
所述发送单元还用于根据所述确定单元确定的所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;
所述装置还包括:
接收单元,用于接收所述目标FPGA节点根据所述发送单元发送的所述调用消息发送的数据处理结果。
24.根据权利要求23所述的装置,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
所述调用消息包括所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
25.根据权利要求14或15所述的装置,其特征在于,所述发送单元还用于向所述至少一个所述目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者
所述确定单元还用于将所述多个FPGA节点中除所述至少一个所述目标FPGA节点之外的FPGA节点添加至所述至少一个所述目标FPGA节点中。
26.根据权利要求14或15所述的装置,其特征在于,还包括:
存储单元,用于存储所述配置文件库。
27.一种用于处理数据的装置,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述装置包括:
接收单元,用于接收通用处理器节点发送的调用消息,所述调用消息用于指示所述FPGA节点采用目标算法模块对待处理数据进行处理,其中,所述FPGA节点配置有用于使得所述FPGA节点实现所述目标算法模块的目标配置文件;
处理单元,用于根据所述接收单元接收的所述调用消息,对所述待处理数据进行处理,以获得处理结果;
发送单元,用于向所述通用处理器节点发送所述处理单元获得的所述处理结果。
28.根据权利要求27所述的装置,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
所述调用消息包括所述目标FPGA节点的地址信息、采用的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
29.根据权利要求27或28所述的装置,其特征在于,在所述接收通用处理器节点发送的调用消息之前,所述接收单元还用于接收所述通用处理器节点发送的配置消息,所述配置消息用于指示所述通用处理器节点为所述FPGA节点分配的所述目标配置文件;
所述装置还包括:
获取单元,用于根据所述接收单元接收的所述配置消息,获取所述目标配置文件;
配置单元,用于根据所述获取单元获取的所述目标配置文件,执行配置操作。
30.根据权利要求29所述的装置,其特征在于,所述配置消息携带所述目标配置文件;
所述获取单元具体用于从所述配置消息中获取所述目标配置文件。
31.根据权利要求29所述的装置,其特征在于,所述配置文件库设置在所述通用处理器节点上,并且所述配置消息携带用于指示所述目标配置文件的指示信息;
所述获取单元具体用于根据所述配置消息中携带的所述指示信息,从所述通用处理器节点设置的所述配置文件库中获取所述目标配置文件。
32.根据权利要求27或28所述的装置,其特征在于,所述目标配置文件包括:
算法模块逻辑,用于实现所述目标算法模块;
基本信息逻辑,用于描述所述FPGA节点和所述目标算法模块;
接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
33.根据权利要求32所述的装置,其特征在于,所述基本信息逻辑用于描述所述FPGA节点的类型;
所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述FPGA节点实现所述目标算法模块时的数据处理性能。
34.根据权利要求29所述的装置,其特征在于,所述接收单元还用于接收所述通用处理器节点发送的模式转换指示信息,所述模式转换指示信息用于指示所述FPGA节点进入省电模式;
所述配置单元还用于根据所述接收单元接收的所述模式转换指示信息,执行空闲配置文件的配置操作,所述空闲配置文件不用于配置所述FPGA节点实现任何有效算法模块。
35.根据权利要求34所述的装置,其特征在于,所述空闲配置文件包括:
基本信息逻辑,用于描述所述FPGA节点;
接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
36.一种用于处理数据的方法,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述方法包括:
根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;
向至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件。
37.根据权利要求36所述的方法,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
38.根据权利要求36或37所述的方法,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
39.根据权利要求36或37所述的方法,其特征在于,所述目标配置文件包括:
算法模块逻辑,用于实现所述目标算法模块;
基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;
接口逻辑,用于实现所述目标FPGA节点与通用处理器节点进行通信的接口功能。
40.根据权利要求39所述的方法,其特征在于,所述基本信息逻辑用于描述所述目标FPGA节点的类型;
所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。
41.根据权利要求36或37所述的方法,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述至少一个目标算法模块的目标数量、所述至少一个目标算法模块的目标处理时间。
42.根据权利要求36或37所述的方法,其特征在于,所述根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;
根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。
43.根据权利要求36或37所述的方法,其特征在于,所述根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
从所述多个FPGA节点中确定可用的至少一个FPGA节点;
根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定所述至少一个所述目标FPGA节点;
从所述配置文件库包括的多个配置文件中确定与所述至少一个所述目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。
44.根据权利要求36或37所述的方法,其特征在于,在所述从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,所述方法还包括:
根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;
根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标算法模块之外的算法模块由通用处理器节点实现。
45.根据权利要求36或37所述的方法,其特征在于,所述方法还包括:
确定所述至少一个所述目标FPGA节点的调用次序;
根据所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;
接收所述目标FPGA节点根据所述调用消息发送的数据处理结果。
46.根据权利要求45所述的方法,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
所述调用消息包括所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
47.根据权利要求36或37所述的方法,其特征在于,所述方法还包括:
向所述至少一个所述目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者
将所述多个FPGA节点中除所述至少一个所述目标FPGA节点之外的FPGA节点添加至所述至少一个所述目标FPGA节点中。
48.一种用于处理数据的方法,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述方法包括:
接收通用处理器节点发送的调用消息,所述调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,所述FPGA节点配置有用于使得所述FPGA节点实现所述目标算法模块的目标配置文件;
根据所述调用消息,对所述待处理数据进行处理,以获得处理结果;
向所述通用处理器节点发送所述处理结果。
49.根据权利要求48所述的方法,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
所述调用消息包括所述目标FPGA节点的地址信息、采用的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
50.根据权利要求48或49所述的方法,其特征在于,在所述接收通用处理器节点发送的调用消息之前,所述方法还包括:
接收所述通用处理器节点发送的配置消息,所述配置消息用于指示所述通用处理器节点为所述FPGA节点分配的所述目标配置文件;
根据所述配置消息,获取所述目标配置文件;
执行所述目标配置文件的配置操作。
51.根据权利要求50所述的方法,其特征在于,所述配置消息携带所述目标配置文件;
所述根据所述配置消息,获取所述目标配置文件,包括:
从所述配置消息中获取所述目标配置文件。
52.根据权利要求50所述的方法,其特征在于,所述配置文件库设置在所述通用处理器节点上,并且所述配置消息携带用于指示所述目标配置文件的指示信息;
所述根据所述配置消息,获取所述目标配置文件,包括:
根据所述配置消息中携带的所述指示信息,从所述通用处理器节点设置的所述配置文件库中获取所述目标配置文件。
53.根据权利要求48或49所述的方法,其特征在于,所述目标配置文件包括:
算法模块逻辑,用于实现所述目标算法模块;
基本信息逻辑,用于描述所述FPGA节点和所述目标算法模块;
接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
54.根据权利要求53所述的方法,其特征在于,所述基本信息逻辑用于描述所述FPGA节点的类型;
所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述FPGA节点实现所述目标算法模块时的数据处理性能。
55.根据权利要求50所述的方法,其特征在于,所述方法还包括:
接收所述通用处理器节点发送的模式转换指示信息,所述模式转换指示信息用于指示所述FPGA节点进入省电模式;
根据所述模式转换指示信息,执行空闲配置文件的配置操作,所述空闲配置文件不用于配置所述FPGA节点实现任何有效算法模块。
56.根据权利要求55所述的方法,其特征在于,所述空闲配置文件包括:
基本信息逻辑,用于描述所述FPGA节点;
接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/073082 WO2016127422A1 (zh) | 2015-02-15 | 2015-02-15 | 用于处理数据的系统、装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111662A CN107111662A (zh) | 2017-08-29 |
CN107111662B true CN107111662B (zh) | 2020-06-26 |
Family
ID=56614044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580072310.7A Expired - Fee Related CN107111662B (zh) | 2015-02-15 | 2015-02-15 | 用于处理数据的系统、装置和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107111662B (zh) |
WO (1) | WO2016127422A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512688A (zh) * | 2017-11-29 | 2018-09-07 | 中国平安人寿保险股份有限公司 | 网络节点配置方法和终端 |
CN111831713A (zh) * | 2019-04-18 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
CN112130987A (zh) * | 2019-06-25 | 2020-12-25 | 杭州海康消防科技有限公司 | 数据处理方法、装置、主控芯片、从属芯片及系统 |
CN114741202B (zh) * | 2022-04-27 | 2024-10-15 | 苏州浪潮智能科技有限公司 | 一种fpga设备的算法配置方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089840A (zh) * | 2007-07-12 | 2007-12-19 | 浙江大学 | 基于多fpga的矩阵乘法并行计算系统 |
US7398496B1 (en) * | 2002-08-13 | 2008-07-08 | Xilinx, Inc. | Unified placer infrastructure |
CN101452502A (zh) * | 2008-12-30 | 2009-06-10 | 华为技术有限公司 | 加载现场可编程门阵列fpga的方法、装置与系统 |
CN101485576A (zh) * | 2008-12-30 | 2009-07-22 | 深圳市蓝韵实业有限公司 | 一种对设备内fpga芯片统一配置和管理的系统 |
CN102999571A (zh) * | 2012-11-09 | 2013-03-27 | 深圳市宜搜科技发展有限公司 | 一种集群中单机多节点的实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543774B2 (en) * | 2011-04-05 | 2013-09-24 | Ansaldo Sts Usa, Inc. | Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same |
CN103914331A (zh) * | 2012-12-28 | 2014-07-09 | 北京中电华大电子设计有限责任公司 | 支持多芯片配置功能的仿真器 |
-
2015
- 2015-02-15 CN CN201580072310.7A patent/CN107111662B/zh not_active Expired - Fee Related
- 2015-02-15 WO PCT/CN2015/073082 patent/WO2016127422A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398496B1 (en) * | 2002-08-13 | 2008-07-08 | Xilinx, Inc. | Unified placer infrastructure |
CN101089840A (zh) * | 2007-07-12 | 2007-12-19 | 浙江大学 | 基于多fpga的矩阵乘法并行计算系统 |
CN101452502A (zh) * | 2008-12-30 | 2009-06-10 | 华为技术有限公司 | 加载现场可编程门阵列fpga的方法、装置与系统 |
CN101485576A (zh) * | 2008-12-30 | 2009-07-22 | 深圳市蓝韵实业有限公司 | 一种对设备内fpga芯片统一配置和管理的系统 |
CN102999571A (zh) * | 2012-11-09 | 2013-03-27 | 深圳市宜搜科技发展有限公司 | 一种集群中单机多节点的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016127422A1 (zh) | 2016-08-18 |
CN107111662A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109845303B (zh) | 网络切片的管理方法及管理单元 | |
CN109428749B (zh) | 网络管理方法及相关设备 | |
US11861341B2 (en) | Node selection method and apparatus | |
CN107111662B (zh) | 用于处理数据的系统、装置和方法 | |
EP3843440A1 (en) | Network slice selection method and device | |
CN109981155A (zh) | 一种波束训练方法及相关设备 | |
US20180285295A1 (en) | Communication Channel For Reconfigurable Devices | |
US11601958B2 (en) | Data transmission method and apparatus | |
CN110022193B (zh) | 解调参考信号的传输方法及网络设备 | |
WO2021139832A1 (zh) | 一种非周期srs发送方法及相关设备 | |
CN113992310A (zh) | 用于基站与用户设备之间的无线通信的方法和设备 | |
CN110062396B (zh) | 一种配置基站的方法及装置 | |
US20220264601A1 (en) | Feedback channel mapping method and apparatus, device, and storage medium | |
US10547334B2 (en) | Method and terminal device for executing radio application | |
CN110569129A (zh) | 资源分配方法及装置、存储介质、电子装置 | |
CN114510325A (zh) | 任务调度方法、装置及系统 | |
CA3165049A1 (en) | Parameter information determination method, communication node, and storage medium | |
US9979413B2 (en) | Improving communication efficiency | |
CN113162881B (zh) | 一种序列的生成及处理方法和装置 | |
KR20130007455A (ko) | Lte 하향 링크에서 pdcch의 reg 매핑의 복잡도를 줄이는 방법 | |
CN111385110B (zh) | 网络的管理方法及装置 | |
CN112929283B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114490007A (zh) | 计算模块、可重构芯片、重构方法、装置、设备及介质 | |
WO2018196449A1 (zh) | 一种导频发送、接收方法及装置 | |
US11785445B1 (en) | Wireless communication service over a network exposure function and multiple unified data elements |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200626 Termination date: 20210215 |