用于隐私计算的FPGA芯片、异构处理系统及计算方法技术方案

技术编号:29460061 阅读:13 留言:0更新日期:2021-07-27 17:29
本申请提供了一种用于隐私计算的FPGA芯片、异构处理系统及计算方法,该FPGA芯片包括:任务管理模块、计算模块和存储器;存储器用于保存上位机发送的源数据;任务管理模块用于接收上位机发送的任务信息,根据任务信息从所述存储器中读取所述源数据,并发送给计算模块;计算模块用于对源数据进行计算,得到结果数据;任务管理模块还用于将结果数据保存至存储器,并根据上位机的任务信息读取结果数据作为部分源数据或全部源数据进行下次计算。该FPGA芯片可以支持在下次计算时继续使用在该芯片内存储的结果数据,从而减少了FPGA芯片与上位机之间的数据交互,降低了时间损耗,提高了计算效率,还缓解了上位机的存储压力。

【技术实现步骤摘要】
用于隐私计算的FPGA芯片、异构处理系统及计算方法
本申请涉及隐私计算领域,尤其涉及一种用于隐私计算的FPGA芯片、隐私计算异构处理系统及计算方法。
技术介绍
FPGA芯片是一种可编程设计的硬件芯片,具有高灵活性、高并行度和低延迟处理的特点。由于计算能力强、延迟低等特点,FPGA芯片在各个领域都发挥着重要的作用,特别是在异构计算领域,FPGA芯片能极大地缓解算法的算力瓶颈。异构隐私计算异构处理系统中,FPGA芯片和上位机通过硬件接口如PCIe进行数据交换,这会产生一定的传输延迟。在机器学习等应用场景中,训练数据往往需要通过多次迭代计算,才能得到最终结果,这也就意味着在训练的过程中,上位机和FPGA芯片之间需要进行多次数据交换,而进行的数据传输越多,造成的时间损耗也就越多。
技术实现思路
本申请提供了一种用于隐私计算的FPGA芯片、隐私计算异构处理系统及计算方法,以解决上位机和FPGA芯片多次数据传输造成时间损耗的问题。第一方面,本申请提供了一种用于隐私计算的FPGA芯片,所述FPGA芯片包括:任务管理模块、计算模块、存储器;所述存储器用于保存上位机发送的源数据;所述任务管理模块用于接收所述上位机发送的任务信息,根据所述任务信息从所述存储器中读取所述源数据,并发送给所述计算模块;所述计算模块用于对所述源数据进行计算,得到结果数据;所述任务管理模块还用于将所述结果数据保存至所述存储器,并根据所述上位机的任务信息读取所述结果数据作为部分源数据或全部源数据进行下次计算。该FPGA芯片通过把计算的结果数据存储在FPGA芯片的存储器上,在下次执行计算任务时由FPGA芯片从存储器上提取出继续用于执行计算任务,从而减少大量不必要的数据传输,提高了计算效率,且缓解了上位机存储空间的压力。在一可选的FPGA芯片中,所述任务管理模块包括:读写控制单元、FIFO任务队列缓存、多个寄存器、读数据FIFO和写数据FIFO;所述FIFO任务队列缓存用于缓存从所述上位机接收的任务信息;所述读写控制单元用于在检测到所述FIFO任务队列缓存非空时,读取并解析所述任务信息得到任务解析结果,将所述任务解析结果存入所述多个寄存器;所述读写控制单元还用于根据所述任务解析结果通过所述读数据FIFO从所述存储器读取源数据发送给所述计算模块,以及通过所述写数据FIFO将所述计算模块进行计算得到的结果数据保存至所述存储器。由此通过在FPGA芯片内设计任务管理模块,FPGA芯片能实现自动解析任务,在FPGA芯片内部实现任务源数据的读取和结果数据的存储,减少了和上位机之间的数据交互,提高了运算效率。在一可选的FPGA芯片中,所述读数据FIFO的数量为多个,所述写数据FIFO的数量为一个;所述读写控制单元根据所述任务解析结果确定待读取的源数据的目标数量,从多个所述读数据FIFO选择与所述目标数量对应数量的读数据FIFO从所述存储器读取所述源数据并发送给所述计算模块进行计算,以及通过所述写数据FIFO将结果数据发送给存储器。由于在大部分场景中,需要被执行的都是多元运算,通过在FPGA芯片内设计多个读数据FIFO,实现同时读取多个源数据用于运算,使得FPGA芯片能满足复杂的多元运算场景的需求。在一可选的FPGA芯片中,所述任务信息包括结果数据的存储地址,所述任务管理模块还用于根据所述结果数据的存储地址将所述结果数据保存至所述存储器。通过在任务信息中发送结果数据的存储地址,上位机可实现管理FPGA芯片对结果的暂存,FPGA芯片也可根据该结果数据的存储地址基于任务的需求读取该结果数据用于下次计算或者读取后发送给上位机。第二方面,本申请提供了另一种隐私计算的FPGA芯片,所述FPGA芯片包括:任务管理模块、计算模块和存储器;所述存储器用于接收并保存上位机发送的明文数据;所述任务管理模块用于接收所述上位机发送的任务信息,根据所述任务信息从所述存储器中读取所述明文数据,并发送给所述计算模块;所述计算模块用于对所述明文数据进行加密运算,得到第一加密结果;所述任务管理模块还用于将所述第一加密结果保存至所述存储器;所述存储器还用于接收并保存上位机发送的密文数据;所述任务管理模块还用于根据所述上位机的任务信息读取所述密文数据和所述第一加密结果发送给所述计算模块进行加密运算,并将所述计算模块得到的第二加密结果保存至所述存储器中;所述任务管理模块还用于根据所述上位机的任务信息,持续执行从所述存储器中读取上位机发送的明文数据或密文数据发送给所述计算模块进行加密运算,并将运算结果保存至所述存储器中,作为后续加密运算的部分源数据或全部源数据,直至得到需要的目标结果数据。在一可选的FPGA芯片中,将所述FPGA芯片用于隐私计算的梯度计算任务时,所述加密运算还包括密态加法运算、密态乘法运算和明文乘法运算。在隐私计算任务中,往往需要多次运算才能得到目标结果数据,且在先运算的中间结果往往需作为部分源数据或全部源数据用于后续的加密运算,通过将中间结果暂存在FPGA芯片的存储器,任务管理模块根据任务信息直接读取存储器中所需用于计算的中间结果用于后续计算,减少了和上位机之间的数据交互,提高了计算效率。第三方面,本申请还提供了一种使用FPGA芯片的隐私计算异构处理系统,所述使用FPGA芯片的隐私计算异构处理系统包括:上位机和FPGA芯片,所述FPGA芯片包括存储器、任务管理模块和计算模块;所述上位机将源数据保存至所述存储器,以及向所述任务管理模块发送任务信息;所述任务管理模块根据所述任务信息从所述存储器中读取所述源数据,并发送给所述计算模块;所述计算模块对所述源数据进行计算,得到结果数据;所述任务管理模块将所述结果数据保存至所述存储器,并根据所述上位机的任务信息读取所述结果数据作为部分源数据或全部源数据进行下次计算。在一可选的使用FPGA芯片的隐私计算异构处理系统中,所述任务管理模块包括:读写控制单元、FIFO任务队列缓存、多个寄存器、读数据FIFO和写数据FIFO;所述FIFO任务队列缓存用于缓存从所述上位机接收的任务信息;所述读写控制单元在检测到所述FIFO任务队列缓存非空时,读取并解析所述任务信息得到任务解析结果,将所述任务解析结果存入所述多个寄存器;所述读写控制单元还根据所述任务解析结果通过所述读数据FIFO从所述存储器读取源数据发送给所述计算模块,以及通过所述写数据FIFO将所述计算模块进行计算得到的结果数据保存至所述存储器。通过在FPGA芯片内设计任务管理模块,FPGA芯片能实现自动解析任务,在FPGA芯片内部实现任务源数据的读取和结果数据的存储,减少了和上位机之间的数据交互,提高了隐私计算异构处理系统的运算效率。在一可选的使用FPGA芯片的隐私计算异构处理系统中,所述读数据FIFO的数量为多个,所述写数据FIFO的数量为一个;所述读写控本文档来自技高网...

