异构加速计算优化方法、装置、设备及可读存储介质与流程

文档序号:26139485发布日期:2021-08-03 14:23阅读:107来源:国知局
异构加速计算优化方法、装置、设备及可读存储介质与流程

本申请涉及通信技术领域,尤其涉及一种异构加速计算优化方法、装置、设备及可读存储介质。



背景技术:

随着计算机技术的不断发展,人工智能的应用也越来越广泛,目前,在通过联邦学习联合多方数据进行建模时,联邦学习的参与方通常需要进行海量的密态计算,而在异构联邦学习框架中,为了提高数据的计算效果,在联邦学习的一轮迭代过程中,通常需要将密文数据在cpu内存和异构芯片内存之间多次来回进行拷贝,但是由于密文数据的位数通常较高,密文数据内存拷贝耗时较长,进而将导致在联邦学习的一轮迭代过程中,密文数据的内存拷贝时间将远大于密文数据的密态计算时间,使得异构联邦学习框架的计算效率较低。



技术实现要素:

本申请的主要目的在于提供一种异构加速计算优化方法、装置、设备及可读存储介质,旨在解决现有技术中异构联邦学习框架计算效率低的技术问题。

为实现上述目的,本申请提供一种异构加速计算优化方法,所述异构加速计算优化方法应用于异构加速计算优化设备,所述异构加速计算优化方法包括:

获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存;

基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果;

将所述密态计算结果反馈至所述cpu内存。

本申请还提供一种异构加速计算优化装置,所述异构加速计算优化装置为虚拟装置,且所述异构加速计算优化装置应用于异构加速计算优化设备,所述异构加速计算优化装置包括:

内存拷贝模块,用于获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存;

密态计算模块,用于基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果;

反馈模块,用于将所述密态计算结果反馈至所述cpu内存。

本申请还提供一种异构加速计算优化设备,所述异构加速计算优化设备为实体设备,所述异构加速计算优化设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述异构加速计算优化方法的程序,所述异构加速计算优化方法的程序被处理器执行时可实现如上述的异构加速计算优化方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有实现异构加速计算优化方法的程序,所述异构加速计算优化方法的程序被处理器执行时实现如上述的异构加速计算优化方法的步骤。

本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的异构加速计算优化方法的步骤。

本申请提供了一种异构加速计算优化方法、装置、设备及可读存储介质,相比于现有技术采用的在联邦学习的一轮迭代过程中,将密文数据在cpu内存和异构芯片内存之间多次来回进行拷贝的技术手段,本申请首先获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存,其中,通过将内存拷贝单独封装为算子,实现了将内存拷贝过程与密态计算过程进行分离的目的,且异构芯片内存与cpu内存之间拷贝明文数据,而非密文数据,而由于明文数据的位数远远小于密文数据,进而减少了内存拷贝的耗时,其中,需要说明的是,目前通常将内存拷贝与密态计算封装于同一算子内,算子执行过程通常为密态计算与内存拷贝交替进行,最后得到最终的密态计算结果,其中,多次密态计算生成的中间密文数据均需要写入cpu内存,进而造成了在异构芯片内存与cpu内存之间的密文数据的多次内存拷贝,进一步地,基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果,也即,在将内存拷贝与密态计算分离后,将密文数据常驻于异构芯片内存进行密态计算,密态计算过程中生成的中间密文数据均写入异构芯片内存,直至计算出最终的密态计算结果,进而避免了在密态计算过程中的多次内存拷贝过程,在联邦学习的一轮迭代中,cpu内存与异构芯片内存之间只需进行一次来回的内存拷贝即可,所以减少了内存拷贝次数,进一步减少了联邦学习过程中内存拷贝的耗时,最后将所述密态计算结果反馈至所述cpu内存,即可完成联邦学习的一轮迭代计算过程,克服了由于密文数据的位数通常较高,密文数据内存拷贝耗时较长,进而将导致在联邦学习的一轮迭代过程中,密文数据的内存拷贝时间将远大于密文数据的密态计算时间,使得异构联邦学习框架的计算效率较低的技术缺陷,所以,提升了异构联邦学习框架的计算效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请异构加速计算优化方法第一实施例的流程示意图;

图2为本申请异构加速计算优化方法中五级流水线的示意图;

图3为本申请异构加速计算优化方法中异构联邦学习框架的示意图;

图4为本申请异构加速计算优化方法第二实施例的流程示意图;

