CN113900828A - 联邦学习专用处理器、联邦学习处理芯片及芯片 - Google Patents

联邦学习专用处理器、联邦学习处理芯片及芯片 Download PDF

Info

Publication number
CN113900828A
CN113900828A CN202111492722.XA CN202111492722A CN113900828A CN 113900828 A CN113900828 A CN 113900828A CN 202111492722 A CN202111492722 A CN 202111492722A CN 113900828 A CN113900828 A CN 113900828A
Authority
CN
China
Prior art keywords
engine
processing
sub
federal learning
engines
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
Application number
CN202111492722.XA
Other languages
English (en)
Other versions
CN113900828B (zh
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.)
Shenzhen Zhixing Technology Co Ltd
Original Assignee
Shenzhen Zhixing Technology Co 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 Shenzhen Zhixing Technology Co Ltd filed Critical Shenzhen Zhixing Technology Co Ltd
Priority to CN202111492722.XA priority Critical patent/CN113900828B/zh
Publication of CN113900828A publication Critical patent/CN113900828A/zh
Application granted granted Critical
Publication of CN113900828B publication Critical patent/CN113900828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种联邦学习专用处理器、联邦学习处理芯片及芯片。该处理器包括彼此独立的多个处理引擎,其每一个包括并行的至少一个处理子引擎且属于加密、解密、密文运算以及密钥管理的类别中的一个。该处理器用于生成联邦学习任务的任务配置信息,确定多个处理引擎的调用次序和被调用的处理引擎,根据任务配置信息和被调用的处理引擎的状态生成引擎配置信息,根据引擎配置信息完成联邦学习任务。多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分和第二部分组成,第一部分的个数根据联邦学习通用业务场景预先设定,第二部分的个数可根据与联邦学习任务关联的联邦学习子业务场景调整。如此实现数据流驱动的引擎分配机制及优化设计。

Description

