PS与PL协同架构的同态加密神经网络框架与推理方法技术

技术编号:29676333 阅读:13 留言:0更新日期:2021-08-13 21:58
PS与PL协同架构的同态加密神经网络框架与推理方法,包括PL侧和PS侧;PL侧包括结构参数解析单元、明文×密文单元以及结构参数调度单元;结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数;数据参数调度单元,用于对接收到的PS侧的权重参数以及密文域下的多项式的阶数进行缓存后,进行拼接后输出到明文×密文单元;明文×密文单元,用于对接收到的数据在密文域下进行多项式的乘法操作,并将结果发送给PS;PS侧包括卷积求和单元、部分和累加单元、BN单元、数据更新单元、全局平均池化单元以及全连接单元。本发明专利技术利用PS侧和PL侧协同工作,提高图片分类任务的执行效率,减少推理时间。

【技术实现步骤摘要】
PS与PL协同架构的同态加密神经网络框架与推理方法
本专利技术属于通信
,具体涉及一种PS与PL协同架构的同态加密神经网络框架与推理方法。
技术介绍
在过去的几十年里,深度神经网络(DNN)以惊人的速度发展,并逐渐融入人们的生活(例如无处不在的物联网设备),包括图像分类、语音识别和物体识别。但是现阶段的神经网络的训练大多都是基于大数据集的,而且进行推理工作也涉及到用户的图像数据。由于用户传输的图像数据可以被云端所查看,这提高了第三方滥用未加密的数据的风险。特别是涉及到商业或者是医疗的隐私数据,这种数据滥用会造成很大的不良影响。同态加密(HE)作为一种数据加密方案,在保护隐私的云计算中具有巨大潜力,已经成为这些年来学者的研究热点。但是HE的数据保护机制是通过大量的计算来换取的,计算开销巨大。而且神经网络本身计算量巨大,这使得基于HE的神经网络推理研究更加雪上加霜。CPU虽然能方便的和外部进行通讯,对图片进行接收和发送,但是神经网络的高度并行、非线性使得神经网络在通用处理器(CPU)的效率并不高,而且很难达到较高的性能。目前,主流的硬件平台包括GPU以及FPAG。GPU的内存带宽和逻辑单元远高于CPU,对数据运算有着很大的优势,但是它的能耗太高,对图片分类任务的应用场景具有很大的应用局限性。FPGA具有流水线和数据并行的特点,但是它并不擅长流程控制,且相比较CPU而言和外部接口交互更为复杂,不容易对接收到的图片数据和模型参数数据进行预处理操作。FPGA在设计验证完成后还可以进一步对FPGA部分流片形成专用集成电路即ASIC以进一步降低功耗,提升性能。上述在处理图片分类时,存在处理效率低,应用场景受限以及开发难度大等问题。
技术实现思路
本专利技术提供了一种PS与PL协同架构的同态加密神经网络框架与推理方法,以高效实现在HE在硬件上的计算以及神经网络在硬件上的推理计算。为实现上述目的,本专利技术采用如下的技术方案:一种基于PS与PL协同架构的同态加密神经网络框架,包括PL侧和PS侧;PL侧包括结构参数解析单元、明文×密文单元以及结构参数调度单元;结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数;数据参数调度单元,用于对接收到的PS侧的权重参数以及密文域下的多项式的阶数进行缓存后,进行拼接后输出到明文×密文单元;明文×密文单元,用于对接收到的数据在密文域下进行多项式的乘法操作,并将乘法操作结果发送给PS侧;PS侧包括卷积求和单元、部分和累加单元、BN单元、数据更新单元、全局平均池化单元以及全连接单元;卷积求和单元,用于当PS侧得到第二行的第二个密文像素点和明文的乘法结果之后,根据卷积求和规则,从存储中取出对应位置的密文多项式和明文的乘法结果,进行求和操作之后再取密文模,得到卷积结果或者部分和结果,如果得到部分和结果,则流入部分和累加单元,如果得到卷积结果,并发送给BN单元;部分和累加单元,用于对接收到的部分和结果,取出对同一个卷积核进行卷积操作的不同输入通道的中间计算结果进行累加,然后取密文模,得到卷积的结果,并发送给BN单元;BN单元,用于对接收来自卷积求和单元或者部分和累加单元卷积结果,进行BN操作,并将BN操作后的结果发送给数据更新单元;数据更新单元,用于将接收到的BN单元的数据压缩后发送给云端服务器,然后接收云端服务器与客户端协同处理后的激活矩阵;根据激活矩阵的标记值更新输出特征图数据;全局平均池化单元,用于对更新后的输出特征图数据进行全局平均池化,并将结果发送给全连接单元;全连接单元,用于对接收到的数据进行全连接计算,得到图片分类结果。本专利技术进一步的改进在于,PS侧还包括第二存储调度单元,包括PS侧的DDR4,其中,PS侧的DDR4用于接收并存储来自云端服务器的加密密文特征图和DNN模型的参数和结构,并向云端服务器发送更新前的密文特征图,向PL侧发送更新后的密文特征图。本专利技术进一步的改进在于,明文×密文单元用于在密文域下进行多项式的乘法操作时,根据多项式模,进行多项式的降阶,将多项式阶数相同部分的系数进行累加求和,然后进行取密文模运算,完成密文多项式和明文的乘法操作。本专利技术进一步的改进在于,PL侧还包括第一存储调度单元,包括PL侧的DDR4以及PL的片上BRAM;PL侧的DDR4用于存储加密后的输入特征图;PL侧的片上BRAM用于缓存DNN模型的weight、多项式阶数参数以及多项式计算的中间结果。本专利技术进一步的改进在于,如果DNN模型的下一层为全连接层,则更新后的输出特征图数据流向全局平均池化单元,否则发送给PL侧的DDR4,作为下一层的输入特征图进行卷积运算。本专利技术进一步的改进在于,DNN模型结构参数包括加密后的图片的高度、宽度,当前执行层的步长、卷积核的尺寸、输入通道数、输出通道数以及密文模.基于PS与PL协同架构的同态加密神经网络框架的推理方法,其特征在于,包括以下步骤:(1)将图片加密后得到输入特征图,将DNN模型和输入特征图打包发送给PS;(2)PS侧重构模型参数,发送模型数据给PL侧;(3)PL侧并行计算明文×密文,并将结果发送给PS侧;(4)PS侧计算卷积中求和操作,得到卷积结果,然后进行BN操作,得到加密输出特征图,传递给云端服务器,然后服务器通过5G再将加密输出特征图传递给客户端,从而获得客户端的激活矩阵,将激活矩阵传递给PS侧;PS侧根据激活矩阵的值进行一个密文特征图更新操作,并将更新后的输入特征图发送给PL侧;(5)PS侧对接收到的输入特征图进行全局平均池化和全连接计算,得到图片分类结果。本专利技术进一步的改进在于,步骤(2)的具体过程为:将PS侧将输入特征图的尺寸,卷积核的尺寸,输入通道数、输出通道数、步长以及密文模,按照每一个数据段32bit的容量选取参数进行重组和打包,重构和PL对接的DNN模型结构数据,然后通过低速互联接口向PL发送模型结构参数,通过高速互联接口向PL侧发送模型数据参数。本专利技术进一步的改进在于,步骤(3)的具体过程为:根据片上存储的设限值,发送能够容纳的两层或多层的weight参数,则在进行下一层或者下几层的明文×密文的操作时,PS侧发送结构参数,当设限值小于当前的待处理的weight数量值时,处理完缓存的weight值之后,向PS侧发送中断,重新接收weight值,完成明文×密文计算。本专利技术进一步的改进在于,步骤(4)的具体过程为:如果当前DNN模型的输入通道数大于PL侧的输入并行度,则PL侧传输的结果为部分和结果,得到不同输入通道之间的值,对多项式阶数相等的系数进行累加,然后进行取模操作,得到卷积结果。与现有的技术相比,本专利技术具有的有益效果:(1)本专利技术充分利用了“PL(ProgrammableLogical)+PS(ProcessingSystem)”这种框架。一方面充分利用PS便于和外界进行交互,并且擅长流程控制的特本文档来自技高网
...

