System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于粗粒度可重配硬件的全同态加密神经网络的加速方法技术_技高网

基于粗粒度可重配硬件的全同态加密神经网络的加速方法技术

技术编号:41061221 阅读:2 留言:0更新日期:2024-04-24 11:13
本发明专利技术涉及一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,属于全同态加密神经网络技术领域。本发明专利技术对全同态加密神经网络进行细粒度拆解,拆解为适用于CGRA的底层算子,形成CGRA运行时库,通过CGRA现有的通用的工具链将给定的端到端全同态加密应用程序编译为中间语言,中间语言文件调用此运行时库,即可达到在CGRA上运行任意全同态加密应用,实现加速效果。

【技术实现步骤摘要】

本专利技术涉及一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,属于全同态加密神经网络。


技术介绍

1、随着机器学习在工业界与学术界兴起,它越来越多地应用于解决医疗、财务或其他类型的敏感数据的问题,这使得机器学习应用中输入数据的隐私保护问题成为大众焦点,机器学习不仅要做到准确预测,更需要保证数据隐私和安全。这时,可用于加密数据的机器学习模型成为关键,它允许对加密数据以进行加密预测,并以加密形式返回结果,可以保证私人与敏感数据被用于机器学习中的模型训练而无需担心安全问题。

2、同态加密 (homomorphic encryption,he)作为密码学隐私保护技术中的热门技术,可以有效地保护输入数据的隐私,避免数据被泄露和攻击,无需解密便可直接对密态数据进行有限的同态操作,具有广阔的应用前景和市场价值。同态加密分为半同态、有点同态与全同态,只有达到全同态才能对密文进行无限次的同态操作并保证解密结果的正确性。ckks(cheon-kim-kim-song)算法是一种近似计算同态加密方案,ckks中的密文在加密和计算后会产生噪声且噪声持续增长,影响精度,当噪声超过一定量后,就无法对密文再进行乘法等操作。通过称为bootstrapping的周期性降噪操作,可以“刷新”密文并提高密文模数,以支持更多的计算,这样就做到了全同态加密。

3、全同态加密 (fully homomorphic encryption,fhe)是同态加密的一种,它可以在不解密的情况下对加密消息进行无限次操作,安全性更强。但由于其中bootstrapping步骤计算成本高,极大地限制了fhe的实际应用。尽管全同态加密安全性高,但其计算开销大,对复杂运算,如浮点计算与非多项式函数包容性低,在计算密集型程序上表现差,在现实中很难得到应用。

4、粗粒度可重构架构硬件(coarse-grained reconfigurable arrays,cgra)可以通过配置或在运行中重构功能单元集来进行加速。虽然gpu与细粒度可重构硬件(fieldprogrammable gate array,fpga)依旧占据着硬件加速的重要地位,但cgra出色且相对折中平衡的能力还是拥有不同以往的显著优势。cgra的架构由多个运行单元(tile) 组成,每个 tile是一个计算 (pe) 单元或访存 (mem) 单元,不同的tile之间通过可配置的互连(interconnect) 进行通信。cgra的计算单元pe主要是具有变化能力的alu;访存单元mem是用户可控的暂存器、cache等;互连模块interconnect是静态可编程的通路或动态路由数据,通信粒度通常是比特级或者粒级。cgra的编程模型支持软件抽象,使用编译工具链抽取不同程序映射到cgra硬件上并用于加速。

5、全同态加密神经网络的应用存在输入影响网络内部计算流程、每层网络参数不一致与不用应用所用网络结构不统一等问题,通过粗粒度可重构架构硬件灵活低耗的重配功能,可以很好地针对这些问题进行加速,既满足机器学习中对输入数据的保护,又确保运行耗时耗能低,兼顾安全与速度。


技术实现思路

1、针对现有技术的不足,本专利技术提供一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,对全同态加密神经网络进行细粒度拆解,拆解为适用于cgra的底层算子,形成cgra运行时库,通过cgra现有的通用的工具链将给定的端到端全同态加密应用程序编译为中间语言,中间语言文件调用此运行时库,即可达到在cgra上运行任意全同态加密应用,实现加速效果。

2、本专利技术充分利用了全同态加密神经网络对硬件可重配性的要求,降低了程序运行时间,推进了加密神经网络的现实可行性。

3、本专利技术的技术方案如下:

4、一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,步骤如下:

5、①确定神经网络采用的全同态加密算法,构成全同态加密神经网络;

6、②对全同态加密神经网络进行细粒度拆解,拆解为适用于cgra的全同态加密底层算子,形成cgra运行时库;

7、具体的拆解如下表所示,常规的全同态加密算子为左列,其被拆解为适用于cgra的全同态加密底层算子,为右列。

8、表1:全同态算子拆解对应关系表

9、

10、③全同态加密神经网络通过编译器生成中间语言,中间语言产生相对应的算子调用函数;