联邦学习专用处理器、联邦学习处理芯片及芯片
技术领域
本申请涉及数据安全和隐私保护技术领域,具体涉及一种联邦学习专用处理器、联邦学习处理芯片及芯片。
背景技术
随着人工智能和大数据挖掘分析等应用领域的发展,对数据量的需求越来越大。例如训练人工智能的应用模型需要使用大量带有合适的数据标签或者特征数值的训练数据。高质量的数据往往来源于经营活动中产生和积累的应用数据。但是应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。随着数据所有权的重要性、用户隐私和数据安全等受到更多重视,也随着法律法规对数据收集处理提出更严格的约束和要求,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。联邦学习指的是拥有数据的各个参与方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。其中,联邦学习根据训练数据在不同参与方之间的数据特征空间和样本空间的分布情况,可以划分为在数据特征空间重叠较大而在样本空间重叠较小的横向联邦学习,在数据特征空间重叠较小而在样本空间重叠较大的纵向联邦学习,以及在数据特征空间和样本空间均重叠较小的联邦迁移学习。
联邦学习的应用中涉及到多个参与方如两个、三个或者更多个参与方之间的共同计算,涉及到大量的数据量,还涉及到各种安全协议和数据安全标准,因此联邦学习的计算过程带入了复杂多变的运算,这些运算对算力和内存都提出了很大的挑战。为此,需要一种联邦学习专用处理器、联邦学习处理芯片及芯片,能够满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
发明内容
第一方面,本申请实施例提供了一种联邦学习专用处理器。所述联邦学习专用处理器包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每一个处理引擎属于多个类别中的一个类别,所述多个类别包括加密、解密、密文运算以及密钥管理。其中,所述联邦学习专用处理器用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
第一方面所描述的技术方案,实现了数据流驱动的引擎分配机制和简化控制操作,还实现了基于联邦学习通用业务场景的设定进行优化设计以及针对联邦学习子业务场景进行优化设计,有利于满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述联邦学习任务的所述任务配置信息包括与所述联邦学习任务关联的所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和根据所述资源需求确定所述第二部分的处理子引擎的个数。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个处理引擎包括密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述同态加密引擎用于全同态加密和半同态加密,所述同态解密引擎用于全同态解密和半同态解密,所述密态加法引擎用于向量级密态加法,所述密态乘法引擎用于向量级密态乘法,所述矩阵加法引擎用于数组和矩阵之间的密态加法以及矩阵和矩阵之间的密态加法,所述矩阵乘法引擎用于数组和矩阵之间的密态乘法以及矩阵和矩阵之间的密态乘法,所述密文累加引擎用于密文数据的串行累加计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述特定次序包括顺序轮询方式或者随机轮询方式。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。
第二方面,本申请实施例提供了一种芯片,用于联邦学习。所述芯片包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行运算。其中,所述芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
第二方面所描述的技术方案,实现了数据流驱动的引擎分配机制和简化控制操作,还实现了基于联邦学习通用业务场景的设定进行优化设计以及针对联邦学习子业务场景进行优化设计,有利于满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和根据所述资源需求确定所述第二部分的处理子引擎的个数。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述联邦学习子业务场景是银行子业务场景,根据所述银行子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态加法引擎、所述密态乘法引擎、所述矩阵加法引擎、所述矩阵乘法引擎和所述同态解密引擎。
根据第二方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述联邦学习子业务场景是医疗服务子业务场景,根据所述医疗服务子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态乘法引擎、所述密态加法引擎、所述矩阵乘法引擎、所述矩阵加法引擎、所述密态加法引擎、所述密态乘法引擎和同态解密引擎。
第三方面,本申请实施例提供了一种联邦学习处理芯片。所述联邦学习处理芯片包括:多个处理引擎,其中,所述多个处理引擎彼此独立且与多种算子模式一一匹配,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行相匹配的算子模式的运算,所述多种算子模式根据联邦学习通用业务场景预先设定。其中,所述联邦学习处理芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多种算子模式的运算次序,根据所述多种算子模式的运算次序确定相匹配的所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
第三方面所描述的技术方案,实现了数据流驱动的引擎分配机制和简化控制操作,还实现了基于联邦学习通用业务场景的设定进行优化设计以及针对联邦学习子业务场景进行优化设计,有利于满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。
根据第三方面的技术方案的一种可能的实现方式,本申请实施例还提供了,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多种算子模式的运算次序,包括:根据所述联邦学习子业务场景确定所述多种算子模式的运算次序。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的联邦学习业务场景的示意图。
图2示出了本申请实施例提供的联邦学习专用处理器的框图。
图3示出了本申请实施例提供的图2所示的联邦学习专用处理器的处理引擎的框图。
图4示出了本申请实施例提供的包括图2所示的联邦学习专用处理器的联邦学习处理系统的框图。
具体实施方式
本申请实施例为了解决如何满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率这样的技术难题,提出了一种联邦学习专用处理器、联邦学习处理芯片及芯片。所述联邦学习专用处理器包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每一个处理引擎属于多个类别中的一个类别,所述多个类别包括加密、解密、密文运算以及密钥管理。其中,所述联邦学习专用处理器用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。如此,实现了数据流驱动的引擎分配机制和简化控制操作,还实现了基于联邦学习通用业务场景的设定进行优化设计以及针对联邦学习子业务场景进行优化设计,有利于满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
本申请实施例可用于以下应用场景,包括但是不限于,多方安全计算、与联邦学习有关的机器学习模型训练、数据安全、隐私保护或者应用隐私计算框架或算法的其它应用场景等。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的联邦学习业务场景的示意图。如图1所示,该联邦学习业务场景下涉及到第一联邦学习数据持有方100,第二联邦学习数据持有方110以及联邦学习仲裁方120。其中,第一联邦学习数据持有方100和第二联邦学习数据持有方110可以看做是同一个联邦学习任务的参与方或者同一个联邦学习合作网络的两个计算节点。例如,第一联邦学习数据持有方100和第二联邦学习数据持有方110可以进行联邦学习意义下的联合机器学习或者联合分析。例如,第一联邦学习数据持有方100和第二联邦学习数据持有方110可以是同一机构的不同部门,也可以是不同的机构或者不同的个体。考虑到联邦学习框架和联邦学习算法的多样性以及发展所带来的变化,图1所示的联邦学习业务场景可以采用任意合适的联邦学习框架或者联邦学习算法,并且可能采用任意合适的安全协议、加解密技术方案以及通信方式等。例如,图1所示的联邦学习业务场景可以采用现有的联邦学习框架例如Federated AI Technology Enabler(FATE)等。再例如,图1所示的联邦学习业务场景可以采用基于同态加密的加解密技术方案,如基于非对称公私钥的半同态的Paillier密码系统。再例如,图1所示的联邦学习业务场景可以采用安全数据通信技术,如基于CurveZMQ技术的通信方式来保证信道安全和数据通信安全。因此,图1所示的联邦学习业务场景可以对应灵活的复杂多变的各种不同的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等,还可以用于执行不同的联邦学习任务或者实现不同的预期联邦学习目的。另外,图1所示的第一联邦学习数据持有方100,第二联邦学习数据持有方110以及联邦学习仲裁方120的组成也是灵活多变的,图1所示的联邦学习业务场景可以容纳三个或者更多个联邦学习数据持有方,还可以容纳不持有联邦学习数据而仅应用联邦学习数据的参与方,还可以容纳任意可能的合适参与方。换句话说,图1所示的联邦学习业务场景仅为示例性,在实际应用中,联邦学习业务场景可以有任意数量的参与方,一般情况下只有一个联邦学习仲裁方,这些参与方可以是如第一联邦学习数据持有方100和第二联邦学习数据持有方110这样的数据持有方,还可以分别扮演联邦学习意义下的任意合适角色,例如模型服务的提供方、使用模型的用户、数据提供方、数据应用方。另外,虽然图1示意性示出了联邦学习仲裁方120,但是图1所示的联邦学习业务场景也可以对应不需要用到联邦学习仲裁方的情况,也就是说在一些示例性实施例中联邦学习仲裁方120可以不参与实际的联邦学习任务的流程。
如图1所示,在第一联邦学习数据持有方100和第二联邦学习数据持有方110之间存在数据交互流程,一般来说涉及发送密态参数和发送密态增量。第一联邦学习数据持有方100和第二联邦学习数据持有方110各自也通过本地模型进行密态计算,一般来说涉及模型计算以及更新本地参数。第一联邦学习数据持有方100和联邦学习仲裁方120之间存在数据交互流程,一般来说涉及由第一联邦学习数据持有方100向联邦学习仲裁方120发送密态梯度,以及由联邦学习仲裁方120向第一联邦学习数据持有方100发送解密混合梯度以及发送公钥。第二联邦学习数据持有方110和联邦学习仲裁方120之间也存在数据交互流程,取决于第二联邦学习数据持有方110所扮演的特定角色,可能涉及由第二联邦学习数据持有方110向联邦学习仲裁方120发送密态损失函数以及发送密态梯度,还可能涉及由联邦学习仲裁方120向第二联邦学习数据持有方110发送解密混合梯度以及发送公钥。因此,图1所示的第一联邦学习数据持有方100,第二联邦学习数据持有方110以及联邦学习仲裁方120这三者之间可能有多个数据交互的流程,而这些数据交互的流程都是在加密状态下完成,并且满足联邦学习定义,也就是拥有数据的各个参与方在不共享受保护的隐私数据且自有数据不传递到外部的前提下通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。这意味着用于交互的数据可以包括进行数据加密后的参数、梯度、损失函数(Loss)等。例如,第一联邦学习数据持有方100和第二联邦学习数据持有方110可以进行RSA求交集的联邦学习任务用于求得各自的数据ID的交集,并在密态下交换RSA求交集算法所涉及的各种加密后参数以及在本地进行密态计算。
因此,以图1所示的联邦学习业务场景为例,联邦学习意义下的业务场景可以包括任意数量的参与方(还可能包括联邦学习仲裁方)且这些参与方可以根据实际需要扮演相应的特定角色,可以采用任意合适的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等,而对于特定的参与方(或者联邦学习仲裁方)而言,该特定参与方通常需要在本地进行密态计算并进行与其它参与方(或者联邦学习仲裁方)的数据交互,并且该特定参与方所面对的各种复杂的数据运算要求是由该特定参与方所在的联邦学习业务场景所限制的。例如,上面提到的RSA求交集的联邦学习任务可以被认为是一种特定的联邦学习业务场景,所有参与该RSA求交集的联邦学习任务的数据持有方,例如,第一联邦学习数据持有方100和第二联邦学习数据持有方110,根据各自扮演的角色如首先发起合作邀请的合作方或者被邀请合作的被邀请方,可能面对略有不同的数据运算要求,但是整体上都是受到RSA求交集算法的限制,也就是说,这些参与该RSA求交集的联邦学习任务的数据持有方可能需要解决的数据运算要求是可以预先根据RSA求交集算法而做出预先规划的。进一步地,除了与RSA求交集的联邦学习任务对应的特定的联邦学习业务场景,还可以将上面提到的各种联邦学习框架和联邦学习算法均理解成特定的联邦学习业务场景,例如建立起与Paillier加解密对应的特定的联邦学习业务场景,通过对这些特定的联邦学习业务场景的通用规律如频繁出现的类似数据运算需求进行总结归纳,可以发现在这些特定的联邦学习业务场景之上存在联邦学习通用业务场景。联邦学习通用业务场景可以理解为涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,也就是涵盖了某个参与方在某个特定的联邦学习业务场景(该特定的联邦学习业务场景可以通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义)下可能面对的绝大多数的数据运算需求。更进一步地,考虑到联邦学习技术往往要结合某个行业并进行深度的定制化,从而得出的联邦学习产品和服务是针对某个行业做出了定制化优化,因此上述的特定的联邦学习业务场景(通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义),如果归属于同一个行业的定制化方案,则往往具有高度相似的结构和功能。或者说,针对同一个行业深度绑定的联邦学习解决方案,尽管可能采用不同的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等,但是这些针对同一个行业深度绑定的联邦学习解决方案彼此之间也具有可以利用的通用规律,例如都对某一类型的数据运算有很高的需求或者说某一类型的数据运算出现频率非常高,又例如都对某一类型的数据格式有很高的需求或者说某一类型的数据格式出现频率非常高。例如,与银行业深度绑定的联邦学习解决方案(或者说联邦学习产品、联邦学习服务)往往需要应对第一种数据运算需求并因此都针对性地进行了优化,因此也在整体的数据运算需求上有所体现;与医疗服务行业深度绑定的联邦学习解决方案(或者说联邦学习产品、联邦学习服务)往往需要应对第二种数据运算需求并因此都针对性地进行了优化,因此也在整体的数据运算需求上有所体现。因此,针对银行业或者医疗服务行业或者其它行业而深度绑定及定制化优化的联邦学习产品及服务,可以认为对应特定于某个行业的联邦学习业务场景,这种特定于某个行业的联邦学习业务场景与上面所提及的特定于某种联邦学习算法的联邦学习业务场景(例如与RSA求交集的联邦学习任务对应的特定的联邦学习业务场景)之间的相似之处在于,可以发现能利用的通用规律,例如特定于某个行业的出现频率高的某种类型的数据运算或者数据格式。这意味着,不仅可以通过联邦学习通用业务场景的设定来预先规划并涵盖绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,而且可以通过特定于给定行业的联邦学习业务场景的设定来预先规划并涵盖用于该给定行业的联邦学习产品及服务的数据运算需求。如此,基于联邦学习通用业务场景的设定进行“粗线条”的优化设计,再结合特定于给定行业的联邦学习业务场景的设定(如特定于银行业的联邦学习业务场景、特定于医疗服务行业的联邦学习业务场景)进行“细线条”的进一步优化设计,可以更好地针对数据运算需求(还可以理解为包括了数据格式需求、利用率要求、功耗要求等各种能影响处理器计算性能和资源利用效率的因素)等作出提前的规划和设计,进而为处理器设计提供参考,有利于设计出能够满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率的联邦学习专用处理器。这一点结合下面图2及相关实施例进行更详细的说明。
图2示出了本申请实施例提供的联邦学习专用处理器的框图。如图2所示,联邦学习专用处理器200包括高速接口202,任务管理模块204,计算模块206,系统监控模块208以及数据控制模块210。高速接口202用于在联邦学习专用处理器200和相对于联邦学习专用处理器200的外部之间传输数据,例如负责联邦学习专用处理器200和外部处理器之间的数据传输及通讯交互。在一些示例性实施例中,高速接口202可以是符合高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)的接口或者是符合任意合适的总线标准的接口。高速接口202接收联邦学习任务,该联邦学习任务代表了需要通过该联邦学习专用处理器200来处理的数据运算需求。高速接口202还接收需要处理的数据或者说待计算数据或者说源数据。任务管理模块204用于对所接收的联邦学习任务进行管理以及对联邦学习任务进行解析,下面会更详细介绍任务管理模块204的功能。计算模块206用于执行联邦学习任务的计算流程,这一点下面详细说明。数据控制模块210用于对待计算数据进行数据收发、数据读写的控制。数据控制模块210与高速接口202连接并从高速接口202接收待计算数据,并用于将待计算数据写入到数据存储器以及从数据存储器读取待计算数据。该数据存储器(未示出)可以是外部的数据存储器用于提供外部数据缓存,也可以是联邦学习专用处理器200的内部组件,还可以是数据控制模块210的一部分,在此不做具体限定。数据控制模块210还与任务管理模块204连接并将待计算数据发送给任务管理模块204用于解析,以及通过任务管理模块204获得计算模块206的计算结果,并将计算结果写入外部的数据存储器或者通过高速接口202发送到外部。系统监控模块208用于对整个联邦学习专用处理器200进行状态监控,包括对当前处理中的任务数目和数据量进行统计,以及出现处理失败、处理错误的情况时进行上报。系统监控模块208一方面提供了在线实时监测联邦学习专用处理器200的功能,另一方面可以作为从外部来观测联邦学习专用处理器200的状态的接口。应当理解的是,上面提到的图2中各个组件各自的功能及结构,可以调整、增加、减少或者重新组合,并且一个或者多个组件的功能可以整合成单个组件来执行,在此不做具体限定。在一些示例性实施例中,数据控制模块210不通过任务管理模块204而是直接从计算模块206获得计算结果,但是在任务管理模块204的控制指令下将计算结果写入外部的数据存储器或者发送到外部。在一些示例性实施例中,数据控制模块210不从高速接口202直接地接收待计算数据,而是通过任务管理模块204获得待计算数据。在一些示例性实施例中,数据控制模块210在任务管理模块204的控制下将待计算数据发送给计算模块206并从计算模块206获得计算结果;任务管理模块204作为高速接口202和数据控制模块210之间的数据中转,从高速接口202获得待计算数据后转发给数据控制模块210,以及从数据控制模块210获得计算结果后转发给高速接口202,并且由任务管理模块204负责进行解析并控制待计算数据和计算结果的转发。在一些示例性实施例中,任务管理模块204和数据控制模块210可以整合为一个模块,由该整合得到的模块进行数据收发、数据读写,也进行联邦学习任务的管理以及联邦学习任务的解析。以计算模块206为核心,联邦学习专用处理器200的其它模块都是用于配合计算模块206以提供必要的对待计算数据的接收、对联邦学习任务的接收,以及提供必要的解析和管理功能,还有对计算结果进行存储或者发送外部等。
请继续参阅图2,计算模块206包括多个处理引擎用于提供多样化的并行处理,并且该多个处理引擎彼此独立。如上所述,任务管理模块204用于对所接收的联邦学习任务进行管理以及对联邦学习任务进行解析。具体地,高速接口202接收需要处理的联邦学习任务以及待计算数据。高速接口202将所接收的联邦学习任务发送给任务管理模块204。在一些实施例中,高速接口202将待计算数据发送给数据控制模块210,然后由数据控制模块210将待计算数据发送给任务管理模块204;在另一些实施例中,高速接口202直接地将待计算数据发送给任务管理模块204。任务管理模块204对联邦学习任务和待计算数据进行解析从而确定需要进行何种运算以及有多少数据需要计算等信息,并生成任务配置信息。任务管理模块204还根据该任务配置信息和计算模块206的实时状态生成与调用计算模块206执行该联邦学习任务有关的配置信息,并根据该配置信息来对计算模块206进行配置并调用配置好的计算模块206执行该联邦学习任务得到计算结果。任务管理模块204在生成与调用计算模块206执行该联邦学习任务有关的配置信息后,可以将待计算数据和该配置信息一起发送给计算模块206。计算模块206还包括引擎分发模块220用于将从任务管理模块204接收的待计算数据,根据该配置信息,选择性分发给相应的处理引擎进行运算。计算模块206还包括引擎合并模块222用于将与该联邦学习任务有关的处理引擎的计算结果进行合并,然后输出给数据控制模块210。任务管理模块204通过解析联邦学习任务和待计算数据得到的任务配置信息,至少包括了为完成该联邦学习任务需要进行何种运算以及待计算数据的个数的信息。在一种可能的实施方式中,该任务配置信息也可能从外部直接发送给高速接口202然后再由高速接口202发送给任务管理模块204。也就是说,任务配置信息可能由相对于联邦学习专用处理器200而言的外部处理器进行相关的解析并生成,或者,联邦学习任务和待计算数据以及相关联的任务配置信息可以一起通过高速接口202从外部发送给联邦学习专用处理器200。任务管理模块204可以根据现成的任务配置信息或者可以通过自身解析联邦学习任务和待计算数据来生成任务配置信息。接下来,任务管理模块204还需要结合任务配置信息和计算模块206的实时状态。计算模块206的实时状态至少包括计算模块206所包括的多个处理引擎中与执行该联邦学习任务有关的处理引擎的实时状态。通过任务配置信息中所包括的为完成该联邦学习任务需要进行何种运算的信息,可以确定计算模块206所包括的多个处理引擎中与执行该联邦学习任务有关的处理引擎,并且进而确定计算模块206所包括的多个处理引擎中与执行该联邦学习任务有关的处理引擎的实时状态。任务管理模块204结合任务配置信息和计算模块206的实时状态,因此根据该任务配置信息和计算模块206的实时状态生成与调用计算模块206执行该联邦学习任务有关的配置信息。这里,与调用计算模块206执行该联邦学习任务有关的配置信息也可以称之为引擎配置信息。引擎配置信息至少包括与调用计算模块206所包括的多个处理引擎中与执行该联邦学习任务有关的处理引擎的配置信息。换句话说,引擎配置信息为执行该联邦学习任务提供了必要的如何调用计算模块206中的处理引擎的信息。上面提到,通过任务配置信息中所包括的为完成该联邦学习任务需要进行何种运算的信息,可以确定计算模块206所包括的多个处理引擎中与执行该联邦学习任务有关的处理引擎,因此可以进一步确定与执行该联邦学习任务有关的处理引擎之间的调用次序,或者说,与执行该联邦学习任务有关的计算模块206的多个处理引擎的调用次序。总之,任务管理模块204基于所述联邦学习任务生成该联邦学习任务的任务配置信息,根据该任务配置信息确定计算模块206的多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据该任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据该引擎配置信息对该被调用的处理引擎进行配置和调用从而完成该联邦学习任务。
请继续参阅图2,任务管理模块204在根据该任务配置信息和该被调用的处理引擎的状态(也即,与执行该联邦学习任务有关的处理引擎的实时状态)生成引擎配置信息后,该引擎配置信息可以和待计算数据一起被发送给计算模块206的引擎分发模块220,由引擎分发模块220根据该引擎配置信息选择性分发给相应的处理引擎进行运算。如此,对特定联邦学习任务的处理流程开始于联邦学习专用处理器200从外部接收到该联邦学习任务和待计算任务,结束于计算模块206完成该联邦学习任务的计算并将计算结果写入外部的数据存储器或者发送到外部。其中,任务管理模块204负责对该联邦学习任务的处理流程进行统筹管理和控制,包括获得任务配置信息(现成的或者自身进行解析生成),根据该任务配置信息确定计算模块206的多个处理引擎的调用次序以及被调用的处理引擎,确定被调用的处理引擎的状态,根据该任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,最后根据该引擎配置信息对该被调用的处理引擎进行配置和调用从而完成该联邦学习任务。如此,通过结合特定于联邦学习任务的任务配置信息和特定于该联邦学习任务的被调用的处理引擎的状态,从而生成特定于该联邦学习任务的引擎配置信息,不仅结合了处理引擎的实时情况提高了灵活性,而且通过将该引擎配置信息和待计算数据一起发送给计算模块206,实现了数据流驱动的引擎分配机制,有利于简化控制操作。并且,为了提高任务之间切换的效率,可以通过流水式并行任务切换实现无缝切换。具体地,在引擎分发模块220对当前任务进行分发之后,就可以提前将当前任务的引擎配置信息发送给引擎合并模块222,从而实现了无缝切换。并且,引擎分发模块220对当前任务进行分发可以采用可保次序的分发方式,例如轮询方式或者依靠ID进行区分的随机轮询方式,这样可以确保引擎合并模块222能按照与引擎分发模块220的分发方式一致的合并方式进行计算结果的合并,从而提高任务之间切换的效率。
另外,联邦学习专用处理器200可以接收多个联邦学习任务或者说同时处理多个联邦学习任务,并针对多个联邦学习任务的每一个联邦学习任务,获得特定于该联邦学习任务的任务配置信息,根据特定于该联邦学习任务的任务配置信息确定计算模块206的多个处理引擎的调用次序(也就是特定于该联邦学习任务的计算模块206的多个处理引擎的调用次序)以及确定特定于该联邦学习任务的被调用的处理引擎,进而确定特定于该联邦学习任务的被调用的处理引擎的状态,根据特定于该联邦学习任务的任务配置信息和特定于该联邦学习任务的被调用的处理引擎的状态生成特定于该联邦学习任务的引擎配置信息,最后根据特定于该联邦学习任务的引擎配置信息对特定于该联邦学习任务的被调用的处理引擎进行配置和调用从而完成该联邦学习任务(特定于该联邦学习任务的引擎配置信息和与该联邦学习任务相关联的待计算数据一起被发送给计算模块206)。如此,针对多个联邦学习任务的每一个联邦学习任务,结合了针对该联邦学习任务的被调用的处理引擎的实时情况,而且实现了数据流驱动的引擎分配机制,有利于简化控制操作。进一步地,在一些实施例中,任务配置信息和引擎配置信息分别采用特定的数据格式来简化控制操作和提高数据流驱动的引擎分配机制的运行效率。上面提到,任务配置信息至少包括当前联邦学习任务需要进行何种运算以及待计算数据的个数的信息。具体地,任务配置信息包括:任务批次号或者当前任务的ID;任务配置信息的长度;待计算数据的长度或者待计算数据的个数;当前任务的运算模式(也就是当前联邦学习任务需要进行何种运算的信息);每一组数据的宽度(有时候涉及多组数据需要对每一组数据分别对待);操作数的个数(需要同时进行运算的操作数的个数)以及其它合适的自定义配置信息。应当理解的是,任务配置信息的具体内容及格式可以根据实际需要进行调整,只要满足至少包括待计算数据的个数和当前任务的运算模式。相对的,上面提到根据任务配置信息和处理引擎的状态生成引擎配置信息。引擎配置信息为执行该联邦学习任务提供了必要的如何调用计算模块206中的处理引擎的信息。具体地,引擎配置信息至少包括:引擎选择信息,也就是用于确定将待计算数据分发给计算模块206的多个处理引擎中的哪一个处理引擎进行计算;引擎分配信息,确定具体的数据分配方式或者分配原则。另外引擎配置信息也可以包括上述任务配置信息的内容,例如任务批次号或者当前任务的ID。在一种可能的实施方式中,任务配置信息和待计算数据被拼接在一起并占据一定大小的内存区域,在生成引擎配置信息后,用引擎配置信息直接替换任务配置信息,而且维持原来任务配置信息和待计算数据被拼接后所占的内存区域不变,也就是说引擎配置信息所占据的内存区域大小与原来任务配置信息所占据的内存区域大小一致,这样便于内存读写操作,也利于多个联邦学习任务的处理。在另一种可能的实施方式中,引擎配置信息是在原来任务配置信息基础上另外加上了引擎选择信息和引擎分配信息,也就是维持原来任务配置信息及其所占据的内存区域不变,另外分配额外区域来存储引擎选择信息和引擎分配信息,并且可选地该另外分配的额外区域与原来任务配置信息所占据的内存区域是连续的。如此,任务配置信息和引擎配置信息分别采用特定的数据格式来简化控制操作和提高数据流驱动的引擎分配机制的运行效率。
请继续参阅图2,上面提到了,联邦学习专用处理器200通过各种模块配合计算模块206,为多个联邦学习任务中每一个联邦学习任务,获得特定于该联邦学习任务的任务配置信息,确定特定于该联邦学习任务的计算模块206的多个处理引擎的调用次序,确定特定于该联邦学习任务的被调用的处理引擎的状态,以及根据特定于该联邦学习任务的任务配置信息和特定于该联邦学习任务的被调用的处理引擎的状态生成特定于该联邦学习任务的引擎配置信息,最后完成该联邦学习任务,这意味着结合了针对该联邦学习任务的被调用的处理引擎的实时情况,而且实现了数据流驱动的引擎分配机制,有利于简化控制操作。并且,上面还提到了,可选地,任务配置信息和引擎配置信息分别采用特定的数据格式来简化控制操作和提高数据流驱动的引擎分配机制的运行效率。如此优化设计后的联邦学习专用处理器200应用于例如图1所示的联邦学习业务场景,可以很好地满足联邦学习的应用中复杂多变的运算的需求。并且,联邦学习专用处理器200还通过对计算模块206的优化设计从而具有较好的计算性能和资源利用效率,这一点下面详细说明。
请参阅图2,图2所示的联邦学习专用处理器200的计算模块206包括多个处理引擎用于提供多样化的并行处理,并且该多个处理引擎彼此独立。上面关于图1的说明中提到了,联邦学习通用业务场景可以理解为涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,也就是涵盖了某个参与方在某个特定的联邦学习业务场景(该特定的联邦学习业务场景可以通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义)下可能面对的绝大多数的数据运算需求。在一种可能的实施方式中,计算模块206所包括的多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每一个处理引擎属于多个类别中的一个类别,所述多个类别包括加密、解密、密文运算以及密钥管理。这里,加密、解密、密文运算以及密钥管理这四个类别涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,或者说,联邦学习通用业务场景的数据运算需求可以展开为加密、解密、密文运算以及密钥管理这四个类别的组合。而多个处理引擎的每一个处理引擎属于这四个类别中的一个类别,可能两个或者多个处理引擎属于同一个类别,但是属于同一个类别的处理引擎彼此之间也是独立的并且用于实现不同的运算模式。例如,密文运算的类别下可能有密态加法引擎和密态乘法引擎这两个处理引擎。通过将多个处理引擎划分到加密、解密、密文运算以及密钥管理这四个类别,再进一步地在每个类别下提供彼此独立的用于实现不同运算模式的处理引擎,实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计。在一种可能的实施方式中,计算模块206所包括的多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎分别为密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行运算。这里,密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238合计九个处理引擎,涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,或者说,联邦学习通用业务场景的数据运算需求可以展开为这九个处理引擎各自对应的运算模式的组合。这九个处理引擎各自对应的运算模式之间没有重合,也就是说在功能划分上彼此独立,例如密态加法引擎和密态乘法引擎这两个处理引擎在功能划分上是彼此独立的。通过提供密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238,实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计。在一种可能的实施方式中,计算模块206所包括的多个处理引擎彼此独立且与多种算子模式一一匹配,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行相匹配的算子模式的运算,所述多种算子模式根据联邦学习通用业务场景预先设定。这里,多种算子模式根据联邦学习通用业务场景预先设定,因此与多种算子模式一一匹配的多个处理引擎涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,或者说,联邦学习通用业务场景的数据运算需求可以展开为根据联邦学习通用业务场景预先设定的多种算子模式的组合。该多种算子模式彼此之间没有重合,也就是说在功能划分上彼此独立。通过提供根据联邦学习通用业务场景预先设定的多种算子模式以及与该多种算子模式一一匹配的多个处理引擎,实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计。
请继续参阅图2,图2所示的联邦学习专用处理器200的计算模块206所包括的多个处理引擎,可以划分到加密、解密、密文运算以及密钥管理这四个类别再进一步地在每个类别下提供彼此独立的用于实现不同运算模式的处理引擎,还可以分别为密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238,还可以与根据联邦学习通用业务场景预先设定的多种算子模式一一匹配。总之,计算模块206所包括的多个处理引擎提供的是多样化的彼此独立的并行化处理,并且涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,或者说,联邦学习通用业务场景的数据运算需求可以通过计算模块206所包括的多个处理引擎得以进行高效并行化的处理。通过对计算模块206所包括的多个处理引擎进行这样的优化设计得到的联邦学习专用处理器200实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计,也就是能够应对任意可能的来自某个参与方在某个特定的联邦学习业务场景(该特定的联邦学习业务场景可以通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义)下可能面对的绝大多数的数据运算需求。这样有助于实现联邦学习产品和服务的大规模商业化落地。以图1所示的联邦学习业务场景为例,联邦学习意义下的业务场景中的任意数量的参与方(还可能包括联邦学习仲裁方)中的每个参与方都可以通过如图2所示的联邦学习专用处理器200来实现本地密态计算和数据交互的相关的数据运算需求。例如,某个参与方在与RSA求交集的联邦学习任务对应的特定的联邦学习业务场景下,产生了根据所接收的随机数和自身私钥生成另一个随机数并将生成的另一个随机数加密后发送出去的数据运算需求,则这样的数据运算需求可以通过该参与方所持有的联邦学习专用处理器200中的加密类别、密文运算类别及密钥管理类别下的处理引擎来处理,还可以通过该参与方所持有的联邦学习专用处理器200中的多个处理引擎(密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238)中的部分处理引擎来处理,还可以通过该参与方所持有的联邦学习专用处理器200中的与根据联邦学习通用业务场景预先设定的多种算子模式一一匹配的多个处理引擎中的部分处理引擎来处理。当该参与方处在另一个不同的特定的联邦学习业务场景下如与Paillier加解密对应的特定的联邦学习业务场景,则会产生不同的数据运算需求,但是该不同的数据运算需求依然可以通过该参与方所持有的联邦学习专用处理器200来处理,只是可能需要通过不同类别下的处理引擎或者多个处理引擎中的不同处理引擎来处理。不同的特定的联邦学习业务场景可能产生不同的数据运算需求,这是因为采用了不同的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等而导致的。上面提到,联邦学习专用处理器200涵盖了绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,或者说,联邦学习通用业务场景的数据运算需求可以通过计算模块206所包括的多个处理引擎得以进行高效并行化的处理,因此该参与方处在不同的特定的联邦学习业务场景下的数据运算需求都可以通过如图2所示的联邦学习专用处理器200进行高效并行化的处理。这意味着,联邦学习专用处理器200实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计,也就是能够应对任意可能的来自某个参与方在某个特定的联邦学习业务场景(该特定的联邦学习业务场景可以通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义)下可能面对的绝大多数的数据运算需求。
另外,图2所示的联邦学习专用处理器200中的多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎。这意味着处理引擎内部可能有多个处理子引擎,或者说二层子引擎。同一个处理引擎内部的多个处理子引擎能够进行并行计算从而提高计算效率,并且这些处理子引擎可以独立并行地完成计算,也可以各自完成不同的联邦学习任务的计算。例如,假设一次性下发了8个联邦学习任务,每一个联邦学习任务的运算模式都不同,则任务管理模块204在解析这8个任务后,会将这8个任务的数据分配到不同种类的处理引擎去计算,如此这8个任务是同时并行处理的。请参阅图3,图3示出了本申请实施例提供的图2所示的联邦学习专用处理器的处理引擎的框图。如图3所示,处理引擎300包括多个彼此独立的处理子引擎,分别为处理子引擎1、处理子引擎2、处理子引擎3直到处理子引擎N。这里N可以理解为处理引擎300内部的处理子引擎的个数。处理引擎300还包括子引擎分发单元310用于数据分发和子引擎合并单元320用于计算结果的合并。处理引擎300通过内部的子引擎分发单元310将待计算数据分发到相应的处理子引擎并将计算结果通过子引擎合并单元320进行合并后输出。图3所示的处理引擎300可以对应图2所示的联邦学习专用处理器200中的多个处理引擎的任意一个处理引擎,例如可以对应密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238中的任意一个。或者说,联邦学习专用处理器200的计算模块206所包括的多个处理引擎都具有类似于图3所示的处理引擎300的结构,从而可以通过内部的处理子引擎独立并行地完成计算。应当理解的是,图3所示的处理子引擎的个数N仅为示例性,处理引擎300内部的处理子引擎的个数可以是任意数字。另外,图2所示的联邦学习专用处理器200中的多个处理引擎的各自的处理子引擎的个数也可以是任意数字,不同的处理引擎各自的处理子引擎的个数可以是相同的也可以是不相同的。
继续参阅图2,上面提到了,通过对计算模块206所包括的多个处理引擎进行优化设计从而使得联邦学习通用业务场景的数据运算需求可以通过计算模块206所包括的多个处理引擎得以进行高效并行化的处理,联邦学习专用处理器200实现了基于联邦学习通用业务场景的设定进行“粗线条”的优化设计,也就是能够应对任意可能的来自某个参与方在某个特定的联邦学习业务场景(该特定的联邦学习业务场景可以通过所采用的联邦学习框架、联邦学习算法、安全协议、加解密技术方案以及通信方式等来定义)下可能面对的绝大多数的数据运算需求。另外,还可以通过特定于给定行业的联邦学习业务场景的设定来预先规划并涵盖用于该给定行业的联邦学习产品及服务的数据运算需求,从而结合特定于给定行业的联邦学习业务场景的设定(如特定于银行业的联邦学习业务场景、特定于医疗服务行业的联邦学习业务场景)进行“细线条”的进一步优化设计,进而可以更好地针对数据运算需求(还可以理解为包括了数据格式需求、利用率要求、功耗要求等各种能影响处理器计算性能和资源利用效率的因素)等作出提前的规划和设计,实现满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。具体地,联邦学习专用处理器200的所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。这意味着,所述多个处理引擎中的至少一个处理引擎的第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,因此可以配合联邦学习通用业务场景的设定进行“粗线条”的优化设计;而该至少一个处理引擎的第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,并且所述联邦学习子业务场景是基于所述联邦学习通用业务场景的多种预设子业务场景中的一种预设子业务场景,因此可以配合所述联邦学习子业务场景进行“细线条”的进一步优化设计。上面提到,图2所示的联邦学习专用处理器200中的多个处理引擎的各自的处理子引擎的个数可以是任意数字,而同一个处理引擎内部的处理子引擎能够进行并行计算从而提高计算效率,这意味着同一个处理引擎内部的处理子引擎的个数代表了该处理引擎的最大计算速度或者最大并行化计算能力。因此,将该至少一个处理引擎的内部的处理子引擎拆分成第一部分的处理子引擎和第二部分的处理子引擎,并分别根据联邦学习通用业务场景预先设定第一部分的处理子引擎的个数以及根据与所述联邦学习任务关联的联邦学习子业务场景调整第二部分的处理子引擎的个数,这样就使得该至少一个处理引擎的处理子引擎的总个数(也代表了该至少一个处理引擎的最大计算速度或者最大并行化计算能力)能够有两个维度的调整机制,分别是根据联邦学习通用业务场景预先设定以及根据与所述联邦学习任务关联的联邦学习子业务场景调整。这样就结合了配合联邦学习通用业务场景的设定进行“粗线条”的优化设计以及配合所述联邦学习子业务场景进行“细线条”的进一步优化设计。上面提到,特定于某个行业的联邦学习业务场景存在能利用的通用规律,例如特定于某个行业的出现频率高的某种类型的数据运算或者数据格式。因此,在通过联邦学习通用业务场景的设定来预先规划并涵盖绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求的基础上,通过特定于给定行业的联邦学习业务场景的设定来预先规划并涵盖用于该给定行业的联邦学习产品及服务的数据运算需求,可以更好地针对数据运算需求(还可以理解为包括了数据格式需求、利用率要求、功耗要求等各种能影响处理器计算性能和资源利用效率的因素)等作出提前的规划和设计。为此,根据联邦学习通用业务场景预先设定第一部分的处理子引擎的个数可以有助于实现通过联邦学习通用业务场景的设定来预先规划并涵盖绝大多数的各种可能的特定的联邦学习业务场景的数据运算需求,而根据与所述联邦学习任务关联的联邦学习子业务场景调整第二部分的处理子引擎的个数则有助于实现通过特定于给定行业的联邦学习业务场景的设定来预先规划并涵盖用于该给定行业的联邦学习产品及服务的数据运算需求。这里,与所述联邦学习任务关联的联邦学习子业务场景可以理解为对应特定于给定行业的联邦学习业务场景。例如,与银行业深度绑定的联邦学习解决方案(或者说联邦学习产品、联邦学习服务)往往需要应对第一种数据运算需求;与医疗服务行业深度绑定的联邦学习解决方案(或者说联邦学习产品、联邦学习服务)往往需要应对第二种数据运算需求。这里,设与银行业深度绑定的联邦学习解决方案要应对的第一种数据运算需求使得对密态乘法引擎的算力要求较高,而与医疗服务行业深度绑定的联邦学习解决方案要应对的第二种数据运算需求使得对同态加密引擎的算力要求较高。为此,图2所示的联邦学习专用处理器200的计算模块206所包括的多个处理引擎中的密态乘法引擎235所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,该密态乘法引擎235的第二部分的处理子引擎的个数根据与所述联邦学习任务关联的联邦学习子业务场景调整,因此当联邦学习专用处理器200用在银行业相关的联邦学习子业务场景时,该密态乘法引擎235的第二部分的处理子引擎的个数相应地增加以更好地满足与银行业深度绑定的联邦学习解决方案的数据运算需求;相对地,联邦学习专用处理器200的计算模块206所包括的多个处理引擎中的同态加密引擎232也由第一部分的处理子引擎和第二部分的处理子引擎组成,该同态加密引擎232的第二部分的处理子引擎的个数根据与所述联邦学习任务关联的联邦学习子业务场景调整,因此当联邦学习专用处理器200用在医疗服务行业相关的联邦学习子业务场景时,该同态加密引擎232的第二部分的处理子引擎的个数相应地增加以更好地满足与医疗服务行业深度绑定的联邦学习解决方案的数据运算需求。如此,结合特定于给定行业的联邦学习业务场景的设定,通过调整特定处理引擎的第二部分的处理子引擎的个数,可以在有限的计算资源和存储资源的限制下更好地满足与该给定行业深度绑定的联邦学习解决方案的数据运算需求。联邦学习专用处理器200的不同处理引擎彼此独立,因此通过调整特定处理引擎的第二部分的处理子引擎的个数,也调整了特定处理引擎的利用率、功耗等,并且间接调整了联邦学习专用处理器200对外体现的整体上的利用率和功耗等,这样有助于针对数据格式需求、利用率要求、功耗要求等各种能影响处理器计算性能和资源利用效率的因素作出提前的规划和设计。
总之,图2所示的联邦学习专用处理器200包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每一个处理引擎属于多个类别中的一个类别,所述多个类别包括加密、解密、密文运算以及密钥管理。其中,所述联邦学习专用处理器200用于接收联邦学习任务,通过任务管理模块204,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。如此,实现了数据流驱动的引擎分配机制和简化控制操作,还实现了基于联邦学习通用业务场景的设定进行优化设计以及针对联邦学习子业务场景进行优化设计,有利于满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
应当理解的是,与所述联邦学习任务关联的联邦学习子业务场景可以理解为对应特定于给定行业的联邦学习业务场景。联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,而多种预设子业务场景基于所述联邦学习通用业务场景。当通过行业划分来定义基于所述联邦学习通用业务场景的多种预设子业务场景,则每一种预设子业务场景可以对应一种行业,因此与所述联邦学习任务关联的联邦学习子业务场景也就可以理解为对应特定于给定行业的联邦学习业务场景。在一些示例性实施例中,可以通过除了行业划分以外的其它方式来定义基于所述联邦学习通用业务场景的多种预设子业务场景,只要这种定义方式得到的预设子业务场景具有可以利用的通用规律,例如都对某一类型的数据运算有很高的需求或者说某一类型的数据运算出现频率非常高,又例如都对某一类型的数据格式有很高的需求或者说某一类型的数据格式出现频率非常高。这些可利用的通用规律,与根据行业划分方式得到的银行业相关的联邦学习子业务场景或者医疗服务行业相关的联邦学习子业务场景类似,可以为如何调整第二部分的处理子引擎的个数提供参考,从而有利于针对联邦学习子业务场景进行优化设计,进而满足联邦学习的应用中复杂多变的运算的需求并且具有较好的计算性能和资源利用效率。
在一种可能的实施方式中,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。如此,根据行业划分方式得到多种预设子业务场景,有利于结合特定行业的数据运算需求进行优化设计。
在一种可能的实施方式中,所述联邦学习任务的所述任务配置信息包括与所述联邦学习任务关联的所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。如此,实现了根据联邦学习子业务场景确定处理引擎的调用次序,有利于结合特定行业的数据运算需求进行优化设计。并且,上面提到了,结合特定于给定行业的联邦学习业务场景的设定,通过调整特定处理引擎的第二部分的处理子引擎的个数,可以在有限的计算资源和存储资源的限制下更好地满足与该给定行业深度绑定的联邦学习解决方案的数据运算需求。除了调整特定处理引擎的第二部分的处理子引擎的个数,还可以进一步地根据联邦学习子业务场景确定处理引擎的调用次序,从而更好地结合特定于给定行业的联邦学习业务场景的设定提供与该给定行业深度绑定的联邦学习解决方案。下面以银行子业务场景和医疗服务子业务场景这两种特定于给定行业的联邦学习业务场景进行说明。
在银行子业务场景,往往需要处理庞大的用户数量但是用户的特征维度则比较有限,例如可能存在几千万甚至上亿的个人账户信息但是用户的特征维度则局限于常见的一些特征维度(如性别、年龄、地区、职业等)。这些特定于银行子业务场景的特点决定了在银行子业务场景下的计算模式或者说数据运算流程上具有相当的共性,而这些共性意味着在密态计算下需要处理由用户数据和特征所构成的非常大的数据矩阵,从而对密态计算和矩阵计算都提出了很高的算力要求。为此,在考虑到特定处理引擎的第二部分的处理子引擎的个数的设定,或者说,考虑特定处理引擎的处理子引擎的个数的配置时,可以针对在银行子业务场景下的计算模式或者说数据运算流程上的共性,做出优化设计。例如,可以适当减少同态加密引擎232的第二部分的处理子引擎的个数,因为需要进行同态加密的特征参数的数据量较少。同时增加用于密态计算和矩阵计算的处理引擎的第二部分的处理子引擎的个数,例如增加密态乘法引擎235和矩阵乘法引擎237各自的第二部分的处理子引擎的个数。另外,一般情况下,在银行子业务场景下的各种需求可以适用标准的多个处理引擎的调用次序。例如,依次调用所述密钥交换引擎230、所述数据求交引擎231、所述同态加密引擎232、所述密态加法引擎234、所述密态乘法引擎235、所述矩阵加法引擎236、所述矩阵乘法引擎237和所述同态解密引擎233。并且,在银行子业务场景下可以适用标准的多个处理引擎各自的处理子引擎的个数的配置,例如设定所述同态加密引擎232有150个处理子引擎,所述数据求交引擎231有150个处理子引擎,所述密态乘法引擎235有250个处理子引擎,所述矩阵乘法引擎237有250个处理子引擎,其它的处理引擎合计有600个处理子引擎。如此,结合特定于银行子业务场景的计算模式或者说数据运算流程上的共性,提供了与银行业深度绑定的联邦学习解决方案且更有利于解决银行子业务场景下的数据运算需求。
在医疗服务子业务场景,特别是涉及到基因工程和基因特征分析的领域,往往需要处理每种生物的庞大的基因特征,一种生物需要处理的基因特征数量往往在十万级别。这些特定于医疗服务子业务场景的特点决定了在医疗服务子业务场景下的计算模式或者说数据运算流程上具有相当的共性,而这些共性意味着对同态加密计算提出了很高的算力要求。为此,在考虑到特定处理引擎的第二部分的处理子引擎的个数的设定,或者说,考虑特定处理引擎的处理子引擎的个数的配置时,可以针对在医疗服务子业务场景下的计算模式或数据运算流程上的共性,做出优化设计。例如,可以增加同态加密引擎232的第二部分的处理子引擎的个数。另外,一般情况下,在医疗服务子业务场景下的各种需求可以适用标准的多个处理引擎的调用次序。例如,依次调用所述密钥交换引擎230、所述数据求交引擎231、所述同态加密引擎232、所述密态乘法引擎235、所述密态加法引擎234、所述矩阵乘法引擎237、所述矩阵加法引擎236、所述密态加法引擎234、所述密态乘法引擎235和同态解密引擎233。与上面提到的在银行子业务场景下的标准的多个处理引擎的调用次序相比较,可以看出计算特点不一样,调用次序不一样,所调用的处理引擎也不一样。另外,在医疗服务子业务场景下可以适用标准的多个处理引擎各自的处理子引擎的个数的配置,例如设定所述同态加密引擎232有200个处理子引擎,所述数据求交引擎231有200个处理子引擎,所述密态乘法引擎235有200个处理子引擎,所述矩阵乘法引擎237有200个处理子引擎,其它的处理引擎合计有600个处理子引擎。可以看出,针对医疗服务子业务场景的对同态加密计算的更高的算力要求,将更多的资源给了同态加密引擎232和数据求交引擎231,同时减少了给其它处理引擎的资源。通过比较上面提到的在银行子业务场景下的标准的多个处理引擎各自的处理子引擎的个数的配置和在医疗服务子业务场景下的标准的多个处理引擎各自的处理子引擎的个数的配置,可以看出,在有限的计算资源和存储资源的限制下,结合特定于给定行业的联邦学习业务场景的特点或者说结合联邦学习子业务场景的特点,可以定制化设计从而更好地满足与该给定行业深度绑定的联邦学习解决方案的数据运算需求。
如此,通过要求所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,以及要求根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序,图2所示的联邦学习专用处理器200实现了结合特定于给定行业的联邦学习业务场景的设定调整特定处理引擎的第二部分的处理子引擎的个数以及设定所述多个处理引擎的调用次序,因此考虑到了特定于给定行业的联邦学习业务场景或者说某种预设子业务场景下存在计算模式上的共性或者数据运算流程上的共性,从而利用这些共性来提供定制化的参数设定(例如根据联邦学习子业务场景区分配置不同的处理子引擎的个数)进而提高处理效率。
在一种可能的实施方式中,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和根据所述资源需求确定所述第二部分的处理子引擎的个数。如此,对特定行业的数据运算需求进行了更进一步的细化,确定了特定行业的数据运算需求包括其资源需求并进一步包括数据位宽需求和运算模式需求,从而有利于结合特定行业的数据运算需求进行优化设计。
在一种可能的实施方式中,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。如此,通过出厂默认值和调整值的结合,实现了围绕出厂默认值所代表的固定值在预设范围内进行灵活调整。
在一种可能的实施方式中,图2所示的联邦学习专用处理器200的计算模块206所包括的多个处理引擎,可以划分到加密、解密、密文运算以及密钥管理这四个类别,并且进一步地在每个类别下提供彼此独立的用于实现不同运算模式的处理引擎,包括密钥交换引擎230、数据求交引擎231、同态加密引擎232、同态解密引擎233、密态加法引擎234、密态乘法引擎235、矩阵加法引擎236、矩阵乘法引擎237以及密文累加引擎238中的一部分或者全部。在一些实施中,密文累加引擎238可以不被包括在计算模块206中,并且加密、解密、密文运算以及密钥管理这四个类别下的处理引擎也不包括提供与密文累加引擎238相同或者类似的运算模式的处理引擎。
在一种可能的实施方式中,所述密钥交换引擎230用于两方或多方之间的密钥交换,也就是互相交换通讯的钥匙从而能互相解析对方发过来的数据。所述数据求交引擎231用于计算和统计联邦学习训练双方的数据交集,例如求得两个数据集之间重合或非重合的区域。所述数据求交引擎231可以基于RSA求交集算法或者其它算法。所述同态加密引擎232用于全同态加密和半同态加密。所述同态解密引擎233用于全同态解密和半同态解密,是同态加密的逆运算。所述密态加法引擎234用于向量级密态加法,例如将同态加密后的数据进行加法运算。所述密态乘法引擎235用于向量级密态乘法,例如将一个2048比特的加密后的大整数和一个常数相乘。所述矩阵加法引擎236用于数组和矩阵之间的密态加法以及矩阵和矩阵之间的密态加法。所述矩阵乘法引擎237用于数组和矩阵之间的密态乘法以及矩阵和矩阵之间的密态乘法。所述密文累加引擎238用于密文数据的串行累加计算。应当理解的是,不同的运算任务或者不同的联邦学习算法需要耗费不同的算力,因此各种处理引擎各自的处理子引擎的个数往往不同。一般来说,同态加密计算、解密计算、矩阵乘法运算以及密态乘法比较耗费算力,因此对应的处理引擎的处理子引擎个数相对较多,可能在300个以上;而密钥交换计算的计算量较小且计算周期较短,因此对应的处理引擎的处理子引擎个数相对较少,可能在10个以下。但是,各种处理引擎是彼此独立的,因此联邦学习专用处理器200的计算模块206所包括的多个处理引擎的各自的处理子引擎的个数也是彼此独立的,并且可以分别独立地进行调整,只是可能受限于联邦学习专用处理器200的有限计算资源。
在一种可能的实施方式中,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。如此,可以充分空闲处理子引擎,提高整体资源利用效率,特别是在有多个联邦学习任务要处理的情况下可以更好地发挥处理引擎内部的处理子引擎可以独立进行并行化计算的特性。另外,任务管理模块204可以监控某个联邦学习任务是否完成,也就是待计算数据的个数是否已经归零或者所有的待计算数据都计算完毕,并且在监控该联邦学习任务的处理过程的同时也指示数据控制模块210做出相应操作。在一些实施例中,所述特定次序包括顺序轮询方式或者随机轮询方式。在一些实施例中,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。如此,通过监控该被调用的处理引擎的利用率,可以更好地进行资源配置以进一步提高整体利用率。在一些实施例中,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。如此,通过监控该被调用的处理引擎的功耗,可以更好地进行资源配置以进一步降低整体功耗。
图2所示的联邦学习专用处理器200可以是一种芯片,可以基于任意合适的处理器技术实现,可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。并且,联邦学习专用处理器200可以是采用异构计算或者异构运算或者异构计算架构的芯片。这里,异构计算指的是一般意义上使用不同类型的指令集或者不同的体系架构的计算单元来组成系统进行计算的方式。联邦学习专用处理器200所采用的体系架构或者处理器技术,可以包括但是不限于,专用集成电路(Application-Specific Integrated Circuit,ASIC),粗颗粒可重构计算架构(Coarse-grained Reconfigurable Architecture,CGRA),数字信号处理(Digital SignalProcessing,DSP)。并且,联邦学习专用处理器200所使用的处理器或者计算单元可以在以下方面上保持一致或者具有不一致:指令集、指令体系、硬件架构、控制流、数据流、可重构性特别是动态可重构性,以及其它任意适合的指标或者特征。并且,本申请旨在包括在本申请提交或公布之后随着异构计算这一概念的演变而被包括在异构计算的概念相关理解中的指标或者特征以及适合用于串行计算或者并行计算的处理器技术或者集成电路硬件结构。
在一种可能的实施方式中,联邦学习专用处理器200可以是一种用于联邦学习的芯片。所述芯片包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行运算。其中,所述芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。在一些实施例中,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和根据所述资源需求确定所述第二部分的处理子引擎的个数。在一些实施例中,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。在一些实施例中,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。在一些实施例中,所述联邦学习子业务场景是银行子业务场景,根据所述银行子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态加法引擎、所述密态乘法引擎、所述矩阵加法引擎、所述矩阵乘法引擎和所述同态解密引擎。在一些实施例中,所述联邦学习子业务场景是医疗服务子业务场景,根据所述医疗服务子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态乘法引擎、所述密态加法引擎、所述矩阵乘法引擎、所述矩阵加法引擎、所述密态加法引擎、所述密态乘法引擎和同态解密引擎。
在一种可能的实施方式中,联邦学习专用处理器200是联邦学习处理芯片,并且可以基于任意合适的联邦学习处理芯片技术实现。所述联邦学习处理芯片包括:多个处理引擎,其中,所述多个处理引擎彼此独立且与多种算子模式一一匹配,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行相匹配的算子模式的运算,所述多种算子模式根据联邦学习通用业务场景预先设定。其中,所述联邦学习处理芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多种算子模式的运算次序,根据所述多种算子模式的运算次序确定相匹配的所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务。其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。在一些实施例中,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。在一些实施例中,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎。在一些实施例中,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。在一些实施例中,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。在一些实施例中,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。在一些实施例中,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多种算子模式的运算次序,包括:根据所述联邦学习子业务场景确定所述多种算子模式的运算次序。
请继续参阅图2,应当理解的是,图2所示的联邦学习专用处理器200,以及上面各个实施例及各种实施方式所提及的用于联邦学习的芯片、联邦学习处理芯片,可以采用任意合适的形态、任意合适的体系架构或者任意合适的处理器技术,只要能满足上面提到的内在逻辑关系和能实现上面所描述的解决方案及具有所提及的技术效果。例如,图2所示的联邦学习专用处理器200,以及上面各个实施例及各种实施方式所提及的用于联邦学习的芯片、联邦学习处理芯片可以是ASIC。再例如,图2所示的联邦学习专用处理器200,以及上面各个实施例及各种实施方式所提及的用于联邦学习的芯片、联邦学习处理芯片可以是FPGA或者是基于FPGA实现或者理解为基于FPGA的联邦学习专用处理架构。另外,图2所示的联邦学习专用处理器200,以及上面各个实施例及各种实施方式所提及的用于联邦学习的芯片、联邦学习处理芯片还可以是基于异构计算或者异构运算或者异构计算架构。
图4示出了本申请实施例提供的包括图2所示的联邦学习专用处理器的联邦学习处理系统的框图。如图4所示,该联邦学习处理系统包括通用处理器420,联邦学习专用处理器400,第一存储器430以及第二存储器410。其中,图4所示的联邦学习专用处理器400对应图2所示的联邦学习专用处理器200。联邦学习专用处理器400可以是一种专门用于联邦学习领域数据运算的专用处理器,可以作为一种硬件芯片或者称之为联邦学习芯片。联邦学习专用处理器400在整个联邦学习网络系统中,通常会与通用处理器420(例如CPU)配合使用,使整个联邦学习形成一个完整的系统,完成各种各样的流程控制、网络交互、数据运算,同时使整个系统达到效率最大化。而通用处理器420和联邦学习专用处理器400之间通过高速接口来传输数据(如PCIE 4.0)。同时联邦学习专用处理器400外部可以挂载数据存储器(如图4所示的第二存储器410),以满足对数据缓存的需要。另外,通用处理器420也可以与第一存储器430连接。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。

