CN112685159B - 基于fpga异构处理***的联邦学习计算任务处理方案 - Google Patents
基于fpga异构处理***的联邦学习计算任务处理方案 Download PDFInfo
- Publication number
- CN112685159B CN112685159B CN202011604796.3A CN202011604796A CN112685159B CN 112685159 B CN112685159 B CN 112685159B CN 202011604796 A CN202011604796 A CN 202011604796A CN 112685159 B CN112685159 B CN 112685159B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- processing
- fpga
- source data
- 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.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本说明书实施例提供FPGA异构处理***。FPGA处理设备的源数据存储器的每个存储空间被组织成用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域。在执行任务处理时,从源数据存储器的存储空间读取当前处理任务的任务命令信息、模型参数和任务源数据,解析任务命令信息和模型参数,根据解析结果和并行计算架构的分层结构确定数据分发策略,并根据数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元执行并行计算。利用该***,通过改变源数据存储器的指令区域和参数区域的存储内容,并根据该存储内容调整数据分发策略,使得异构处理***可以适配不同的联邦学习计算任务。
Description
技术领域
本说明书实施例通常涉及异构计算领域,尤其涉及基于FPGA异构处理***的联邦学习计算任务处理方法、用于进行联邦学习计算任务处理的FPGA处理器、FPGA处理设备及FPGA异构处理***。
背景技术
联邦学习是一种机器学习框架。针对不同企业、机构或用户之间,该机器学习框架可以在保证数据安全性、私密性、合法性的前提下,打破数据孤岛限制,实现不同企业、机构或用户之间的数据共享,比如,使用多个不同企业的数据来训练和学习机器学习模型,以优化各个企业所具有的机器学习模型,提高机器学习模型的预测准确率等。
在联邦学习中会存在大量的复杂计算,非常耗费计算力,而且在联邦学习中还会使用大批量数据,从而存在高并发的可能性。如果在联邦学习的各个参与方处使用基于CPU的处理设备来执行联邦学习任务计算,则由于CPU的处理完全串行,从而使得联邦学习任务的计算效率较低,时间耗费大。因此,如何提高联邦学习任务的计算效率,成为亟待解决的问题。
发明内容
鉴于上述,本说明书的实施例提供一种用于联邦学习的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示出了根据本说明书的实施例的用于进行联邦学习计算任务处理的FPGA异构处理***的示例架构示意图。
图6示出了根据本说明书的实施例的FPGA处理设备的源数据存储器的存储空间的示例示意图。
图7示出了根据本说明书的实施例的FPGA处理器的并行计算架构的示例示意图。
图8示出了根据本说明书的实施例的具有多层数据分发/合并机制的并行计算架构的示例示意图。
图9示出了根据本说明书的实施例的处理单元的运算流水线设计的示例示意图。
图10示出了根据本说明书的实施例的FPGA异构处理***执行的任务处理方法的流程图。
图11示出了根据本说明书的实施例的主处理设备的联邦学习任务计算数据下发过程的示例示意图。
图12示出了根据本说明书的实施例的FPGA处理设备处的联邦学习任务计算的数据流向示意图。
图13示出了根据本说明书的实施例的FPGA处理设备将任务处理结果数据回传给主处理设备的数据流向示意图。
图14示出了根据本说明书的实施例的采用pipeline实现多任务并行计算的处理过程的示例示意图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在人工智能(Artificial Intelligence,AI)领域,联邦学习是很重要的机器学习框架。该机器学习框架可以在保证数据安全性、私密性、合法性的前提下,打破数据孤岛限制,实现不同企业、机构或用户之间的数据共享,比如,使用多个不同企业的数据来训练和学习机器学习模型,以优化各个企业所具有的机器学习模型,提高机器学习模型的预测准确率等。
图1示出了联邦学习架构的示例示意图。
图1中示出的联邦学***台以及部署在不同企业(也可以称为业务方或数据拥有方)处的服务器A到服务器N。服务器A到服务器N分别具有本地数据和本地AI模型(机器学习模型)。各个服务器所具有的本地数据的数据特征和/或数据ID可以不同,并且各个服务器所具有的本地AI模型的模型结构和/或模型参数可以不同。
联邦学习的示例可以包括但不限于横向联邦学习和纵向联邦学习。在横向联邦学习中,各个联邦学习参与方的本地数据具有的数据特征(Feature)差异性较小,存在较大的重叠部分。图2示出了横向联邦学习的样本数据集的示例示意图。在这种情况下,各个联邦学习参与方可以针对重叠部分的特征,交换数据来共同训练AI模型,以优化和完善训练样本的数据特征。具体地,在执行联邦学习时,选择各个联邦学习参与方的本地数据的数据ID的并集以及数据特征的交集。换言之,在所选择出的AI模型的训练样本集中,各个联邦学习参与方的训练数据具有不同的数据ID以及相同的数据特征。
在纵向联邦学习中,各个联邦学习参与方的本地数据具有的数据特征差异性较大,存在较大的待重叠区域(重叠区域较小)。图3示出了纵向联邦学习的样本数据集的示例示意图。在这种情况下,各个联邦学习参与方可以交换重叠区域之外的数据特征共同训练,以完善数据特征部分,提高预测准确性。具体地,在执行联邦学习时,选择各个联邦学习参与方的本地数据的数据ID的交集以及数据特征的并集。换言之,在所选择出的AI模型的训练样本集中,各个联邦学习参与方的训练数据具有相同的数据ID以及不同的数据特征。
在进行联邦学***台的协调下协同执行联邦学***台负责不同企业之间的联邦学习关联,比如,企业数据共享,不同模型参数的更新,数据分配权重,隐私管理等。
图4示出了纵向联邦学习下的基于同态加密的联邦学习过程的一个示例示意图。图4的联邦学习示例包括两个数据方A和B以及协调方(仲裁方)C。数据方A和B分别具有本地数据XA、XB以及本地AI模型WA和WB。此外,图4中以线性回归模型作为AI模型的示例来进行说明。
如图4所示,在第①步,协调方C生成用于同态加密的公钥/私钥对,并且将公钥分发给数据方A和B,以供数据方A和B对训练过程中需要交换的数据进行同态加密。此外,要说明的是,由于数据方A和B的用户群体(即,数据ID)并非完全重合,从而需要利用基于加密的数据样本对齐技术,在数据方A和B不公开各自数据的前提下确认数据方A和B的共有数据ID,并且不暴露彼此之间不互相重叠的数据ID。
接着,在第②步:数据方A和B之间以加密形式交互用于计算梯度的中间结果。然后,在第③步,数据方A和B分别在本地基于加密的梯度值进行模型计算,并根据模型计算结果得到经过同态加密后的梯度信息(密态梯度信息)。同时,数据方B根据所具有的标签数据计算损失函数。数据方A和B把各自的密态梯度信息和损失函数发送给协调方C。协调方C根据数据方A和B的密态梯度信息计算出总梯度信息并进行解密。
在第④步,协调方C将解密后的梯度信息分别回传给数据方A和B。数据方A和B根据所接收的梯度信息来更新各自的模型参数。
迭代上述步骤直至损失函数收敛,由此完成联邦学习过程。在上述样本对齐及模型训练过程中,数据方A和B各自的本地数据均保留在本地,并且模型训练中的数据交互也不会导致数据隐私泄露,从而可以实现数据方A和B的本地数据的隐私保护。
从上面可以看出,联邦学习过程存在大量的数据同态加密以及密态数据计算等操作。联邦学习过程涉及的业务计算类型的示例可以包括但不限于:同态加密计算、同态解密计算、密态数据计算、RSA交集计算和秘钥交换计算。
联邦学习是在保证不同联邦学习参与方之间的数据隐私的前提下共享训练的学习机制,由此各个联邦学习参与方在共享本地数据之前必须对本地数据进行同态加密。同态加密计算是针对大整数(如2048bit的大整数)的复杂数学运算,计算量很大。
此外,在同态加密的背景下,各个联邦学习参与方需要更新各自的AI模型参数。在更新AI模型参数的过程中需要进行AI模型计算,这些AI模型计算都是在密态下进行的密态计算。这种密态计算会遭遇多种场景,比如,矩阵运算,向量运算,权重运算,参数更新等,从而使得每次密态计算所涉及的计算数据量可能不相同。
此外,在联邦学习之前,需要事先确定各个联邦学习参与方的数据ID和数据特征所在的区域,并且执行数据ID和数据特征的求交处理,这种求交处理也可以称为RSA交集处理。由于每个联邦学习参与方所具有的数据样本集(database)的大小不一样,各个数据样本集所具有的数据样例(Sample)和数据特征(Feature)不同(两个不同的处理维度),从而每次RSA交集处理时,所计算的数据量和处理维度也会不同。
此外,在联邦学习时,在所有联邦学习参与方建立联系之前,各个联邦学习参与方之间必须两两交换秘钥,从而以安全的方式建立起联系(也可以称为“第一次握手”)。秘钥交换例如可以采用Diffie-Hellman算法或其它合适的算法实现。这种秘钥交换处理也存在一定的计算量。
综上所述,在联邦学习中会存在大量的复杂计算,非常耗费计算力,而且在联邦学习中还会使用大批量数据,从而存在高并发的可能性。如果在联邦学习的各个参与方处使用基于CPU的处理设备来执行联邦学习任务计算,则所有的计算任务都会交由CPU完成。具体地,上层业务架构采用软件代码方式实现AI的训练算法或同态加密算法。在底层基于CPU执行任务计算时,将软件代码转化为CPU计算指令,然后由CPU执行。由于CPU的处理机制是串行处理机制,按照这种任务处理机制,任务处理并行度低,计算延迟高,计算效率低,无法满足AI应用场景中的计算性能需求。
为了提升联邦学习计算任务的计算效率,提出了异构计算(Heterogeneouscomputer)方案。异构计算方案能高效地获取高性能计算能力、可扩展性好、计算资源利用率高、发展潜力巨大,目前已经成为并行/分布计算领域的热点技术。异构计算主要是指使用不同体系架构的计算单元共同执行计算的计算方式。计算单元的示例包括但不限于CPU、GPU、DSP、ASIC、FPGA等。常见的异构计算架构例如是采用CPU(主处理设备)以及GPU、DSP、ASIC或FPGA(FPGA处理设备)组成的异构计算结构。在这种异构计算机构中,CPU擅长处理不规则数据结构和不可预测的存取模式,这类程序任务具有复杂的指令调用、循环、分支、逻辑判断以及执行等步骤。而FPGA等计算单元擅长处理规则数据结构和可预测存取模式,从而利用这种异构计算架构可以实现整体性能最佳化。
FPGA是一种可编程设计的硬件芯片,具有高灵活性、高并行度和低延迟处理的特点。FPGA的内部可以定制化算法设计或控制逻辑,并且FPGA上的算法实现属于“硬件实现”,最终运行的状态是特定的电路结构,没有操作***和指令的概念,从而使得FPGA能够高度并行且快速地完成数据处理。
本说明书的实施例提供一种用于联邦学习计算任务处理的FPGA异构处理***,该FPGA异构处理***包括主处理设备和FPGA处理设备。主处理设备例如可以是基于CPU的主处理设备,用于实现联邦学习过程的算法层架构。FPGA处理设备包括FPGA处理器、源数据存储器和结果数据存储器。源数据存储器包括多个存储空间,每个存储空间被组织成分别用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域。主处理设备在执行联邦学习时可以对联邦学习框架中的算法框架层的功能函数进行算法计算任务分解得到多个联邦学习计算任务,确定出各个联邦学习计算任务的任务命令信息、模型参数和任务源数据,并且按照指令区域、参数区域和数据区域的指定数据格式对所确定出各个联邦学习计算任务的任务命令信息、模型参数和任务源数据进行数据格式组织。所组织出的联邦学习计算任务的任务命令信息、模型参数和任务源数据经由主处理设备下发给FPGA处理设备,并且存放在FPGA处理设备的源数据存储器的对应存储空间的指令区域、参数区域和数据区域中。FPGA处理器具有并行计算架构,该并行计算架构包括由多个处理单元组成的分层结构,各个处理单元是具备独立任务处理能力的最小处理单元。在FPGA处理设备执行联邦学习任务计算时,从源数据存储器的当前待处理存储空间的指令区域、参数区域和数据区域读取当前处理任务的任务命令信息、模型参数和任务源数据,解析所读取的任务命令信息和模型参数,根据解析结果和FPGA处理器的并行计算架构的分层结构确定任务计算命令、模型参数和任务源数据的数据分发策略,并根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构的各个处理单元。各个处理单元使用各自接收的数据执行并行计算来得到任务处理结果数据,并将任务处理结果数据存储到结果数据存储器中。
利用上述FPGA异构处理***,通过在主处理设备为每个联邦学习计算任务确定出具有FPGA处理设备的源数据存储器的存储空间所规定的数据格式的任务命令信息、模型参数和任务源数据,并将所确定出的任务命令信息、模型参数和任务源数据存储在FPGA处理设备的源数据存储器的同一存储空间中,使得FPGA处理设备在处理联邦学习计算任务时可以根据存储空间中的任务命令信息和FPGA处理器的并行计算架构的分层结构来动态地配置该联邦学习计算任务所需的任务计算命令、模型参数和任务源数据的数据分发策略,并根据该数据分发策略来将任务计算命令、模型参数和任务源数据分发到各个处理单元来执行并行处理,从而使得异构处理***可以适配处理联邦学习过程中的多种不同的联邦学习计算任务。
下面将结合附图描述根据本说明书的实施例的FPGA异构处理***以及基于FPGA异构处理***的联邦学习计算任务处理方法。
图5示出了根据本说明书的实施例的用于进行联邦学习计算任务处理的FPGA异构处理***1的示例架构示意图。如图5所示,FPGA异构处理***1包括主处理设备10和FPGA处理设备20。
主处理设备10被配置为实现联邦学习框架的算法层架构。在执行联邦学习时,主处理设备10可以对联邦学习框架中的算法层架构(算法架构层)的功能函数进行算法计算任务分解得到多个联邦学习计算任务,确定出各个联邦学习计算任务的任务命令信息、模型参数和任务源数据,并且按照指令区域、参数区域和数据区域的指定数据格式对所确定出各个联邦学习计算任务的任务命令信息、模型参数和任务源数据进行数据格式组织。所组织出的联邦学习计算任务的任务命令信息、模型参数和任务源数据经由主处理设备下发给FPGA处理设备,并且存放在FPGA处理设备的源数据存储器的对应存储空间的指令区域、参数区域和数据区域中。FPGA处理设备20被配置为根据各个联邦学习计算任务的任务命令信息、模型参数和任务源数据,实现联邦学习计算任务并行处理。FPGA处理设备20也可以称为从处理设备。
如图5所示,主处理设备10可以包括主处理器11和主存储器12。主处理器11用于执行上述处理过程,并且将所确定出的各个联邦学习计算任务的任务命令信息、模型参数和任务源数据存放在主存储器12中。在本说明书的一个示例中,主处理器11可以是CPU。主处理器11具有接口模块13。接口模块13例如可以是高速接口模块。在另一示例中,主处理设备10也可以不包括主存储器12。
主处理设备10和FPGA处理设备20之间可以通过接口模块(例如,高速接口)进行数据传输和通讯,由此完成主处理设备10和FPGA处理设备20之间的数据和信息交互。主处理设备10和FPGA处理设备20之间传输的数据可以包括联邦学习计算任务处理所需的任务命令信息、模型参数和任务源数据。两个处理设备之间的数据传输和通讯可以采用本地的实时高速通讯协议(比如,PCIE)而非远程通讯协议(如TCP/IP)来实现,这样能大幅度降低通讯延迟。在FPGA处理设备20从主处理设备10接收到联邦学习计算任务处理所需的任务命令信息、模型参数和任务源数据后,可以执行相应的并行处理来得到任务处理结果数据,并将任务处理结果数据提供给主处理设备20。
如图5所示,FPGA处理设备20包括FPGA处理器210、源数据存储器220和结果数据存储器230。FPGA处理器210被配置为执行联邦学习计算任务的并行处理。FPGA处理器210的结构和操作将在后面详细描述。
源数据存储器220包括多个存储空间,每个存储空间被组织成分别用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域,所述联邦学习计算任务的任务命令信息、模型参数和任务源数据由所述主处理设备根据联邦学习框架中的算法层架构的功能函数确定并被组织为分别具有所述指令区域、参数区域和数据区域所指定的数据格式,如图6所示。这里,所述指令区域、参数区域和数据区域的数据格式可以预先指定,不依赖于联邦学习计算任务的任务命令信息、模型参数和任务源数据。在一个示例中,源数据存储器220的各个存储空间可以具有相同的空间大小,例如,约512MB。此外,指令区域、参数区域和数据区域可以被设置指定空间大小,例如,指令区域和参数区域为32KB,以及数据区域为512MB。在另一示例中,用于存储联邦学习计算任务的存储空间的指定区域、参数区域和数据区域的空间大小是可配置的。例如,数据区域的空间大小可以根据联邦学习计算任务的任务源数据的大小来配置。结果数据存储器230被配置为存储联邦学习计算任务的任务处理结果数据。
FPGA处理器210包括接口模块211、数据读/写控制模块212、任务管理模块213和并行计算架构214。接口模块211被配置为(经由接口模块13)从主处理设备10接收通过对算法层架构的功能函数进行解析和数据格式组合而得到的各个联邦学习计算任务的任务命令信息、模型参数和任务源数据,以进行任务并行处理。此外,接口模块211还被配置为在FPGA处理设备20完成任务处理后,将任务处理结果数据发送给主处理设备10。
在本说明书中,接口模块211可以采用高速接口模块实现。可选地,高速接口模块211可以采用DMA(direct memory access)方式或者PIO方式来与主处理设备10的接口模块13之间进行数据传输。所采用的DMA方式可以是高效DMA且支持双向DMA。即,支持主处理设备10中的主处理器直接访问FPGA处理设备的存储器,也可以支持FPGA处理设备20直接访问主处理设备10的主存储器。
DMA是一种高效的数据传输机制。在实际工作时,可以在不需要主处理设备过多干预的情况下,将大量的待计算数据先从主存储器直接搬移到FPGA处理设备的源数据存储器。然后,FPGA处理设备再从本侧的源数据存储器中取出进行算法计算。待FPGA处理设备计算完毕后,将结果数据写到FPGA处理设备的结果数据存储器中缓存,同时告知主处理设备对应的任务已经计算完成。相应地,主处理设备再次通过DMA方式将FPGA处理设备的结果数据存储器中的结果数据直接搬移到主存储器,由此完成一次算法任务的数据交互。
数据读/写控制模块212被配置为在执行联邦学习任务计算时,从源数据存储器220的当前待处理存储空间的指令区域、参数区域和数据区域读取当前处理任务的任务命令信息、模型参数和任务源数据。所述任务命令信息至少包括业务计算模式(operationmode)信息、批数据长度(batch size)配置信息、数据类型(data type)信息和任务配置(task config)信息。在一个示例中,业务计算模式的示例可以包括但不限于下述业务计算中的至少一种:同态加密计算、同态解密计算、密态数据计算、RSA交集计算和秘钥交换计算。批数据长度配置信息用于规定每次模型训练时的批数据大小(批数据量)。数据类型信息用于规定模型训练时所使用的数据的类型,例如,大整数、浮点数、常数参量、正数、负数等。任务配置信息包括执行计算任务解析时所需要的配置信息。任务配置信息的示例例如可以包括但不限于数据包中的单个数据的长度(data width,也可以称为数据位宽信息),数据包个数、是否需要循环计算以及循环次数等。
数据读/写控制模块212还被配置为在FPGA处理器210的并行计算架构得到任务处理结果数据后,将该任务处理结果数据存储到结果数据存储器230中。
此外,数据读/写控制模块212还被配置为响应于经由接口模块211从主处理设备10接收到联邦学习计算任务的任务命令信息、模型参数和任务源数据,将所接收的任务命令信息、模型参数和任务源数据分别存放在源数据存储器220的空闲存储空间的指令区域、参数区域和数据区域中。在本说明书的一个示例中,所述空闲存储空间可以是源数据存储器220的任何一个空闲存储空间。在另一示例中,所述空闲存储空间可以是源数据存储器220中的紧接最新已使用存储空间的空闲存储空间。
任务管理模块213被配置为解析任务命令信息和模型参数,基于解析结果和FPGA处理器的并行计算架构的分层结构确定数据分发策略,所述数据分发策略包括FPGA处理器的并行计算架构中的各个处理单元执行任务计算时所需的任务计算命令、模型参数和任务源数据。例如,任务命令信息中的业务计算模式信息可以是业务计算模式代码,比如,11,14等。相应地,在任务管理模块213中存储有用于指示业务模式代码与对应的业务计算模式的映射表。在读取出业务计算模式代码后,任务管理模块213通过查询映射表来解析出真正的业务计算模式。然后,任务管理模块213基于任务命令信息(真正的业务计算模式)和FPGA处理器的并行计算架构的分层结构,确定并行计算架构的各个处理单元的任务计算命令(需要执行的业务计算模式),例如,执行密态加法计算或密态乘法计算等,即,并行计算架构中的哪些处理单元需要执行哪种业务计算,并且确定各个处理单元执行任务计算所需的任务源数据,或者所需的任务源数据和模型参数。
在确定出数据分发策略后,任务管理模块213根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构214的各个处理单元,以供各个处理单元使用各自接收的任务计算命令、模型参数和任务源数据执行并行计算得到任务处理结果数据。
并行计算架构214是由多个处理单元组成的分层结构,各个处理单元是具备独立任务处理能力的最小处理单元。换言之,各个处理单元能够独立完成算法的全流程处理。处理单元也可以称为计算引擎或并行计算引擎。可选地,在一个示例中,并行计算架构214可以采用嵌套式分层结构。
图7示出了根据本说明书的实施例的并行计算架构214的示例示意图。如图7所示,并行计算架构214采用多核心(Multi-Kernel)计算架构,该多核心计算架构是嵌套式分层计算架构。
在本说明书中,嵌套式分层计算架构包括多个计算层次(架构层次),每个计算层次可以由多个处理单元(Kernel-Engine)、多个下级计算层次或者两者组合(即,下文中描述的下级引擎)构成。每个计算层次或每个处理单元都能够独立完成算法全流程处理。这里,处理单元是并行计算架构的最小组件单元,不能被进一步细分。处理单元也可以称为计算引擎。
具体地,如图7所示,Multi-Kernel计算架构可以分为多层。第一层称为Die_Engine(DIE引擎层),其可以包括FPGA处理器内部单独一个DIE下所有的下级引擎。在每个Die_Engine层中,可以细分为多个Kernel_Engine_Lvl1层(Kernel引擎层次1),Kernel_Engine_Lvll也可以称为第二层。接着,在每个第二层,可以细分为多个Kernel_Engine_Lvl2(Kernel引擎层次2),Kernel_Engine_Lv12也可以称为第三层。以此类推,第n+1层称之为Kernel_Engine_Lvln。由此可见,在本说明书中,并行计算架构中的每个分层结构可以包含多层下级子层,直到最终的下层子层中都是由处理单元(Kernel-Engine)组成并且不可进一步细分。
在本说明书中,并行计算架构214的嵌套式分层结构是可配置的。例如,在一个示例中,在基于解析结果和FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,任务管理模块213还可以被配置为根据业务计算模式信息和FPGA处理器211的内部计算资源配置并行计算架构214的嵌套式分层结构,即,配置并行计算架构214的计算层次数量和每个计算层次的处理单元数量。例如,业务计算模式越复杂,则并行计算架构所包含的计算层次就越多。业务计算模式的复杂度与并行计算架构的计算层数之间不是线性关系。此外,由于计算层数太多则可能会在性能提升并不明显的情况下浪费FPGA处理器的计算资源,从而计算层数也不是越多越好,通常采用3-6层。另外,所有计算层次的总处理单元的数目可以由FPGA处理器的内部计算资源(FPGA处理器的总芯片资源)决定。
在一个嵌套式分层结构的配置示例中,DIE引擎层(Die_Engine)可以为一次性配置数量,这个数量可以由FPGA处理设备20所使用的FPGA处理器型号内包含的DIE数量决定,后续无需再配。DIE引擎层下的每个计算分层的分层结构配置可以由上一分层来配置。例如,Kernel_Engine_Lvl1可以配置Kernel_Engine_Lvl2的数量。
在另一示例中,主处理设备10所下发的任务命令信息还可以包括层次信息和单层并行计算处理单元数信息。相应地,在基于解析结果和FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,任务管理模块213还可以被配置为根据层次信息和单层并行计算处理单元数信息来配置并行计算架构的嵌套式分层结构。这里,单层并行计算处理单元数信息用于指示单层并行计算时使用的处理单元数目。
利用上述嵌套式分层结构配置,在一个应用场景中包含不同种类的业务计算时,可以通过对Multi-Kernel计算架构进行配置,例如,改变计算层次或处理引擎的具体设计以及参数配置,来满足不同业务计算的任务处理需求。
此外,在本说明书的实施例的并行计算架构214中,还可以设置多层数据分发与合并机制。图8示出了根据本说明书的实施例的具有多层数据分发/合并机制的并行计算架构的示例示意图。
如图8中所示,FPGA处理器210还可以包括设置在任务管理模块213和并行计算架构214之间的数据分发/合并模块215。数据分发/合并模块215包括成对的数据分发模块和数据合并模块。任务管理模块213可以经由数据分发/合并模块215,根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构214的各个处理单元。此外,数据分发/合并模块215还可以被配置为对并行计算架构214的各个处理单元的计算结果进行合并处理来得到任务处理结果数据。例如,对同一层级的各个处理单元的并行处理结果进行合并处理,然后提供给下一层级的处理单元来进行后续处理。在本说明书的其它实施例中,FPGA处理器210也可以不包括数据分发/合并模块215。
在本说明书中,数据分发/合并模块215可以采用多层数据传输分层结构。具体地,数据分发模块包括多级数据分发模块,以及数据合并模块包括多级数据合并模块。第一级数据分发模块连接多个第二级数据分发模块,第二级数据分发模块连接多个第三数据分发模块等等。数据合并模块的连接方式与数据分发模块的连接方式相反。
具体地,数据分发和合并机制可以分为多层,数据分发为“一进多出”,以及数据合并为“多进一出”。如图8所示,数据分发的第一层可以称为Data_Disp_DieEng,第二层称为Data_Disp_Lvl1,第三层称为Data_Disp_Lvl2,以此类推,第n+1层称为Data_Disp_Lvln。而数据合并的第一层称为Data_Merg_DieEng,第二层称为Data_Merg_Lvl1,第三层称为Data_Merg_Lvl2,以此类推,第n+1层称之为Data_Merg_Lvln。数据分发和数据合并中的层与层之间的关系为:针对数据分发,单个上层的数据分发模块将数据输出到多个数据通道,每个数据通道连接下层的数据分发模块,也就是说,单个上层的数据分发模块连接(驱动)多个下层的数据分发模块。针对数据合并,多个上层的数据合并模块将数据统一合并到单个下层的数据合并模块,层层递进,最终合并成单路数据(即,任务处理结果数据)并提供给任务管理模块213。
在本说明书的架构中,数据传输分层结构的层次是可配置的,并且每层的数据分发和数据合并的通道数量是可以灵活配置的,比如,8,16,32等,在实际应用中,通道数量的配置可以依据每层的处理单元(Kernel_Engine)数量来综合考虑。
利用上述多层数据分发/合并机制,在主处理设备10所下发的单次处理任务数据量比较大时,例如,256MB,512MB等,数据分发模块可以将任务数据量平均分摊到并行计算架构内部的所有处理单元(Kernel_Engine)中并行计算,从而可以提升内部数据传输的效率,同时提升并行计算架构214的内部整体性能和主频。此外,利用上述多层数据分发和数据合并机制,可以适配多层的计算引擎数据交互。此外,由于数据分发和合并模块采用“轮训”机制设计,“分层”的设计可以降低“轮训”的数量和范围,从而可以提高多个处理单元之间的数据处理并行度,降低处理延迟。
此外,在本说明书中,各个处理单元(Kernel-Engine)可以采用运算流水线(PipeLine)设计。图9示出了根据本说明书的实施例的处理单元的运算流水线设计的示例示意图。
如图9所示,处理单元内部可以包含多级运算,每级运算可以完成多样的数学运算,如加减乘除等。每级运算之间通过Pipeline无缝连接在一起,使每一级运算之间都能同时并行处理。上一级计算好的结果暂存在存储器中,例如,FPGA处理器内部的存储器中,而下一级运算则可以灵活选择不同的上级结果数据作为计算输入,如此多级连接在一起,从而完成非常复杂的算法运算。Pipeline的设计大大优化任务处理的并行性,同时简化单步计算中的复杂度,提升运算效率。
此外,在本说明书中,每个处理单元内的Pipeline运算级数是可以灵活配置的,例如,级数可以被配置为5,6和7等。在一个示例中,可以结合实际应用中的任务处理算法的复杂度来确定Pipeline运算级数。通常,越复杂的任务处理算法,所需要的运算级数越多,但是运算级数越多,单个处理单元所消耗的FPGA处理器资源也越多。基于上述考虑,在一个示例中,可以根据并行计算架构214的嵌套式分层结构的层次以及处理单元的个数来配置Pipeline运算级数。
此外,可选地,在一个示例中,各个处理单元的运算流水线的每级运算具备循环运算功能(feedback/cyclic operation),也可以称为反馈运算功能,即,运算完的运算结果可以反馈到同一级别的输入重新递归运算。所述循环运算的示例例如可以包括迭代运算和/或递归运算。利用这种设计,可以完成一些AI算法中包含的递归运算或迭代运算,从而提高处理单元的利用率和计算复杂度。
此外,在本说明书中,并行计算架构214的并行处理任务数是可配置的,例如,64,128,256等。这个配置参数的最大值可以不设上限。并行处理任务数的上限至少取决于下面两个因素。一个因素是FPGA处理设备20侧的FPGA处理设备的源数据存储器的容量大小,FPGA处理设备20的源数据存储器的容量大小决定了所有任务累加在一起的最大缓存数据量。另一个因素是单个任务所支持的批数据长度(批数据量,batch size),即,任务命令信息中的批数据长度配置信息。当batch size被配置得比较大时,考虑受限于FPGA处理设备20的存储器容量大小,并行处理任务数就应该配置得小一些。反之,并行处理任务数就可以配置得大一些,但是,所有任务的数据量累加不能超过FPGA处理设备的存储器容量的最大值。
此外,FPGA处理器210还可以包括***控制/监控模块216。***控制/监控模块216设置在接口模块211与任务管理模块213和并行计算架构214之间,并且与接口模块211、任务管理模块213和并行计算架构214双向通信。***控制/监控模块216被配置为将接口模块211所接收的任务命令信息、模型参数和任务源数据提供给任务管理模块213和并行计算架构214。此外,***控制/监控模块216还可以在线监控并行计算架构214的任务处理状态。并行计算架构214的内部处理单元都设计有多组监测寄存器,用于监测处理任务的数据量、计算状态、任务统计信息等。并行计算架构214的内部任务处理状态监控可以采用寄存器读写方式来实现。监测寄存器的示例可以包括但不限于配置寄存器,控制寄存器,状态监测寄存器,统计监测寄存器,错误信息寄存器等。
此外,可选地,FPGA处理器210还可以包括高速缓存(未示出)。所述高速缓存是处理器内部缓存,设置在任务管理模块213和数据读/写控制模块212之间。所述高速缓存被配置为缓存FPGA处理器210在数据读/写控制模块212的控制下从源数据存储器220读取的数据,或者缓存并行计算架构214的任务处理结果数据。
图10示出了根据本说明书的实施例的由FPGA处理设备20中的FPGA处理器210执行的联邦学习计算任务处理方法的流程图。
如图10所示,在1010,经由FPGA处理器210的接口模块211,从主处理设备10接收联邦学习计算任务的任务命令信息、模型参数和任务源数据。所述联邦学习计算任务的任务命令信息、模型参数和任务源数据由主处理设备在执行联邦学习时对算法层架构中的功能函数进行计算任务拆解处理(解析)而确定出,并且被组织成具有FPGA处理设备20的源数据存储器220中的存储空间的指令区域、参数区域和数据区域所指定的数据格式。图11示出了根据本说明书的实施例的主处理设备的联邦学习任务计算数据下发过程的示例示意图。从图11中可以看出,在同一时刻,主处理设备10将同一任务的任务源数据(模型数据)、模型参数和任务命令信息(业务算法和业务配置信息)下发给FPGA处理设备20。在完成该任务的数据下发后,继续下发下一任务的任务数据。
在1020,响应于接收到联邦学习计算任务的任务命令信息、模型参数和任务源数据,经由数据读/写控制模块212将所接收的任务命令信息、模型参数和任务源数据分别存放在源数据存储器220的空闲存储空间的指令区域、参数区域和数据区域中。
要说明的是,1010和1020的操作是FPGA处理器210执行联邦学习计算任务之前执行的操作。在每次执行联邦学习计算任务时,FPGA处理器210执行1030到1070的操作。
具体地,在1030,经由数据读/写控制模块212,从源数据存储器220的当前待处理存储空间的指令区域、参数区域和数据区域读取当前处理任务的任务命令信息、模型参数和任务源数据,所述任务命令信息至少包括业务计算模式信息、批数据长度配置信息、数据类型信息和任务配置信息。
在1040,经由任务管理模块213,解析任务命令信息和模型参数,并基于解析结果和FPGA处理器的并行计算架构214的分层结构确定数据分发策略。所述数据分发策略包括FPGA处理器的并行计算架构中的各个处理单元执行任务计算时所需的任务计算命令、模型参数和任务源数据。处理单元的任务计算命令也可以称为处理单元的业务计算模式(引擎计算模式)。
在1050,经由任务管理模块213,根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构214的各个处理单元。
在1060,经由各个处理单元使用各自接收的任务计算命令、模型参数和任务源数据执行并行计算来得到任务处理结果数据。
在1070,经由数据读/写控制模块212,将任务处理结果数据存储到结果数据存储器230。
图12示出了图10中示出的FPGA处理设备20处的联邦学习任务计算的数据流向示意图。
可选地,在一个示例中,并行计算架构214的分层结构是可配置的嵌套式分层结构,并且主处理设备10所下发的任务命令信息还包括层次信息和单层并行计算处理单元数信息。相应地,在确定任务计算命令、模型参数和和任务源数据的数据分发策略之前,所述方法还可以包括:经由任务管理模块213,根据层次信息和单层并行计算处理单元数信息来配置并行计算架构214的嵌套式分层结构。
可选地,在一个示例中,并行计算架构214的分层结构是可配置的嵌套式分层结构。在确定任务计算命令、模型参数和和任务源数据的数据分发策略之前,所述方法还可以包括:经由任务管理模块213,根据业务计算模式信息和FPGA处理器的内部计算资源,配置并行计算架构214的嵌套式分层结构。
此外,可选地,在FPGA处理器210还包括数据分发/合并模块215的情况下,经由任务管理模块213,根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构214的各个处理单元包括:经由任务管理模块213,使用数据分发/合并模块215来根据数据分发策略将任务计算命令、模型参数和任务源数据分发到并行计算架构214的各个处理单元。此外,经由各个处理单元使用各自接收的任务计算命令、模型参数和任务源数据执行并行计算来得到任务处理结果数据可以包括:经由各个处理单元使用各自接收的任务计算命令、模型参数和任务源数据执行并行计算,并经由数据分发/合并模块合并各个处理单元的计算结果来得到任务处理结果数据。
此外,可选地,在一个示例中,在将任务处理结果数据存储到结果数据存储器后,所述方法还可以包括:经由数据读/写控制模块212,将任务处理结果数据从结果数据存储器230提供给主处理设备10。图13示出了根据本说明书的实施例的FPGA处理设备将任务处理结果数据回传给主处理设备的数据流向示意图。
此外,在主处理设备10确定出多个待处理的联邦学习计算任务后,可以将该多个待处理的联邦学习计算任务的任务命令信息、模型参数和任务源数据提供给FPGA处理设备20,并存放在源数据存储器220的不同存储空间中。在这种情况下,可以使用图5中示出的FPGA异构处理***,采用流水线设计来并行执行该多个待处理的联邦学习计算任务的任务计算。
图14示出了根据本说明书的实施例的采用pipeline实现多任务并行计算的处理过程的示例示意图。利用图14中示出的Pipeline处理,可以将多个任务批次(BH)并行起来,然后Pipeline无缝连接,从而大幅缩短处理间隔和时间,提高整体计算效率。
利用根据本说明书的实施例的异构处理***,针对联邦学习中不同的算法种类或计算数据类型,通过改变FPGA处理设备的源数据存储器中的指令区域和参数区域的存储内容信息,并由FPGA处理器根据该存储内容信息调整并行计算架构的数据分发策略(任务计算命令、模型参数和任务源数据的数据分发策略),从而使得FPGA处理器的并行计算架构可以适配主处理设备下发的多种不同的联邦学习计算任务。
根据本说明书的一个实施例,提供了一种比如计算机可读介质(例如,非暂时性计算机可读介质)的程序产品。计算机可读介质可以具有计算机程序(即,上述以软件形式实现的元素),该计算机程序被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-14述的各种操作和功能。具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
根据一个实施例,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序当被处理器执行时,使得处理器执行本说明书的各个实施例中以上结合图1-14描述的各种操作和功能。
如上参照图1到图14,描述了根据本说明书的实施例的异构处理***、处理器以及任务处理方法。本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (21)
1.一种用于基于FPGA异构处理***进行联邦学习计算任务处理的方法,所述FPGA异构处理***包括主处理设备和FPGA处理设备,所述FPGA处理设备包括FPGA处理器、源数据存储器和结果数据存储器,所述源数据存储器包括多个存储空间,每个存储空间被组织成分别用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域,所述联邦学习计算任务的任务命令信息、模型参数和任务源数据由所述主处理设备根据联邦学习框架中的算法层架构的功能函数确定并被组织为分别具有所述指令区域、参数区域和数据区域所指定的数据格式,所述方法由所述FPGA处理器执行,所述方法包括:
经由所述FPGA处理器的数据读/写控制模块,从源数据存储器的当前待处理存储空间的指令区域、参数区域和数据区域读取当前处理任务的任务命令信息、模型参数和任务源数据,所述任务命令信息至少包括业务计算模式信息、批数据长度配置信息、数据类型信息和任务配置信息;
经由所述FPGA处理器的任务管理模块,解析所读取的任务命令信息和模型参数,基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略,所述数据分发策略包括所述并行计算架构的各个处理单元执行任务计算时所需的任务计算命令、模型参数和任务源数据,并根据所述数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元,所述分层结构由多个处理单元组成,各个处理单元是具备独立任务处理能力的最小处理单元;
经由所述各个处理单元使用各自接收的数据执行并行计算来得到任务处理结果数据;以及
经由所述数据读/写控制模块将所述任务处理结果数据存储到所述结果数据存储器。
2.如权利要求1所述的方法,其中,所述并行计算架构的分层结构是可配置的嵌套式分层结构,所述任务命令信息还包括层次信息和单层并行计算处理单元数信息,
在基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,所述方法还包括:
经由所述任务管理模块,根据所述层次信息和单层并行计算处理单元数信息配置所述并行计算架构的嵌套式分层结构。
3.如权利要求1所述的方法,其中,所述并行计算架构的分层结构是可配置的嵌套式分层结构,
在基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,所述方法还包括:
经由所述任务管理模块,根据所述业务计算模式信息和所述FPGA处理器的内部计算资源配置所述并行计算架构的嵌套式分层结构。
4.如权利要求1所述的方法,其中,各个处理单元采用运算流水线设计。
5.如权利要求4所述的方法,其中,所述运算流水线的运算级数根据所述并行计算架构的分层结构的层次以及处理单元的个数来配置。
6.如权利要求1所述的方法,还包括:
响应于经由所述FPGA处理器的接口模块从所述主处理设备接收到联邦学习计算任务的任务命令信息、模型参数和任务源数据,经由所述数据读/写控制模块将所接收的任务命令信息、模型参数和任务源数据分别存放在所述源数据存储器的空闲存储空间的指令区域、参数区域和数据区域中。
7.如权利要求6所述的方法,其中,所述空闲存储空间是所述源数据存储器中的紧接最新已使用存储空间的空闲存储空间。
8.如权利要求1所述的方法,其中,所述存储空间的指定区域、参数区域和数据区域的空间大小是可配置的。
9.如权利要求1所述的方法,其中,所述源数据存储器中存储有多个待处理的联邦学习计算任务的任务命令信息、模型参数和任务源数据,以及所述多个待处理的联邦学习计算任务的任务计算采用流水线并行执行。
10.如权利要求1所述的方法,其中,所述FPGA处理器还包括数据分发/合并模块,
经由所述任务管理模块,根据所述数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元包括:
经由所述任务管理模块,使用所述数据分发/合并模块来根据所述数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元,
经由所述各个处理单元使用各自接收的数据执行并行计算来得到任务处理结果数据包括:
经由所述各个处理单元使用各自接收的数据执行并行计算,并经由所述数据分发/合并模块执行计算结果合并处理得到任务处理结果数据。
11.如权利要求1所述的方法,还包括:
经由所述数据读/写控制模块,将所述任务处理结果数据从所述结果数据存储器提供给所述主处理设备。
12.如权利要求1到11中任一所述的方法,其中,所述业务计算模式包括下述业务计算中的至少一种:同态加密计算、同态解密计算、密态数据计算、RSA交集计算和秘钥交换计算。
13.一种用于基于FPGA异构处理***进行联邦学习计算任务处理的FPGA处理器,所述FPGA异构处理***包括主处理设备和FPGA处理设备,所述FPGA处理设备包括所述FPGA处理器、源数据存储器和结果数据存储器,所述源数据存储器包括多个存储空间,每个存储空间被组织成分别用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域,所述联邦学习计算任务的任务命令信息、模型参数和任务源数据由所述主处理设备根据联邦学习框架中的算法层架构的功能函数确定并被组织为分别具有所述指令区域、参数区域和数据区域所指定的数据格式,所述FPGA处理器包括:
接口模块,被配置为从主处理设备接收联邦学习计算任务的任务命令信息、模型参数和任务源数据,以及向所述主处理设备发送任务处理结果数据;
数据读/写控制模块,被配置为从源数据存储器的当前待处理存储空间的指令区域、参数区域和数据区域读取当前处理任务的任务命令信息、模型参数和任务源数据,所述任务命令信息至少包括业务计算模式信息、批数据长度配置信息、数据类型信息和任务配置信息,以及将所述任务处理结果数据存储到所述结果数据存储器;
并行计算架构,包括由多个处理单元组成的分层结构,各个处理单元是具备独立任务处理能力并可并行计算的最小处理单元;以及
任务管理模块,被配置为解析所读取的任务命令信息和模型参数,基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略,所述数据分发策略包括所述并行计算架构的各个处理单元执行任务计算时所需的任务计算命令、模型参数和任务源数据,并根据所述数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元,以供各个处理单元使用各自接收的数据执行并行计算得到所述任务处理结果数据。
14.如权利要求13所述的FPGA处理器,其中,所述分层结构是可配置的嵌套式分层结构,所述任务命令信息还包括层次信息和单层并行计算处理单元数信息,
所述任务管理模块还被配置为在基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,根据所述层次信息和所述单层并行计算处理单元数信息配置所述并行计算架构的嵌套式分层结构。
15.如权利要求13所述的FPGA处理器,其中,所述分层结构是可配置的嵌套式分层结构,
所述任务管理模块还被配置为在基于解析结果和所述FPGA处理器的并行计算架构的分层结构确定数据分发策略之前,根据所述业务计算模式信息和所述FPGA处理器的内部计算资源配置所述并行计算架构的嵌套式分层结构。
16.如权利要求13所述的FPGA处理器,其中,各个处理单元采用运算流水线设计,所述任务管理模块被配置为根据所述并行计算架构的分层结构的层次以及处理单元的个数来配置所述运算流水线的运算级数。
17.如权利要求13所述的FPGA处理器,其中,所述数据读/写控制模块还被配置为:
响应于所述接口模块从所述主处理设备接收到联邦学习计算任务的任务命令信息、模型参数和任务源数据,将所接收的任务命令信息、模型参数和任务源数据分别存放在所述源数据存储器的空闲存储空间的指令区域、参数区域和数据区域中。
18.如权利要求13所述的FPGA处理器,还包括:
数据分发/合并模块,被配置为根据所述数据分发策略将任务计算命令、模型参数和任务源数据分发到各个处理单元,以及对各个处理单元的计算结果执行合并处理得到任务处理结果数据。
19.一种FPGA处理设备,包括
如权利要求13到18中任一所述的FPGA处理器;
源数据存储器,所述源数据存储器包括多个存储空间,每个存储空间被组织成分别用于存放联邦学习计算任务的任务命令信息、模型参数和任务源数据的指令区域、参数区域和数据区域,所述联邦学习计算任务的任务命令信息、模型参数和任务源数据由所述主处理设备根据联邦学习框架中的算法层架构的功能函数确定并被组织为分别具有所述指令区域、参数区域和数据区域所指定的数据格式;以及
结果数据存储器,被配置为存储所述FPGA处理器的并行计算架构计算出的任务处理结果数据。
20.一种FPGA异构处理***,包括:
主处理设备,包括主处理器;以及
如权利要求19所述的FPGA处理设备,
其中,所述主处理设备被配置为将联邦学习计算任务的任务命令信息、模型参数和任务处理源数据发送给所述FPGA处理设备,以及从所述FPGA处理设备接收任务处理结果数据。
21.一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被执行时使得处理器执行如权利要求1到12中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011604796.3A CN112685159B (zh) | 2020-12-30 | 2020-12-30 | 基于fpga异构处理***的联邦学习计算任务处理方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011604796.3A CN112685159B (zh) | 2020-12-30 | 2020-12-30 | 基于fpga异构处理***的联邦学习计算任务处理方案 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685159A CN112685159A (zh) | 2021-04-20 |
CN112685159B true CN112685159B (zh) | 2022-11-29 |
Family
ID=75454566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011604796.3A Active CN112685159B (zh) | 2020-12-30 | 2020-12-30 | 基于fpga异构处理***的联邦学习计算任务处理方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685159B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113112029B (zh) * | 2021-04-22 | 2022-09-16 | 中国科学院计算技术研究所 | 一种应用于异构计算设备的联邦学习***和方法 |
CN113505520A (zh) * | 2021-05-17 | 2021-10-15 | 京东科技控股股份有限公司 | 用于支持异构联邦学习的方法、装置和*** |
CN113254215B (zh) * | 2021-06-16 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子设备 |
CN113553191B (zh) * | 2021-09-17 | 2022-01-04 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的异构处理*** |
CN113900828B (zh) * | 2021-12-08 | 2022-03-04 | 深圳致星科技有限公司 | 联邦学习专用处理器、联邦学习处理芯片及芯片 |
CN115062329B (zh) * | 2022-08-09 | 2022-12-20 | 深圳致星科技有限公司 | 隐私计算、隐私数据和联邦学习的流水计算装置及方法 |
CN115061825B (zh) * | 2022-08-09 | 2022-11-18 | 深圳致星科技有限公司 | 隐私计算、隐私数据和联邦学习的异构计算***及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224613A (zh) * | 2015-09-17 | 2016-01-06 | 西安未来国际信息股份有限公司 | 基于数据联邦技术的异构数据源整合***及其整合方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153475A1 (en) * | 2009-12-18 | 2011-06-23 | At&T Intellectual Property I, L.P. | Federal adjustment tracking system |
US20120117318A1 (en) * | 2010-11-05 | 2012-05-10 | Src Computers, Inc. | Heterogeneous computing system comprising a switch/network adapter port interface utilizing load-reduced dual in-line memory modules (lr-dimms) incorporating isolation memory buffers |
US20180316943A1 (en) * | 2012-04-24 | 2018-11-01 | Skreens Entertainment Technologies, Inc. | Fpga systems and methods for video processing, combination and display of heterogeneous sources |
US9983857B2 (en) * | 2015-06-16 | 2018-05-29 | Architecture Technology Corporation | Dynamic computational acceleration using a heterogeneous hardware infrastructure |
US11276015B2 (en) * | 2017-04-20 | 2022-03-15 | Capital One Services, Llc | Machine learning artificial intelligence system for predicting hours of operation |
CN108921289B (zh) * | 2018-06-20 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种fpga异构加速方法、装置及*** |
CN110119311B (zh) * | 2019-04-12 | 2022-01-04 | 华中科技大学 | 一种基于fpga的分布式流计算***加速方法 |
CN110704360B (zh) * | 2019-09-29 | 2022-03-18 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN111813526A (zh) * | 2020-07-10 | 2020-10-23 | 深圳致星科技有限公司 | 用于联邦学习的异构处理***、处理器及任务处理方法 |
CN111831330B (zh) * | 2020-07-10 | 2022-02-01 | 深圳致星科技有限公司 | 用于联邦学习的异构计算***设备交互方案 |
CN112000598B (zh) * | 2020-07-10 | 2022-06-21 | 深圳致星科技有限公司 | 用于联邦学习的处理器、异构处理***及隐私数据传输方法 |
-
2020
- 2020-12-30 CN CN202011604796.3A patent/CN112685159B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224613A (zh) * | 2015-09-17 | 2016-01-06 | 西安未来国际信息股份有限公司 | 基于数据联邦技术的异构数据源整合***及其整合方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112685159A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685159B (zh) | 基于fpga异构处理***的联邦学习计算任务处理方案 | |
Hao et al. | Challenges and software architecture for fog computing | |
CN111813526A (zh) | 用于联邦学习的异构处理***、处理器及任务处理方法 | |
US10956584B1 (en) | Secure data processing | |
JP4298971B2 (ja) | セキュリティ・コプロセッサのためのインターフェース | |
CN111831330B (zh) | 用于联邦学习的异构计算***设备交互方案 | |
US7240203B2 (en) | Method and apparatus for establishing secure sessions | |
CN112000598B (zh) | 用于联邦学习的处理器、异构处理***及隐私数据传输方法 | |
CN112346833B (zh) | 用于隐私计算的任务处理方法、处理器及异构处理*** | |
CN107710237A (zh) | 服务器上深度神经网络划分 | |
Essa et al. | IFHDS: intelligent framework for securing healthcare bigdata | |
US20200250525A1 (en) | Lightweight, highspeed and energy efficient asynchronous and file system-based ai processing interface framework | |
CN108694089A (zh) | 使用非贪婪调度算法的并行计算架构 | |
CN109726004A (zh) | 一种数据处理方法及装置 | |
Cao et al. | CEPS: a cross-blockchain based electronic health records privacy-preserving scheme | |
Fu et al. | Towards communication-efficient vertical federated learning training via cache-enabled local updates | |
Huang et al. | Garbled circuits in the cloud using fpga enabled nodes | |
CN105593820A (zh) | 在租赁代理***当中的生产者***划分 | |
KR20230147055A (ko) | 3d 데이터 처리 유닛에서의 공간적 분배 | |
Tang et al. | Slicing-based reliable resource orchestration for secure software-defined edge-cloud computing systems | |
Wang et al. | Blockchain-based edge resource sharing for metaverse | |
Hossain et al. | The role of microservice approach in edge computing: Opportunities, challenges, and research directions | |
CN104579738B (zh) | 用以在网络中管理流量的计算机实施的方法、计算机***、计算机程序产品 | |
Alnajar et al. | Tactile internet of federated things: Toward fine-grained design of FL-based architecture to meet TIoT demands | |
Kartit | New approach based on homomorphic encryption to secure medical images in cloud computing |
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 |