CN112346833A - 用于隐私计算的任务处理方法、处理器及异构处理*** - Google Patents
用于隐私计算的任务处理方法、处理器及异构处理*** Download PDFInfo
- Publication number
- CN112346833A CN112346833A CN202011062790.8A CN202011062790A CN112346833A CN 112346833 A CN112346833 A CN 112346833A CN 202011062790 A CN202011062790 A CN 202011062790A CN 112346833 A CN112346833 A CN 112346833A
- Authority
- CN
- China
- Prior art keywords
- calculation
- computing
- task
- data
- task processing
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本说明书的实施例提供一种处理器。该处理器包括接口模块、任务管理模块和多个计算模块。接口模块从外部设备接收算法流程表、计算任务处理源数据和计算任务配置数据;任务管理模块根据算法流程表和计算任务配置数据按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块,得到所述算法计算任务处理结果数据;多个计算模块均并列且独立地与所述任务管理模块连接,且多个计算模块分别用于执行不同的计算,并将计算结果发送给任务管理模块。由于多个执行不同计算的计算模块均并列且独立地与任务管理器相连,计算任务中相同的计算步骤均可调取相同的计算模块,即相同的计算模块可复用,减少了计算模块消耗的资源量。
Description
技术领域
本说明书实施例通常涉及硬件计算领域,尤其涉及用于联邦学习计算的任务处理方法、处理器及异构处理***。
背景技术
隐私计算涉及多种算法,而FPGA凭借着其强大的计算能力,对于算力的提高起到了关键性的作用。但FPGA的算法实现与CPU和GPU不同,设计出的计算单元在FPGA上是固定的电路形态,难以根据算法的需求动态调整板卡的功能。也就是说,有的计算单元即使暂时不被使用,其仍然占据着FPGA上的计算和存储资源,而不能在FPGA工作过程中动态地消除和生成。
当需要在一块FPGA上同时实现多种算法,一种处理方法为通过算法设计固定的数据链路,比如计算模块A连接计算模块B,计算模块B再连接计算模块C,数据流依次通过这些计算模块,如果在某算法中不会用到的计算模块,则对这些计算模块执行旁路处理,即该计算模块不进行运算,直接向下级模块转发数据。应用该处理方法,当需要执行多个相同的计算时,需要例化多个相同的计算单元进行处理,资源消耗较大。
发明内容
鉴于上述,本说明书的实施例提供一种用于隐私计算的任务处理方法、处理器及异构处理***。利用该任务处理方法、处理器及异构处理***,可以实现多个计算的并行处理,提高了计算的效率;且同一个计算模块可反复使用,减少了计算模块消耗的资源量。
根据本说明书的实施例的一个方面,提供一种第一处理器,包括:接口模块,所述第一处理器通过所述接口模块从外部设备接收算法流程表、计算任务处理源数据和计算任务配置数据,以及向外部设备发送计算任务处理结果数据;任务管理模块,接收所述接口模块发送的所述算法流程表、计算任务处理源数据和计算任务配置数据,根据所述算法流程表和所述计算任务配置数据按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块,得到所述计算任务处理结果数据;及多个计算模块,所述多个计算模块分别执行不同的计算,且所述多个计算模块均并列且独立地与所述任务管理模块连接,根据所述任务管理类模块分发的所述计算任务处理源数据和相关配置数据,运算得到所述计算任务处理结果数据,以及将所述计算任务处理结果数据发送给所述任务管理模块。
可选地,在上述方面的一个示例中,所述计算模块包括计算管理模块和多个计算引擎,多个计算引擎均执行相同的计算且均并列且独立地与所述计算管理模块连接,所述计算管理模块根据所述多个计算引擎的计算状态,将所述计算任务处理源数据和相关配置数据发送到指定的计算引擎进行计算处理,所述计算引擎计算处理后得到的计算任务处理结果数据发送给所述计算管理模块,再由所述计算管理模块发送给所述任务管理模块。
可选地,在上述方面的一个示例中,所述算法流程表包括多个计算步骤,以及每个计算步骤的开始优先级和结束优先级,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块。
根据本说明书的实施例的另一方面,提供一种处理设备,包括:如上述的第一处理器;以及存储器,与所述第一处理器可通信地连接,被配置为存储从外部设备接收计算任务处理源数据以及根据任务处理结果数据得到的运算结果数据。
根据本说明书的实施例的另一方面,提供一种异构处理***,包括:主处理设备,包括主处理器;以及从处理设备,包括如上述的第一处理器,其中,所述主处理设备被配置为将所述算法流程表、计算任务处理源数据和计算任务配置数据发送给所述从处理设备,以及从所述从处理设备接收根据所述计算任务处理结果数据得到的运算结果数据。
根据本说明书的实施例的另一方面,提供一种计算任务处理方法,包括:所述计算任务处理方法是由从处理设备执行,所述主处理设备包括上位机,所述从处理设备包括第一处理器,所述第一处理器包括接口模块、任务管理模块和多个并行且独立的计算模块,所述计算任务处理方法包括:经由所述接口模块从上位机接收算法流程表、计算任务处理源数据和计算任务配置数据;经由所述任务管理模块从所述接口模块接收所述算法流程表、所述计算任务处理源数据和所述计算任务配置数据,根据所述算法流程表按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块;经由所述计算模块执行计算任务处理得到计算任务处理结果数据并提供给所述任务管理模块;经由所述任务管理模块将根据所述计算任务处理结果数据得到的运算结果数据提供给所述接口模块;以及经由所述接口模块将所述运算结果数据发送给所述上位机。
可选地,在上述方面的一个示例中,所述算法流程表包括多个计算步骤,以及每个计算步骤的开始优先级和结束优先级,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块。
可选地,在上述方面的一个示例中,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块,包括:开始优先级相同的计算步骤对应的计算任务处理源数据同时分发,且由计算模块同时进行计算处理。
可选地,在上述方面的一个示例中,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块,包括:每个计算步骤开始执行前,将该计算步骤的开始优先级和其他计算步骤的结束优先级进行比较,当所有结束优先级比该步骤开始优先级更高的计算步骤完成后,再启动进行该计算步骤的计算任务处理源数据和相关配置数据的分发。
可选地,在上述方面的一个示例中,当需要更新算法流程表时,所述接口模块从上位机接收更新的算法流程表并覆盖原算法流程表,当接收到相应的计算任务时,所述任务管理模块根据更新的算法流程表将相应的计算任务处理源数据和相关配置数据分发给所述相应的计算模块。
根据本说明书的实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得机器执行如上所述的任务处理方法。
附图说明
图1示出了根据本说明书的实施例的异构处理***1的示例架构示意图。
图2示出了根据本说明书实施例的计算模块113的示例示意图。
图3示出了根据本说明书的实施例的由从处理设备10中的从处理器110执行的任务处理方法的流程图。
图4示出了根据本说明书的实施例的执行一个具体算法的流程图。
具体实现方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在隐私计算领域,联邦学习是很重要的机器学习框架。该机器学习框架可以在保证不同企业、机构或用户的数据安全性、私密性和合法性的前提下,实现双方数据的共享,例如,用于AI的训练和学习,从而打破数据孤岛限制。
数据是机器学习的基础,要保证不同企业或用户之间数据安全而私密地共享,则需要对数据进行多方安全计算处理。在对数据进行多方安全计算的过程中需要用到Paillier、RSA和Hash等多种算法。其中,Paillier同态加密算法是一种高位宽、大整数的复杂数学运算,其计算量非常大,而且还涉及到对计算实时性和性能的要求,从而使得计算***对硬件处理器有很高的要求。
FPGA是一种可编程设计的硬件芯片,具有高灵活性、高并行度和低延迟处理的特点。FPGA的内部可以定制化算法设计或控制逻辑,并且FPGA上的算法实现属于“硬件实现”,最终运行的状态是特定的电路结构,没有操作***和指令的概念,从而使得FPGA能够高度并行且快速地完成数据处理。
在联邦学习的背景下,针对AI的训练和学习,涉及到很多人工智能算法,从硬件层面上优化算法计算的硬件***,更灵活的适用于多种算法的计算需求,成为亟待解决的问题。
本说明书的实施例提供一种可适用于多种算法的计算任务的处理器,该处理器的任务管理器根据算法流程表,将执行计算所需要用到的源数据和相关配置数据按照特定的顺序发送给多个计算模块,计算模块将计算完成后得到的结果数据发送给任务管理器。由于多个执行不同计算的计算模块均并列且独立地与任务管理器相连,多个计算任务可并行处理,提高了计算的效率;计算任务中相同的计算步骤均可调取相同的计算模块,因此相同的计算模块可复用,减少了计算模块消耗的资源量。
下面将结合附图描述根据本说明书的实施例的任务处理方法、处理器及异构处理***。
图1示出了根据本说明书的实施例的异构处理***1的示例架构示意图。如图1所示,异构处理***1包括从处理设备10和主处理设备20。
主处理设备20包括主处理器21和主存储器22。此外,主处理器21具有接口模块23。主处理设备20负责异构处理***的计算任务的控制和调度。从处理设备10负责实现计算任务(例如,算法任务)的计算处理。
主处理设备20和从处理设备10之间可以通过接口模块23(例如,高速接口)进行数据传输和通讯,由此完成从处理设备10和主处理设备20之间的数据和信息交互。从处理设备10和主处理设备20之间传输的数据可以包括计算任务处理所需的源数据(下文中称为“计算任务处理源数据”)以及计算任务配置数据。两个处理设备之间的数据传输和通讯可以采用本地的实时高速通讯协议(比如,PCIe)而非远程通讯协议(如TCP/IP)来实现,这样能大幅度降低通讯延迟。在从处理设备10从主处理设备20接收到计算任务处理源数据和计算任务处理配置数据后,可以执行相应的计算处理来得到计算任务处理结果数据,并提供给主处理设备20,并经由主处理设备20输出给外部。
如图1所示,从处理设备10包括从处理器110(即,第一处理器)。从处理器110包括接口模块111、任务管理模块112和多个计算模块113。接口模块111 被配置为(经由接口模块23)从主处理设备20接收计算任务处理源数据和计算任务配置数据。此外,接口模块111还被配置为在从处理设备10完成计算任务处理后,将计算任务处理结果数据发送给主处理设备20。
在本说明书中,接口模块111可以采用高速接口模块实现。可选地,所述高速接口模块可以采用DMA(direct memory access)方式或者PIO方式来与主处理设备20的接口模块23之间进行数据传输。所采用的DMA方式可以是高效 DMA且支持双向DMA。即,支持主处理设备20中的主处理器直接访问从处理设备的存储器120,也可以支持从处理设备10直接访问主处理设备的主存储器 22。
DMA是一种高效的数据传输机制。在实际工作时,可以在不需要主处理设备过多干预的情况下,将大量的待计算数据先从主存储器22直接搬移到从处理设备的存储器120(例如,从处理器内存)里的源数据空间(source memory)。然后,从处理设备再从本侧的源数据空间里取出来进行计算。待从处理设备计算完毕后,将结果数据写到从处理设备的存储器的结果数据空间(result memory) 中缓存,同时告知主处理设备对应的任务已经计算完成,则主处理设备再次通过DMA方式从从处理设备的存储器120的结果数据空间直接搬移到主存储器 22,由此完成一次计算任务的数据交互。
主处理设备和从处理设备之间传输的数据包括算法流程表、计算任务处理源数据和计算任务配置数据。算法流程表存放了实现算法需要进行的计算的流程,是实现一个或多个算法的计算步骤的表格,包括了每个算法的每个计算步骤的优先级信息和相关参数的存放位置信息等;计算任务处理源数据是任务算法处理时需要使用的数据;计算任务配置数据包括算法种类、数据位宽和数据量等数据。
任务管理模块112被配置为接收算法流程表、计算任务处理源数据和计算任务配置数据。根据算法流程表和计算任务配置数据中的算法种类数据,按照特定的顺序将计算任务处理源数据和相关配置数据分发多个计算模块113,得到计算任务处理结果数据。相关配置数据包括数据位宽、数据量的数据。在得到计算任务处理结果数据后,任务管理模块112将计算任务处理结果数据提供给主处理设备20中的主处理器21。
多个计算模块分别用于执行不同的计算任务,且每个计算模块均并列且独立地与任务管理模块连接。计算模块113之间彼此相互独立,不进行数据交换,且每个计算模块都并列地和任务管理模块连接,任务管理模块可同时调用至少一个计算模块执行计算处理。每个计算模块根据任务管理模块分发的计算任务处理源数据和相关配置数据,运算得到计算任务处理结果数据,计算完成后,将计算任务处理结果数据发送给任务管理模块。这里的相关配置数据包括数据位宽和数据量数据,数据量是指待计算的数据个数。由于多个计算模块可同时并行对数据进行计算处理,提高了计算的效率;由于任意一个计算模块可反复使用,减少了资源的消耗。
图2示出了根据本说明书实施例的计算模块113的示例示意图。如图2所示,计算模块包括计算管理模块1131和多个计算引擎1132,多个计算引擎1132 均执行相同的计算,并且均并列且独立地与计算管理模块连接。任务管理模块 112将计算任务处理源数据发送给计算管理模块1131,计算管理模块1131根据多个计算引擎1132的状态,将计算任务处理源数据发送给指定的计算引擎1132 进行计算处理。具体地,可根据寄存器的值来读取计算引擎1132的状态,将计算任务处理源数据发送给处于相对空闲状态的计算引擎1132进行计算处理,则该计算引擎1132为指定的执行该计算任务的计算引擎。当指定的计算引擎进行计算处理后得到计算任务处理结果数据,将计算任务处理结果数据发送给计算管理模块1131,再由计算管理模块1131将计算任务处理结果数据发送给任务管理模块112。
算法流程表包括当前支持的所有算法,每一种算法都记录有实现该算法需要完成的每一个计算步骤,每个计算步骤都需要存放对应的以下信息:调用的计算模块、开始优先级、结束优先级、参数存放位置和输出数据存放位置。
举例说明,如图1所示,从处理器为FPGA,FPGA内部设计了计算模块A 对应加法计算,计算模块B对应乘法计算,计算模块C对应除法计算,和计算模块D对应幂计算,则可实现任意由加法、乘法、除法和幂运算组成的任意种算法。
假设算法一的计算公式为output=[(a+b)×c]^(d×e),则算法流程表中针对算法一存放的信息为如下表所示:
该表格代表实现算法一需要进行四步计算,计算步骤1为加法计算,计算步骤2和计算步骤3为乘法计算,计算步骤4为幂计算。
计算步骤1的开始优先级和结束优先级均为1,该计算的两个输入参数a和 b分别存储在地址1和地址2,计算任务处理结果a+b存放在地址3。
计算步骤2的开始优先级为1,结束优先级为2,该计算的两个输入参数d 和e分别存储在地址4和地址5,计算任务处理结果d×e存放在地址6。
计算步骤3的开始优先级和结束优先级均为2,该计算的两个输入参数a+b 和c分别存储在地址3和地址7,计算任务处理结果(a+b)×c存放在地址8。
计算步骤4开始优先级和结束优先级均为3,该计算步骤的两个输入参数 (a+b)×c和d×e分别存储在地址8和地址6,计算任务处理结果[(a+b)×c]^(d×e) 存放在地址9。
根据每个计算步骤的开始优先级和结束优先级,按照特定的顺序将计算步骤对应的计算任务处理源数据和相关配置数据分发给相应的计算模块。开始优先级相同的计算步骤对应的计算任务处理源数据可同时分发,如计算步骤1和计算步骤2所对应的计算任务处理源数据可同时分发到计算模块A和计算模块 B。
在每个计算步骤开始执行前,将该计算步骤的开始优先级和其他计算步骤的结束优先级进行比较,当所有结束优先级比该步骤开始优先级更高的计算步骤完成后,再启动进行该计算步骤的计算任务处理源数据和相关配置数据的分发,需要注意的是,优先级数字越小代表优先级越高,即优先级1高于优先级2。
如,对于计算步骤3,开始优先级为2,需要等到结束优先级高于2的计算步骤全部完成后才能启动,则计算步骤3需要等到计算步骤1完成后,再启动进行计算步骤3的计算任务处理源数据的分发。
对于计算步骤4,开始优先级为3,需要等到结束优先级高于3的计算步骤全部完成后才能启动,则需要等到计算步骤1到计算步骤2的计算步骤全部完成后,再启动进行该计算步骤的计算任务处理源数据的分发。
通过开始优先级相同的计算步骤同时进行计算任务处理源数据和相关配置数据的分发,由此可并行执行的计算步骤同时间处理,提高了计算的并行度,加速了整体运算的效率;同时,只有结束优先级为1,2,3……n-1的计算均全部完成,开始优先级为n的计算步骤才能发送计算任务处理源数据和相关配置数据,也可以保证计算步骤按照算法的优先级顺序进行。
此外,可选地,算法流程表还可直接预先存储在第一处理器的任务管理模块当中,而不是由主处理设备发送给从处理设备。
此外,可选地,从处理设备10也可以不包括从存储器120,FPGA内部的存储器被配置为存储从主处理设备20接收的算法流程表、计算任务处理源数据、计算任务配置数据以及计算模块113的计算任务处理结果数据。
在本说明书的一个示例中,主处理设备20可以是上位机,例如基于CPU 的处理设备,即,主处理器可以是CPU。从处理设备10可以是基于FPGA的处理设备,即,从处理器可以是FPGA芯片。可选地,在另一示例中,从处理器可以采用例如ASIC或其它合适的芯片来实现。
图3示出了根据本说明书的实施例的由从处理设备10中的从处理器110执行的任务处理方法的流程图。
在块301,经由接口模块从上位机接收算法流程表、计算任务处理源数据和计算任务配置数据;
在块302,经由任务管理模块从所述接口模块接收算法流程表、计算任务处理源数据和计算任务配置数据,根据算法流程表和计算任务配置数据按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块;
在块303,经由计算模块执行计算任务处理得到计算任务处理结果数据并提供给所述任务管理模块;
在块304,经由任务管理模块将根据计算任务处理结果数据得到的运算结果数据提供给接口模块;
请参考图1,多个计算模块对接收到的计算任务处理源数据和相关配置数据进行计算处理,从而得到计算任务处理结果数据,并将该计算任务处理结果数据发送给任务管理模块,任务管理模块将接收到的计算任务处理结果数据进行整合,最终得到整个算法的运算结果,该运算结果作为整个算法的最终计算结果,即运算结果数据,任务管理模块将该运算结果数据发送给FPGA存储器,再经FPGA存储器发送给接口模块。
在块305,经由接口模块将所述运算结果数据发送给上位机。
图4示出了根据本说明书的实施例的执行一个具体算法的流程图。
在块401,CPU和FPGA初始化。
在块402,CPU向FPGA存储器下发计算流程表、计算任务处理源数据和计算任务配置数据。
在块403,FPGA存储器向FPGA任务管理模块下发第1组运算数据的算法流程表、计算任务处理源数据和相应的配置数据。第1组运算数据对应的是执行第一个算法的数据。
在块404,将开始优先级i初始化为等于1。
在块405,任务管理模块将开始优先级为i的计算任务处理源数据和相关配置数据分发给多个计算模块。第一个算法包括多个计算步骤,假设优先级最高为1,首先将i设置为等于1,将开始优先级为1的相关数据分发给多个计算模块。
若任务管理模块保存的算法流程表是包含了所有算法的表,则任务管理模块需要根据配置数据中的算法种类数据调取算法流程表中执行当前算法计算的所有计算步骤,根据每个计算步骤的优先级,按照特定的顺序将计算任务处理源数据和相关配置数据分发给多个计算模块进行计算处理;若任务管理模块保存的算法流程表是只包含了当前算法的表,则任务管理模块可直接根据该表上呈现的每个计算步骤的优先级,按照特定的顺序将计算任务处理源数据和相关配置数据分发给多个计算模块进行处理即可。
在块406,多个计算模块进行计算任务的计算处理。
在块407,任务管理模块判断所有结束优先级高于i+1的计算步骤是否结束。
若判断结果为结束优先级高于i+1的计算步骤没有结束,则任务管理模块等待计算模块的运算,一段时间后继续执行块407,即再进行相同的判断;若判断结果为结束优先级高于i+1的计算步骤已经全部结束或不存在结束优先级高于 i+1的计算步骤,则跳转到块408,进一步判断是否已完成第一组运算数据的所有计算步骤,若没有完成,则跳转到块409,将i设置为等于i+1,继续执行块 405,任务管理模块将开始优先级为i+1的计算任务处理源数据和相关配置数据分发给计算模块;若已完成第一组运算数据的所有计算步骤,则跳转到块410,FPGA任务管理模块向FPGA存储器返回第一组运算数据的运算结果数据,该运算结果数据是根据多个计算模块返回的计算任务处理结果数据得到的第一组运算数据的最终结果。
在块411,FPGA存储器向上位机返回第一组运算数据的运算结果数据。
在块412,结束。
当有多个算法需要执行计算,任务管理模块中有n组任务配置寄存器,每组寄存器中都包括存放算法种类、数据地址、数据位宽等数据。这使得FPGA 可以同时处理n个算法的计算。CPU在向FPGA发送数据后,将需要并行处理的不同算法(可能种类相同,可能种类不同)的数据信息和算法信息,分别配置在不同组的任务配置寄存器中,每一个寄存器组同时只能处理一个算法,因此我们将组的编号从0编号到n,认为该编号就是算法的编号,在FPGA内部进行处理的过程中,将源数据和相关配置数据打上算法编号的标记,通过算法编号唯一地确认算法和进行该算法计算的数据之间的对应关系。
在执行多个算法的计算任务处理时,具体地,任务管理模块对不同编号的算法按照一定的先后顺序发送数据,一个算法计算完成以后,再将下一个算法的相应计算任务处理源数据和任务处理配置数据分发给计算模块进行计算处理。
上述为串行方式执行每个算法对应的计算处理。即:首先,任务管理器从 FPGA存储器读取第一个算法计算任务对应的第一组计算任务处理源数据,按照上述的方式将其按照特定的计算步骤将相应的计算任务处理源数据分发给相应的计算模块,当任务管理模块检测到计算队列中的所有计算步骤都处理完毕后,将最终第一组数据的运算结果返回给FPGA存储器。接着,任务管理器从FPGA 存储器读取第二个算法计算任务对应的第二组计算任务处理源数据,按照上述的方式将其按照特定的计算步骤将相应的计算任务处理源数据分发给相应的计算模块。以此类推,直到所有算法的计算任务全部完成。
可选地,另一种实现方式为并行方式执行每个算法对应的计算。任务管理模块根据多个算法的多个计算步骤的优先级,将不同算法的多个计算步骤并行进行处理,具体地,任务管理模块对不同编号的算法按照一定的先后顺序发送数据,一个算法的最高优先级计算任务处理源数据和相关配置数据被分发给计算模块后,马上将下一个算法的相应计算任务处理源数据和相关配置数据分发给计算模块进行计算处理。先进入计算模块的数据先被计算,而后进入计算模块的数据则需要在FIFO(First Input First Output)中等待计算模块的读取。该数据分发方式提高了不同算法执行时对不同计算模块的利用率,减少计算模块和任务管理模块闲置的情况。
上述为并行方式执行每个算法对应的计算处理。即:首先,任务管理器从 FPGA存储器读取第一个算法计算任务对应的第一组计算任务处理源数据,按照上述的方式将其按照特定的计算步骤将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块,当一个算法的最高优先级计算任务处理源数据和相关配置数据被分发给计算模块后,即该算法完成第一轮的数据分发后,任务管理模块马上从FPGA存储器读取下一个算法计算任务对应的计算任务处理源数据和计算任务配置数据,并按照上述的方式将其按照特定的计算步骤将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块。以此类推,直到所有的算法计算任务全部完成。
在处理单个算法任务或多个算法任务的过程中,会存在多个任务同时需要执行相同的计算步骤,即需要的计算模块相同。如图2所示,在利用效率高和/ 或计算速度慢的计算模块例化多个计算引擎,提高该计算模块的计算能力,从而减少出现对部分计算模块的超负荷使用,避免造成堵塞,从而可以分担同一种计算的压力。
算法计算流程表中就已经预存着多种常用算法,用户也可以根据需要实时配置新的算法信息。当需要更新算法流程表,如更改、删除或增加算法流程表时,只需要修改算法流程表的内容即可。具体地,CPU可以向FPGA发起改写请求,修改算法的内容,修改算法的内容后,任务管理器根据更新后的算法流程表执行相应的计算处理。
利用根据本说明书的实施例的异构处理***,通过在具有从处理器的从处理设备中存储有算法流程表,并且设置多个实现不同计算任务处理的并行计算模块,通过任务管理模块按照特定的顺序将源数据和配置数据发送到计算模块进行相应的计算处理,可同时执行多种不同的计算,提高了计算的效率;且相同的计算步骤均可调取相同的计算模块进行计算处理,减少了计算模块消耗的资源量。
根据本说明书的实施例的异构处理***可以满足联邦学习应用场景中的功能和性能需求,使得联邦学习的大规模商业落地变为可能,促进了行业发展。
根据本说明书的一个实施例,提供了一种比如机器可读介质(例如,非暂时性机器可读介质)的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-4述的各种操作和功能。具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、 CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
如上参照图1到图4,描述了根据本说明书的实施例的异构处理***、处理器以及任务处理方法。本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (11)
1.一种第一处理器,其特征在于,包括:
接口模块,所述第一处理器通过所述接口模块从外部设备接收算法流程表、计算任务处理源数据和计算任务配置数据,以及向外部设备发送计算任务处理结果数据;
任务管理模块,接收所述接口模块发送的所述算法流程表、计算任务处理源数据和计算任务配置数据,根据所述算法流程表和所述计算任务配置数据按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块,得到所述计算任务处理结果数据;及
多个计算模块,所述多个计算模块分别执行不同的计算,且所述多个计算模块均并列且独立地与所述任务管理模块连接,根据所述任务管理类模块分发的所述计算任务处理源数据和相关配置数据,运算得到所述计算任务处理结果数据,以及将所述计算任务处理结果数据发送给所述任务管理模块。
2.根据权利要求1所述的处理器,其特征在于,所述计算模块包括计算管理模块和多个计算引擎,多个计算引擎均执行相同的计算,且均并列且独立地与所述计算管理模块连接,所述计算管理模块根据所述多个计算引擎的计算状态,将所述计算任务处理源数据和相关配置数据发送到指定的计算引擎进行计算处理,所述计算引擎计算处理后得到的计算任务处理结果数据发送给所述计算管理模块,再由所述计算管理模块发送给所述任务管理模块。
3.根据权利要求1所述的处理器,其特征在于,所述算法流程表包括多个计算步骤,以及每个计算步骤的开始优先级和结束优先级,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块。
4.一种处理设备,其特征在于,包括:如权利要求1至3中任一项所述的第一处理器;以及
存储器,与所述第一处理器可通信地连接,被配置为存储从外部设备接收计算任务处理源数据以及根据所述计算任务处理结果数据得到的运算结果数据。
5.一种异构处理***,包括:
主处理设备,包括主处理器;以及
从处理设备,包括如权利要求1至3中任一项所述的第一处理器,
其中,所述主处理设备被配置为将所述算法流程表、计算任务处理源数据和计算任务配置数据发送给所述从处理设备,以及从所述从处理设备接收根据所述计算任务处理结果数据得到的运算结果数据。
6.一种计算任务处理方法,其特征在于,包括:所述计算任务处理方法是由从处理设备执行,所述主处理设备包括上位机,所述从处理设备包括第一处理器,所述第一处理器包括接口模块、任务管理模块和多个并行且独立的计算模块,所述计算任务处理方法包括:
经由所述接口模块从上位机接收算法流程表、计算任务处理源数据和计算任务配置数据;
经由所述任务管理模块从所述接口模块接收所述算法流程表、所述计算任务处理源数据和所述计算任务配置数据,根据所述算法流程表按照特定的顺序将相应的计算任务处理源数据和相关配置数据分发给相应的计算模块;
经由所述计算模块执行计算任务处理得到计算任务处理结果数据并提供给所述任务管理模块;
经由所述任务管理模块将根据所述计算任务处理结果数据得到的运算结果数据提供给所述接口模块;以及
经由所述接口模块将所述运算结果数据发送给所述上位机。
7.根据权利要求6所述的任务处理方法,其特征在于,所述算法流程表包括多个计算步骤,以及每个计算步骤的开始优先级和结束优先级,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块。
8.根据权利要求7所述的任务处理方法,其特征在于,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块,包括:开始优先级相同的计算步骤对应的计算任务处理源数据同时分发,且由计算模块同时进行计算处理。
9.根据权利要求7所述的任务处理方法,其特征在于,根据所述计算步骤的开始优先级和结束优先级,按照特定的顺序将所述计算步骤对应的计算任务处理源数据分发给相应的计算模块,包括:每个计算步骤开始执行前,将该计算步骤的开始优先级和其他计算步骤的结束优先级进行比较,当所有结束优先级比该步骤开始优先级更高的计算步骤完成后,再启动进行该计算步骤的计算任务处理源数据和相关配置数据的分发。
10.根据权利要求6至9中任一项所述的任务处理方法,其特征在于,当需要更新算法流程表时,所述接口模块从上位机接收更新的算法流程表并覆盖原算法流程表,当接收到相应的计算任务时,所述任务管理模块根据更新的算法流程表将相应的计算任务处理源数据和相关配置数据分发给所述相应的计算模块。
11.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得机器执行如权利要求6到10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062790.8A CN112346833B (zh) | 2020-09-30 | 2020-09-30 | 用于隐私计算的任务处理方法、处理器及异构处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062790.8A CN112346833B (zh) | 2020-09-30 | 2020-09-30 | 用于隐私计算的任务处理方法、处理器及异构处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112346833A true CN112346833A (zh) | 2021-02-09 |
CN112346833B CN112346833B (zh) | 2022-11-22 |
Family
ID=74361474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011062790.8A Active CN112346833B (zh) | 2020-09-30 | 2020-09-30 | 用于隐私计算的任务处理方法、处理器及异构处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112346833B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及*** |
CN113177211A (zh) * | 2021-04-20 | 2021-07-27 | 深圳致星科技有限公司 | 用于隐私计算的fpga芯片、异构处理***及计算方法 |
CN113434284A (zh) * | 2021-08-27 | 2021-09-24 | 华控清交信息科技(北京)有限公司 | 一种隐私计算服务端设备、***及任务调度方法 |
CN113468099A (zh) * | 2021-05-31 | 2021-10-01 | 深圳致星科技有限公司 | 可重构计算装置、处理器及方法 |
CN113553191A (zh) * | 2021-09-17 | 2021-10-26 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的异构处理*** |
CN114124454A (zh) * | 2021-10-21 | 2022-03-01 | 深圳致星科技有限公司 | 消息发送方法、***、电子设备、可读存储介质及产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033008A (zh) * | 2018-07-24 | 2018-12-18 | 山东大学 | 一种动态可重构的Hash计算架构及其方法、Key-Value存储*** |
CN110333946A (zh) * | 2019-05-14 | 2019-10-15 | 王娅雯 | 一种基于人工智能cpu数据处理***及方法 |
US20190370076A1 (en) * | 2019-08-15 | 2019-12-05 | Intel Corporation | Methods and apparatus to enable dynamic processing of a predefined workload |
CN110751676A (zh) * | 2019-10-21 | 2020-02-04 | 中国科学院空间应用工程与技术中心 | 一种基于目标检测的异构计算***、方法和可读存储介质 |
-
2020
- 2020-09-30 CN CN202011062790.8A patent/CN112346833B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033008A (zh) * | 2018-07-24 | 2018-12-18 | 山东大学 | 一种动态可重构的Hash计算架构及其方法、Key-Value存储*** |
CN110333946A (zh) * | 2019-05-14 | 2019-10-15 | 王娅雯 | 一种基于人工智能cpu数据处理***及方法 |
US20190370076A1 (en) * | 2019-08-15 | 2019-12-05 | Intel Corporation | Methods and apparatus to enable dynamic processing of a predefined workload |
CN110751676A (zh) * | 2019-10-21 | 2020-02-04 | 中国科学院空间应用工程与技术中心 | 一种基于目标检测的异构计算***、方法和可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177211A (zh) * | 2021-04-20 | 2021-07-27 | 深圳致星科技有限公司 | 用于隐私计算的fpga芯片、异构处理***及计算方法 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及*** |
CN113468099A (zh) * | 2021-05-31 | 2021-10-01 | 深圳致星科技有限公司 | 可重构计算装置、处理器及方法 |
CN113434284A (zh) * | 2021-08-27 | 2021-09-24 | 华控清交信息科技(北京)有限公司 | 一种隐私计算服务端设备、***及任务调度方法 |
CN113553191A (zh) * | 2021-09-17 | 2021-10-26 | 深圳致星科技有限公司 | 用于联邦学习和隐私计算的异构处理*** |
US11676074B2 (en) | 2021-09-17 | 2023-06-13 | Clustar Technology Co., Ltd. | Heterogeneous processing system for federated learning and privacy-preserving computation |
CN114124454A (zh) * | 2021-10-21 | 2022-03-01 | 深圳致星科技有限公司 | 消息发送方法、***、电子设备、可读存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112346833B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112346833B (zh) | 用于隐私计算的任务处理方法、处理器及异构处理*** | |
EP3380937B1 (en) | Techniques for analytics-driven hybrid concurrency control in clouds | |
CN109246176B (zh) | 软件定义网络中基于区块链的多控制器同步方法及装置 | |
CN112685159B (zh) | 基于fpga异构处理***的联邦学习计算任务处理方案 | |
WO2018176238A1 (en) | Technologies for hybrid field-programmable gate array-application-specific integrated circuit code acceleration | |
CN110308984B (zh) | 一种用于处理地理分布式数据的跨集群计算*** | |
Tang et al. | Dependent task offloading for multiple jobs in edge computing | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN107135268A (zh) | 基于信息中心网络的分布式任务计算方法 | |
CN113472624A (zh) | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 | |
Lee et al. | Online optimization for low-latency computational caching in fog networks | |
CN114640716A (zh) | 一种基于快速网络路径的云网络缓存加速***和方法 | |
CN110300188A (zh) | 数据传输***、方法和设备 | |
US11700189B2 (en) | Method for performing task processing on common service entity, common service entity, apparatus and medium for task processing | |
CN108028806A (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
Zhao et al. | Joint reducer placement and coflow bandwidth scheduling for computing clusters | |
CN103299298A (zh) | 处理业务的方法和*** | |
CN114780228B (zh) | 一种混合云资源创建方法及*** | |
CN112995056A (zh) | 一种流量调度方法、电子设备及存储介质 | |
CN104156332A (zh) | 基于外部pci-e连接的高性能并行计算方法 | |
CN115033904A (zh) | 数据处理方法、装置、***、介质和产品 | |
US9819571B2 (en) | Control apparatus and method for supplying switch with entry | |
US20220091888A1 (en) | Resource utilization method, electronic device, and computer program product | |
RU2710302C1 (ru) | Способ организации работы компонентов сетевого оборудования для обработки сетевых пакетов (4 варианта) | |
CN118095351B (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 |