图5为本申请异构加速计算优化方法中多条并行流水线的设计示意图;

图6为本申请实施例中异构加速计算优化方法涉及的硬件运行环境的设备结构示意图;

图7为本申请异构加速计算优化装置的结构示意图。

本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例提供一种异构加速计算优化方法,在本申请异构加速计算优化方法的第一实施例中,参照图1,所述异构加速计算优化方法包括:

步骤s10,获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存;

在本实施例中,需要说明的是,所述明文数据为未加密的数据,所述明文数据的位数远小于密文数据,例如,假设密文数据为10000*10000的矩阵,则对应的明文数据为50*50的矩阵,所述内存拷贝算子集合至少包括一内存拷贝算子,其中,所述内存拷贝算子为用于进行内存拷贝的映射,用于将数据由底层cpu内存映射至异构芯片内存,其中,所述异构芯片内存包括gpu显存以及fpga内存等。

另外地,需要说明的是,所述异构加速计算优化方法应用于异构联邦学习框架,其中,所述异构联邦学习框架包括cpu侧和异构芯片侧,在cpu侧的上层为应用层,其中,所述应用层包括python语言层等,所述cpu侧的底层为c语言层等,所以,所述cpu内存包括上层cpu内存和底层cpu内存,cpu侧存在cpu侧上层对应的上层cpu内存,以及存在cpu侧底层对应的底层cpu内存,异构芯片侧存在异构芯片内存,且上层cpu内存与底层cpu内存之间可进行内存拷贝,异构芯片内存与底层cpu内存之间可进行内存拷贝。

获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存,具体地,在所述上层cpu内存中确定原始数据,其中,所述原始数据包括联邦学习过程中的模型参数、模型输出数据以及模型输入数据等,进而对所述原始数据进行数据转换,以将所述原始数据转换为适配于所述c语言层的数据,获得所述明文数据,进而通过cpu侧的上层计算模块,调用内存拷贝算子集合中由预设计算接口封装内存拷贝算子,将所述明文数据由所述底层cpu内存拷贝至异构芯片内存,并通过内存控制模块,将明文数据的数据格式转换为适配于异构芯片内存的数据格式,并写入异构芯片内存,其中,所述上层计算模块部署于cpu侧上层,用于执行计算任务,所述预设计算接口部署于cpu侧底层,用于对异构芯片算子进行统一封装为接口,以供上层计算模块调用,所述内存控制模块为通过指针或者引用等地址信息对底层cpu内存和异构芯片内存进行操作的模块,用于对底层cpu内存和异构芯片内存进行内存操作、序列化操作、数据转换以及站点通信等,其中,所述内存操作包括转置、切割以及内存拷贝等,所述序列化操作包括将数据转化为比特流等,所述异构芯片算子包括gpu算子和fpga算子等。

步骤s20,基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果;

在本实施例中,基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果,具体地,通过所述上层计算模块,调用所述密态计算算子集合中的加密算子,对所述明文数据进行加密,获得密文数据,并通过内存控制模块将所述密文数据写入异构芯片内存,进而通过所述上层计算模块,调用所述密态计算算子集合中的密态计算算子,对所述密文数据进行常驻于异构芯片内存的密态计算,获得密态计算结果,其中,在密态计算中产生的数据均存储于异构芯片内存。

其中,所述异构加速计算优化方法应用于参与联邦学习的第一设备,所述密态计算算子集合包括加密算子、第一密态计算算子和第二密态计算算子,

所述基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果的步骤包括:

步骤s21,基于所述加密算子,对所述明文数据进行同态加密,获得密文数据,并将所述密文数据写入所述异构芯片内存;

在本实施例中,需要说明的是,所述异构加速计算优化方法应用于参与联邦学习的第一设备,所述第二设备为联邦学习另一参与方。

基于所述加密算子,对所述明文数据进行同态加密,获得密文数据,并将所述密文数据写入所述异构芯片内存,具体地,通过上层计算模块,调用所述加密算子,将所述明文数据映射为密文数据,并将所述密文数据写入异构芯片内存。

步骤s22,基于所述内存拷贝算子集合,将第二设备发送至所述底层cpu内存的第二密文数据拷贝至所述异构芯片内存;

