发明内容
本发明的主要目的在于提供一种异构计算***及基于异构计算***的资源处理方法,旨在解决现有技术中的异构计算设备实现机密计算普适性低,异构机密计算的数据安全低的问题。
为了实现上述目的,本发明提供了一种异构计算***,所述异构计算***包括:宿主机、PCIe桥、以及与所述PCIe桥连接的所述异构计算设备;其中,所述PCIe桥通过PCIe总线与所述宿主机连接并通信;
所述PCIe桥用于接收来自所述宿主机的计算任务指令,在所述计算任务指令为机密计算任务指令时,获取对称密钥;
所述PCIe桥还用于根据所述对称密钥对来自所述宿主机的加密资源进行解密,得到第一待计算资源,并将所述第一待计算资源发送至与所述PCIe桥连接的异构计算设备;
其中,所述加密资源为所述宿主机根据获取的所述对称密钥对第一待计算资源加密得到的;
所述异构计算设备用于对来自所述PCIe桥的所述第一待计算资源进行计算得到第一计算结果;
所述PCIe桥还用于通过所述对称密钥对来自所述异构计算设备的第一计算结果进行加密,并将加密后的第一计算结果通过PCIe总线发送至宿主机;
所述宿主机用于根据获取的所述对称密钥对所述加密后的第一计算结果解密,得到所述第一计算结果。
可选地,所述PCIe桥具体用于:在所述计算任务指令为机密计算任务指令时,通过PCIe总线与所述宿主机进行身份认证,并当身份认证成功后获取所述对称密钥。
可选地,所述异构计算设备为多个,每个所述异构计算设备与所述PCIe桥一一对应连接,每个所述PCIe桥通过所述PCIe总线与所述宿主机连接。
可选地,所述宿主机还用于:在生成所述计算任务指令后,获取与所述宿主机连接的每个所述PCIe桥对应的所述异构计算设备的当前空闲资源量;
基于每个所述异构计算设备的当前空闲资源量以及所述计算任务指令所需的计算资源量,确定用于所述计算任务指令的异构计算设备。
可选地,所述宿主机还用于:所述获取与所述宿主机连接的每个所述PCIe桥对应的所述异构计算设备的当前空闲资源量之前,确定所述计算任务指令对应的任务类型;所述任务类型包括:机密计算任务、普通计算任务;
当所述计算任务指令对应的任务类型为所述机密计算任务时,获取所述宿主机的机密计算环境的当前空闲资源量;
当所述计算任务指令对应的任务类型为所述普通计算任务时,获取所述宿主机的普通计算环境的当前空闲资源量;
当所述机密计算环境的当前空闲资源量小于所述机密计算任务的计算资源量或所述普通计算环境的当前空闲资源量小于所述普通计算任务的计算资源量时,获取与所述宿主机连接的每个所述PCIe桥对应的所述异构计算设备的当前空闲资源量。
可选地,所述PCIe包括:上行端口、下行端口;
所述上行端口通过PCIe总线与宿主机的PCIe接口连接,所述下行端口与异构计算设备的PCIe接口连接。可选地,所述PCIe桥还用于在所述计算任务指令为普通计算任务指令时,通过PCIe总线接收来自所述宿主机的第二待计算资源并发送至与所述PCIe桥连接的异构计算设备;
所述异构计算设备还用于对所述第二待计算资源进行计算,得到第二计算结果发送至所述PCIe桥;
所述宿主机用于接收来自所述PCIe桥的第二计算结果。
可选地,所述宿主机包括:机密计算环境和普通计算环境;
其中,所述机密计算任务指令为所述宿主机中的机密计算环境基于机密计算任务生成;
所述普通计算任务指令为所述宿主机中普通计算环境基于普通计算任务生成。
可选地,所述宿主机用于:当得到相应的计算结果时,生成任务结束指令发送至所述PCIe桥;
所述PCIe桥用于基于所述任务结束指令,删除对应的所述异构计算设备中存储的所有资源。
为了实现上述目的,本发明还提供了一种基于异构计算***的资源处理方法,所述异构计算***为如上任意项所述的异构计算***,所述资源处理方法包括:
PCIe桥接收来自宿主机的计算任务指令,在所述计算任务指令为机密计算任务指令时,获取所述对称密钥;
所述PCIe桥根据所述对称密钥对来自所述宿主机的加密资源进行解密,得到第一待计算资源并发送至与PCIe桥连接的异构计算设备;
其中,所述加密资源为所述宿主机根据获取的所述对称密钥对第一待计算资源加密得到的;
所述PCIe桥根据所述对称密钥对来自所述异构计算设备的第一计算结果进行加密,并将加密后的第一计算结果通过PCIe总线发送至宿主机,以使宿主机通过所述对称密钥对所述加密后的第一计算结果解密,得到所述第一计算结果;
其中,所述第一计算结果为所述异构计算对来自所述PCIe桥的所述第一待计算资源进行计算得到的。
可选地,所述方法还包括:在所述计算任务指令为普通计算任务指令时,所述PCIe桥通过PCIe总线接收来自所述宿主机的第二待计算资源并发送至与所述PCIe桥连接的异构计算设备;所述PCIe桥接收来自所述异构计算设备的第二计算结果并发送至宿主机,以使所述宿主机得到所述第二计算结果;其中,所述第二计算结果为所述异构计算设备对所述第二待计算资源进行计算得到的。
本发明通过PCIe桥将宿主机与异构计算设备连接,在机密计算过程中,PCIe桥以及宿主机先获取对称密钥,宿主机的机密计算环境与PCIe桥之间的通信均使用上述对称密钥进行加解密,一方面,PCIe桥与宿主机获取对称密钥,在机密计算任务过程中PCIe桥与宿主机之间进行数据传输时均进行加密的形式传输,保证了第一待计算资源从宿主机端到PCIe桥之间的安全性,使得第一待计算资源能够在整个异构机密计算过程中数据的安全性;另一方面,通过PCIe桥将异构计算设备和宿主机连接起来实现异构机密计算,不改变原本计算***的拓扑结构、不需改变异构计算设备的PCIe接口的通讯协议,也无需对异构计算资源本身做任何修改,不改变异构计算设备原本的功能和能力,能够适用于具有PCIe接口的不同类型的异构计算设备,从而提高异构机密计算的普适性。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的异构计算***的结构示意图,如图1所示,该异构计算***至少包括:宿主机100、PCIe桥200、异构计算设备300。
其中,PCIe桥200包括上行端口和下行端口,上行端口通过PCIe总线与宿主机100的PCIe接口连接,以实现PCIe桥200通过PCIe总线与宿主机100连接并通信。PCIe桥200的下行端口与异构计算设备300的PCIe接口连接,以实现PCIe桥200与异构计算设备300的连接。基于此,实现宿主机100通过PCIe桥200与异构计算设备300之间的通信。上述PCIe桥是一个增加安全功能(如加解密、身份认证、访问控制、状态管理等)的透明桥,例如:PCI-PCIBridge、PCIe Switch。
上述宿主机100包括机密计算环境、普通计算环境。其中,机密计算环境即为宿主机100中用于进行机密计算的区域,普通计算环境即为宿主机100中用于除机密计算外的普通计算的区域。本发明实施例中,可以通过Intel SGX或ARM TrustZone,从宿主机100的CPU内部划分出一个由CPU保证的“安全区域”作为机密计算环境,其他区域称为“正常区域”并作为普通计算环境。
上述异构计算设备300具有PCIe接口,例如GPU板卡、DPU板卡、NPU板卡、FPGA加速卡、ASIC加速卡等,在本发明实施例中不做具体限定。
在本发明实施例中,上述宿主机100用于生成计算任务指令,并将生成的计算任务指令通过PCIe总线发送至PCIe桥200。上述计算任务指令包括:机密计算任务指令、普通计算任务指令。其中,机密计算任务指令是宿主机100中的机密计算环境基于机密计算任务生成的,用于指示进行机密计算;普通计算任务指令是宿主机100中的普通计算环境基于普通计算任务生成的,用于指示进行普通计算。
上述PCIe桥用于接收来自宿主机100的计算任务指令,并确定计算任务指令的类型,从而实现状态管理。在计算任务指令为机密计算任务指令时,获取对称密钥,使得宿主机100和PCIe桥200都能得到对称密钥。上述宿主机100的机密计算环境用于根据对称密钥对机密计算任务指令对应的第一待计算资源进行加密,得到第一加密资源并通过PCIe总线发送至PCIe桥200。上述PCIe桥200用于根据对称密钥对第一加密资源进行解密,得到第一待计算资源并发送至与该PCIe桥200连接的异构计算设备300。上述异构计算设备300用于对第一待计算资源进行计算,得到对应的第一计算结果并发送至与其连接的PCIe桥200。上述PCIe桥200用于根据对称密钥对第一计算结果进行加密,并通过PCIe总线将加密后的第一计算结果发送至上述宿主机100的机密计算环境。上述宿主机100的机密计算环境根据对称密钥对加密后的第一计算结果进行解密,得到第一计算结果。
在本发明实施例中,具有机密计算环境的宿主机100和其对应的异构计算设备300之间设置PCIe桥200,宿主机100将机密计算环境基于机密计算任务生成的机密计算任务指令通过PCIe总线发送至对应的PCIe桥200后,先获取宿主机100的机密计算环境与PCIe桥200之间通信的对称密钥,宿主机100通过对称密钥对第一待计算资源进行加密后通过PCIe总线发送至PCIe桥200,PCIe桥200对该第一加密资源进行解密并将解密后的第一待计算资源发送至与其连接的异构计算设备300,该异构计算设备300对该第一待计算资源进行计算,并将得到的第一计算结果发送至与其连接的PCIe桥200,该PCIe桥200根据上述对称密钥对第一计算结果进行加密,并将加密后的第一计算结果通过PCIe总线发送至宿主机100的机密计算环境,该机密计算环境通过对称密钥对加密后的第一计算结果解密从而得到对应的第一计算结果,完成在异构计算设备300中的机密计算。
在本发明的一些实施例中,在所述计算任务指令为机密计算任务指令时,PCIe桥获取对称密钥至少可以通过以下任意一种方式实现:
在所述计算任务指令为机密计算任务指令时,PCIe桥与宿主机的机密计算环境进行密钥交换,以得到对称密钥;
在计算任务指令为机密计算任务指令时,宿主机的机密计算环境将预先生成的对称密钥发送至PCIe桥。
基于本发明提供的异构计算***,在上述机密计算过程中,宿主机100的机密计算环境与PCIe桥200之间的通信均使用上述对称密钥进行加解密,一方面,保证了第一待计算资源从宿主机100端到PCIe桥200之间的安全性,使得第一待计算资源能够在整个异构机密计算过程中数据的安全性;另一方面,通过PCIe桥200将异构计算设备300和宿主机100连接起来,不改变原本计算***的拓扑结构、不需改变异构计算设备300PCIe接口的通讯协议,也无需对异构计算资源本身做任何修改,不改变异构计算设备300原本的功能和能力,能够适用于具有PCIe接口的不同类型的异构计算设备300,从而提高异构机密计算的普适性。
进一步地,上述PCIe桥200具体用于在计算任务指令为机密计算任务指令时,通过PCIe总线与宿主机100进行身份认证,并当身份认证成功后再获取对称密钥。
本发明实施例中,PCIe桥200在接收到的计算任务指令为机密计算任务指令时,需要先与宿主机100的机密计算环境进行身份认证,在身份认证成功建立可信连接后再获取对称密钥,从而进一步提高异构计算***在机密计算时的安全性。
可以理解的是,上述身份认证可以是现有公开的身份认证方式,在发明实施例中不做具体限定。
在本发明的一些实施例中,上述PCIe桥200还用于在计算任务指令为普通计算任务指令时,通过PCIe总线接收来自宿主机100的第二待计算资源并发送至与该PCIe桥200连接的异构计算设备300。上述异构计算设备300还用于对第二待计算资源进行计算,得到第二计算结果并发送至PCIe桥200,PCIe桥200用于将该第二计算结果通过PCIe总线发送至宿主机100,即宿主机100还用于接收来自PCIe桥200的第二计算结果。
本发明实施例提供的异构计算***,不仅可以进行异构机密计算还可以进行异构普通计算,PCIe桥200在接收到的计算任务指令为普通计算任务指令时,直接将接收来自宿主机100的普通计算环境的第二待计算资源并发送至与其连接的异构计算设备300,并将异构计算设备300对第二待计算资源计算得到的第二计算结果直接发送至宿主机100的普通计算环境,从而实现异构普通计算。
可以理解的是,上述第一待计算资源为需要进行机密计算的待计算资源,上述第二待计算资源为进行普通计算的待计算资源。并且,无论是第一待计算资源还是第二待计算资源均可以是数据或代码,在本发明实施例中不做具体限定。
本发明提供的异构计算***,既可以实现异构机密计算还可以实现异构普通计算,即可以在机密计算和普通计算之间实现状态切换,使得异构计算设备300既可以用于机密计算又可以用于普通计算,从而提高异构计算设备的利用率,提高用户体验。
如图2所示,本发明提供的异构计算***中宿主机100可以对应有多个异构计算设备300,每个异构计算设备300与一个PCIe桥200一一对应连接,每个PCIe桥200通过PCIe总线与该宿主机100连接。
在本发明实施例中,为宿主机100设置多个异构计算设备300可以提高该异构计算***的计算量,还可以同时进行多个异构计算进行,从而进一步提高用户体验。
在本发明的一些实施例中,宿主机100还用于在生成计算任务指令后,获取与宿主机100连接的每个PCIe桥200对应的异构计算设备300的当前空闲资源量;基于每个异构计算设备300的当前空闲资源量和该计算任务指令所需的计算资源量,确定用于该计算任务指令的异构计算设备300。
具体地,宿主机100在生成计算任务指令后,可以先通过与其连接的PCIe桥200获取各个异构计算设备300的当前空闲资源量,然后将每个异构计算设备300的当前空间资源量与该计算任务指令所需的计算资源量进行比较,从当前空间资源量大于计算资源量的异构计算设备300中随机选取一个异构计算设备300,作为执行该计算任务指令对应的计算任务的异构计算设备300。
上述计算任务指令所需的计算资源量即为计算任务指令对应的计算任务所需的计算资源量,这里所提到的计算任务既可以是机密计算任务还可以是普通计算任务。
更进一步地,宿主机100还可以在异构计算设备300的当前空闲资源量均小于计算资源量时,将该计算任务指令对应的计算任务分成多个子任务,并为每个子任务分配对应的异构计算设备300,从而保证异构计算的效率。
可以理解的是,上述计算任务分成多个子任务可以按照计算资源量平均分配,也可以根据异构计设备的当前空间资源量进行划分,在本发明实施例中不做具体限定。
若异构计算***中的宿主机100对应多个异构计算设备300则在宿主机100生成计算任务指令之后可以通过PCIe桥200获取每个异构计算设备300的当前空闲资源量为该计算任务指令分配对应的异构计算设备300。
在本发明的一些实施例中,宿主机100还用于:获取与宿主机100连接的每个PCIe桥200对应的异构计算设备300的当前空闲资源量之前,确定该计算任务指令对应的任务类型,当计算任务指令对应的任务类型为机密计算任务时,获取该宿主机100的机密计算环境的当前空闲资源量;当该计算任务指令对应的任务类型为普通计算任务时,获取该宿主机100的普通计算环境的当前空闲资源量;在机密计算环境的当前空闲资源量小于机密计算任务的计算资源量或普通计算环境的当前空闲资源量小于普通计算任务的计算资源量时,获取与宿主机100连接的每个PCIe桥200对应的异构计算设备300的当前空闲资源量。
在本发明实施例中,在获取与宿主机100连接的每个PCIe桥200对应的异构计算设备300的当前空闲资源量之前,宿主机100先确定其自身当前空闲资源量,从而判断是否需要异构计算设备300进行异构计算,进一步提高计算任务的计算效率。
在本发明的一些实施例中,宿主机100还用于当得到计算结果时,生成任务结束指令并发送至PCIe桥200。PCIe桥200还用于基于任务结束指令,删除该异构计算机设备中存储的所有资源。
上述计算结果包括第一计算结果和第二计算结果,在计算结果为第一计算结果时上述任务结束指令为宿主机100的机密计算环境生成的,在计算结果为第二计算结果时上述任务结束指令为宿主机100的普通计算环境生成的。上述所有资源是指该异构计算设备300在机密计算或普通计算过程中接收以及生成的所有数据或代码。
具体地,宿主机100获取到计算结果后,生成对应的任务结束指令并通过PCIe总线发送至对应的PCIe桥200,PCIe桥200在接收到该任务结束指令后,删除其存储的所有资源。
本发明在计算任务结束后删除异构计算设备300在计算任务过程中接收或生成的所有资源,避免资源被盗取,进一步保证异构计算的安全性。
基于上述异构计算***,本发明还提供了一种基于异构计算***的资源处理方法,如图3所示,该资源处理方法至少包括以下步骤:
S301,PCIe桥接收来自宿主机的计算任务指令,在计算任务指令为机密计算任务指令时,获取对称密钥。
具体地,宿主机的机密计算环境在生成机密计算任务后,先确定执行当前机密计算任务的PCIe桥。在确定执行当前机密计算任务的PCIe桥之后PCIe桥与宿主机的机密计算环境以预先约定的方式进行身份认证,在身份认证通过后PCIe桥再获取对称密钥。
S302,PCIe桥根据对称密钥对来自宿主机的加密资源进行解密,得到第一待计算资源并发送至与PCIe桥连接的异构计算设备。
其中,加密资源为宿主机根据对称密钥对第一待计算资源加密得到的。
在本发明实施例中,PCIe桥获取到对称密钥后,宿主机的机密计算环境启动该机密计算任务,并将加密资源发送至该PCIe桥。
S303,PCIe桥根据对称密钥对来自异构计算设备的第一计算结果进行加密,并将加密后的第一计算结果通过PCIe总线发送至宿主机,以使宿主机通过上述对称密钥对加密后的第一计算结果解密,得到第一计算结果。
其中,第一计算结果为异构计算设备对来自PCIe桥的第一待计算资源进行计算得到的。
在本发明的一些实施例中,在宿主机得到第一计算结果后,生成对应的任务结束指令并发送至PCIe桥,PCIe桥在接收到任务结束指令后删除该PCIe桥对应的异构计算设备中所有资源,以进一步提高数据建模过程中数据的安全性。
在本发明的一些实施例中,上述资源处理方法还可以包括以下步骤:在计算任务指令为普通计算任务指令时,PCIe桥通过PCIe总线接收来自宿主机的第二待计算资源并发送至与该PCIe桥连接的异构计算设备;PCIe桥接收来自异构计算设备的第二计算结果并发送至宿主机,以使宿主机得到第二计算结果。
其中,第二计算结果为异构计算设备对第二待计算资源进行计算得到的。
本发明中各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于***实施例,所以描述的比较简单,相关之处参见***实施例的部分说明即可。
此外,本发明实施例提供的***和方法一一对应,因此,方法也具有与其对应的***类似的有益技术效果。由于上面已经对***的有益效果进行了详细说明,因此,这里不再赘述方法的有益技术效果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。