【技术保护点】
1.一种用于隐私计算的FPGA芯片,其特征在于,所述FPGA芯片包括:任务管理模块、计算模块和存储器;/n所述存储器用于保存上位机发送的源数据;/n所述任务管理模块用于接收所述上位机发送的任务信息,根据所述任务信息从所述存储器中读取所述源数据,并发送给所述计算模块;/n所述计算模块用于对所述源数据进行计算,得到结果数据;/n所述任务管理模块还用于将所述结果数据保存至所述存储器,并根据所述上位机的任务信息读取所述结果数据作为部分源数据或全部源数据进行下次计算。/n

【技术特征摘要】
1.一种用于隐私计算的FPGA芯片,其特征在于,所述FPGA芯片包括:任务管理模块、计算模块和存储器;
所述存储器用于保存上位机发送的源数据;
所述任务管理模块用于接收所述上位机发送的任务信息,根据所述任务信息从所述存储器中读取所述源数据,并发送给所述计算模块;
所述计算模块用于对所述源数据进行计算,得到结果数据;
所述任务管理模块还用于将所述结果数据保存至所述存储器,并根据所述上位机的任务信息读取所述结果数据作为部分源数据或全部源数据进行下次计算。


2.根据权利要求1所述的FPGA芯片,其特征在于,所述任务管理模块包括:读写控制单元、FIFO任务队列缓存、多个寄存器、读数据FIFO和写数据FIFO;
所述FIFO任务队列缓存用于缓存从所述上位机接收的任务信息;
所述读写控制单元用于在检测到所述FIFO任务队列缓存非空时,读取并解析所述任务信息得到任务解析结果,将所述任务解析结果存入所述多个寄存器;
所述读写控制单元还用于根据所述任务解析结果通过所述读数据FIFO从所述存储器读取源数据发送给所述计算模块,以及通过所述写数据FIFO将所述计算模块进行计算得到的结果数据保存至所述存储器。