Claims (25)

1.一种联邦学习专用处理器,其特征在于,所述联邦学习专用处理器包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每一个处理引擎属于多个类别中的一个类别,所述多个类别包括加密、解密、密文运算以及密钥管理,
其中,所述联邦学习专用处理器用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务,
其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
2.根据权利要求1所述的联邦学习专用处理器,其特征在于,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。
3.根据权利要求2所述的联邦学习专用处理器,其特征在于,所述联邦学习任务的所述任务配置信息包括与所述联邦学习任务关联的所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。
4.根据权利要求2所述的联邦学习专用处理器,其特征在于,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:
根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和
根据所述资源需求确定所述第二部分的处理子引擎的个数。
5.根据权利要求4所述的联邦学习专用处理器,其特征在于,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:
所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。
6.根据权利要求1至5中任一项所述的联邦学习专用处理器,其特征在于,所述多个处理引擎包括密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎。
7.根据权利要求6所述的联邦学习专用处理器,其特征在于,所述同态加密引擎用于全同态加密和半同态加密,所述同态解密引擎用于全同态解密和半同态解密,所述密态加法引擎用于向量级密态加法,所述密态乘法引擎用于向量级密态乘法,所述矩阵加法引擎用于数组和矩阵之间的密态加法以及矩阵和矩阵之间的密态加法,所述矩阵乘法引擎用于数组和矩阵之间的密态乘法以及矩阵和矩阵之间的密态乘法,所述密文累加引擎用于密文数据的串行累加计算。
8.根据权利要求1至5中任一项所述的联邦学习专用处理器,其特征在于,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:
当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和
当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。
9.根据权利要求8所述的联邦学习专用处理器,其特征在于,所述特定次序包括顺序轮询方式或者随机轮询方式。
10.根据权利要求8所述的联邦学习专用处理器,其特征在于,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。
11.根据权利要求8所述的联邦学习专用处理器,其特征在于,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。
12.一种芯片,用于联邦学习,其特征在于,所述芯片包括彼此独立的多个处理引擎,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行运算,
其中,所述芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务,
其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
13.根据权利要求12所述的芯片,其特征在于,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的所述联邦学习子业务场景调整,包括:
根据所述联邦学习子业务场景确定与所述联邦学习子业务场景相对应的资源需求,所述资源需求包括数据位宽需求和运算模式需求;和
根据所述资源需求确定所述第二部分的处理子引擎的个数。
14.根据权利要求13所述的芯片,其特征在于,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,包括:
所述第一部分的处理子引擎的个数是出厂默认值和调整值的和,所述调整值根据所述联邦学习通用业务场景在预设范围内确定。
15.根据权利要求12所述的芯片,其特征在于,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多个处理引擎的调用次序,包括:根据所述联邦学习子业务场景确定所述多个处理引擎的调用次序。
16.根据权利要求15所述的芯片,其特征在于,所述联邦学习子业务场景是银行子业务场景,根据所述银行子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态加法引擎、所述密态乘法引擎、所述矩阵加法引擎、所述矩阵乘法引擎和所述同态解密引擎。
17.根据权利要求15所述的芯片,其特征在于,所述联邦学习子业务场景是医疗服务子业务场景,根据所述医疗服务子业务场景确定的所述多个处理引擎的调用次序包括依次调用所述密钥交换引擎、所述数据求交引擎、所述同态加密引擎、所述密态乘法引擎、所述密态加法引擎、所述矩阵乘法引擎、所述矩阵加法引擎、所述密态加法引擎、所述密态乘法引擎和同态解密引擎。
18.一种联邦学习处理芯片,其特征在于,所述联邦学习处理芯片包括:
多个处理引擎,其中,所述多个处理引擎彼此独立且与多种算子模式一一匹配,所述多个处理引擎的每一个处理引擎包括并行的至少一个处理子引擎,所述多个处理引擎的每个处理引擎被调用时通过各自的处理子引擎独立进行相匹配的算子模式的运算,所述多种算子模式根据联邦学习通用业务场景预先设定,
其中,所述联邦学习处理芯片用于接收联邦学习任务,基于所述联邦学习任务生成所述联邦学习任务的任务配置信息,根据所述任务配置信息确定所述多种算子模式的运算次序,根据所述多种算子模式的运算次序确定相匹配的所述多个处理引擎的调用次序,根据该调用次序确定被调用的处理引擎,根据所述任务配置信息和该被调用的处理引擎的状态生成引擎配置信息,根据所述引擎配置信息对该被调用的处理引擎进行配置和调用从而完成所述联邦学习任务,
其中,所述多个处理引擎中的至少一个处理引擎所包括的处理子引擎由第一部分的处理子引擎和第二部分的处理子引擎组成,所述第一部分的处理子引擎的个数根据所述联邦学习通用业务场景预先设定,所述第二部分的处理子引擎的个数配置为可根据与所述联邦学习任务关联的联邦学习子业务场景调整,所述联邦学习子业务场景是多种预设子业务场景中的一种预设子业务场景,所述多种预设子业务场景基于所述联邦学习通用业务场景。
19.根据权利要求18所述的联邦学习处理芯片,所述多种预设子业务场景包括以下至少之一:银行子业务场景、电商子业务场景、安防子业务场景、政务子业务场景、交通子业务场景、证券子业务场景、医疗服务子业务场景、制药子业务场景、航空子业务场景。
20.根据权利要求19所述的联邦学习处理芯片,所述多个处理引擎分别为密钥交换引擎、数据求交引擎、同态加密引擎、同态解密引擎、密态加法引擎、密态乘法引擎、矩阵加法引擎、矩阵乘法引擎以及密文累加引擎。
21.根据权利要求20所述的联邦学习处理芯片,该被调用的处理引擎的状态包括该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎的个数,所述引擎配置信息包括该被调用的处理引擎的数据分配方式,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,包括:
当所述空闲处理子引擎的个数大于或者等于待计算数据的个数时,按照特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎,所述待计算数据的个数根据所述任务配置信息确定;和
当所述空闲处理子引擎的个数小于所述待计算数据的个数时,重复进行:按照所述特定次序分配所述待计算数据给该被调用的处理引擎所包括的处理子引擎中的空闲处理子引擎直到所有空闲处理子引擎被分配。
22.根据权利要求20所述的联邦学习处理芯片,该被调用的处理引擎的状态还包括该被调用的处理引擎的利用率,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的利用率调整该被调用的处理引擎的资源配置。
23.根据权利要求20所述的联邦学习处理芯片,该被调用的处理引擎的状态还包括该被调用的处理引擎的功耗,所述引擎配置信息包括该被调用的处理引擎的资源配置,其中,根据所述任务配置信息和该被调用的处理引擎的状态生成所述引擎配置信息,还包括:根据所述任务配置信息和该被调用的处理引擎的功耗调整该被调用的处理引擎的资源配置。
24.根据权利要求18所述的联邦学习处理芯片,所述任务配置信息包括所述联邦学习子业务场景,其中,根据所述任务配置信息确定所述多种算子模式的运算次序,包括:根据所述联邦学习子业务场景确定所述多种算子模式的运算次序。
25.根据权利要求18至24中任一项所述的联邦学习处理芯片,其特征在于,所述联邦学习处理芯片基于FPGA实现。
CN202111492722.XA 2021-12-08 2021-12-08 联邦学习专用处理器、联邦学习处理芯片及芯片 Active CN113900828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111492722.XA CN113900828B (zh) 2021-12-08 2021-12-08 联邦学习专用处理器、联邦学习处理芯片及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111492722.XA CN113900828B (zh) 2021-12-08 2021-12-08 联邦学习专用处理器、联邦学习处理芯片及芯片