【技术保护点】
1.PS与PL协同架构的同态加密神经网络框架,其特征在于,包括PL侧和PS侧;/nPL侧包括结构参数解析单元、明文×密文单元以及结构参数调度单元;/n结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数;/n数据参数调度单元,用于对接收到的PS侧的权重参数以及密文域下的多项式的阶数进行缓存后,进行拼接后输出到明文×密文单元;/n明文×密文单元,用于对接收到的数据在密文域下进行多项式的乘法操作,并将乘法操作结果发送给PS侧;/nPS侧包括卷积求和单元、部分和累加单元、BN单元、数据更新单元、全局平均池化单元以及全连接单元;/n卷积求和单元,用于当PS侧得到第二行的第二个密文像素点和明文的乘法结果之后,根据卷积求和规则,从存储中取出对应位置的密文多项式和明文的乘法结果,进行求和操作之后再取密文模,得到卷积结果或者部分和结果,如果得到部分和结果,则流入部分和累加单元,如果得到卷积结果,并发送给BN单元;/n部分和累加单元,用于对接收到的部分和结果,取出对同一个卷积核进行卷积操作的不同输入通道的中间计算结果进行累加,然后取密文模,得到卷积的结果,并发送给BN单元;/nBN单元,用于对接收来自卷积求和单元或者部分和累加单元卷积结果,进行BN操作,并将BN操作后的结果发送给数据更新单元;/n数据更新单元,用于将接收到的BN单元的数据压缩后发送给云端服务器,然后接收云端服务器与客户端协同处理后的激活矩阵;根据激活矩阵的标记值更新输出特征图数据;/n全局平均池化单元,用于对更新后的输出特征图数据进行全局平均池化,并将结果发送给全连接单元;/n全连接单元,用于对接收到的数据进行全连接计算,得到图片分类结果。/n...

