针对多项式数据的处理方法和加速芯片与流程

    专利2024-12-10  16


    本说明书一个或多个实施例涉及计算机领域,尤其涉及针对多项式数据的处理方法和加速芯片。


    背景技术:

    1、在数学中,几个单项式的和,叫做多项式。多项式运算是数学中最基本的运算之一。例如,在隐私计算领域,为了保护隐私数据,常常采用全同态加密(fullyhomomorphicencryption,fhe)的处理方案,其中会涉及大量的多项式运算。

    2、当前,常常采用fhe专用的加速芯片执行多项式运算,以提升效率。fhe的原始数据对象是系数模数位宽q为几百比特的多项式,出于计算和存储的需要,一般使用剩余数系统(residue number system,rns)分解,把原始多项式分解成若干个系数模数位宽q为几十比特的多项式后,再进行进一步的计算和存储。其中rns分解后的多项式的系数模数位宽q的大小选择,受到安全性、业务使用场景、硬件实现代价等多种因素影响。

    3、现有技术中,加速芯片一般选择实现固定位宽的q,取值范围并没有行业标准可遵循,一般从28bits到64bits之间。无论选择支持q较大的情况,还是支持q较小的情况,都会存在有利有弊的结果。在针对多项式数据的处理中,无法灵活高效地支持多种模数位宽。


    技术实现思路

    1、本说明书一个或多个实施例描述了一种针对多项式数据的处理方法和加速芯片,能够灵活高效地支持多种模数位宽。

    2、第一方面,提供了一种针对多项式数据的处理方法,通过全同态加密fhe专用的加速芯片执行,所述加速芯片针对待处理的多项式系数,支持多个可选模数位宽,方法包括:

    3、从所述多个可选模数位宽中,确定当前待处理的目标多项式对应的目标模数位宽;

    4、根据所述目标模数位宽,确定片内存储器的单个存储单元存储的多项式系数的目标数目;

    5、从存储所述目标多项式的多项式数据的片外存储器,顺序读取所述目标数目个多项式系数,将其搬移到片内存储器的单个存储单元;

    6、针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算。

    7、在一种可能的实施方式中,所述确定当前待处理的目标多项式对应的目标模数位宽,包括:

    8、读取指令域中的数据类型指示位的当前数值;

    9、根据预先设定的各个可选数值分别与多个可选模数位宽的对应关系,将所述当前数值对应的可选模数位宽确定为所述目标模数位宽。

    10、在一种可能的实施方式中,所述目标多项式包括使用剩余数系统rns把原始多项式分解而成的若干个第一模数位宽的子多项式;所述第一模数位宽小于或等于所述目标模数位宽。

    11、进一步地,所述目标数目为多个;所述顺序读取所述目标数目个多项式系数,包括:

    12、顺序读取所述目标数目个子多项式中的各一个多项式系数。

    13、在一种可能的实施方式中,所述加速芯片支持两个可选模数位宽,分别为最大可选模数位宽和二分之一的最大可选模数位宽。

    14、进一步地,所述确定片内存储器的单个存储单元存储的多项式系数的目标数目,包括:

    15、若所述目标模数位宽为最大可选模数位宽,则确定所述目标数目为一个;

    16、若所述目标模数位宽为二分之一的最大可选模数位宽,则确定所述目标数目为两个。

    17、在一种可能的实施方式中,所述基础算子运算包括如下任一种运算:

    18、模加、模乘、数论变换(number theoret ic transform,ntt)、自同构。

    19、在一种可能的实施方式中,所述目标数目为一个;所述针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算,包括:

    20、获取第一存储单元存储的第一多项式系数以及第二存储单元存储的第二多项式系数;

    21、利用目标基础运算模块执行对第一多项式系数和第二多项式系数的模加或模乘。

    22、在一种可能的实施方式中,所述目标数目为两个;单个存储单元中存储了第一多项式的一个多项式系数和第二多项式的一个多项式系数;所述针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算,包括:

    23、获取第一存储单元存储的第一多项式的第一多项式系数和第二多项式的第二多项式系数,以及第二存储单元存储的第一多项式的第三多项式系数和第二多项式的第四多项式系数;

    24、利用目标基础运算模块执行对第一多项式系数和第三多项式系数的模加或模乘,以及对第二多项式系数和第四多项式系数的模加或模乘。

    25、在一种可能的实施方式中,所述方法还包括:

    26、将基础算子运算得到的针对单个存储单元的子运算结果写到片内存储器;

    27、从片内存储器将子运算结果搬移到片外存储器,所述子运算结果用于组合成针对所述多项式数据的组合运算结果。

    28、进一步地,所述目标数目为两个;单个存储单元中存储了第一多项式的一个多项式系数和第二多项式的一个多项式系数;所述组合运算结果包括针对第一多项式的运算结果和针对第二多项式的运算结果。

    29、在一种可能的实施方式中,所述基础算子运算为模乘,所述目标数目为一个或两个,所述目标基础运算模块,用于在所述目标数目为一个时,实现针对单个多项式的模乘,以及在所述目标数目为两个时,实现针对两个多项式的模乘。

    30、进一步地,所述目标基础运算模块,包括:

    31、模式指示信号,用于指示两种运算模式中与目标数目对应的运算模式;

    32、第一乘法子模块,用于实现针对第一乘数和第二乘数的乘法运算,得到第一乘法结果;其中,第一乘数根据模式指示信号,选择为第一存储单元中存储的第一数据或第一数据的若干高数据位,第二乘数为第二存储单元中存储的第二数据的若干高数据位;

    33、第二乘法子模块,用于实现针对第三乘数和第四乘数的乘法运算,得到第二乘法结果,对第一中间结果和第二乘法结果进行模加运算,得到目标模乘结果;其中,第一中间结果根据模式指示信号,选择为第一乘法结果或0,第三乘数根据模式指示信号,选择为第一存储单元中存储的第一数据或第一数据的若干低数据位,第四乘数为第二存储单元中存储的第二数据的若干低数据位。

    34、第二方面,提供了一种全同态加密fhe专用的加速芯片,所述加速芯片针对待处理的多项式系数,支持多个可选模数位宽,加速芯片包括:

    35、控制器,用于从所述多个可选模数位宽中,确定当前待处理的目标多项式对应的目标模数位宽,根据目标模数位宽,确定片内存储器的单个存储单元存储的多项式系数的目标数目,并输出指示所述目标数目的控制信号;

    36、读写单元,用于根据所述控制信号从存储所述目标多项式的多项式数据的片外存储器,顺序读取所述目标数目个多项式系数,将其搬移到片内存储器的单个存储单元;

    37、目标基础运算模块,用于针对各个所述存储单元,执行对应的基础算子运算。

    38、在一种可能的实施方式中,所述基础算子运算包括模乘,所述目标数目为一个或两个,所述目标基础运算模块包括模乘处理电路;所述模乘处理电路包括:

    39、第一选择器,其输入为所述控制信号和第一存储单元中存储的第一数据,其输出为第一数据或第一数据的若干高数据位;

    40、第一乘法器,其输入为第一乘数和第二乘数,其输出为第一乘数和第二乘数对应的第一乘法结果;第一乘数为第一选择器的输出,第二乘数为第二存储单元中存储的第二数据的若干高数据位;

    41、第二选择器,其输入为所述控制信号、第一乘法器的输出和0,其输出为第一乘法结果或0;

    42、第三选择器,其输入为所述控制信号和第一存储单元中存储的第一数据,其输出为第一数据或第一数据的若干低数据位;

    43、第二乘法器,其输入为第三乘数和第四乘数,其输出为第三乘数和第四乘数对应的第二乘法结果;第三乘数为第三选择器的输出,第四乘数为第二存储单元中存储的第二数据的若干低数据位;

    44、加法器组,其输入为第二选择器的输出和第二乘法结果,其输出为目标模乘结果。

    45、进一步地,当所述控制信号为指示目标数目为一个的第一信号时:

    46、第一选择器输出第一数据,第一乘法器输出第一数据和第二数据的若干高数据位的第一乘法结果;第二选择器输出为第一乘法结果;第三选择器输出第一数据;第二乘法器输出第一数据和第二数据的若干低数据位的第二乘法结果,加法器组输出第一数据和第二数据的模乘结果;

    47、当所述控制信号为指示目标数目为两个的第二信号时:

    48、第一选择器输出第一数据的若干高数据位;第一乘法器输出第一数据的若干高数据位和第二数据的若干高数据位的第一乘法结果;第二选择器输出0;第三选择器输出第一数据的若干低数据位;第二乘法器输出第一数据的若干低数据位和第二数据的若干低数据位的第二乘法结果,加法器组分别输出第一乘法结果和第二乘法结果。

    49、第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

    50、第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

    51、通过本说明书实施例提供的方法和加速芯片,fhe专用的加速芯片首先从所述多个可选模数位宽中,确定当前待处理的目标多项式对应的目标模数位宽;然后根据所述目标模数位宽,确定片内存储器的单个存储单元存储的多项式系数的目标数目;接着从存储所述目标多项式的多项式数据的片外存储器,顺序读取所述目标数目个多项式系数,将其搬移到片内存储器的单个存储单元;最后针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算。由上可见,本说明书实施例,提出了一种兼容多个可选模数位宽的fhe加速芯片计算架构,硬件在设计过程中实现了兼容目标数目个多项式系数的算子和数据流,软件可以灵活的把单个存储单元中的数据结构定义为目标数目个多项式系数,进而可以灵活高效的实现目标基础运算模块针对目标数目个多项式系数的多项式计算,即加速芯片在不同的目标模数位宽下都具有相似的高性能,从而能够灵活高效地支持多种模数位宽。


    技术特征:

    1.一种针对多项式数据的处理方法,通过全同态加密fhe专用的加速芯片执行,所述加速芯片针对待处理的多项式系数,支持多个可选模数位宽,所述方法包括:

    2.如权利要求1所述的方法,其中,所述确定当前待处理的目标多项式对应的目标模数位宽,包括:

    3.如权利要求1所述的方法,其中,所述目标多项式包括使用剩余数系统rns把原始多项式分解而成的若干个第一模数位宽的子多项式;所述第一模数位宽小于或等于所述目标模数位宽。

    4.如权利要求3所述的方法,其中,所述目标数目为多个;所述顺序读取所述目标数目个多项式系数,包括:

    5.如权利要求1所述的方法,其中,所述加速芯片支持两个可选模数位宽,分别为最大可选模数位宽和二分之一的最大可选模数位宽。

    6.如权利要求5所述的方法,其中,所述确定片内存储器的单个存储单元存储的多项式系数的目标数目,包括:

    7.如权利要求1所述的方法,其中,所述基础算子运算包括如下任一种运算:

    8.如权利要求1所述的方法,其中,所述目标数目为一个;所述针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算,包括:

    9.如权利要求1所述的方法,其中,所述目标数目为两个;单个存储单元中存储了第一多项式的一个多项式系数和第二多项式的一个多项式系数;所述针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算,包括:

    10.如权利要求1所述的方法,其中,所述方法还包括:

    11.如权利要求10所述的方法,其中,所述目标数目为两个;单个存储单元中存储了第一多项式的一个多项式系数和第二多项式的一个多项式系数;所述组合运算结果包括针对第一多项式的运算结果和针对第二多项式的运算结果。

    12.如权利要求1所述的方法,其中,所述基础算子运算为模乘,所述目标数目为一个或两个,所述目标基础运算模块,用于在所述目标数目为一个时,实现针对单个多项式的模乘,以及在所述目标数目为两个时,实现针对两个多项式的模乘。

    13.如权利要求12所述的方法,其中,所述目标基础运算模块,包括:

    14.一种全同态加密fhe专用的加速芯片,所述加速芯片针对待处理的多项式系数,支持多个可选模数位宽,所述加速芯片包括:

    15.如权利要求14所述的加速芯片,其中,所述基础算子运算包括模乘,所述目标数目为一个或两个,所述目标基础运算模块包括模乘处理电路;所述模乘处理电路包括:

    16.如权利要求15所述的加速芯片,其中,当所述控制信号为指示目标数目为一个的第一信号时:

    17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项的所述的方法。

    18.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项的所述的方法。


    技术总结
    本说明书实施例提供一种针对多项式数据的处理方法和加速芯片。方法包括:全同态加密FHE专用的加速芯片从多个可选模数位宽中,确定当前待处理的目标多项式对应的目标模数位宽;根据所述目标模数位宽,确定片内存储器的单个存储单元存储的多项式系数的目标数目;从存储所述目标多项式的多项式数据的片外存储器,顺序读取所述目标数目个多项式系数,将其搬移到片内存储器的单个存储单元;针对各个所述存储单元,利用目标基础运算模块执行对应的基础算子运算。能够灵活高效地支持多种模数位宽。

    技术研发人员:唐欣,张博
    受保护的技术使用者:支付宝(杭州)信息技术有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-80241.html

    最新回复(0)