CN115801220A - 加速设备、计算系统及加速方法 - Google Patents

加速设备、计算系统及加速方法 Download PDF

Info

Publication number
CN115801220A
CN115801220A CN202211241115.0A CN202211241115A CN115801220A CN 115801220 A CN115801220 A CN 115801220A CN 202211241115 A CN202211241115 A CN 202211241115A CN 115801220 A CN115801220 A CN 115801220A
Authority
CN
China
Prior art keywords
data
ciphertext
component
processing
result
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.)
Pending
Application number
CN202211241115.0A
Other languages
English (en)
Inventor
何倩雯
邬贵明
蒋佳立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202211241115.0A priority Critical patent/CN115801220A/zh
Publication of CN115801220A publication Critical patent/CN115801220A/zh
Priority to PCT/CN2023/122209 priority patent/WO2024078347A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例提供一种加速设备、计算系统及加速方法。其中,所述加速设备包括第一存储组件及至少一个第一加速组件;第一加速组件包括第一控制单元及多个第一运算单元;第一存储组件与第一主机处理组件通过总线连接;第一存储组件存储多个分桶结果;所述多个分桶结果通过针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得;第一控制单元从第一存储组件获取至少一个分桶结果,并至少一个分桶结果分派至至少一个第一运算单元;第一运算单元对分桶结果中的多个密文数据进行计算处理获得密文处理结果;第一控制单元用于将任一分桶结果对应的密文处理结果存储至所述第一存储组件。本申请实施例提供的技术方案提高了处理效率。

Description