11、④中央控制器将全同态加密底层算子映射到cgra硬件上,得到相应的输出,返回中间结果,再调用下一个全同态加密底层算子,得到相应的输出,依次往复直到结束,在每次算子映射到cgra硬件上计算完毕时,cgra硬件重配一次,输入新的控制流,重配时,将全同态加密底层算子依序映射到cgra硬件上,进行加速。

12、根据本专利技术优选的,步骤④中,对映射进行优化,映射优化方法为映射分区、映射融合或映射流水中的至少一种。

13、根据本专利技术进一步优选的,映射分区,是将同一个全同态加密底层算子同时映射到多个相同的小型cgra块上,实现算子并行性;

14、cgra的映射是指,将程序对应的数据流图(data flow graphs,dfg)映射到cgra的模路由资源图(modulo routing resource graph,mrrg)的过程。

15、全同态加密的底层算子的c++代码行数通常在100~200行之间,对于拥有较少数目的运行单元的cgra,通常能够用满片上资源,不需要进行底层算子的映射分区。但对于拥有较多数目的运行单元的cgra,一个底层算子在其上运行时,会存在资源的浪费现象。对此,本专利技术提出针对全同态加密算子的映射分区优化。对于代码量和cgra运行单元数目不匹配的情况,采用映射分区,将同样的底层算子映射到一个cgra的不同块,块与块、算子与算子之间并行计算,互不干涉,提高了运行速度,本专利技术采取的映射分区标准是150行代码对应一个具有16个运行单元的cgra,每4个运行单元组成一个小型cgra块。

16、映射融合:在不同的算子映射过程中,存在固定的操作模式,比如add+sub、mul+add等,固定操作模式通过映射融合的过程融合为一个操作,具体是指:在映射过程中指定高频率模式在一个时钟周期放入一个运行单元运行,节省硬件运行时间与映射处理时间;

17、对于每一个cgra实例,其中包含许多个具有运算和存储功能的运行单元,每个运行单元可以进行各种操作,如加法、乘法、减法与位移等。针对全同态加密方案ckks,通过分析其中的所有底层同态算子,可以寻找到其中的高频率模式。高频率模式即,以较高频率出现的两个或多个操作的固定顺序,比如add+sub、mul+add等。对于一个通用的cgra ,每个运行单元在一个时钟周期内只进行一个操作的运行,而没有特殊的针对高频率模式的优化措施。对此,本专利技术进行全同态加密算子的高频率模式的融合优化。对于可以在一个时钟周期放入一个运行单元进行运行的本文档来自技高网...

【技术保护点】

1.一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤如下:

2.如权利要求1所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤④中,对映射进行优化,映射优化方法为映射分区、映射融合或映射流水中的至少一种。

3.如权利要求2所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,映射分区,是将同一个全同态加密底层算子同时映射到多个相同的小型CGRA块上,实现算子并行性;

4.如权利要求3所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,映射流水将读写延迟设为四个时钟周期,并将片下存储单元进行分区,每个分区配有独立的读写端口,使得每个CGRA的运行单元均能在四个时钟周期内完成读写操作,并做到读写操作的流水。

5.如权利要求1所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤④中,对CGRA硬件进行优化,优化方法为,异质性配置,根据全同态加密底层算子的不同类型操作的不同频率,对同质性的CGRA硬件进行支持操作的硬件增减,配置成适用于全同态加密的异质性的CGRA。

6.如权利要求5所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,异质性配置具体为,在一个通用的CGRA硬件基础上,增加高占比操作的比重,降低低占比操作的比重,移除全同态算子不使用的操作硬件,并且根据各操作常有的顺序进行硬件上的路由配置,得到一个异质性的适于全同态加密的CGRA硬件。

7.如权利要求1所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤①中,神经网络是一个手写数字识别的五层的CNN网络,第一层为卷积层,第二层为激活层,第三层为全连接层,第四层为激活层,第五层为全连接层,此CNN的内部参数均为明文参数,接受的输入为密文输入,输出为密文输出,采用的全同态加密算法为CKKS。

...

【技术特征摘要】

1.一种基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤如下:

2.如权利要求1所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤④中,对映射进行优化,映射优化方法为映射分区、映射融合或映射流水中的至少一种。

3.如权利要求2所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,映射分区,是将同一个全同态加密底层算子同时映射到多个相同的小型cgra块上,实现算子并行性;

4.如权利要求3所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,映射流水将读写延迟设为四个时钟周期,并将片下存储单元进行分区,每个分区配有独立的读写端口,使得每个cgra的运行单元均能在四个时钟周期内完成读写操作,并做到读写操作的流水。

5.如权利要求1所述的基于粗粒度可重配硬件的全同态加密神经网络的加速方法,其特征在于,步骤④中,对c...

【专利技术属性】
技术研发人员:鞠雷
申请(专利权)人:泉城省实验室
类型:发明
国别省市:

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

1