【技术特征摘要】
1.PS与PL协同架构的同态加密神经网络框架,其特征在于,包括PL侧和PS侧;
PL侧包括结构参数解析单元、明文×密文单元以及结构参数调度单元;
结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数;
数据参数调度单元,用于对接收到的PS侧的权重参数以及密文域下的多项式的阶数进行缓存后,进行拼接后输出到明文×密文单元;
明文×密文单元,用于对接收到的数据在密文域下进行多项式的乘法操作,并将乘法操作结果发送给PS侧;
PS侧包括卷积求和单元、部分和累加单元、BN单元、数据更新单元、全局平均池化单元以及全连接单元;
卷积求和单元,用于当PS侧得到第二行的第二个密文像素点和明文的乘法结果之后,根据卷积求和规则,从存储中取出对应位置的密文多项式和明文的乘法结果,进行求和操作之后再取密文模,得到卷积结果或者部分和结果,如果得到部分和结果,则流入部分和累加单元,如果得到卷积结果,并发送给BN单元;
部分和累加单元,用于对接收到的部分和结果,取出对同一个卷积核进行卷积操作的不同输入通道的中间计算结果进行累加,然后取密文模,得到卷积的结果,并发送给BN单元;
BN单元,用于对接收来自卷积求和单元或者部分和累加单元卷积结果,进行BN操作,并将BN操作后的结果发送给数据更新单元;
数据更新单元,用于将接收到的BN单元的数据压缩后发送给云端服务器,然后接收云端服务器与客户端协同处理后的激活矩阵;根据激活矩阵的标记值更新输出特征图数据;
全局平均池化单元,用于对更新后的输出特征图数据进行全局平均池化,并将结果发送给全连接单元;
全连接单元,用于对接收到的数据进行全连接计算,得到图片分类结果。


2.根据权利要求1所述的PS与PL协同架构的同态加密神经网络框架,其特征在于,PS侧还包括第二存储调度单元,第二存储调度单元包括PS侧的DDR4,其中,PS侧的DDR4用于接收并存储来自云端服务器的加密密文特征图和DNN模型的参数和结构,并向云端服务器发送更新前的密文特征图,向PL侧发送更新后的密文特征图。


3.根据权利要求1所述的PS与PL协同架构的同态加密神经网络框架,其特征在于,明文×密文单元用于在密文域下进行多项式的乘法操作时,根据多项式模,进行多项式的降阶,将多项式阶数相同部分的系数进行累加求和,然后进行取密文模运算,完成密文多项式和明文的乘法操作。


4.根据权利要求1所述的PS与PL协同架构的同态加密神经网络框架,其特征在于,PL侧还包括第一存储调度单元,第一存储调度单元包括PL侧的DDR4以及PL侧的片上BRAM;PL侧的DDR4用于存储加密后的输入特征图;PL侧的片上BRAM用于缓存DNN模型的weigh...

【专利技术属性】
技术研发人员:刘龙军高鹏李英翔王骁雷瑞琪孙宏滨郑南宁
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

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

1