加速设备、计算系统及加速方法
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种加速设备、计算系统及加速方法。
背景技术
随着科学技术发展,数据价值越来越受到重视,不同数据提供方之间往往存在着数据融合需求,但是出于隐私保护等因素的考虑,不同数据提供方之间的数据无法共享,从而形成数据孤岛。为了解决数据孤岛问题,基于同态加密的隐私计算应运而生,它意在打破数据孤岛,在不泄露数据隐私前提下利用多方数据进行计算,建模等。
同态加密是一类具有特殊自然属性的加密算法,对经过同态加密的数据进行处理得到一个输出数据,将这一输出数据进行解密,其结果与用同一方式处理未加密的原始数据得到的输出结果是一样的,即先计算后解密可等价于先解密后计算,这个特性对于保护数据安全具有重要意义。
在一个实际应用中,多个数据提供方拥有相同对象,而不同特征的情况下,存在如下的数据联合处理需求:数据发起方将基于每个对象的特征取值计算获得的目标数据,进行同态加密,获得密文数据,再将多个对象分别对应的密文数据提供给数据接收方;数据接收方针对其拥有的每个特征,根据不同特征取值将多个对象分别对应的密文数据进行分桶处理;再对每个分桶中的密文数据进行计算处理,获得密文处理结果,之后将每个特征对应的各个分桶的密文处理结果返回给数据发起方,数据发起方即可以解密获得各个分桶的明文处理结果,基于各个分桶的明文处理结果,可以进行后续的处理操作,从而实现了数据发起方利用数据接收方的特征进行数据处理的目的,同时保护了双方数据安全。
由上文描述可知,由于需要针对每个特征,对多个对象分别对应的密文数据进行分桶及对密文数据进行计算处理,运算量很大,影响处理效率。
发明内容
本申请实施例提供一种加速设备、计算系统及加速方法,用以解决现有技术中影响处理效率的技术问题。
第一方面,本申请实施例中提供了一种加速设备,包括第一存储组件及至少一个第一加速组件;所述第一加速组件包括第一控制单元以及多个第一运算单元;所述第一存储组件与第一主机处理组件通过总线连接;
所述第一存储组件用于存储多个分桶结果;所述多个分桶结果通过针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得;
所述第一控制单元用于从所述第一存储组件获取至少一个分桶结果;将所述至少一个分桶结果分派至至少一个第一运算单元;
所述第一运算单元用于针对为其分派的任一分桶结果,按照目标计算处理模式,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果;
所述第一控制单元用于将任一分桶结果对应的密文处理结果存储至所述第一存储组件;
所述第一存储组件用于将多个分桶结果分别对应的密文处理结果提供给所述第一主机处理组件。
第二方面,本申请实施例中提供了一种加速设备,包括存储组件及至少一个加速组件,所述加速组件包括控制单元以及多个运算单元;所述存储组件通过总线与主机处理组件连接;
所述存储组件,用于存储多组待处理数据,每组待处理数据包括至少一个操作数据;
所述控制单元,用于从所述第一存储组件获取至少一组操作数据,并分派给至少一个运算单元;
所述运算单元,用于针对为其分派的一组待处理数据中的至少一个操作数据,对所述至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果;
所述控制单元,用于将任一组待处理数据对应的计算处理结果存储至所述存储组件;所述计算处理结果用以提供至主机处理组件。
第三方面,本申请实施例中提供了一种计算系统,包括第一计算设备以及第二计算设备;所述第一计算设备包括第一主机处理组件及如上述第一方面所述的第一加速设备;
所述第二计算设备包括第二主机处理组件以及第二加速设备;所述第二加速设备包括第二存储组件及至少一个第三加速组件;所述第二存储组件与第二主机处理组件通过总线连接;
所述第二存储组件用于存储所述第二主机处理组件发送的多个待处理数据;所述待处理数据为待加密的目标数据或者待解密的密文处理结果;
所述第三加速组件用于从所述第二存储组件获取至少一个待处理数据;针对任一待处理数据,对所述待处理数据进行加密或解密,获得计算处理结果,并将所述计算处理结果存储至所述第二存储组件;
所述第二主机处理组件用于从所述第二存储组件中获取任一待处理数据对应的计算处理结果。
第四方面,本申请实施例提供了一种计算设备,包括主机处理组件、主机存储组件以及如上述第一方面所述的加速设备或者如上述第二方面所述的加速设备。
第五方面,本申请实施例提供了一种加速方法,应用于加速设备,所述加速设备包括第一存储组件及至少一个第一加速组件;所述第一加速组件包括第一控制单元以及多个第一运算单元;所述第一存储组件与第一主机处理组件通过总线连接;所述方法包括:
从多个分桶结果中获取至少一个分桶结果;所述多个分桶结果通过对所述第一主机处理组件提供的多个密文数据进行分桶处理获得;
将所述至少一个分桶结果分派至至少一个第一运算单元;所述第一运算单元用于针对为其分派的任一分桶结果,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果;
获取所述第一运算单元生成的任一分桶结果对应的密文处理结果;
将所述密文处理结果存储至所述第一存储组件。
本申请实施例提供的加速设备包括第一存储组件及至少一个第一加速组件;所述第一加速组件包括第一控制单元以及多个第一运算单元;所述第一存储组件与第一主机处理组件通过总线连接;第一存储组件存储多个分桶结果;第一控制单元第一存储组件获取至少一个分桶结果,将所述至少一个分桶结果分派至至少一个第一运算单元;第一运算单元用于针对为其分派的任一分桶结果,按照目标计算处理模式,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果;第一控制单元再将将任一分桶结果对应的密文处理结果存储至所述第一存储组件;第一存储组件将多个分桶结果分别对应的密文处理结果提供给所述第一主机处理组件。本申请实施例利用加速设备实现了对分桶结果的计算处理,将计算处理操作从主机处理组件中卸载至加速设备中,从而可以降低主机处理组件的运算量,因此可以提高处理效率,提高处理性能,且通过加速设备中的存储组件和多个运算单元,可以实现多个分桶结果的并行计算处理,进一步提高处理效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的加速设备一个实施例的结构示意图;
图2示出了本申请提供的加速设备又一个实施例的结构示意图;
图3示出了本申请提供的第一运算单元一个实施例的结构示意图;
图4示出了本申请实施例在一个实际应用中第一运算单元的运算结构示意图;
图5a示出了本申请提供的计算系统一个实施例的结构示意图;
图5b示出了本申请提供的计算系统在一个实际应用中的交互场景示意图;
图6示出了本申请提供的第二加速设备一个实施例的结构示意图;
图7示出了本申请提供的第三加速组件一个实施例的结构示意图;
图8示出了本申请提供的加速方法一个实施例的结构示意图;
图9示出了本申请提供的计算设备一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
在采用同态加密算法进行的计算处理操作,往往涉及加密操作,解密操作或对加密数据的处理操作等计算处理模式,而数据提供方通常是利用各自计算设备中的主机处理组件完成各种计算处理,性能较差。
本申请实施例的技术方案可以应用于采用同态加密算法进行计算处理的应用场景中,如背景技术中提到的数据联合处理场景中,数据联合处理场景如可以是多方联合建模场景等。
由背景技术中的描述可知,目前存在的一种数据联合处理需求是:数据发起方将基于每个对象的特征取值,计算获得的目标数据,进行同态加密,获得密文数据,再将多个对象分别对应的密文数据提供给数据接收方;数据接收方针对其拥有的每个特征,根据不同特征取值将多个对象分别对应的密文数据进行分桶处理;再对每个分桶结果中的密文数据进行计算处理,获得密文处理结果,之后将每个特征对应的各个分桶结果的密文处理结果返回给数据发起方,数据发起方即可以解密获得各个分桶结果的明文处理结果,基于各个分桶结果的明文处理结果,可以进行后续的处理操作。
上述数据联合处理需求在实际应用中例如可以是存在于采用联邦学习方式进行多方联合建模场景中,以多方联合建模为例,其中,联邦学习是一种分布式的机器学习方式,能够在保护数据隐私的前提下,使用多方的数据进行联合建模。而纵向联邦学习是常用的一种联邦学习方式,是指样本对象的特征数据和标签信息分布在不同数据提供方的情况下进行多方联合建模,多个数据提供方拥有相同的样本对象,但是不同的特征数据,比如数据提供方A和数据提供方B拥有相同的用户C,但是数据提供方A拥有用户C的学历数据,数据提供方B拥有用户C的年龄数据,其中,学历数据和年龄数据即为特征数据,进行联合建模时,通常只有一方拥有样本对象的标签数据,拥有标签数据的数据提供方也被为数据发起方(主动方),而没有标签数据的数据提供方也被称为数据接收方(被动方),通过纵向联邦学习,主动方可以借助被动方的特征数据,提高机器学习模型的能力,同时又能保护各个参与方的数据隐私。
在纵向联邦学习方式中,决策树模型是常用的一种机器学习模型,决策树模型的训练最主要的是需要寻找最优分裂点,其中,分裂点也即是指某个特征数据的具体取值,比如标签数据为用户C为目标群体,分裂点可能是年龄小于20岁或者年龄小于30岁等。
对决策树模型进行训练时,通常采用方式是:先由主动方根据拥有的样本对象的特征取值和标签数据确定模型对应的梯度信息,再将梯度信息利用同态加密方式加密为密文梯度信息传输至被动方,被动方根据密文梯度信息分别计算每个特征对应分裂空间的密文梯度累加值,再将密文梯度累加值发送至主动方。主动方从中解密获得梯度累加值,根据多个特征的梯度累加值,可以最终确定出最优分裂点。可知,被动方需要对同态加密获得的密文梯度信息进行密文累加,为了提高训练效率,可以采用分桶方式,被动方针对每一个特征数据,可以按照特征取值将不同样本对象对应的密文梯度信息进行分桶,对每个分桶结果内的密文梯度信息进行累加,再将每个分桶结果对应的密文梯度累加值发送给主动方,主动方再基于各个分桶结果的密文梯度累加值,确定最优分裂点。
由上述描述可知,数据接收方需要针对每个特征进行分桶及对每个分桶结果内的密文梯度信息进行相应的计算处理,由于通常是利用各自计算设备中的处理组件完成这些计算处理操作,主机处理组件还需要执行其余工作,因此会导致处理组件的运算量很大,从而就会影响处理性能,降低处理效率。
为了提高处理性能,提高处理效率,发明人发现对利用同态加密算法进行加密获得的密文数据进行计算处理,本质上需要大整数相乘和相加来实现,需要消耗较多处理性能,因此想到可以采用专用的加速设备来进行密文数据的计算处理,以实现更好的处理性能,而加速设备如何设计,以有效保证加速性能成为需要克服的难题,据此,发明人又经过一系列研究提出了本申请的技术方案,本申请提供了一种加速设备,包括存储组件及至少一个加速组件,加速组件包括控制单元以及多个运算单元;存储组件通过总线与主机处理组件连接,通过本申请实施例提供的加速设备,将计算处理操作从计算设备的主机处理组件中卸载至加速设备中,从而可以降低主机处理组件的运算量,利用专用的加速设备来执行计算处理操作,因此可以提高处理效率,提高处理性能,此外,通过加速设备中的存储组件和多个运算单元,可以实现并行计算处理,进一步提高处理效率,主机处理组件只需进行一次数据传输,即可以实现同态加密算法下的计算处理操作,可以降低I/O开销,保证加速设备的加速性能。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种加速设备一个实施例结构示意图,该加速设备可以包括存储组件11及至少一个加速组件12,每个加速组件12(图1中以第一加速组件为例进行说明)可以包括控制单元101以及多个运算单元102;存储组件11通过总线与主机处理组件13连接;总线类型例如可以为PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)等,当然也可以采用诸如以太网的其他高速总线互连,本申请对此不进行限定。
其中,该加速设备可以采用专用集成电路(ASIC)、或现场可编程门阵列(FPGA)实现,当然,也可以采用数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、控制器、微控制器、微处理器或其他形式的集成电路(IC)等实现,本申请对此不进行限定。
该加速设备可以部署在计算设备中,该计算设备相对于加速设备,可以称之为加速设备的主机设备,主机处理组件例如可以是计算设备中的中央处理器(CPU)等,负责计算设备中的传统的处理任务等。
其中,存储组件11,用于存储多组待处理数据,每组待处理数据包括至少一个操作数据;
控制单元101,用于从存储组件11获取至少一组操作数据,并分派给至少一个运算单元;
运算单元102,用于针对为其分派的一组待处理数据中的至少一个操作数据,对至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果;
控制单元101,用于将任一组待处理数据对应的计算处理结果存储至存储组件11;计算处理结果用以提供至主机处理组件13。
其中,存储组件可以采用带宽较高的外部存储器实现等。
本实施例中,将计算处理操作从主机处理组件中卸载至加速设备中,从而可以降低主机处理组件的运算量,因此可以提高处理效率,提高处理性能,此外,通过加速设备中的存储组件和多个运算单元,可以实现多组待处理数据的并行计算处理,进一步提高处理效率,主机处理组件只需进行一次数据传输,即可以实现同态加密算法下的计算处理操作,可以降低I/O开销,保证加速设备的加速性能。
该目标计算模式例如可以包括加密、解密或者密文累加。
在一个实现场景中,该待处理数据可以包括待加密的目标数据,也即每组待处理数据包括一个操作数据,操作数据即为目标数据;目标数据可以是基于任一个对象的特征取值计算获得;则运算单元102对至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果可以是对目标数据进行加密处理,获得密文数据。在该实现场景中,该加速设备可以配置于数据发起方对应的计算设备中。
在另一个实现场景中,该待处理数据可以包括待解密的密文处理结果,也即每组待处理数据包括一个操作数据,操作数据即为密文处理结果;则运算单元102对至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果可以是:对密文处理结果进行解密处理,获得明文处理结果;在该实现场景中,该加速设备可以配置于数据发起方对应的计算设备中。
在又一个实现场景中,每组待处理数据为一个分桶结果,包括多个密文数据,也即每组待处理数据包括多个操作数据,操作数据即为密文数据;运算单元102对至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果可以是:对多个密文数据进行累加处理,获得密文处理结果。在该实现场景中,该加速设备可以配置于数据发起方对应的计算设备中。
下面针对不同实现场景对本申请技术方案进行介绍,由上文描述可知,在数据联合处理场景中,数据接收方由于需要针对每个特征,对多个对象分别对应的密文数据进行分桶及对每个分桶中的密文数据进行处理,运算量很大,影响处理性能。
在数据联合处理场景中,一组待处理数据对应一个分桶结果,每个分桶结果包括多个密文数据。为了解决在数据联合处理场景下的运算量大,影响处理消息的问题,如图2中所示,为本申请实施例提供的一种加速设备又一个实施例的结构示意图,该加速设备可以包括:第一存储组件21及至少一个第一加速组件22;第一存储组件21与第一主机处理组件23通过总线连接。
需要说明的是,图2所示的加速设备为图1所示加速设备在一个实现场景中的具体实现方式,图2所示加速设备中涉及的第一存储组件21,第一加速组件22、第一主机处理组件23等中的“第一”仅是为了方便区分不同实现场景而进行的命名。
其中,该加速设备可以采用专用集成电路(ASIC)、或现场可编程门阵列(FPGA)实现,当然,也可以采用数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、控制器、微控制器、微处理器或其他形式的集成电路(IC)等实现,本申请对此不进行限定。
该加速设备可以部署在第一计算设备中,该第一计算设备相对于加速设备为主机设备,第一主机处理组件例如可以是第一计算设备中的中央处理器(CPU)等,负责第一计算设备中的传统的处理任务等。
其中,每个第一加速组件22(图2中以一个第一加速组件为例进行说明)可以包括第一控制单元201以及多个第一运算单元202。
第一存储组件21用于存储多个分桶结果,其中,多个分桶结果通过针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得。
第一控制单元201用于从第一存储组件21获取至少一个分桶结果;将至少一个分桶结果分派至至少一个第一运算单元。
第一运算单元202用于针对为其分派的任一分桶结果,按照目标计算处理模式,对分桶结果中的多个密文数据进行计算处理获得密文处理结果。
第一控制单元201用于将任一分桶结果对应的密文处理结果存储至第一存储组件21。
第一存储组件21用于将多个分桶结果分别对应的密文处理结果提供给第一主机处理组件23。
其中,每个对象可以对应一个密文数据,从而多个对象对应多个密文数据。密文数据可以是对目标数据采用同态加密算法进行加密获得。在一个实际应用中,如多方联合建模场景中,该密文数据可以是指密文梯度信息,由数据发起方通过对梯度数据采用同态加密算法是进行加密获得。
作为一种可选方式,多个分桶结果可以由第一主机处理组件针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得。
此外,作为另一种可选方式,为了进一步提高处理消息,提高加速性能,该加速设备还可以包括与第一存储组件21连接的第二加速组件;第二加速组件用于从第一存储组件21获取多个密文数据,并针对任一个特征,将多个密文数据进行分桶处理,获得多个分桶结果;将多个分桶结果存储至第一存储组件21。第一主机处理组件23可以将数据发送方所发送的多个对象对应的多个密文数据传输至加速设备中的第一存储组件21进行存储。从而通过将分桶操作以及计算处理操作均由加速设备执行,主机处理组件只需传输一次密文数据,即可以被多个特征共用以用来进行分桶操作,从而降低了主机处理组件的运算量,利用专用的加速设备执行对应操作,提高了处理效率,且可以降低加速设备的I/O开销,保证加速设备的加速性能。
第一主机处理组件23可以向第一存储组件21、第一加速组件22以及第二加速组件发送相应的指示信息,以启动或者触发各个组件执行相应操作。比如,第一主机处理组件23将多个密文数据存储至第一存储组件21之后,可以向第二加速组件发送相应指示信息,第二加速组件可以是基于该指示信息,从第一存储组件21中获取该多个密文数据。当然,第一主机处理组件23也可以是在接收到数据发起方所发送的多个密文数据之后,通知第一存储组件21、第一加速组件22以及第二加速组件启动,第一存储组件21、第一加速组件22以及第二加速组件可以实时或者周期性触发执行各自操作。
第二加速组件负责数据接收方所拥有的各个特征对应的分桶处理操作,其可以针对每个特征,将多个密文数据进行分桶处理,获得每个特征对应的多个分桶结果。之后可以将不同特征分别对应的分桶结果存储至第一存储组件21,第二加速组件还可以向第一主机处理组件23发送分桶结束通知,第一主机处理组件23接收到分桶结束通知之后,即可以通知第一加速组件22获取多个分桶结果,并进行计算处理等。
可选地,为了提高处理效率,第二加速组件可以采用并行方式,同时针对多个特征,分别对多个密文数据进行分桶处理。该多个特征可以由第一主机处理组件23通知获得等,第一主机处理组件23可以将待处理的特征划分为多组,每一组包括多个特征,在任一组中的多个特征对应的分桶操作结束之后,再下发另一组的多个特征。
第一加速组件22从第一存储组件21获得多个分桶结果之后,即可以将同一分桶结果中的密文数据进行计算处理获得密文处理结果,并将多个分桶结果分别对应的密文处理结果存储至第一存储组件;可选地,第一加速组件22可以具体是按照目标计算处理模式将同一分桶结果中的密文数据进行计算处理,根据目标计算处理模式可以确定对应的运算方式,具体按照目标计算处理模对应的运算方式进行计算处理。
该目标计算处理模式或该运算方式可以由第一主机处理组件23通知第一加速组件22。
该目标计算处理模式例如可以包括密文累加,此外还可以包括密文相乘、密文相减等,在多方联合建模场景中,目标计算处理模式即可以具体是指密文累加。
密文累加对应的运算方式可以为点加运算,如ECC(Elliptic CurveCryptography,椭圆曲线加密算法)中,密文累加意即转换为椭圆曲线上的两个点的点加操作。在基于椭圆曲线实现的同态加密算法中,点加运算具体执行时会转换为模加、模乘等算术运算。
第一存储组件21存储多个分桶结果分别对应的密文处理结果之后,可以通知第一主机处理组件23,从而第一主机处理组件23即可以从第一存储组件23中获取多个分桶结果分别对应的密文处理结果。
第一主机处理组件23可以将多个分桶结果分别对应的密文处理结果发送至数据发起方,以便于数据发起方进行后续操作,比如数据发起方可以首先解密获得每个特征对应的多个分桶结果分别对应的明文处理结果,再对明文处理结果按照目标计算处理模式进行计算处理;或者也可以首先将每个特征对应的多个分桶结果分别对应的密文处理结果按照目标计算处理模式进行计算处理,再将处理结果进行解密等。
一些实施例中,如图2中所述,该加速设备还可以包括总线接口24,用于接入第一主机设备,以实现至少一个第一加速组件22以及第一存储组件21与第一主机处理组件23连接。通过总线接口24可以实现加速设备可插拔的安装于第一计算设备中。
一些实施例中,如图2中所述,该加速设备还可以包括基板25,第一存储组件21以及至少一个第一加速组件22等可以焊接在基板26上,以实现至少一个第一加速组件21与第一存储组件22的电气连接。
其中,通过对多个密文数据进行分桶处理,可以将多个密文数据划分为多个数据区间,每个数据区间即类似于一个桶,每个数据区间中包含的密文数据即组成一个分桶结果。
作为一种可选方式,第二加速组件针对任一特征,将多个密文数据进行分桶处理,获得多个分桶结果可以包括:针对任一特征,将多个密文数据按照特征对应的至少一个特征取值进行分桶处理,获得多个分桶结果。
其中,该分桶处理操作可以首先按照至少一个特征取值将多个对象进行划分,根据多个对象的划分结果,将多个对象分别对应密文数据进行划分,使得位于同一特征取值区间的对象对应的密文数据划分为同一个分桶结果中。
比如对象为用户,特征为年龄的情况下,特征取值包括10岁、20岁、以及30岁,则按照该3个年龄值可以将年龄划分为四个年龄区间0~10,10~20,20~30以及30~∞(无穷大)。按照四个年龄区间,可以首先将多个用户进行划分,归属到不同年龄区间中,那么对应同一个年龄区域的用户所对应的密文数据也即划分为同一个桶中,从而得到多个分桶结果。
其中,每个特征对应的至少一个特征取值可以由第一主机处理组件23存储至第一存储组件21中,由第二加速组件从第一存储组件21中获取。当然,由于数据量较小,第一主机处理组件23可以将每个特征对应的至少一个特征取值直接发送至第二加速组件中。
此外,作为另一种可选方式,第一存储组件21还用于存储第一主机处理组件23发送的多个对象分别对应不同特征的分桶信息;
第二加速组件针对任一特征,将多个密文数据进行分桶处理,获得多个分桶结果包括:针对任一特征,确定多个对象分别对应特征的分桶信息;将对应相同分桶信息的至少一个对象分别对应的密文数据划分为同一分桶,以获得多个分桶。
该分桶信息例如可以是指分桶标识,其用以唯一标识一个分桶,可以采用任意一个或多个字符(如数字组合、字母等)形式实现,本申请对此不进行限定。多个对象分别对应不同特征的分桶信息可以由第一主机处理组件23确定。
第一主机处理组件23获得每个对象对应的密文数据之后,可以结合数据接收方自身拥有的多个特征,针对每个特征,按照每个特征对应的至少一个特征取值,可以将多个对象进行划分,从而可以确定每个对象所在的特征取值区间,并将位于同一个特征取值区间的对象设置同一个分桶信息,不同特征取值区间对应的分桶信息不同。第一主机处理组件23可以将每个对象对应每个特征的分桶信息存储至第一存储组件21中,第二加速组件即可以从第一存储组件21中获取多个对象对应每个特征的分桶信息。当然,由于分桶信息的数据量较小,也可以由第一主机处理组件23将多个对象分别对应不同特征的分桶信息发送至第二加速组件。
一些实施例中,该第二加速组件可以包括数据加载单元、多个分桶单元以及数据存储单元。
数据加载单元,用于从第一存储组件21获取多个密文数据,将多个密文数据分别提供至多个分桶单元;为多个分桶单元分别分配待处理的特征,并控制多个分桶单元进行并行处理;
分桶单元,用于针对为其分配的特征,将多个密文数据进行分桶处理,获得多个分桶结果;并将多个分桶结果发送至存储单元;
数据存储单元,用于将每个分桶单元发送的多个分桶结果存储至第一存储组件。
通过多个分桶单元可以实现多个特征的并行处理。其中,每个分桶单元可以分配获得至少一个特征,该至少一个特征可以按照线行处理方式分别进行分桶处理操作。数据存储单元可以采用RAM(Random Access Memory,随机存取存储器)实现等。
可选地,每个分桶单元可以分配一个特征,第一主机处理组件23可以根据多个分桶单元的单元数量,确定一次并行处理的特征数量,该特征数量可以小于或等于单元数量。第一主机处理组件23可以根据该特征数量选择至少一个特征,将多个对象分别对应该至少一个特征的分桶信息提供至加速设备,以由数据加载单元将至少一个特征的分桶信息一一分配给至少一个分桶单元,每个分桶单元可以获得一个特征的分桶信息,进而针对为其分配的特征,将对应相同分桶信息的至少一个对象分别对应的密文数据划分为同一分桶结果;当然,第一主机处理组件23也可以是根据该特征数量选择至少一个特征,将该至少一个特征分别对应的至少一个特征取值提供至加速设备,以由数据加载单元将至少一个特征分别对应的至少一个特征取值一一分配给至少一个分桶单元,每个分桶单元可以获得一个特征的至少一个特征取值,进而针对为其分配的特征,按照其对应的至少一个特征取值,将多个密文数据进行分桶处理。
一些实施例,如图2中所示,每个第一加速组件22还可以包括第一存储单元203;第一运算单元202还可以用于将任一分桶结果对应的密文处理结果保存至第一存储单元203;
第一控制单元201将任一分桶结果对应的密文处理结果存储至第一存储组件21可以是:将第一存储单元203中存储的任一分桶结果对应的密文处理结果存储至第一存储组件21。
一些实施例中,如图2中的所示,每个第一加速组件22还可以包括第一加载单元204。
第一控制单元201从第一存储组件21获取至少一个分桶结果可以具体是,控制第一加载单元204从第一存储组件21获取至少一个分桶结果。
可选地,第一控制单元201可以根据第一主机处理组件23的指示而执行相应操作,因此,一些实施例中,第一控制单元201还可以用于接收第一主机处理组件23发送的第一控制信息,按照第一控制信息控制多个第一运算单元202以及第一存储单元203运行。
其中,第一控制信息中可以包括第一加速组件22所需获取的至少一个分桶结果的第一数据总量以及将至少一个分桶结果进行计算处理之后对应的第二数据总量,此外,还可以包括所需获取至少一个分桶结果对应的第一存储地址以及将至少一个分桶结果进行计算处理之后获得的至少一个密文处理结果对应的第二存储地址。从而第一控制单元201可以具体是按照第一数据总量以及第一存储地址从第一存储组件21获取至少一个分桶结果;以及可以按照第二数据总量以及第二存储地址,控制第一存储单元203将至少一个密文处理结果存储至第一存储组件21。具体的,第一控制单元201可以具体是按照第一数据总量以及第一存储地址,控制第一加载单元204从第一存储组件21获取至少一个分桶结果。
此外,第一控制信息中还可以包括目标计算处理模式或者目标计算处理模式对应的运算方式等,第一控制单元201可以具体按照第一控制信息,通知第一运算单元202对应的运算方式。
第一运算单202元针对为其分派的任一分桶结果,对分桶结果中的多个密文数据进行计算处理获得密文处理结果包括:针对为其分派的任一分桶结果,按照运算方式,对分桶结果中的多个密文数据进行处理获得密文处理结果。
上述一个或多个实施例中,每个目标计算模式对应的运算方式,可以预先配置有对应的一条或多条运算指令,通过执行一条或多条运算指令来实现对每个分桶结果中的多个密文数据进行计算处理。
实际应用中,其中,每个第一运算单元202实际应用中可以采用可编程处理器(PC)实现,其可以存储相应指令以执行相应操作。一些实施例中,如图3中所示,第一运算单元202可以包括第一存储子单元301、第一解析子单元302、第一计算子单元303、以及第一控制子单元304。
第一存储子单元301,用于存储目标计算处理模式对应的一条或多条指令;
第一解析子单元302,用于解析一条或多条指令;
第一控制子单元303,用于基于解析单元的解析结果,向第一计算子单元发送计算指示信息;
第一计算子单元304,用于基于计算指示信息,对多个密文数据进行计算处理获得密文处理结果。
其中,该一条或多条运算指令并解析之后可以转换为相应的计算指示信息,以控制第一计算子单元的运行。
其中,第一存储子单元可以采用RAM实现等。
实际应用中,图2所示实施例所适用的目标计算处理模式可以是密文累加,对应的运算方式为点加运算。比如密文数据采用基于椭圆曲线的同态加密算法进行加密实现,例如EC-ELGamal半同态加速算法。EC-ElGamal是ECC的一种,是把ElGamal移植到椭圆曲线上来的实现,主要计算有:椭圆曲线点加、点减、点乘、模逆和离散对数。而ElGamal是基于Diffie-Hellman(迪菲-赫尔曼)密钥交换的非对称加密算法。
以EC-ELGamal半同态加密算法为,其加密公式为:
Enc(P,m)=(C1=kG,C2=kP+mG)
其中,P表示公钥,是椭圆曲线上的点;G为椭圆曲线的基点;k为一个随机数;m为待加密的明文数据,意即目标数据,Enc(P,m)表示加密获得的密文,其由点对数据C1和C2构成。
密文相加公式为:
Enc(P,m1)+Enc(P,m2)
=(k1G+k2G,(k1P+m1G)+(k2P+m2G))
解密公式为:
M=C2-sC1
=mG
其中,M表示解密结果,s表示私钥,私钥乘以基点为公钥,因此sC1=s*kG=kP,从而C2-sC1=mG。
可见,加密实质上需要椭圆曲线上点乘和两个椭圆曲线上的点乘结果相加(点加),密文相加实质上是椭圆曲线的点加,而解密则需要椭圆曲线上的点乘。点乘运算本质上行由标量以及点构成,例如点乘运算kP包括标量k以及点P;点乘运算mG包括标量m和点G。
而密文累加意即多个密文数据相加,一些实施例中,第一计算子单元304基于计算指示信息,对多个密文数据进行计算处理获得密文处理结果可以是:从多个密文数据中依次获取一个密文数据,与前一次点加结果进行点加运算,确定当前累加次数是否满足预设次数,若是,将最后一次点加结果作为密文处理结果输出,若否,将点加结果保存至第一存储子单元301中。第一控制单元可以将该多个密文数据以输入数据流的形式提供至第一计算子单元。
一个实现方式中,该第一存储子单元301可以包括第一指令存储子单元、第一数据存储子单元、以及第一次数存储子单元。
其中,第一指令存储子单元用于存储一条或多条运算指令,第一数据存储子单元用于存储计算处理过程中的中间结果,如前一次的点加结果,第一次数存储单元用于存储预设次数等。
此外,对于目标计算处理模式涉及点乘运算的,第一存储子单元还可以包括第一标量存储子单元用于存储标量数据。
在一个实际应用中,第一运算单元202的运算结构示意图可以如图4中所示,图4中所述的第一指令存储单元、第一解析子单元、第一控制子单元、第一数据存储子单元、第一计算子单元、第一次数存储子单元及第一标量存储子单元,前文已进行详细介绍,此处不再重复赘述。结合图4中所示,第一计算子单元可以具备有基础计算逻辑,该基础计算逻辑可以包括第一输入A、第二输入B、第三输入C以及第四输入D;第一输入A可以来自输入数据流或者第一数据存储子单元,第二输入B、第三输入C以及第四输入D可以来自于第一数据存储子单元,当然每个输入可以为空。以密文累加对应的点加运算为例:从输入数据流获取的密文数据可以进入第一输入A,前一次点加结果作为第二输入B,第三输入C以及第四输入D可以为空间,第一计算子单元进行点加运算,将第一输入A以及第二输入B进行点加运算获得点加结果,该点加结果会存储至第一数据存储子单元或者作为密文处理结果而输出。
本申请实施例的技术方案在一个实际应用中,第一计算设备可以是负责对多个密文数据进行计算处理的数据接收方所对应的计算设备等。数据发起方对应第二计算设备,用于向第一计算设备传输多个对象分别对应的密文数据等。
如图5a中所示,本申请实施例还提供了一种计算系统,该计算系统可以包括第一计算设备51以及第二计算设备52。
第一计算设备51可以包括第一主机处理组件511及第一加速设备512,该第一加速设备512的具体结构可以详见图1~图4所示的任一实施例中所述的加速设备;
该第二计算设备52可以包括第二主机处理组件521件以及第二加速设备522。第二加速设备522用于实现加密或解密操作的加速处理等,因此,该第二加速设备522可以用于获取多个待处理数据,针对任一待处理数据,对待处理数据进行加密或解密,获得计算处理结果。
该待处理数据可以是待加密的目标数据或者待解密的密文处理结果;相应的,计算处理结果可以是密文数据或者明文处理结果。
对于密文数据,第二主机处理组件521可以从第二加速设备522获取多个对象分别对应的密文数据并发送至第一计算设备51。
对于明文处理结果,第二主机处理组件521可以从第二加速设备522获取明文处理结果,并进行后续处理操作。
例如,一个实际应用中,本申请实施例的技术方案可以应用于采用纵向联邦学习方式进行多方联合建模场景中。
如图5b所示的交互示意图中,数据发起方的第二计算设备52中的第二加速设备522首先将不同样本对象对应的梯度信息进行加密,获得多个样本对象的密文梯度信息,其中,梯度信息是基于数据发起方提供的样本对象对应的特征取值和标签数据,利用决策树模型计算获得。
之后,第二加速设备522再将多个样本对象的密文梯度信息发送至给第二主机处理组件521,第二主机处理组件521将该多个样本对象的密文梯度信息发送至数据接收方对应的第一计算设备51。
第一计算设备51中的第一主机处理组件511接收到多个样本对象的密文梯度信息之后,可以将多个样本对象的密文梯度信息发送至第一加速设备512,第一加速设备512可以首先将多个样本对象的密文梯度信息按照不同特征进行分桶处理获得每个特征的多个分桶结果,之后采用本申请技术方案可以计算获得每个特征的多个分桶结果分别对应的密文梯度累加值,再将每个特征的多个分桶结果分别对应的密文梯度累加值发送至第一主机处理组件511;第一主机处理组件511再将每个特征的多个分桶结果分别对应的密文梯度累加值发送至数据发起方的第二计算设备52。
第二计算设备52中的第二主机处理组件521接收到每个特征的多个分桶结果分别对应的密文梯度累加值,可以发送至第二加速设备522。
第二加速设备522可以从中解密获得每个特征的多个分桶结果分别对应的梯度累加值,再将每个特征的多个分桶结果的梯度累积值进行累加获得该特征对应的梯度累加值。当然,也可以是先将多个分桶结果分别对应的密文梯度累加值进行累加获得该特征对应的密文梯度累加值,再对该特征对应的密文梯度累加值进行解密获得该特征对应的梯度累加值。
第二加速设备522可以将多个特征分别对应的梯度累加值发送至第二主机处理组件521。
第二主机处理组件521可以具体是基于多个特征对应的梯度累加值,确定决策树模型的最优分裂点。根据最优分裂点即可以构建决策树模型。
其中,该决策树模式可以是XGBoost(eXtreme Gradient Boosting,极端梯度提升)模型等。当然也可以是其它类型的决策树模型,例如GBDT(Gradient BoostingDecision Tree,梯度提升决策树),GBM(Gradient Boosting Machine,梯度提升机)等。
梯度信息可以包括每个样本对象对应的一阶梯度以及二阶梯度,通过对决策树模型的损失函数求导获得,将样本对象的特征取值输入决策树模型,即可以获得预测数据,利用损失函数可以估计该预测数据与标签数据的不一致程度,通过损失函数求导可以获得一阶梯度以及二阶梯度。
由上述描述可知,对于第二计算设备,待处理数据为待加密的目标数据的情况下,目标数据可以是基于数据发起方提供的样本对象对应的特征取值和标签数据,计算获得的决策树模型对应的梯度信息;
待处理数据为待解密的密文处理结果的情况下,待处理数据可以是针对数据接收方提供的任一特征,计算获得的待解密的密文处理结果,其中,待解密的密文处理结果可以是密文梯度累加值,可以是每个特征对应的密文梯度累加值或者每个分桶结果对应的密文梯度累加值,相应的对其解密获得的计算处理结果即为梯度累加值。
第一计算设备51和第二计算设备52之间通过网络建立连接。网络为第一计算设备51与第二计算设备52之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线或者光纤电缆等等。可选地,无线连接方式可以通过移动网络实现,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。可选地,当然也可以通过蓝牙、WiFi、红外线等方式建立通信连接。
第一计算设备51以及第二计算设备52必然还可以包括其它部件,例如输入/输出接口、显示组件、以及实现上述通信连接的通信组件、以及存储计算机指令的主机存储组件以供主机处理组件调用并执行实现相应操作等,本申请对此不做过多赘述。
一些实施例中,如图6中所示,该第二加速设备522可以包括第二存储组件601及至少一个第三加速组件602;第二存储组件601与第二主机处理组件521通过总线连接;
第二存储组件601用于存储第二主机处理组件521件发送的多个待处理数据;待处理数据为待加密的目标数据或者待解密的密文处理结果;
第三加速组件602用于从第二存储组件601获取至少一个待处理数据;针对任一待处理数据,对待处理数据进行加密或解密,获得计算处理结果,并将计算处理结果存储至第二存储组件601;
第二主机处理组件521用于从第二存储组件601中获取任一待处理数据对应的计算处理结果。
可选地,第二加速设备522可以设置多个第三加速组件602,从而可以提高并行处理能力,提高处理效率,提高加速性能。
一些实施例中,如图7中所示,每个第三加速组件602可以包括第二控制单元701以及多个第二运算单元702;
第二控制单元701用于从第二存储组件获取至少一个待处理数据;将至少一个待处理数据分派至至少一个第二运算单元;
第二运算单元702用于针对为其分派的任一待处理数据,对待处理数据进行加密或解密,获得计算处理结果;
第二控制单元701用于将任一待处理数据对应的计算处理结果存储至第二存储组件601。
一些实施例中,每个第三加速组件602还可以包括第二存储单元703;第二运算单元702还用于将任一待处理数据对应的计算处理结果保存至第二存储单元703;
第二控制单元701将任一待处理数据对应的计算处理结果存储至第二存储组件601包括:将第二存储单元703中存储的任一待处理数据对应的计算处理结果存储至第二存储组件601。
一些实施例中,如图7中所示,每个第三加速组件602还可以包括第二加载单元704。第二控制单元701可以具体是控制第二加载单元704从第二存储组件601获取至少一个待处理数据。
一些实施例中,第二控制单元701还用于接收第二主机处理组件521发送的第二控制信息,按照第二控制信息控制多个第二运算单元702以及第二存储单元703运行;
第二控制单元701还用于按照第二控制信息,通知第二运算单元702对应的运算方式;其中,加密对应的运算方式即为点加以及点乘,解密对应运算方式为点乘。
第二控制信息中可以包括第三加速组件所需获取的至少一个待处理数据的第一数据总量以及将至少一个待处理数据进行计算处理之后对应的第二数据总量,此外,还可以包括所需获取至少一个待处理数据对应的第一存储地址以及将至少一个待处理数据进行计算处理之后获得的至少一个计算处理结果对应的第二存储地址。从而第二控制单元701可以具体是按照第一数据总量以及第一存储地址从第二存储组件601获取至少一个待处理数据;以及可以按照第二数据总量以及第二存储地址,控制第二存储单元703将至少一个计算处理结果存储至第二存储组件601。具体的,第二控制单元701可以具体是按照第一数据总量以及第一存储地址,控制第二加载单元704从第二存储组件601获取至少一个待处理数据。
此外,第二控制信息中还可以包括加密或解密对应的运算方式等,第二控制单元701可以具体按照第二控制信息,通知第二运算单元702对应的运算方式;
第二运算单元702针对为其分派的任一待处理数据,对待处理数据进行计算处理获得计算处理结果包括:针对为其分派的任一待处理数据,按照该运算方式,对待处理数据进行处理获得计算处理结果。
其中,加密或解密对应的运算方式,可以预先配置有对应的一条或多条运算指令,通过执行一条或多条运算指令来实现对每个待处理数据进行计算处理。一些实施例中,第二运算单元702实际应用中可以采用可编程处理器(PC)实现,其可以存储相应指令以执行相应操作,该第二运算单元702可以包括第二存储子单元、第二解析子单元、第二计算子单元、以及第二控制子单元;
第二存储子单元用于存储加密或解密对应的一条或多条运算指令;
第二解析子单元用于解析一条或多条运算指令;
第二控制子单元用于基于解析单元的解析结果,向第二计算子单元发送计算指示信息;
第二计算子单元,用于基于计算指示信息,对待处理数据进行计算处理获得计算处理结果。
其中,该一条或多条运算指令并解析之后可以转换为相应的计算指示信息,以控制第一计算子单元的运行。
其中,第二存储子单元可以采用RAM)实现等。
一个实现方式中,该第二存储子单元可以包括第二指令存储子单元、第二数据存储子单元、以及第二次数存储单元。
其中,第二指令存储单元用于存储一条或多条运算指令,第二数据存储子单元用于存储计算处理过程中的中间结果,第二次数存储单元用于存储预设次数等。
此外,由于加密操作涉及点乘运算,第二存储子单元还可以包括第一标量存储子单元用于存储标量数据。
需要说明的是,该第二运算单元的具体结构形式可以与前文相应实施例中所描述的第一运算单元202的结构相同,因此具体实现可以详见前文对第一运算单元的解释说明,此处将不再重复赘述。
通过本申请实施例的技术方案,可以提高第二计算设备中的加密或解密操作的处理效率,以及第一计算设备中的密文累加操作的处理效率,可以降低主机处理组件的运算量,提高处理性能,提高加速性能,实现了高效、高性能的数据联合处理。
其中,第一计算设备以及第二计算设备可以为物理机器,其可以是提供云计算能力的物理机器等。
此外,本申请实施例还提供了一种加速方法,该方法可以应用于如图2所示的加速设备中,加速设备包括第一存储组件及至少一个第一加速组件;第一加速组件包括第一控制单元以及多个第一运算单元;第一存储组件与第一主机处理组件通过总线连接;该加速设备的具体结构实现可以详见相应实施例中,此处不再重复赘述,该方法可以具体由加速设备中的第一加速组件执行,如图8中所述,该方法可以包括以下几个步骤:
801:从多个分桶结果中获取至少一个分桶结果。
多个分桶结果通过针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得。
802:将至少一个分桶结果分派至至少一个第一运算单元。
其中,第一运算单元用于针对为其分派的任一分桶结果,对分桶结果中的多个密文数据进行计算处理获得密文处理结果。
803:获取第一运算单元生成的任一分桶结果对应的密文处理结果。
804:将密文处理结果存储至第一存储组件。
第一存储组件用于将多个分桶结果分别对应的密文处理结果提供给第一主机处理组件。
需要说明的是,图8所示实施例所述的加速方法中,各个步骤操作的具体方式已经在有关设备实施例中进行了详细描述,此处将不做详细阐述说明。
此外,本申请实施例还提供了一种计算设备,如图9中所示,该计算设备可以包括主机处理组件901、主机存储组件902以及加速设备903,其中,加速设备903可以采用如图1~图5、或者图6所示的任一实施例所述的结构,此处在赘述。
其中,主机存储组件902可以存储一条或多条计算机指令,以供主机处理组件1001调用并执行以实现相应操作。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、显示组件、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
其中,主机处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然主机处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
主机存储组件被配置为存储各种类型的数据以支持在计算设备的操作。主机存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
加速设备可以采用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现。其可以通过总线方式与主机处理组件连接,采用热插拔方式部署在计算设备中。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被计算机执行时可以实现上述图8所示实施例的加速方法。该计算机可读介质可以是上述实施例中描述的计算设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本申请实施例还提供了一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,计算机程序被计算机执行时可以实现如上述如图8所示实施例的加速方法。在这样的实施例中,计算机程序可以是从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被处理器执行时,执行本申请的系统中限定的各种功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种加速设备,其特征在于,包括第一存储组件及至少一个第一加速组件;所述第一加速组件包括第一控制单元以及多个第一运算单元;所述第一存储组件与第一主机处理组件通过总线连接;
所述第一存储组件用于存储多个分桶结果;所述多个分桶结果通过针对不同特征,分别对多个对象对应的多个密文数据进行分桶处理获得;
所述第一控制单元用于从所述第一存储组件获取至少一个分桶结果;将所述至少一个分桶结果分派至至少一个第一运算单元;
所述第一运算单元用于针对为其分派的任一分桶结果,按照目标计算处理模式,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果;
所述第一控制单元用于将任一分桶结果对应的密文处理结果存储至所述第一存储组件;
所述第一存储组件用于将多个分桶结果分别对应的密文处理结果提供给所述第一主机处理组件。
2.根据权利要求1所述的设备,其特征在于,所述第一加速组件还包括第一存储单元;所述第一运算单元还用于将任一分桶结果对应的密文处理结果保存至所述第一存储单元;
所述第一控制单元将任一分桶结果对应的密文处理结果存储至所述第一存储组件包括:将所述第一存储单元中存储的任一分桶结果对应的密文处理结果存储至所述第一存储组件。
3.根据权利要求2所述的设备,其特征在于,所述第一控制单元还用于接收所述第一主机处理组件发送的第一控制信息,按照所述第一控制信息控制所述多个第一运算单元以及所述第一存储单元运行;
所述第一控制单元还用于按照所述第一控制信息,通知所述第一运算单元所述目标计算处理模式对应的运算方式;
所述第一运算单元针对为其分派的任一分桶结果,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果包括:针对为其分派的任一分桶结果,按照所述运算方式,对所述分桶结果中的多个密文数据进行处理获得密文处理结果。
4.根据权利要求1所述的设备,其特征在于,所述第一运算单元包括指令第一存储子单元、第一解析子单元、第一计算子单元、第一控制子单元;
所述第一存储子单元,用于存储目标计算处理模式对应的一条或多条指令;
所述第一解析子单元,用于解析所述一条或多条指令;
所述第一控制子单元,用于基于所述解析单元的解析结果,向第一计算子单元发送计算指示信息;
所述第一计算子单元,用于基于所述计算指示信息,对所述多个密文数据进行计算处理获得密文处理结果。
5.根据权利要求4所述的设备,其特征在于,所述目标计算处理模式为密文累加,所述运算方式为点加运算;
第一计算子单元基于所述计算指示信息,对所述多个密文数据进行计算处理获得密文处理结果包括:从所述多个密文数据中依次获取一个密文数据,与前一次点加结果进行点加运算,确定当前累加次数是否满足预设次数,若是,将最后一次点加结果作为密文处理结果输出,若否,将所述点加结果保存至所述第一存储子单元中。
6.根据权利要求1所述的设备,其特征在于,还包括总线接口,用于接入第一主机设备,以实现所述至少一个第一加速组件以及所述第一存储组件与所述第一主机设备中的第一主机处理组件连接。
7.根据权利要求1所述的设备,其特征在于,还包括基板,所述第一存储组件以及所述至少一个第一加速组件焊接在所述基板上。
8.一种加速设备,其特征在于,包括存储组件及至少一个加速组件,所述加速组件包括控制单元以及多个运算单元;所述存储组件通过总线与主机处理组件连接;
所述存储组件,用于存储多组待处理数据,每组待处理数据包括至少一个操作数据;
所述控制单元,用于从所述存储组件获取至少一组操作数据,并分派给至少一个运算单元;
所述运算单元,用于针对为其分派的一组待处理数据中的至少一个操作数据,对所述至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果;
所述控制单元,用于将任一组待处理数据对应的计算处理结果存储至所述存储组件;所述计算处理结果用以提供至主机处理组件。
9.根据权利要求8所述的设备,其特征在于,所述待处理数据包括待加密的目标数据;所述目标数据基于任一个对象的特征取值计算获得;所述运算单元对所述至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果包括:对所述目标数据进行加密处理,获得密文数据;
或者,所述待处理数据包括待解密的密文处理结果;所述运算单元对所述至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果包括:对所述密文处理结果进行解密处理,获得明文处理结果;
或者,一组待处理数据对应一个分桶结果,包括多个密文数据;所述运算单元对所述至少一个操作数据按照目标计算处理模式进行计算处理,获得计算处理结果包括:对所述多个密文数据进行累加处理,获得密文处理结果。
10.一种计算系统,其特征在于,包括第一计算设备以及第二计算设备;所述第一计算设备包括第一主机处理组件及如权利要求1~7任一项所述的加速设备;
所述第二计算设备包括第二主机处理组件以及第二加速设备;所述第二加速设备包括第二存储组件及至少一个第三加速组件;所述第二存储组件与第二主机处理组件通过总线连接;
所述第二存储组件用于存储所述第二主机处理组件发送的多个待处理数据;所述待处理数据为待加密的目标数据或者待解密的密文处理结果;
所述第三加速组件用于从所述第二存储组件获取至少一个待处理数据;针对任一待处理数据,对所述待处理数据进行加密或解密,获得计算处理结果,并将所述计算处理结果存储至所述第二存储组件;
所述第二主机处理组件用于从所述第二存储组件中获取任一待处理数据对应的计算处理结果。
11.根据权利要求10所述的计算系统,其特征在于,所述第三加速组件包括第二控制单元以及多个第二运算单元;
所述第二控制单元用于从所述第二存储组件获取至少一个待处理数据;将所述至少一个待处理数据分派至至少一个第二运算单元;
所述第二运算单元用于针对为其分派的任一待处理数据,对所述待处理数据进行计算加密或解密,获得计算处理结果;
所述第二控制单元用于将任一待处理结果对应的计算处理结果存储至所述第二存储组件。
12.根据权利要求10所述的计算系统,其特征在于,所述待处理数据为待加密的目标数据的情况下,所述目标数据为基于数据发起方提供的样本对象对应的特征取值和标签数据,计算获得的决策树模型对应的梯度信息;
或者,
所述待处理数据为待解密的密文处理结果的情况下,所述待处理数据具体为针对数据接收方提供的任一特征,计算获得的待解密的密文处理结果,所述密文处理结果解密获得的计算处理结果为梯度累加值;则所述第二主机处理组件还用于基于多个特征对应的梯度累加值,确定所述决策树模型的最优分裂点。
13.一种计算设备,其特征在于,包括主机处理组件、主机存储组件以及如权利要求1~7任一项所述的加速设备或者如权利要求8或9所述的加速设备。
14.一种加速方法,其特征在于,应用于加速设备,所述加速设备包括第一存储组件及至少一个第一加速组件;所述第一加速组件包括第一控制单元以及多个第一运算单元;所述第一存储组件与第一主机处理组件通过总线连接;所述方法包括:
从多个分桶结果中获取至少一个分桶结果;所述多个分桶结果通过对所述第一主机处理组件提供的多个密文数据进行分桶处理获得;
将所述至少一个分桶结果分派至至少一个第一运算单元;所述第一运算单元用于针对为其分派的任一分桶结果,对所述分桶结果中的多个密文数据进行计算处理获得密文处理结果;
获取所述第一运算单元生成的任一分桶结果对应的密文处理结果;
将所述密文处理结果存储至所述第一存储组件。
CN202211241115.0A 2022-10-11 2022-10-11 加速设备、计算系统及加速方法 Pending CN115801220A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211241115.0A CN115801220A (zh) 2022-10-11 2022-10-11 加速设备、计算系统及加速方法
PCT/CN2023/122209 WO2024078347A1 (zh) 2022-10-11 2023-09-27 加速设备、计算系统及加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211241115.0A CN115801220A (zh) 2022-10-11 2022-10-11 加速设备、计算系统及加速方法