Publications (2)

Publication Number Publication Date
CN113900828A true CN113900828A (zh) 2022-01-07
CN113900828B CN113900828B (zh) 2022-03-04

Family

ID=79025781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111492722.XA Active CN113900828B (zh) 2021-12-08 2021-12-08 联邦学习专用处理器、联邦学习处理芯片及芯片

Country Status (1)

Country Link
CN (1) CN113900828B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826617A (zh) * 2022-04-29 2022-07-29 西北工业大学 工业物联网终端系统设计、数据验证方法及硬件加速装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271712A1 (en) * 2005-05-04 2006-11-30 Arm Limited Use of a data engine within a data processing apparatus
CN108287759A (zh) * 2017-01-10 2018-07-17 阿里巴巴集团控股有限公司 处理数据过程中的调度方法、装置和系统
CN109858607A (zh) * 2019-03-08 2019-06-07 网宿科技股份有限公司 一种模型应用方法、管理方法、系统及服务器
CN111832050A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的基于FPGA芯片实现的Paillier加密方案
CN112000598A (zh) * 2020-07-10 2020-11-27 深圳致星科技有限公司 用于联邦学习的处理器、异构处理系统及隐私数据传输方法
CN112100673A (zh) * 2020-09-29 2020-12-18 深圳致星科技有限公司 用于隐私计算的联邦学习加速器和rsa交集计算方法
CN112286752A (zh) * 2020-09-29 2021-01-29 深圳致星科技有限公司 一种联邦学习异构处理系统的算法验证方法及系统
CN112685159A (zh) * 2020-12-30 2021-04-20 深圳致星科技有限公司 基于fpga异构处理系统的联邦学习计算任务处理方案
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN112883408A (zh) * 2021-04-29 2021-06-01 深圳致星科技有限公司 用于隐私计算的加解密系统和芯片
CN112988237A (zh) * 2021-04-21 2021-06-18 深圳致星科技有限公司 一种Paillier解密系统、芯片和方法
US20210294600A1 (en) * 2020-03-19 2021-09-23 International Business Machines Corporation Automated transformation of applications to a target computing environment
CN113468099A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 可重构计算装置、处理器及方法
CN113568731A (zh) * 2021-09-24 2021-10-29 苏州浪潮智能科技有限公司 一种任务调度方法、芯片以及电子设备
CN113656823A (zh) * 2021-10-14 2021-11-16 深圳致星科技有限公司 用于联邦学习和隐私计算的密态加法计算装置及系统

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271712A1 (en) * 2005-05-04 2006-11-30 Arm Limited Use of a data engine within a data processing apparatus
CN108287759A (zh) * 2017-01-10 2018-07-17 阿里巴巴集团控股有限公司 处理数据过程中的调度方法、装置和系统
CN109858607A (zh) * 2019-03-08 2019-06-07 网宿科技股份有限公司 一种模型应用方法、管理方法、系统及服务器
US20210294600A1 (en) * 2020-03-19 2021-09-23 International Business Machines Corporation Automated transformation of applications to a target computing environment
CN111832050A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的基于FPGA芯片实现的Paillier加密方案
CN112000598A (zh) * 2020-07-10 2020-11-27 深圳致星科技有限公司 用于联邦学习的处理器、异构处理系统及隐私数据传输方法
CN112286752A (zh) * 2020-09-29 2021-01-29 深圳致星科技有限公司 一种联邦学习异构处理系统的算法验证方法及系统
CN112100673A (zh) * 2020-09-29 2020-12-18 深圳致星科技有限公司 用于隐私计算的联邦学习加速器和rsa交集计算方法
CN112685159A (zh) * 2020-12-30 2021-04-20 深圳致星科技有限公司 基于fpga异构处理系统的联邦学习计算任务处理方案
CN112733161A (zh) * 2020-12-30 2021-04-30 深圳致星科技有限公司 用于联邦学习密文运算的装置及方法
CN112988237A (zh) * 2021-04-21 2021-06-18 深圳致星科技有限公司 一种Paillier解密系统、芯片和方法
CN112883408A (zh) * 2021-04-29 2021-06-01 深圳致星科技有限公司 用于隐私计算的加解密系统和芯片
CN113468099A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 可重构计算装置、处理器及方法
CN113568731A (zh) * 2021-09-24 2021-10-29 苏州浪潮智能科技有限公司 一种任务调度方法、芯片以及电子设备
CN113656823A (zh) * 2021-10-14 2021-11-16 深圳致星科技有限公司 用于联邦学习和隐私计算的密态加法计算装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
QINGYANG ET.AL: "Federated Machine Learning: Concept and Applications", 《ACM TRANS》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826617A (zh) * 2022-04-29 2022-07-29 西北工业大学 工业物联网终端系统设计、数据验证方法及硬件加速装置