在本实施例中,基于所述内存拷贝算子集合,将第二设备发送至所述底层cpu内存的第二密文数据拷贝至所述异构芯片内存,具体地,接收参与联邦学习的第二设备发送的第二密文数据,并写入底层cpu内存,进而通过上层计算模块,调用所述内存拷贝算子集合中的内存拷贝算子,将所述第二密文数据由底层cpu内存映射至异构芯片内存,并将所述第二密文数据的数据格式转换为适配于异构芯片内存的数据格式,进而将第二密文数据写入异构芯片内存。

步骤s23,通过所述第一密态计算算子,对所述密文数据和所述第二密文数据进行第一次密态计算,获得中间密态计算结果,并将所述中间密态计算结果写入所述异构芯片内存;

步骤s24,在所述异构芯片内存中调用所述中间密态计算结果,并通过所述第二密态计算算子,对所述中间密态计算结果进行第二次密态计算,获得所述密态计算结果,并将所述密态计算结果写入所述异构芯片内存。

在本实施例中,通过上层计算模块调用第一密态计算算子,对所述密文数据和所述第二密文数据进行第一次密态计算,获得中间密态计算结果,并将所述中间密态计算结果写入所述异构芯片内存,进一步地,通过内存控制模块,调用所述中间密态计算结果,并通过上层计算模块调用第二密态计算算子,对所述中间密态计算结果进行第二次密态计算,获得所述密态计算结果,并将所述密态计算结果写入所述异构芯片内存,例如,假设需要计算密态矩阵a、b和c的乘积,其中,a和c为第一密文数据,b为第二密文数据,则通过第一次密态计算获得中间密态计算结果a*b,并将a*b写入异构芯片内存,进而当需要计算a*b*c时,则在异构芯片内存中调用a*b与c进行第二次密态计算,获得a*b*c。

步骤s30,将所述密态计算结果反馈至所述cpu内存。

在本实施例中,将所述密态计算结果反馈至所述cpu内存,具体地,通过所述上层计算模块,调用所述密态计算算子集合中的解密算子,对所述密态计算结果进行解密,获得明文计算结果,进而通过所述上层计算模块,调用第二内存拷贝算子,将所述明文计算结果由异构芯片内存拷贝至底层cpu内存。

其中,所述将所述密态计算结果反馈至所述cpu内存的步骤包括:

步骤a10,在所述异构芯片内存中对所述密态计算结果进行解密,获得明文计算结果;

在本实施例中,在所述异构芯片内存中对所述密态计算结果进行解密,获得明文计算结果,具体地,通过上层计算模块,调用解密算子将所述密态计算结果映射为明文计算结果。

步骤a20,基于第二内存拷贝算子集合,将所述明文计算结果由所述异构芯片内存拷贝至所述底层cpu内存。

在本实施例中,基于第二内存拷贝算子集合,将所述明文计算结果由所述异构芯片内存拷贝至所述底层cpu内存,具体地,通过上层计算模块,调用第二内存拷贝算子集合中的第二内存拷贝算子,将所述明文计算结果由异构芯片内存映射至底层cpu内存,进一步地,对处于底层cpu内存的明文计算结果的数据格式转换为适配于应用层的数据格式,并写入上层cpu内存,得到目标异构加速计算结果,其中,由明文数据到目标异构加速计算结果的整个计算过程可用五级流水线进行表示,如图2所示为所述五级流水线的示意图,五级流水线依次由第一数据转换模块、第一数据拷贝模块、密态计算模块、第二数据拷贝模块以及第二数据转换模块组成,其中,第一数据转换模块用于将应用层中的数据转换为适配于c语言层的数据格式的数据,第一数据拷贝模块用于将数据由cpu内存拷贝至异构芯片内存,密态计算模块用于对数据进行密态计算,第二数据拷贝模块用于将数据由异构芯片内存拷贝至cpu内存,第二数据转换模块用于将c语言层的数据转换为适配于应用层的数据格式的数据。

进一步地,所述步骤s30还包括:

步骤b10,基于所述第二内存拷贝算子集合,将所述密态计算结果由所述异构芯片内存拷贝至所述cpu内存。

在本实施例中,基于所述第二内存拷贝算子集合,将所述密态计算结果由所述异构芯片内存拷贝至所述cpu内存,具体地,通过上层计算模块,调用第二内存拷贝算子集合中的第二内存拷贝算子,将所述密态计算结果由异构芯片内存映射至底层cpu内存。