Publications (1)

Publication Number Publication Date
CN115801220A true CN115801220A (zh) 2023-03-14

Family

ID=85432817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211241115.0A Pending CN115801220A (zh) 2022-10-11 2022-10-11 加速设备、计算系统及加速方法

Country Status (2)

Country Link
CN (1) CN115801220A (zh)
WO (1) WO2024078347A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909626A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、处理器及计算机设备
WO2024078428A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法
WO2024078347A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114647857A (zh) * 2020-12-18 2022-06-21 深圳前海微众银行股份有限公司 数据处理方法、装置、设备、存储介质及程序产品
CN114816334A (zh) * 2021-01-19 2022-07-29 阿里巴巴集团控股有限公司 加速单元、相关装置和方法
CN113254982B (zh) * 2021-07-13 2021-10-01 深圳市洞见智慧科技有限公司 一种支持关键词查询的匿踪查询方法及系统
CN114696990B (zh) * 2022-05-31 2022-08-26 深圳市洞见智慧科技有限公司 基于全同态加密的多方计算方法、系统及相关设备
CN114756895B (zh) * 2022-06-16 2022-08-26 深圳市洞见智慧科技有限公司 基于同态加密的匿踪数据核验方法及系统
CN115801220A (zh) * 2022-10-11 2023-03-14 阿里云计算有限公司 加速设备、计算系统及加速方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024078428A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法
WO2024078347A1 (zh) * 2022-10-11 2024-04-18 杭州阿里云飞天信息技术有限公司 加速设备、计算系统及加速方法
CN116909626A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、处理器及计算机设备
CN116909626B (zh) * 2023-09-13 2023-12-29 腾讯科技(深圳)有限公司 数据处理方法、处理器及计算机设备

