CN113255881A - Ps与pl协同架构的同态加密神经网络框架与推理方法 - Google Patents
Ps与pl协同架构的同态加密神经网络框架与推理方法 Download PDFInfo
- Publication number
- CN113255881A CN113255881A CN202110461086.8A CN202110461086A CN113255881A CN 113255881 A CN113255881 A CN 113255881A CN 202110461086 A CN202110461086 A CN 202110461086A CN 113255881 A CN113255881 A CN 113255881A
- Authority
- CN
- China
- Prior art keywords
- unit
- ciphertext
- data
- result
- convolution
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Storage Device Security (AREA)
Abstract
PS与PL协同架构的同态加密神经网络框架与推理方法,包括PL侧和PS侧;PL侧包括结构参数解析单元、明文×密文单元以及结构参数调度单元;结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数;数据参数调度单元,用于对接收到的PS侧的权重参数以及密文域下的多项式的阶数进行缓存后,进行拼接后输出到明文×密文单元;明文×密文单元,用于对接收到的数据在密文域下进行多项式的乘法操作,并将结果发送给PS;PS侧包括卷积求和单元、部分和累加单元、BN单元、数据更新单元、全局平均池化单元以及全连接单元。本发明利用PS侧和PL侧协同工作,提高图片分类任务的执行效率,减少推理时间。
Description
技术领域
本发明属于通信技术领域,具体涉及一种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(Programmable Logical)+PS(Processing System)”这种框架。一方面充分利用PS便于和外界进行交互,并且擅长流程控制的特点,便捷的和客户端和云端服务器进行通讯,完成数据通信操作。此外,相比较PL,PS可以很容易的跟外部存储进行交互,可以根据PL的设计框架对模型数据和加密后的图片数据进行处理和重排,提高推理工作的效率。另一方面充分利用PL高度并行的特点,并行计算同态加密引入的大量繁杂的多项式计算,减小计算时间开销。在本框架中,云端和客户端持有加密的两方协议,二者进行协同设计,简化在DNN模型引入同态加密后中的部分任务,减少执行图片分类任务的推理时间。本发明充分利用了PS和PL侧的算力资源,PL根据网络的结构来执行图片分类任务中占用大量计算资源的密文乘法的并行计算,而PS侧接收到密文乘法的结果之后,找到对应的元素进行累加完成卷积中求和以及部分和累加的操作。一方面可以降低PL侧需要存储中间结果的这部分存储开销,而把存储压力转嫁到PS侧,并且降低PL侧的流程控制难度。另一方面充分利用了PS侧的算力资源、存储资源和流程调度能力,通过流水线掩盖部分计算时间。二者协同工作,提高图片分类任务的执行效率,减少推理时间。
进一步的,本发明充分利用了PL侧DDR4、片上BRAM以及PS侧的DDR4存储资源,并且通过合理调度,将IFM存储在PL侧的DDR4中,减少数据吞吐对加速器性能的限制问题。把中间结果存储在PS侧的DDR4中,降低PL侧存储资源的使用。并且根据DNN模型的特点,尽量减少PL侧需要从PS侧获取数据的次数,减小DNN推理时间延迟。
本发明的方法是高度流水线的,PL侧计算密文乘法,PS侧计算卷积的求和操作、部分和累加操作以及BN(Batch Normalization)操作,通过完成卷积层运算来提取图片特征,实现图片的分类,本发明中PL和PS协同设计,共同承担推理部分的计算任务,提高推理性能。并且在PS侧向云端发送输出特征图(OFM),云端和客户端协同激活的过程中,PL仍然高速计算密文乘法,PS侧也不断在计算OFM并且获得激活矩阵更新OFM,在计算中掩盖了部分通信开销。网络支持动态更改,当PS接收到云端服务器发送的新的DNN模型之后,可以重构结构参数重新配置整个网络,而不用更改PL侧的过程,提高了对图片的分类效率。
附图说明
图1为云端-客户端协同的DNN推理框架。
图2为PS与PL协同架构系统框架示意图。
图3为PS接收云端DNN模型和数据示意图。
图4为PS重构模型结构参数示意图。
图5为weight均衡调度示意图。
图6为SISO(单输入单输出)明文×密文示意图。
图7为MIMO(多输入多输出)明文×密文示意图。
图8为卷积实现示意图。
图9为存储调度示意图。
图10为推理框架的执行流程示意图。
具体实施方式
下面结合附图对本发明进行详细说明。
本发明利用了PS(Processing System)即处理器系统(包括ARM、RISC-V、Intel等处理器)及PL(Progarmmable Logic)即可编程逻辑(包括FPGA,ASIC芯片等)构成的协同架构系统实现同态加密深度神经网络框架与安全推理加速。
如图1所示,本发明中,客户端在上传图片之前,可以通过微软开源的同态加密库对数据进行加密,然后通过5G传输把像素点传输给云端服务器。而云端服务器收到加密后的输入特征图之后,将其打包压缩后,发送给PS与PL协同架构组成的处理系统。如果有云端服务器预训练好的神经网络模型发生更改或者未曾向PS与PL协同架构系统传输,则需要将神经网络模型打包发送给PS与PL协同架构系统。而PS与PL协同架构系统接收到DNN模型和加密后的输入特征图之后,完成数据的预处理之后启动推理过程。并且本发明把激活部分的计算转嫁给了客户端,因为客户端将数据解密之后进行激活是十分便捷的,而且客户端传给云端的是一个激活矩阵,传输量可以说非常小。在5G速度加持下,数据解密、激活以及传输的时间开销反而会小于在云端或者PS与PL协同架构系统进行激活的时间。而且在本发明的设计中,通过流水线设计可以掩盖掉部分的时间开销。
在本发明中,云端和客户端基于两方计算技术,即客户端持有网络的输入特征图,而云端持有DNN模型的推理模型。在推理进行的过程中,客户端不会获得根推理有关的模型结构参数,云端不会获得解密后的图像数据信息。但是二者共用一个协同激活函数,用来更新云端的OFM数据,大幅度降低了在硬件实现的设计难度以及计算量。而PS与PL协同架构系统只需要与云端服务器进行对接,主要接收到模型结构参数、加密后的输入特征图,并且将卷积后的结果返还给云端服务器,让云端服务器和客户端协同计算来得到激活矩阵,从而更新本地的密文特征图。
如图2所示,本发明基于PS与PL协同架构系统平台,的PS侧向上和云端服务器进行对接,接收整个DNN(深度神经网络)模型结构以及待推理的加密输入特征图,以及向云端服务器发送卷积运算后的加密特征图,并且承担推理过程中的部分计算任务、存储调度任务以及数据处理任务。向下和PL侧对接,启动PL的计算并且接收PL的计算结果。而PL侧则根据PS侧的配置参数,专注于HE DNN推理中大部分计算任务。基于数据传输和程序设计的特点,本发明调用了4路高速互联接口和一路低速互联接口。低速互联接口主要传输DNN模型的配置参数,而高速互联接口主要是PS向PL发送输入特征图和权重数据,以及接受来自PL的明文(w)×密文(X*)计算结果。其中,HP接口是高速互联接口,传输大量的数据,GP接口是低速互联接口,传输配置参数,二者接口不同。
在本发明中,采用中断来使系统顺序执行。只有当PL侧有数据请求时PS才会去进行数据传输,其它的时刻可以执行其它的处理操作,缓解PS侧的压力。除此之外,合理利用PS的计算资源和存储资源,为PL的设计“减压”,使得网络更加友好和通用。
一种基于PS与PL协同架构的同态加密神经网络框架,包括PL侧和PS侧,PL侧包括第一存储调度单元、结构参数解析单元、明文×密文单元、结构参数调度单元以及存储调度单元。
第一存储调度单元,包括PL侧的DDR4以及PL的片上BRAM;PL侧的DDR4用于存储加密后的密文特征图;PL的片上BRAM用于缓存DNN模型的weight、多项式阶数参数以及多项式计算的中间结果。
结构参数解析单元,用于接收并解析PS侧发送的DNN模型结构参数,DNN模型结构参数主要包括卷积的输入特征图(IFM)的高度、宽度以及当前DNN模型的深度等参数,并流向多项式乘法单元、取多项式模单元、取密文模单元、多项式求和单元以及存储调度单元中,使得整个DNN模型可支持调配。
数据参数调度单元,主要是用于对接收到的PS侧的权重参数(weight)以及多项式的阶数(表征多项式系数分布情况,第i项为1表征xi-1的系数不为0,为0则表征xi-1的系数为0)进行缓存。根据数据处理进程从缓存中取出对应数据量的weight和多项式阶数,经过拼接之后输出,流向明文×密文单元,参与多项式乘法运算。
明文×密文单元,主要用于在密文域下进行多项式的乘法操作。当从数据参数调度单元得到计算所需要的权重数据与多项式的阶数数据之后,从PL侧的DDR4取出密文特征图数据,首先并行计算密文多项式(X*)和明文(w)的乘法,由于多项式乘法带来的阶数扩张,故需要取多项式模,进行多项式的降阶。对于每一个独立的多项式,其系数均需要对密文进行取模运算。完成取模运算之后,需要将多项式阶数相同部分的系数进行累加求和,求和之后进行取密文模运算,完成明文×密文多项式的计算,然后PL通过DMA(直接内存存取系统)将明文×密文的计算结果发送给PS,由PS完成后续操作完成卷积层运算,来提取图片的特征。
PS包括模型第二存储调度单元、模型解析单元、数据发送单元、卷积求和单元、部分和累加单元、BN单元、全局平均池化单元以及FC单元。
第二存储调度单元,包括PS侧的DDR4。其中,PS侧的DDR4用于接收并存储来自云端服务器的加密密文特征图和DNN模型的参数和结构,接收并存储来自PL端的中间计算结果,存储并向云端服务器发送更新前的密文特征图,存储并向PL侧发送更新后的密文特征图。
模型解析单元,主要用于接收云端服务器的DNN模型,并根据PL和PS自定义协议,重构参数和PL进行对接。
数据发送单元,用向PL侧发送DNN模型结构参数以及数据参数,发送加密后的图片数据,启动PL侧的明文×密文计算过程。
卷积求和单元,PL侧按照DNN模型中数据卷积的计算规律,顺序从PL侧的DDR4存储中取出密文数据,明文卷积核完成卷积中的明文×密文操作(根据padding后数据运算的规律,完成该像素点和卷积核中有计算需求的明文的乘法操作之后更新为下一个像素点),并将明文×密文的结果顺序发送给PS。PS得到明文×密文的结果后存储在PS侧,并根据卷积的求和规则,当PS从PL侧得到第二行的第二个元素的乘法结果之后,根据DNN模型的卷积计算规则,从存储中取出对应位置的密文×明文结果,进行求和操作之后再取密文模,得到卷积结果或者部分和结果,如果得到部分和结果,则流入部分和累加单元,如果得到卷积结果,直接流向BN单元。
部分和累加单元,用于对接收到的部分和结果,取出对同一个卷积核进行卷积操作的不同输入通道的中间计算结果(PSUM)进行累加,然后取密文模,得到卷积的结果,流入BN单元。
BN单元,用于接收来自卷积求和单元或者部分和累加单元卷积结果,进行BN操作,并将BN操作后的结果发送给数据发送单元完成PS和云端的数据传输。
数据更新单元,用于接收BN单元的密文OFM(输出特征图)并发送给云端服务器,待客户端和云端服务器协同完成激活操作后,云端服务器返还激活矩阵给PS。PS接收来自云端服务器的激活矩阵后,根据激活矩阵的标记值更新PS存储在本地的密文OFM,如果完成卷积层的推理过程,则数据流向全局平均池化单元,否则发送给PL侧的DDR4。
全局平均池化单元,用于当网络结构计算到全局平均池化时,接收数据处理单元的OFM数据,完成平均池化操作,并发送给全连接(FC)单元。
全连接(FC)单元,用于接收来自全局平均池化单元的数据,完成全连接层计算,计算完毕后将计算结果发送给云端服务器,完成整个推理过程。
在本发明的整个推理过程中,PS和PL分别调用各自的单元模块,完成PS-PL的协同设计,云端(PS与PL协同架构、云端服务器)-客户端的协同设计。
本发明的设计方法具体步骤如下:
(1)云端服务器将模型和加密后的IFM打包发送给PS:将图片加密后得到加密后的输入特征图,如图3所示,PS通过网络协议接收来自云端服务器的DNN模型和加密后的输入特征图。接收到云端服务器发送的数据之后,PS先进行一个解压缩操作然后存储在本地中,按照PL侧的并行框架,对数据进行预处理,然后将密文特征图发送给PL侧的DDR4中进行存储。
(2)PS重构模型参数,发送模型数据,启动计算过程:PS接着调用模型解析单元,如图4所示,将跟模型结构有关的参数(主要包括输入特征图的尺寸,卷积核的尺寸,输入通道数、输出通道数、步长以及密文模p),按照每一个数据段32bit的容量选取合适的参数进行重组和打包,重构和PL对接的DNN模型结构数据。然后PS调用数据发送单元,通过低速互联接口向PL发送模型结构参数,通过高速互联接口向PL侧发送模型数据参数,PL侧接收到数据参数之后开始启动PL侧的计算过程。
(3)PL侧并行计明文×密文:首先,PL调用参数解析单元,得到DNN模型的结构参数。接下来,在计算之前,会从PS侧加载权重(weight)和多项式的阶数,存储在PL侧片上BRAM中。在本发明中,对PL侧的片上资源进行充分考量,选取一个中间值作为存储的容量。对于多项式阶数的存储,使用了两个同样大小的片上BRAM,来进行乒乓操作。当一个BRAM的数据读空之后,向PS侧发送中断,获取新的一轮多项式阶数数据。这部分的传输时间和PL计算明文×密文的时间是重叠的,不会造成额外的时间延时。而针对多项式权重(w)的存储,本发明对权重存储进行了“类均衡化处理策略”。类均衡化处理策略是基于随着推理过程的进行网络会逐渐变宽这一特点,这也意味着要存储的weight值的数据量会变多。但是PL侧片上BRAM资源是有限的,从一般角度来说,设定的中间值通常会大于前面几层的weight缓存数量值,而会小于后面几层应该缓存的weight值。所以应该充分利用前面几层weight的存储值有余量这一特点,减小下一层发送weight值引入的额外的时间开销。故在本发明中,采用了基于图5的weight调度策略。即在DNN模型最初的推理过程中,根据片上存储的设限值,发送可以容纳的两层甚至多层的weight参数。则在进行下一层(或者下几层)的明文×密文的操作时,PS只用发送结构参数,而不用发送weight参数。当然,在进行DNN模型的后面层数时,设限值小于当前的应当处理的weight数量值。此时,当处理完缓存的weight值之后,会向PS侧发送中断,重新接收weight值,完成后续计算。
PL完成对weight以及多项式阶数的处理之后,从PL侧的DDR中加载密文多项式的系数,送入多项式乘法单元中进行多项式乘法计算。多项式乘法的过程如图6所示,由于多项式阶数是比多项式系数先传递的,可以很容易的知道哪个多项式的阶数发生了扩张,然后进行取多项式模的操作。如果未发生阶数扩张这种情况,则保留原来的数据规律。然后把数据送入取密文模单元中,进行一个取模操作。然后将多项式的各个阶数对应的系数进行求和,然后累加之后再取密文模。在本发明中,取多项式模,两次取密文模都复用了同一个存储,来降低存储资源的使用。
上述步骤只是完成了一个多项式乘法的操作,在本发明中采用了基于输入输出并行计算的机制。结合硬件特点和DNN模型特点,输入并行度设置为4,输出并行度为2的指数次方,典型值为4/8/16等。在一次多通道并行计算进行的过程中,如图7所示,对应的单输入通道IFM(X*)和对应的多个权值w进行明文×密文操作,完成输出通道的并行。然后对于不同的输入通道IFM(X0 *、X1 *、X2 *、X3 *)和对应部分的w进行明文×密文操作,然后再完成通道间的累加,即可完成一次输入输出并行。完成明文×密文并行计算之后,通过多路DMA将结果返还给PS侧。
(4)PS侧计算卷积中求和操作,得到卷积结果:在本发明中,将卷积结果的计算任务放在了PS侧。这是基于HE加密的数据特点而设计的,加密后的数据呈现出大位宽、大数据量的特点。而且明文×密文的操作远比传统卷积的计算复杂,这意味着如果按照传统的卷积计算的方式,PL侧需要消耗巨大的中间存储来缓存中间结果,这无疑是十分不经济的。更糟糕的是,为了保证经过卷积运算后,输入输出图片的尺寸不变,通常还需要进行一个padding操作。这对处理又增加了难度,即使在PS侧完成数据的padding操作,但是在PL侧处理任然要消耗额外的处理周期。而且图像的IFM的尺寸越大,额外消耗PL侧的存储就会越多。基于此,在本发明中,根据数据padding之后的计算规律,只在PL侧完成明文×密文这一操作,然后将计算结果返还给PS侧。PS则根据接收的数据,来找到对应的应该累加的值,完成累加之后,即完成一个点的卷积运算。这样做的好处是显而易见的,大大的节省了PL侧的存储资源以及设计难度,并且充分利用PS的计算资源和存储资源,图7显示了这一计算过程。以stride=1为例,对于单输入通道单输出通道(SISO)的设计模式IFM的四个边角只用和weight进行4次明文×密文操作,IFM的4条边(除了角)只用和weight进行6次明文×密文操作,其余的位置需要和weight进行9次明文×密文操作,对应规律如图8所示。这意味着计算四个角时,只用从对应的存储区域取出4次多项式系数,进行明文×密文的操作,而计算边线时取出6次,计算普通位置时取出9次。在这种计算模式下,每次不变更多项式阶数与多项式系数,而只是根据对应点的计算位置,更改的w的值,不仅可以简化处理,而且减少了padding带来的无效计算次数。当计算多输入通道多输出通道时(MIMO),需要把对应的密文特征图和weight值进行打包,这个打包的过程是在PS侧数据预处理阶段完成的,并且计算规律不发生变化。每次计算的结果通过4路高速互联接口传输到PS的DDR4中进行存储。对于PL来讲,不用花费额外的存储来存储这些中间计算结果,并且减少了由于padding带来的无效的计算。而对于PS来讲,可以方便的存储这些计算数据,找到对应位置的计算中间结果,然后进行累加,得到卷积的结果。
当然,近些年的网络大多采用stride=2来完成降采样,在本发明中,依然根据这种设计模式,找到stride=2情况下,各部分的计算规律,进行明文×密文计算,然后在PS侧完成卷积运算。
如果当前DNN模型的输入通道数大于PL侧的输入并行度,则PL侧传输的结果为部分和结果,需要得到对应位置不同输入通道之间的值,对多项式阶数相等的系数进行累加,然后进行取模操作,即可得到卷积结果。在本步骤中,PS侧调用了卷积求和单元、部分和累加单元。
PS计算完对应的卷积结果之后,接着调用BN单元进行BN操作。然后调用数据更新单元把计算的加密输出特征图(Y*-OFM)传递给云端服务器,云端服务器将输出特征图通过5G传递给客户端,获得客户端的激活矩阵,然后将激活矩阵传递给PS;PS根据激活矩阵的值(激活值为1,则代表该数据大于0,否则为0)进行一个密文特征图更新操作。
(5)PL侧获取更新后的IFM:PS侧获取更新后的输入特征图,并发送给PL侧存储在PL侧的DDR4中。当开启下一轮计算的时候,作为数据源。在本发明中,设计是基于流水线的,数据发送和接收的时间开销可以部分甚至全部(取决于数据传输的带宽)掩盖在PL计算的时间开销之内。
(6)PS计算FC,得到图片分类结果:重复进行步骤(2)-(5),PS和PL协同完成DNN模型的卷积层计算任务。当计算到全连接层时,PS更新完成OFM之后不再将数据发送至PL,由PS独立完成对接收到的输入特征图的全局平均池化和FC(全连接)计算任务。PS得到图片分类的结果之后,将结果发送给云端服务器,结束整个图片分类任务。
(7)存储调度:在本发明中,涉及到的存储调度单元包括第一存储调度单元和第二存储调度单元,第二存储调度单元包括PS侧的DDR4,第一存储调度单元包括PL侧的DDR4以及PL的片上BRAM;PL侧的DDR4主要存储加密后的IFM,PL侧的片上BRAM主要缓存weight、多项式阶数以及明文×密文的中间结果。存储调度单元如图9所示,从DNN模型的第一层开始,当从PS侧接收到多项式的系数,先进行一个存储操作,即将多项式的系数存储在PL侧的片上DDR4中,并且根据像素点不同进行一个分区。此外,会将PL侧的DDR4存储空间进行一个一分为二的分区操作,编号为I和II。最开始接收到的加密后的IFM数据存储在I区,则在当前层的计算过程中,I区的数据作为的数据源,参与明文×密文操作。而II区则存储PS更新后得密文特征图,作为下一层计算的IFM,避免数据被覆盖。而由于卷积计算任务在PS侧进行,则PS侧需要缓存从PL侧发送的明文×密文的值。对于第一层DNN模型,由于的输入并行度为4,大于RGB3通道的初始值,这意味着不用进行额外的通道间累加操作,可以直接在PS侧计算出卷积值,然后完成密文特征图的更新任务。而在第二层以后,通常来讲,DNN模型的输入通道数是大于的输入并行度的,这意味着在PS侧完成的卷积操作求得的数据只是部分和数据,需要重复从PL侧加载像素值,完成部分和的累加。本发明基于这种设计的考量出于两点:
(a)一般来讲,PS侧的存储会比PL侧的存储更大,而且PS比PL侧操作存储简单。
(b)PL从PS获得数据需要通过总线协议,而PL侧从PL侧的DDR4获得数据只需要对DDR4的接口进行控制,读写带宽远大于通过总线协议来获取数据。
(c)PL侧需要更新数据需要向PS侧发送中断进行通知,通知之后,PS启动DMA发送数据,如果频繁的发送中断,这无疑是十分耗时的。
(d)PS需要把OFM发送给云端服务器,获得激活矩阵来更新OFM。
基于此,本发明把IFM放入了PL侧的DDR4,weight值以及多项式的阶数放在了片上BRAM中,卷积的中间结果放在了PS侧的DDR4中,最大程度均衡的利用了各个部分的存储。
参见图10,当PS从云端服务器获得DNN模型和密文特征图之后,进行步骤(2)的操作,重构完成模型结构参数之后,向PL侧先发送密文特征图,然后再发送模型结构参数和数据参数。PL侧调用参数解析单元,解析出DNN模型之后,开始进行步骤(3)的操作,同时把明文×密文的结果返回给PS侧,进行步骤(4)的操作,一旦PS得到卷积的结果,会进行步骤(5),将OFM进行更新,然后传给PL侧的DDR4存储。如果推理过程未结束,则重复调用步骤(2)-(5),整个过程重复高度流水线,重复进行直到完成DNN模型的推理,即进行步骤(6),计算完成FC层,然后将FC层的数据发送给云端服务器,云端服务器再发送给客户端,客户端进行解密即可得到推理结果。
实验结果:在本发明中基于赛灵思的ZCU102(一种基于“PS+PL”架构的平台)进行了实验,PL侧主频时钟为150MHz,5G速度假设为1.25GB/s。DNN模型以VGG为基本网络框架,输入图像为32×32×3,将网络进行训练,用于执行基于HE的图片分类任务。基于VGG-5对多项式数模为x2048+1和x4096+1进行了测试,分别记为VGG-5-2048和VGG-5-4096,网络结构和实验结果分别如下表1和表2所示。其中SALE-Time为基于SALE完成完整的同态加密推理的时间,即在云端服务器(CPU型号为Intel(R)Core(TM)i7-8700K CPU@3.70GHz)完成推理,不涉及到两方协同激活;CPU-Time为在云端服务器基于两方协同激活框架完成同态加密的深神经网络推理过程时间;ZYNQ-Time为基于云端(PS与PL协同架构,云端服务器)-客户端神经网络协同推理框架完成同态加密的深神经网络推理过程时间。
表1 VGG-5-2048各项平台推理时间
表2 VGG-5-4096各项平台推理时间
从表1和表2,可以看出,本发明提出的框架能够基于PS与PL协同架构系统平台对同态加密神经网络模型推理进行硬件加速,高效的完成图片分类任务,相比较CPU速度提高约5倍,相比较SALE库速度提升约20多倍,并且功耗仅为4.109W。
Claims (10)
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模型的weight、多项式阶数参数以及多项式计算的中间结果。
5.根据权利要求1所述的PS与PL协同架构的同态加密神经网络框架,其特征在于,如果DNN模型的下一层为全连接层,则更新后的输出特征图数据流向全局平均池化单元,否则发送给PL侧的DDR4,作为下一层的输入特征图进行卷积运算。
6.根据权利要求1所述的PS与PL协同架构的同态加密神经网络框架,其特征在于,DNN模型结构参数包括加密后的图片的高度、宽度,当前执行层的步长、卷积核的尺寸、输入通道数、输出通道数以及密文模。
7.基于权利要求1-6中任意一项所述的PS与PL协同架构的同态加密神经网络框架的推理方法,其特征在于,包括以下步骤:
(1)将图片加密后得到输入特征图,将DNN模型和输入特征图打包发送给PS侧;
(2)PS侧重构模型参数,发送模型数据给PL侧;
(3)PL侧并行计算明文×密文,并将结果发送给PS侧;
(4)PS侧计算卷积中求和操作,得到卷积结果,然后进行BN操作,得到加密输出特征图,传递给云端服务器,然后服务器通过5G再将加密输出特征图传递给客户端,从而获得客户端的激活矩阵,将激活矩阵传递给PS侧;PS侧根据激活矩阵的值进行一个密文特征图更新操作,并将更新后的输入特征图发送给PL侧;
(5)PS侧对接收到的输入特征图进行全局平均池化和全连接计算,得到图片分类结果。
8.根据权利要求7所述的基于PS与PL协同架构的同态加密神经网络框架的推理方法,其特征在于,步骤(2)的具体过程为:PS侧将输入特征图的尺寸,卷积核的尺寸,输入通道数、输出通道数、步长以及密文模,按照每一个数据段32bit的容量选取参数进行重组和打包,重构和PL侧对接的DNN模型结构数据,然后通过低速互联接口向PL侧发送模型结构参数,通过高速互联接口向PL侧发送模型数据参数。
9.根据权利要求7所述的基于PS与PL协同架构的同态加密神经网络框架的推理方法,其特征在于,步骤(3)的具体过程为:根据片上存储的设限值,发送能够容纳的两层或多层的weight参数,则在进行下一层或者下几层的明文×密文的操作时,PS侧发送结构参数,当设限值小于当前的待处理的weight数量值时,处理完缓存的weight值之后,向PS侧发送中断,重新接收weight值,完成明文×密文计算。
10.根据权利要求7所述的基于PS与PL协同架构的同态加密神经网络框架的推理方法,其特征在于,步骤(4)的具体过程为:如果当前DNN模型的输入通道数大于PL侧的输入并行度,则PL侧传输的结果为部分和结果,得到不同输入通道之间的值,对多项式阶数相等的系数进行累加,然后进行取模操作,得到卷积结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461086.8A CN113255881B (zh) | 2021-04-27 | 2021-04-27 | Ps与pl协同架构的同态加密神经网络框架与推理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110461086.8A CN113255881B (zh) | 2021-04-27 | 2021-04-27 | Ps与pl协同架构的同态加密神经网络框架与推理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113255881A true CN113255881A (zh) | 2021-08-13 |
CN113255881B CN113255881B (zh) | 2023-04-07 |
Family
ID=77221864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110461086.8A Active CN113255881B (zh) | 2021-04-27 | 2021-04-27 | Ps与pl协同架构的同态加密神经网络框架与推理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113255881B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
WO2018151552A1 (en) * | 2017-02-15 | 2018-08-23 | Lg Electronics Inc. | Apparatus and method for generating ciphertext data with maintained structure for analytics capability |
EP3461054A1 (en) * | 2017-09-20 | 2019-03-27 | Universidad de Vigo | System and method for secure outsourced prediction |
CN110543901A (zh) * | 2019-08-22 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 图像识别方法、装置及设备 |
CN112217663A (zh) * | 2020-09-17 | 2021-01-12 | 暨南大学 | 一种轻量型卷积神经网络安全预测方法 |
CN112699384A (zh) * | 2020-12-11 | 2021-04-23 | 山东大学 | 基于fpga的全同态加密深度学习推理方法及系统 |
-
2021
- 2021-04-27 CN CN202110461086.8A patent/CN113255881B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018151552A1 (en) * | 2017-02-15 | 2018-08-23 | Lg Electronics Inc. | Apparatus and method for generating ciphertext data with maintained structure for analytics capability |
EP3461054A1 (en) * | 2017-09-20 | 2019-03-27 | Universidad de Vigo | System and method for secure outsourced prediction |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN110543901A (zh) * | 2019-08-22 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 图像识别方法、装置及设备 |
CN112217663A (zh) * | 2020-09-17 | 2021-01-12 | 暨南大学 | 一种轻量型卷积神经网络安全预测方法 |
CN112699384A (zh) * | 2020-12-11 | 2021-04-23 | 山东大学 | 基于fpga的全同态加密深度学习推理方法及系统 |
Non-Patent Citations (4)
Title |
---|
REDA BELLAFQIRA等: "Secure Multilayer Perceptron Based on Homomorphic Encryption", 《IWDW 2018: DIGITAL FORENSICS AND WATERMARKING》 * |
XIAOQIANG SUN等: "Private Machine Learning Classification Based on Fully Homomorphic Encryption", 《IEEE TRANSACTIONS ON EMERGING TOPICS IN COMPUTING》 * |
张久岭等: "加密文档排序中保序加密算法的最优化选取", 《北京航空航天大学学报》 * |
许世聪: "隐私保护卷积神经网络前向传播方法研究", 《信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113255881B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7474586B2 (ja) | テンソル計算データフロー加速器半導体回路 | |
CN108280514B (zh) | 基于fpga的稀疏神经网络加速系统和设计方法 | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
CN108090560A (zh) | 基于fpga的lstm递归神经网络硬件加速器的设计方法 | |
WO2021244354A1 (zh) | 神经网络模型的训练方法和相关产品 | |
CN110084739A (zh) | 一种基于cnn的画质增强算法的fpga并行加速系统 | |
CN112840356A (zh) | 运算加速器、处理方法及相关设备 | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN108416437A (zh) | 用于乘加运算的人工神经网络的处理系统及方法 | |
CN111324870A (zh) | 一种基于安全双方计算的外包卷积神经网络隐私保护系统 | |
CN109254946B (zh) | 图像特征提取方法、装置、设备及可读存储介质 | |
JP6834097B1 (ja) | 推論のニューラルネットワークアクセラレータのハードウェア固有分割 | |
CN114640454B (zh) | 一种后量子密码Crystals Kyber协议的密码系统 | |
US20210357760A1 (en) | Distributed Deep Learning System and Data Transfer Method | |
CN107122244A (zh) | 一种基于多gpu的图数据处理系统及方法 | |
CN113033794B (zh) | 基于深度可分离卷积的轻量级神经网络硬件加速器 | |
CN108122030A (zh) | 一种卷积神经网络的运算方法、装置和服务器 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN114816334A (zh) | 加速单元、相关装置和方法 | |
CN115344236B (zh) | 多项式乘法运算方法、多项式乘法器、设备及介质 | |
CN113031920A (zh) | 一种芯片和用于芯片的批量模运算方法 | |
CN109842652A (zh) | 一种文件的上传方法、终端、云服务器和计算机存储介质 | |
CN113032848A (zh) | 一种数据处理方法和用于数据处理的芯片 | |
Arredondo-Velazquez et al. | A streaming architecture for Convolutional Neural Networks based on layer operations chaining | |
Issad et al. | Software/hardware co-design of modular exponentiation for efficient RSA cryptosystem |
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 |