在一种实施方式中,如图3所示为联邦学习中异构联邦学习框架的示意图,其中,所述异构联邦学习框架包括cpu侧和gpu侧,上层模型为cpu侧的上层,异构框架中的cpu侧为cpu侧的底层,计算模块为所述上层计算模块,计算接口为所述预设计算接口,上层模型中的cpu内存为上层cpu内存,异构框架中的cpu内存为所述底层cpu内存,gpu算子包括所述密态计算算子、所述加密算子以及所述解密算子等,资源调度模块用于调度异构加速计算过程中的系统资源,内存控制模块包括所述内存拷贝算子。

本申请实施例提供了一种异构加速计算优化方法,相比于现有技术采用的在联邦学习的一轮迭代过程中,将密文数据在cpu内存和异构芯片内存之间多次来回进行拷贝的技术手段,本申请实施例首先获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存,其中,通过将内存拷贝单独封装为算子,实现了将内存拷贝过程与密态计算过程进行分离的目的,且异构芯片内存与cpu内存之间拷贝明文数据,而非密文数据,而由于明文数据的位数远远小于密文数据,进而减少了内存拷贝的耗时,其中,需要说明的是,目前通常将内存拷贝与密态计算封装于同一算子内,算子执行过程通常为密态计算与内存拷贝交替进行,最后得到最终的密态计算结果,其中,多次密态计算生成的中间密文数据均需要写入cpu内存,进而造成了在异构芯片内存与cpu内存之间的密文数据的多次内存拷贝,进一步地,基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果,也即,在将内存拷贝与密态计算分离后,将密文数据常驻于异构芯片内存进行密态计算,密态计算过程中生成的中间密文数据均写入异构芯片内存,直至计算出最终的密态计算结果,进而避免了在密态计算过程中的多次内存拷贝过程,在联邦学习的一轮迭代中,cpu内存与异构芯片内存之间只需进行一次来回的内存拷贝即可,所以减少了内存拷贝次数,进一步减少了联邦学习过程中内存拷贝的耗时,最后将所述密态计算结果反馈至所述cpu内存,即可完成联邦学习的一轮迭代计算过程,克服了由于密文数据的位数通常较高,密文数据内存拷贝耗时较长,进而将导致在联邦学习的一轮迭代过程中,密文数据的内存拷贝时间将远大于密文数据的密态计算时间,使得异构联邦学习框架的计算效率较低的技术缺陷,所以,提升了异构联邦学习框架的计算效率。

进一步地,参照图4,基于本申请中第一实施例,在本申请的另一实施例中,进一步地,在步骤s10中,所述明文数据至少包括一明文子集数据,

所述获取明文数据的步骤包括:

步骤c10,在上层cpu内存中获取原始数据,并对所述原始数据进行数据分组,获得各原始子集数据;

在本实施例中,需要说明的是,所述原始数据为联邦模型中的原始矩阵,例如,模型输入矩阵和模型输出矩阵等。

在上层cpu内存中获取原始数据,并对所述原始数据进行数据分组,获得各原始子集数据,具体地,在上层cpu内存中获取原始矩阵数据,并将所述原始矩阵拆分为多个数据量相近、无数据依赖和返回地址冲突的原始子矩阵,进而将各所述原始子矩阵分别作为原始子集数据。

步骤c20,为各所述原始子集数据分配并行流水线,并分别将各所述并行流水线上的原始子集数据转换为符合所述底层cpu内存的数据格式,获得各明文子集数据。

在本实施例中,需要说明的是,为了进一步提高异构联邦学习框架的计算效率,并行设计多条并行流水线,其中,每一所述并行流水线均至少包括底层cpu内存至异构芯片内存的内存拷贝、密态计算以及异构芯片内存至底层cpu内存的内存拷贝,在一种可实施的方式中,如图5所示为所述多条并行流水线的设计示意图,其中,gpu为所述异构芯片,调度模块用于为各并行流水线分配计算资源,以保证各并行流水线的耗时相同,使得流水线不会因为计算资源不足而被暂停,使得gpu可以更快的完成计算任务与数据拷贝任务,进而可减少密文数据常驻于gpu的时间,进而可防止gpu中常驻过多密文数据而影响gpu的计算性能,达到了隐藏数据拷贝对异构框架的影响的目的。

为各所述原始子集数据分配并行流水线,并分别将各所述并行流水线上的原始子集数据转换为符合所述底层cpu内存的数据格式,获得各明文子集数据,具体地,对每一所述原始子集数据均并行执行以下步骤:

为所述原始子集数据分配并行流水线,并基于所述并行流水线上的第一数据转换模块,对所述原始子集数据进行数据格式转换,以将所述原始子集数据转换为适配于底层cpu内存的数据格式的数据,获得所述原始子集数据对应的明文子集数据。

进一步地,在步骤s20中,所述内存拷贝算子集合至少包括一并行流水线上的内存拷贝算子,所述明文数据至少包括一明文子集数据,

所述基于内存拷贝算子集合,将所述明文数据由底层cpu内存拷贝至异构芯片内存的步骤包括:

步骤c30,通过调用各所述并行流水线上的内存拷贝算子,将各所述明文子集数据由所述底层cpu内存并行拷贝至所述异构芯片内存。

在本实施例中,通过调用各所述并行流水线上的内存拷贝算子,将各所述明文子集数据由所述底层cpu内存并行拷贝至所述异构芯片内存,具体地,通过上层计算模块调用各所述并行流水线上的内存拷贝算子,分别将各所述明文子集数据由所述底层cpu内存并行映射至异构芯片内存,并在将各所述明文子集数据的数据格式转换为适配于异构芯片内存的数据格式后,将各明文子集数据写入异构芯片内存。

进一步地,在步骤s30中,所述密态计算算子集合至少包括一所述并行流水线上的密态计算算子,所述密态计算结果至少包括一密态子集计算结果,

所述基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果的步骤包括:

步骤c40,通过调用各所述并行流水线上的密态计算算子,对各所述明文子集数据并行进行常驻于所述异构芯片内存的密态计算,获得各密态子集计算结果。

在本实施例中,通过调用各所述并行流水线上的密态计算算子,对各所述明文子集数据并行进行常驻于所述异构芯片内存的密态计算,获得各密态子集计算结果,具体地,通过上层计算模块调用各所述并行流水线上的加密算子,对各所述明文子集数据并行进行加密,获得各密文子集数据,进而通过上层计算模块调用各所述并行流水线上的密态计算算子,分别各所述密文子集数据并行执行密态计算,以通过并行计算方式减少常驻于异构芯片上的密文数据的常驻时间,进而获得各密态子集计算结果。

进一步地,在步骤s30之后,所述密态计算结果至少包括一密态子集计算结果,所述cpu内存包括上层cpu内存和底层cpu内存,

在所述将所述密态计算结果反馈至所述cpu内存的步骤之后,所述异构加速计算优化方法还包括:

步骤c50,分别将各所述密态子集计算结果转换为符合所述上层cpu内存的数据格式,获得各目标密态子集计算结果,其中,所述密态子集计算结果符合所述底层cpu内存的数据格式;

在本实施例中,分别将各所述密态子集计算结果转换为符合所述上层cpu内存的数据格式,获得各目标密态子集计算结果,其中,所述密态子集计算结果符合所述底层cpu内存的数据格式,具体地,通过各所述并行流水线上的第二数据转换模块,并行将各所述密态子集计算结果由符合底层cpu内存的数据格式转换为符合上层cpu内存的数据格式,获得各目标密态子集计算结果。

步骤c60,当所述上层cpu内存中的各目标密态子集计算结果满足预设计算结束条件时,对各所述目标密态子集计算结果进行整合,获得目标密态计算结果。

在本实施例中,当所述上层cpu内存中的各目标密态子集计算结果满足预设计算结束条件时,对各所述目标密态子集计算结果进行整合,获得目标密态计算结果,具体地,当所述上层cpu内存中的各目标密态子集计算结果满足预设计算结束条件时,则证明各目标密态子集计算结果的数量与原先拆分的原始子矩阵的数量一致,进而将各目标密态子集计算结果进行整合,获得所述原始矩阵对应的目标密态计算结果。

本申请实施例提供了一种基于多条并行流水线的异构加速计算优化方法,也即,首先在上层cpu内存中获取原始数据,并对所述原始数据进行数据分组,获得各原始子集数据,进而为各所述原始子集数据分配并行流水线,并分别在各所述并行流水线对各自对应的原始子集数据并行进行数据转换、内存拷贝以及密态计算,获得各密态子集计算结果,进而将各密态子集计算结果在cpu内存中进行整合,即可获得最终的密态计算结果,其中,由于基于多条并行流水线进行密态计算与数据拷贝,进而相比于基于一条流水线进行密态计算与数据拷贝的方式,本申请实施例在联邦学习一轮迭代过程中,密文数据常驻于异构芯片内存的时间将变短,进而提升了流水线作业时异构芯片内存对数据的承载能力,避免了由于异构芯片内存中存储的密文数据过多而导致无法进行密态计算或者降低密态计算的计算效率的情况,进而提升了异构联邦学习框架的计算效率。