Also Published As

Publication number Publication date
WO2024078347A1 (zh) 2024-04-18

Similar Documents

Publication Publication Date Title
CN115801220A (zh) 加速设备、计算系统及加速方法
CN108809623B (zh) 安全多方计算方法、装置及系统
US20210377010A1 (en) Key management method and related device
KR101575030B1 (ko) 클라우드 상의 공유 데이터에 대한 다중 서명생성방법
CN111753318B (zh) 私有数据的多方安全计算方法、装置及系统
US20200044832A1 (en) System and method for quantum resistant public key encryption
CN111680307A (zh) 分布式数据加密方法、装置、云存储服务器及存储介质
CN112910639A (zh) 多域场景下的量子加密业务传输方法及相关设备
CN110378128A (zh) 数据加密方法、装置及终端设备
CN107204997A (zh) 管理云存储数据的方法和装置
Taha et al. An improved security schema for mobile cloud computing using hybrid cryptographic algorithms
WO2024078428A1 (zh) 加速设备、计算系统及加速方法
Makkes et al. P^ 2-SWAN: Real-Time Privacy Preserving Computation for IoT Ecosystems
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
JP2023114996A (ja) 相関係数取得方法、装置、電子機器および記憶媒体
CN111767411A (zh) 知识图谱表示学习优化方法、设备及可读存储介质
CN114726524B (zh) 目标数据的排序方法、装置、电子设备及存储介质
CN114422237B (zh) 数据传输方法及装置、电子设备和介质
CN113452513B (zh) 密钥分发方法、装置和系统
CN112699391B (zh) 目标数据的发送方法及隐私计算平台
CN108768994A (zh) 数据匹配方法、装置及计算机可读存储介质
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
KR20230038493A (ko) 복수의 서브넷을 갖는 분산 네트워크
CN110708154A (zh) 一种虚拟机迁移方法、系统、终端及存储介质
CN112602289A (zh) 数据加密处理方法、数据解密处理方法、装置及电子设备

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