Also Published As

Publication number Publication date
CN113900828B (zh) 2022-03-04

Similar Documents

Publication Publication Date Title
US20230028606A1 (en) Method and apparatus for vertical federated learning
Abadi et al. A calculus for cryptographic protocols: The spi calculus
US20230188319A1 (en) System and method for privacy-preserving distributed training of machine learning models on distributed datasets
Nordholt et al. Minimising communication in honest-majority MPC by batchwise multiplication verification
CN112183730A (zh) 一种基于共享学习的神经网络模型的训练方法
CN112070222B (zh) 用于联邦学习的处理装置、加速器及方法
CN112685159B (zh) 基于fpga异构处理系统的联邦学习计算任务处理方案
Dong et al. FLOD: Oblivious defender for private Byzantine-robust federated learning with dishonest-majority
CN114731274A (zh) 分布式随机梯度下降的安全联合
Burkhalter et al. Zeph: Cryptographic enforcement of end-to-end data privacy
WO2020199785A1 (zh) 私有数据的处理方法、计算方法及所适用的设备
CN113468099B (zh) 可重构计算装置、处理器及方法
CN114021734B (zh) 用于联邦学习和隐私计算的参数计算装置、系统及方法
CN112883408B (zh) 用于隐私计算的加解密系统和芯片
CN113900828B (zh) 联邦学习专用处理器、联邦学习处理芯片及芯片
CN113407979B (zh) 用于纵向联邦逻辑回归学习的异构加速方法、装置及系统
CN114064278A (zh) 用于联邦学习的异构加速引擎及方法
CN113129149A (zh) 基于区块链和安全多方计算的交易风险识别方法和装置
CN112100673A (zh) 用于隐私计算的联邦学习加速器和rsa交集计算方法
CN113946846B (zh) 用于联邦学习和隐私计算的密文计算装置及方法
CN115801220A (zh) 加速设备、计算系统及加速方法
CN113591097A (zh) 业务数据处理方法、装置、电子设备及存储介质
Patel et al. Arithmetic and Boolean secret sharing MPC on FPGAs in the data center
CN114329565A (zh) 一种数据共享方法、装置及存储介质
CN116342249A (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
GR01 Patent grant
GR01 Patent grant