参照图6,图6是本申请实施例方案涉及的硬件运行环境的设备结构示意图。

如图6所示,该异构加速计算优化设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该异构加速计算优化设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

本领域技术人员可以理解,图6中示出的异构加速计算优化设备结构并不构成对异构加速计算优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及异构加速计算优化程序。操作系统是管理和控制异构加速计算优化设备硬件和软件资源的程序,支持异构加速计算优化程序以及其它软件和/或,程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与异构加速计算优化系统中其它硬件和软件之间通信。

在图6所示的异构加速计算优化设备中,处理器1001用于执行存储器1005中存储的异构加速计算优化程序,实现上述任一项所述的异构加速计算优化方法的步骤。

本申请异构加速计算优化设备具体实施方式与上述异构加速计算优化方法各实施例基本相同,在此不再赘述。

参照图7,本申请实施例还提供一种异构加速计算优化装置,所述异构加速计算优化装置应用于异构加速计算优化设备,所述异构加速计算优化装置包括:

内存拷贝模块,用于获取明文数据,并基于第一内存拷贝算子集合,将所述明文数据由cpu内存拷贝至异构芯片内存;

密态计算模块,用于基于密态计算算子集合,对所述明文数据进行常驻于所述异构芯片内存的密态计算,获得密态计算结果;

反馈模块,用于将所述密态计算结果反馈至所述cpu内存。

可选地,所述反馈模块还用于:

在所述异构芯片内存中对所述密态计算结果进行解密,获得明文计算结果;基于第二内存拷贝算子集合,将所述明文计算结果由所述异构芯片内存拷贝至所述底层cpu内存;和/或

基于所述第二内存拷贝算子集合,将所述密态计算结果由所述异构芯片内存拷贝至所述cpu内存。

可选地,所述内存拷贝模块还用于:

在上层cpu内存中获取原始数据,并对所述原始数据进行数据分组,获得各原始子集数据;

为各所述原始子集数据分配并行流水线,并分别将各所述并行流水线上的原始子集数据转换为符合所述底层cpu内存的数据格式,获得各明文子集数据。

可选地,所述内存拷贝模块还用于:

通过调用各所述并行流水线上的内存拷贝算子,将各所述明文子集数据由所述底层cpu内存并行拷贝至所述异构芯片内存。

可选地,所述密态计算模块还用于:

通过调用各所述并行流水线上的密态计算算子,对各所述明文子集数据并行进行常驻于所述异构芯片内存的密态计算,获得各密态子集计算结果。

可选地,所述异构加速计算优化装置还用于:

分别将各所述密态子集计算结果转换为符合所述上层cpu内存的数据格式,获得各目标密态子集计算结果,其中,所述密态子集计算结果符合所述底层cpu内存的数据格式;

当所述上层cpu内存中的各目标密态子集计算结果满足预设计算结束条件时,对各所述目标密态子集计算结果进行整合,获得目标密态计算结果。

可选地,所述密态计算模块还用于:

基于所述加密算子,对所述明文数据进行同态加密,获得密文数据,并将所述密文数据写入所述异构芯片内存;

基于所述内存拷贝算子集合,将第二设备发送至所述底层cpu内存的第二密文数据拷贝至所述异构芯片内存;

通过所述第一密态计算算子,对所述密文数据和所述第二密文数据进行第一次密态计算,获得中间密态计算结果,并将所述中间密态计算结果写入所述异构芯片内存;

在所述异构芯片内存中调用所述中间密态计算结果,并通过所述第二密态计算算子,对所述中间密态计算结果进行第二次密态计算,获得所述密态计算结果,并将所述密态计算结果写入所述异构芯片内存。

本申请异构加速计算优化装置的具体实施方式与上述异构加速计算优化方法各实施例基本相同,在此不再赘述。

本申请实施例提供了一种可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的异构加速计算优化方法的步骤。

本申请可读存储介质具体实施方式与上述异构加速计算优化方法各实施例基本相同,在此不再赘述。

本申请实施例提供了一种计算机程序产品,且所述计算机程序产品包括有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的异构加速计算优化方法的步骤。

本申请计算机程序产品具体实施方式与上述异构加速计算优化方法各实施例基本相同,在此不再赘述。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1