3.根据权利要求2所述的FPGA芯片,其特征在于,所述读数据FIFO的数量为多个,所述写数据FIFO的数量为一个;
所述读写控制单元根据所述任务解析结果确定待读取的源数据的目标数量,从多个所述读数据FIFO选择与所述目标数量对应数量的读数据FIFO从所述存储器读取所述源数据并发送给所述计算模块进行计算,以及通过所述写数据FIFO将结果数据发送给存储器。


4.根据权利要求1所述的FPGA芯片,其特征在于,所述任务信息包括结果数据的存储地址,所述任务管理模块还用于根据所述结果数据的存储地址将所述结果数据保存至所述存储器。


5.一种用于隐私计算的FPGA芯片,其特征在于,所述FPGA芯片包括:任务管理模块、计算模块和存储器;
所述存储器用于接收并保存上位机发送的明文数据;
所述任务管理模块用于接收所述上位机发送的任务信息,根据所述任务信息从所述存储器中读取所述明文数据,并发送给所述计算模块;
所述计算模块用于对所述明文数据进行加密运算,得到第一加密结果;
所述任务管理模块还用于将所述第一加密结果保存至所述存储器;
所述存储器还用于接收并保存上位机发送的密文数据;
所述任务管理模块还用于根据所述上位机的任务信息读取所述密文数据和所述第一加密结果发送给所述计算模块进行加密运算,并将所述计算模块得到的第二加密结果保存至所述存储器中;
所述任务管理模块还用于根据所述上位机的任务信息,持续执行从所述存储器中读取上位机发送的明文数据或密文数据发送给所述计算模块进行加密运算,并将运算结果保存至所述存储器中,作为后续加密运算的部分源数据或全部源数据,直至得到需要的目标结果数据。


6.根据权利要求5所述的FPGA芯片,其特征在于,将所述FPGA芯片用于隐私计算的梯度计算任务时,所述加密运算还包括密态加法运算、密态乘法运算和明文乘法运算。


7.一种...

【专利技术属性】
技术研发人员:王玮胡水海
申请(专利权)人:深圳致星科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1