一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法与流程

2022-07-10 14:10:19 来源:中国专利 TAG:


1.本公开的实施例总体上涉及联接到虚拟机的主机的一个或多个人工智能加速器。更特别地,本公开的实施例涉及迁移使用人工加速器的虚拟机。


背景技术:

2.人工智能(ai)模型(也称为“机器学习模型”)最近已被广泛利用,因为已在各种领域中部署ai技术,诸如图像分类、医疗诊断或自主驾驶。类似于软件应用程序的可执行图像或二进制图像,ai模型在进行训练时可以基于一组要分类为特征的属性来执行推理。ai模型的训练会需要在收集、整理和过滤数据方面进行大量投资,以生成产生有用预测的ai模型。另外,由使用ai模型产生的预测可以包含用户将希望保护的个人敏感数据。
3.从ai模型生成预测会是一个计算密集型过程。为了提供对于一个或多个用户而言足够的计算能力,一个或多个ai加速器可以联接到一个或多个虚拟机的主机机器。为了提供对于计算密集型任务(诸如,训练ai模型)而言足够的计算能力,ai加速器可以以集群进行组织,且然后组织成多个组,并且每个组可以指派给单个虚拟机。对于强度较小的任务,单个虚拟机可以具有指派给它的单个ai加速器。
4.出于几个公知的原因,虚拟机可能需要迁移到不同的主机。现有技术的虚拟机迁移并未在迁移期间保护所述一个或多个ai加速器的状态。生成一个或多个人工智能任务(其中至少一些在ai加速器上执行)的ai应用程序在迁移到另一台主机后可能失败或被中断。故障可以包括未能捕获ai加速器的配置、存储器内容和计算状态、以及未能捕获vm内ai任务的计算状态。


技术实现要素:

5.在第一方面,提供了一种计算机实施的方法,其迁移正在执行访问人工智能ai加速器的虚拟功能的应用程序的源虚拟机vm-s,所述方法包括:
6.将所述vm-s的一种状态的检查点存储到所述vm-s的多种状态的存储装置中,其中,所述vm-s的每种状态包括所述vm-s的资源的状态、所述应用程序的状态、以及所述ai加速器的将ai资源映射到所述vm-s的虚拟功能的状态;
7.响应于接收到迁移所述vm-s和所述虚拟功能的命令以及接收到对要用于执行所述迁移的状态的检查点的选择:
8.记录、然后停止一个或多个正在执行的ai任务;
9.使用所选择的检查点将所述vm-s、所述应用程序、所述一个或多个ai任务和所述虚拟功能迁移到目标主机上的目标vm
10.(vm-t);以及
11.响应于从目标管理程序接收到所述检查点由所述目标管理程序成功地验证并且所述迁移成功地完成的通知,vm-s的管理程序命令所述目标主机的管理程序重新开始所记录的一个或多个ai任务以及重新开始所述应用程序。
12.在第二方面,提供了一种用可执行指令编程的计算机可读介质,所述可执行指令在由具有通信地联接到至少一个人工智能ai处理器的至少一个硬件处理器的处理系统执行时,执行迁移正在执行访问所述至少一个ai处理器的虚拟功能的应用程序的源虚拟机vm-s的操作,所述操作包括:
13.将所述vm-s的一种状态的检查点存储到所述vm-s的多种状态的存储装置中,其中,所述vm-s的每种状态包括所述vm-s的资源的状态、所述应用程序的状态、以及所述ai加速器的将ai资源映射到所述vm-s的虚拟功能的状态;
14.响应于接收到迁移所述vm-s和所述虚拟功能的命令以及接收到对要用于执行所述迁移的状态的检查点的选择:
15.记录、然后停止一个或多个正在执行的ai任务;
16.使用所选择的检查点将所述vm-s、所述应用程序、所述一个或多个ai任务和所述虚拟功能迁移到目标主机上的目标vm
17.(vm-t);以及
18.响应于从目标管理程序接收到所述检查点由所述目标管理程序成功地验证并且所述迁移成功地完成的通知,vm-s的管理程序命令所述目标主机的管理程序重新开始所记录的一个或多个ai任务以及重新开始所述应用程序。
19.在第三方面,提供了一种系统,其包括联接到用指令编程的存储器的至少一个硬件处理器,所述指令在由通信地联接到人工智能ai加速器的所述至少一个硬件处理器执行时致使所述系统执行用于迁移正在执行访问所述ai加速器的虚拟功能的应用程序的源虚拟机vm-s的操作,所述操作包括:
20.将所述vm-s的一种状态的检查点存储到所述vm-s的多种状态的存储装置中,其中,所述vm-s的每种状态包括所述vm-s的资源的状态、所述应用程序的状态、以及所述ai加速器的虚拟功能的状态;
21.响应于接收到迁移所述vm-s和所述虚拟功能的命令以及接收到对要用于执行所述迁移的状态的检查点的选择:
22.记录、然后停止一个或多个正在执行的ai任务;
23.使用所选择的检查点将所述vm-s、所述应用程序、所述一个或多个ai任务和所述虚拟功能迁移到目标主机上的目标vm
24.(vm-t);以及
25.响应于从目标管理程序接收到所述检查点由所述目标管理程序成功地验证并且所述迁移成功地完成的通知,vm-s的管理程序命令所述目标主机的管理程序重新开始所记录的一个或多个ai任务以及重新开始所述应用程序。
26.在第四方面,提供了一种系统,其包括联接到用指令编程的存储器的至少一个硬件处理器,所述指令在由所述至少一个硬件处理器执行时致使所述系统执行用于迁移正在执行访问人工智能ai加速器的虚拟功能的应用程序的源虚拟机vm-s的操作,所述操作包括:
27.由目标主机的管理程序从与虚拟功能vf相关联的源虚拟机vm-s接收检查点,所述vf将人工智能ai处理器资源映射到所述vm-s;以及接收托管作为目标虚拟机vm-t的所述vm-s的请求;
28.由所述目标主机的管理程序根据所述检查点来分配和配置用于托管作为所述vm-t的所述vm-s和所述vm-s的vf的资源;
29.由所述目标主机的管理程序接收所述vm-s的数据帧并存储所述数据帧以生成所述vm-t;
30.由所述目标主机的管理程序接收所述vm-s的未完成的ai任务的记录状态,并且在vm-t上重新开始所述未完成的ai任务。
31.在第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
附图说明
32.本公开的实施例通过示例而非限制的方式图示在附图的各图中,其中相似的附图标记指示类似的元件。
33.图1是图示根据一个实施例的安全处理系统的框图,该安全处理系统可以利用检查点认证和/或人工智能(ai)加速器状态验证来迁移虚拟机。
34.图2a和图2b是图示根据一个实施例的在一个或多个主机和一个或多个人工智能加速器之间的安全计算环境的框图。
35.图3是图示根据实施例的主机的框图,该主机控制人工智能加速器的集群,每个集群具有将该集群内的一组ai加速器的资源映射到虚拟机的虚拟功能,每个人工智能加速器具有安全资源和非安全资源。
36.图4a是图示根据实施例的数据处理系统的部件的框图,该数据处理系统具有人工智能(ai)加速器以实施一种用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法。
37.图4b是图示根据实施例的数据处理系统的部件的框图,该数据处理系统具有人工智能(ai)加速器以实施一种用于在虚拟化环境中利用ai加速器状态验证进行虚拟机迁移的方法。
38.图5a图示了根据实施例的一种从要迁移的源虚拟机的主机管理程序的角度来看用于在虚拟化环境中利用检查点认证进行具有ai加速器的数据处理系统的虚拟机迁移的方法。
39.图5b图示了根据实施例的一种从要迁移的源虚拟机的主机管理程序的角度来看用于在虚拟化环境中使用ai加速器状态验证进行具有ai加速器的数据处理系统的虚拟机迁移的方法。
40.图6图示了根据实施例的一种从要迁移的虚拟机的主机上的源管理程序的角度来看生成检查点以供在一种用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法中使用的方法。
41.图7图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看确定是否在虚拟化环境中利用检查点认证来迁移具有ai加速器的数据处理系统的虚拟机的方法。
42.图8图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看在虚拟化环境中利用检查点认证来迁移具有ai加速器的数据处理系统的虚拟机的方法。
43.图9图示了根据实施例的一种在于虚拟化环境中利用检查点认证来迁移具有ai加
速器的数据处理系统的虚拟机后对源主机计算装置执行迁移后清理的方法。
44.图10图示了根据一些实施例的一种从主机上的用于被迁移虚拟机的目标管理程序的角度来看在虚拟化环境中利用检查点认证以及可选地ai加速器状态验证来迁移具有ai加速器的数据处理系统的虚拟机的方法。
具体实施方式
45.将参考下文所讨论的细节描述本公开的各种实施例和方面,并且附图将图示各种实施例。以下的描述和附图图示本公开,且将不被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的透彻理解。然而,在某些实例中,为了提供本公开的实施例的简洁讨论,没有描述公知的或常规的细节。
46.在说明书中提及的“一个实施例”或“实施例”意味着结合该实施例所描述的特定特征、结构或特性可以被包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”并不一定都指相同的实施例。
47.以下实施例涉及使用人工智能(ai)加速器来增加可以从主机装置卸载到(或委托给)ai加速器的某些类型的操作的处理吞吐量。主机装置托管一个或多个虚拟机(vm)。主机上的至少一个vm可以与虚拟功能相关联,该虚拟功能经由虚拟功能将ai加速器的资源映射到vm。虚拟功能枚举ai加速器内的被映射到vm的资源以及那些资源在加速器内的配置。vm内的驱动程序可以跟踪将要由ai加速器处理的任务的调度和计算状态。驱动程序还可以获得被映射到vm的ai加速器的代码、数据和存储器。
48.如本文中所使用的,“虚拟功能”是在一个人工智能(ai)加速器或ai加速器集群中的一组ai加速器内的一组资源到一个虚拟机的映射。该组资源在本文中单独地和共同地被称为“ai资源”。一个ai加速器或ai加速器集群在本文中被称为“ai加速器”,除非描述了一个ai加速器和ai加速器集群之间的区别。
49.ai加速器可以是通用处理单元(gpu)、人工智能(ai)加速器、数学协处理器、数字信号处理器(dsp)或其他类型的处理器。ai加速器可以是专有设计,诸如ai加速器或另一种gpu等。尽管在主机装置安全地联接到一个或多个ai加速器的情况下图示和描述了实施例,但是本文中所描述的概念可以更一般地实施为分布式处理系统。
50.多个ai加速器可以在由主机装置管理的集群中被链接,该主机装置具有针对ai加速器中的一个或多个将应用程序处理请求解译为处理任务的驱动程序。主机装置可以支持一个或多个虚拟机(vm),每个虚拟机具有与对应的vm相关联的用户。驱动程序可以实施将ai加速器的资源映射到vm的虚拟功能。驱动程序可以包括调度器,该调度器调度来自多个vm的应用处理请求以供由ai加速器中的一个或多个处理。在一个实施例中,驱动程序可以分析调度器中的处理请求,以确定如何对集群中的所述一个或多个ai加速器进行分组、以及是否命令一个或多个ai加速器从一组中断开链接并进入低功耗状态以减少热量和节约能源。
51.主机装置和ai加速器可以经由高速总线(诸如,外围部件互连高速(pcie)或其他高速总线)互连。主机装置和ai加速器可以在执行下文所描述的本发明的方面的操作前通过pcie总线交换密钥并启动安全信道。这些操作中的一些包括:ai加速器使用人工智能(ai)模型,以使用由主机装置提供的数据来执行推理。在ai模型推理受到主机装置信任前,
主机装置可以使用ai加速器来执行下文所描述的一个或多个验证测试,包括确定ai模型的水印。在一些实施例和操作中,ai加速器不知道主机装置正在测试由ai加速器产生的结果的有效性。
52.主机装置可以包括联接到一个或多个ai加速器的中央处理单元(cpu)。每个ai加速器可以通过总线或互连件联接到cpu。可以以以下形式来实施ai加速器:专用集成电路(asic)、现场可编程门阵列(fpga)装置或其他形式的集成电路(ic)。替代地,主机处理器可以是主数据处理系统的一部分,而ai加速器可以是作为主系统可以通过网络远程卸载其数据处理任务的次要系统的许多分布式系统(例如,云计算系统,诸如软件即服务(saas)系统或者平台即服务或(paas)系统)中的一个。主机处理器和ai加速器之间的链路可以是外围部件互连高速(pcie)链路或网络连接(诸如,以太网连接)。每个ai加速器可以包括一个或多个链路寄存器,所述链路寄存器启用(链路连接)或禁用(链路断开)与另一个ai加速器的通信链路。
53.在第一方面中,一种迁移正在执行访问人工智能(ai)加速器的虚拟功能的应用程序的源虚拟机(vm-s)的计算机实施的方法可以包括:将vm-s的一种状态的检查点存储到vm-s的多种状态的存储装置中。vm-s的每种状态可以包括vm-s的资源的状态、应用程序的状态、以及ai加速器的将ai资源映射到vm-s的虚拟功能的状态。响应于接收到迁移vm-s和虚拟功能的命令以及接收到对要用于执行迁移的vm-s的状态的检查点的选择,该方法可以进一步包括:记录、然后停止一个或多个正在执行的ai任务,并且使用所选择的检查点将vm-s、应用程序、所述一个或多个ai任务和虚拟功能迁移到目标主机上的目标vm(vm-t)。响应于从目标管理程序接收到检查点由目标管理程序成功地验证并且迁移成功地完成的通知,可以在vm-t上重新开始所记录的一个或多个ai任务和应用程序。虚拟功能将ai加速器的资源映射到vm-s,且vm-s的用户是可以访问其资源通过虚拟功能被映射到vm-s的ai加速器的资源的唯一用户。在实施例中,虚拟功能将多个ai加速器的资源映射到vm-s,并且检查点包括所述多个ai加速器之间的通信配置,且vm-s的用户是可以访问通过虚拟功能被映射到vm-s的所述多个ai加速器的资源的唯一用户。在实施例中,该方法进一步包括:从目标管理程序接收vm-s的迁移完成并且已成功地重新开始所述一个或多个所记录的ai任务的通知。响应于该通知,可以对vm-s执行迁移后清理。迁移后清理可以包括:至少擦除ai加速器的安全存储器,包括任何ai推理、ai模型、安全计算或其部分;以及擦除与ai虚拟功能相关联的vm-s的存储器以及由应用程序对虚拟功能的任何调用。验证检查点的签名和新鲜性日期(freshness date)可以包括:使用vm-s的公钥来解密检查点的签名、确定检查点的日期和时间戳在阈值日期和时间范围内、以及验证vm-s的检查点的哈希(hash)。在实施例中,检查点可以包括:一个或多个正在执行的ai任务的记录;通信地联接到vm-s的所述一个或多个ai加速器内资源的配置信息;检查点的日期和时间戳;以及vm-s的存储器的快照,包括虚拟功能调度信息和所述一个或多个ai加速器内的通信缓冲器。
54.在第二方面中,一种迁移正在执行访问人工智能(ai)加速器的虚拟功能(vf)的应用程序的源虚拟机(vm-s)的方法包括:由目标主机的管理程序从与虚拟功能(vf)相关联的源虚拟机(vm-s)接收检查点,该vf将人工智能(ai)处理器资源映射到vm-s;以及接收托管作为目标虚拟机(vm-t)的vm-s的请求。目标主机的管理程序根据检查点来分配和配置用于托管作为vm-t的vm-s和vm-s的vf的资源。目标主机的管理程序接收vm-s的数据帧并存储这
些数据帧以生成vm-t。目标主机的管理程序接收vm-s的未完成的ai任务的记录状态,并且在vm-t上重新开始未完成的ai任务。在实施例中,验证vm-s和vf的检查点包括:利用vm-s的公钥来解密检查点的签名;确定检查点的日期和时间戳落在预定范围内;以及重新计算检查点的哈希并确定经重新计算的哈希是否与存储在检查点中的哈希匹配。响应于对检查点的成功验证,继续进行vm-s到目标主机的管理程序的迁移,从而在目标主机处生成vm-t。
55.在第三方面中,一种迁移正在执行访问人工智能(ai)加速器的虚拟功能的应用程序的源虚拟机(vm-s)的计算机实施的方法包括:响应于接收到迁移vm-s和虚拟功能的命令,并且响应于接收到对要用于执行迁移的vm-s和虚拟功能的检查点的选择,记录、然后停止应用程序的一个或多个正在执行的ai任务。该方法进一步包括:生成或选择与虚拟功能相关联的ai加速器的状态,然后将检查点和ai加速器的状态传输到目标主机的管理程序以生成被迁移目标虚拟机(vm-t)。
56.响应于接收到目标主机验证了检查点和ai加速器状态并且目标主机已生成并配置了用于生成vm-t的资源的通知,目标主机将vm-s和虚拟功能迁移到vm-t。迁移包括目标主机用来自ai加速器状态帧的数据加载ai加速器。在实施例中,该方法进一步包括:响应于接收到vm-t已重新开始应用程序和ai任务的通知,对vm-s和虚拟功能执行迁移后清理。vm-s处的迁移后清理可以包括:(1)至少擦除ai加速器的安全存储器,包括任何ai推理、ai模型、安全计算的中间结果、或其部分;以及(2)擦除与虚拟功能相关联的vm-s的存储器以及由应用程序对虚拟功能的任何调用。在实施例中,存储vm-s和虚拟功能的状态的检查点可以包括将vm-s和vf的状态的检查点存储到vm-s的多个检查点的存储装置中。vm-s的每个检查点可以包括vm-s的资源的状态、应用程序的状态、以及与ai加速器的资源相关联的虚拟功能的状态。在实施例中,检查点可以进一步包括一个或多个正在执行的ai任务的记录、通信地联接到vm-s的ai加速器内资源的配置信息、vm-s的存储器的快照。检查点可以进一步包括虚拟功能调度信息和所述一个或多个ai加速器内的通信缓冲器、以及检查点的日期和时间戳。在实施例中,生成ai加速器的状态可以包括:(1)在ai加速器状态下存储状态的日期和时间戳;(2)在ai加速器状态下存储ai加速器内的存储器的内容,包括与ai加速器的处理器相关联的一个或多个寄存器、以及要由ai加速器处理的未决指令的缓存、队列或管道;以及(3)生成ai加速器的状态的哈希,并对状态、哈希、日期和时间戳进行数字签名。在实施例中,ai加速器状态可以进一步包括一个或多个寄存器设置,所述寄存器设置指示ai加速器被配置为与之通信的在ai加速器集群中的一个或多个其他ai加速器。在实施例中,验证ai加速器状态的签名和新鲜性可以包括:使用vm-s的公钥来解密ai状态的签名、确定ai加速器状态的日期和时间戳在阈值日期和时间范围内、以及验证ai加速器状态的哈希。
57.任何以上功能都可以作为可执行指令被编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统致使功能得以实施。任何以上功能都可以由具有至少一个硬件处理器的处理系统来实施,所述硬件处理器联接到用可执行指令编程的存储器,可执行指令在执行时致使处理系统实施该功能。
58.图1是图示根据一个实施例的安全处理系统100的框图,该安全处理系统可以利用检查点认证和/或人工智能(ai)加速器状态验证来迁移虚拟机。参考图1,系统配置100包括但不限于一个或多个客户端装置101至102,所述客户端装置通过网络103通信地联接到源
数据处理(dp)服务器104-s(例如,主机)和目标数据dp服务器104-t。dp服务器104-s可以托管一个或多个客户端。所述一个或多个客户端可以是虚拟机。如本文中所描述的,dp服务器104-s上的任何虚拟机都可以迁移到目标dp服务器104-t。
59.客户端装置101至102可以是任何类型的客户端装置,诸如个人计算机(例如,台式电脑、膝上型电脑和平板电脑)、“瘦”客户端、个人数字助理(pda)、启用web的器具、智能手表或移动电话(例如,智能手机)等。替代地,客户端装置101至102可以是dp服务器104-s或104-t上的虚拟机。网络103可以是有线或无线的任何类型的网络,诸如局域网(lan)、广域网(wan)(诸如,因特网)、高速总线或其组合。
60.(多个)服务器(例如,主机)104-s和104-t(统称为dp服务器104,除非另有陈述)可以是任何种类的服务器或服务器集群,诸如web或云服务器、应用程序服务器、后端服务器或其组合。服务器104进一步包括接口(未示出)以允许客户端(诸如,客户端装置101至102)访问由服务器104提供的资源或服务(诸如,由ai加速器经由服务器104提供的资源和服务)。例如,服务器104可以是云服务器或向客户端提供各种云服务的数据中心的服务器,各种云服务诸如为例如云存储、云计算服务、人工智能培训服务、数据挖掘服务等。服务器104可以通过云被配置为软件即服务(saas)或平台即服务(paas)系统的一部分,云可以是私有云、公共云或混合云。接口可以包括web接口、应用程序编程接口(api)和/或命令行接口(cli)。
61.例如,客户端可以是客户端装置101的用户应用程序(例如,web浏览器、应用程序)。客户端可以将用于执行的指令(例如,ai训练、ai推理指令等)发送或传输到服务器104,并且该指令由服务器104通过网络103经由接口来接收。响应于该指令,服务器104与ai加速器105至107通信以履行对指令的执行。源dp服务器104-s可以通信地联接到一个或多个ai加速器。由dp服务器104-t(其运行使用ai加速器105-t..107-t中的一个或多个的应用程序)托管的客户端虚拟机可以迁移到目标dp服务器104-t以在对应的ai加速器105-t..107-t上运行。在一些实施例中,指令是机器学习类型的指令,其中作为专用机器或处理器的ai加速器执行指令的速度可以比由通用处理器执行指令的速度快许多倍。因此,服务器104可以以分布的方式控制/管理针对所述一个或多个ai加速器的执行作业。然后,服务器104将执行结果返回到客户端装置101至102或服务器104上的虚拟机。ai加速器可以包括一个或多个专用处理器,诸如可从baidu,获得的人工智能(ai)芯片组,或替代地,ai加速器可以是来自另一个ai芯片组提供商的ai芯片组。
62.根据一个实施例,访问由数据处理服务器104(也称为主机)托管的ai加速器105-s..107-s或105-t..107-t(统称为105..107,除非另有指示)中的任一个的每个应用程序可以校验该应用程序是由受信任的来源或供应商提供的。每个应用程序可以在用户存储器空间内发起和执行并由主机104的中央处理单元(cpu)执行。当应用程序被配置为访问ai加速器105至107中的任何一个时,可以在主机104和ai加速器105至107中的对应一个之间建立模糊的连接,使得保护在主机104和ai加速器105至107之间交换的数据以免于来自恶意软件的攻击/入侵。
63.图2a是图示根据一些实施例的在一个或多个主机和一个或多个人工智能(ai)加速器之间的安全计算环境200的框图。在一个实施例中,在对或不对ai加速器105至107进行硬件修改的情况下,系统200为主机104和ai加速器105至107之间的模糊通信提供保护方
案。主机机器或服务器104可以被描绘为具有要受保护以免于入侵的一个或多个层的系统,所述层诸如为(多个)用户应用程序205、运行时库206、(多个)驱动程序209、操作系统211、管理程序212和硬件213(例如,中央处理单元(cpu)201和(多个)存储装置204)。在应用程序205和运行时库206下方,可以安装一个或多个驱动程序209以接口连接到硬件213和/或ai加速器105至107。
64.驱动程序209可以包括调度器209a,该调度器调度由一个或多个用户应用程序205请求的处理任务。驱动程序209可以进一步包括具有逻辑的分析器209b,该逻辑分析被调度为在ai加速器105至107上执行的处理任务以确定如何基于调度标准(诸如,处理吞吐量、能量消耗和由ai加速器生成的热量)来最佳配置ai加速器105至107。驱动程序209可以进一步包括涉及将ai加速器配置为实现调度标准的一个或多个策略。配置ai加速器可以包括将ai加速器分组为一个或多个组、从一个或多个组中移除一个或多个ai加速器。驱动程序209可以进一步包括检查点器(checkpointer)209c。检查点器209c可以对用户应用程序205的状态、vm 201内的存储器、调度器209a状态、分析器209b状态、以及vm 201内的虚拟功能的配置拍摄快照。如本文中所使用的,虚拟功能是一个人工智能(ai)加速器(例如,105)或ai加速器集群105..107内的一组资源到虚拟机的映射。下文参考图3、图4a和图4b描述虚拟功能。
65.可以将未指派给ai加速器集群内的一组ai加速器的ai加速器设置为低功耗状态以节省能量并减少热量。低功耗状态可以包括减小ai加速器的时钟速度或进入待机状态,在该待机状态中,ai加速器仍然通信地联接到主机装置并且可以进入运行状态,在该运行状态中,ai加速器准备好从主机装置接收处理任务。未指派给集群中的一个组的ai加速器可以替代地保持处于通电状态,使得驱动程序209可以将工作指派给不是一组ai加速器的成员的单个ai加速器。
66.配置ai加速器可以进一步包括:命令一个或多个ai加速器生成与一个或多个其他ai加速器的通信链路(链路连接)以在ai加速器集群内形成一组ai加速器。配置ai加速器可以进一步包括:命令一个或多个dp加速器以在ai加速器和一个或多个其他ai加速器之间断开通信链路(链路断开)。ai加速器的链路连接和链路断开可以由每个ai加速器中的一个或多个链路寄存器来管控。
67.在基于策略的分割实施例中,ai加速器配置策略是描述每个ai加速器的通信链路(链路连接或断开)的单个策略。虽然每个ai加速器的配置可以(且通常将)与其他ai加速器不同,但每个ai加速器的配置都被包括在单个策略内,并且集群中的每个ai加速器接收相同的策略。然后,每个ai加速器根据策略的描述配置ai加速器的部分来配置自身。基于策略的分割可以是基于对调度器209a中的处理任务的分析。该分析可以确定ai加速器到组中的最佳分配。在一个实施例中,为优化吞吐量,一组处理器内或跨多组处理器的分时处理任务使能量消耗和所生成的热量最小化。将ai加速器以基于策略的方式分割成多个组的优点包括:ai加速器的快速分割、在组内或跨组对处理任务的灵活调度、ai加速器的分时操作和组的分时操作。
68.在动态分割实施例中,为每个ai加速器生成ai加速器策略。驱动程序209可以动态地改变每个ai加速器的配置,包括重新组织ai加速器的组、从所有组中移除一个或多个ai加速器、以及将那些ai加速器设置为低功率状态。在动态分割实施例中,每组ai加速器指派
给单个用户,而不是在用户之间分时操作ai加速器。驱动程序209可以包括分析器209b,该分析器分析调度器209a内的处理任务以确定ai加速器的最佳分组。分析可以为一个或多个ai加速器生成配置,并且可以将该配置部署到要重新配置的每个这种ai加速器。动态分割的优点包括:通过将一个或多个处理器设置为低功耗状态来节省能源、以及针对一个ai加速器或一组ai加速器的用户专用处理而不是在用户之间进行时间分片。
69.硬件213可以包括具有一个或多个处理器201的处理系统201。硬件213可以进一步包括(多个)存储装置204。(多个)存储装置204可以包括一个或多个人工智能(ai)模型202、以及一个或多个内核203。内核203可以包括签名内核、启用水印的内核、加密和/或解密内核等。签名内核在执行时可以根据内核的编程对任何输入进行数字签名。启用水印的内核可以从数据对象(例如,ai模型或其他数据对象)中提取水印。启用水印的内核还可以将水印植入到ai模型、推理输出或其他数据对象中。
70.水印内核(例如,继承水印的内核)可以从另一个数据对象继承水印并将该水印植入到不同的对象中,诸如推理输出或ai模型。如本文中所使用的,水印是与ai模型或由ai模型生成的推理相关联并且可以植入到其中的标识符。例如,可以在一个或多个权重变量或偏误变量中植入水印。替代地,可以创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的假节点)以植入或存储水印。
71.主机机器104可以是cpu系统,其可以控制和管理主机机器104和/或ai加速器105至107上的作业的执行。为了保护/模糊ai加速器105至107和主机机器104之间的通信信道215,可能需要不同的部件来保护主机系统的易于受到数据入侵或攻击的不同层。
72.根据一些实施例,系统200包括主机系统104和ai加速器105至107。可以存在任何数量的ai加速器。ai加速器可以包括ai芯片组或另一个ai芯片组(诸如,可以执行人工智能(ai)密集型计算任务的图形处理单元(gpu))。在一个实施例中,主机系统104包括在主机机器104内具有一个或多个cpu的硬件213,所述cpu可选地配备有安全模块(诸如,可选的受信任的平台模块(tpm))。可选的tpm是端点装置上的专用芯片,其存储特定于主机系统以用于硬件认证的密码密钥(例如,rsa密码密钥)。每个tpm芯片可以包含一个或多个rsa密钥对(例如,公钥和私钥对)(称为背书密钥(ek)或背书凭证(ec)),即根密钥。密钥对被保持在可选的tpm芯片内部,且无法通过软件访问。然后,固件和软件的关键部分可以在执行前由ek或ec进行哈希操作(hashed),以保护系统免于未经授权的固件和软件修改。因此,可以将主机机器上的可选的tpm芯片用作用于安全启动的信任根。
73.可选的tpm芯片还可以保护正在工作的内核空间中的(多个)驱动程序209和操作系统(os)211以与ai加速器105至107通信。此处,驱动程序209由ai加速器供应商提供并且可以充当用户应用程序205的驱动程序209以控制主机和ai加速器之间的(多个)通信信道215。由于可选的tpm芯片和安全启动处理器保护在其内核空间中的os 211和驱动程序209,因此tpm也有效地保护了驱动程序209和os 211。
74.由于用于ai加速器105至107的通信信道215可以由os 211和驱动程序209排他地使用,因此可以通过可选的tpm芯片来保护通信信道215。在一个实施例中,通信信道215包括外围部件互连(pci)或外围部件互连高速(pcie)信道。在一个实施例中,通信信道215是模糊的通信信道。
75.运行时库206可以将应用程序编程接口(api)调用转换为用于执行、配置和/或控
制ai加速器的命令。在一个实施例中,运行时库206提供一组预定的(例如,预定义的)内核以供由用户应用程序执行。在一个实施例中,这些内核可以作为内核203存储在(多个)存储装置204中。
76.(多个)操作系统211可以是任何发行版、os或os、或其他操作系统。
77.系统可以通过可选的基于tpm的安全启动来启动。可选的tpm安全启动确保仅已签名/已证明的操作系统211和加速器驱动程序209在提供加速器服务的内核空间中发起。在一个实施例中,可以通过管理程序(212)加载操作系统211。管理程序或虚拟机管理器212是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是声明区域或范围,其中内核(即,供执行的一组预定的(例如,预定义的)函数)被识别以向用户应用程序提供功能和服务。如果系统的完整性受到损害,则可选的tpm安全启动可能无法启动,而是关闭系统。
78.在启动后,运行时库206运行用户应用程序205。在一个实施例中,用户应用程序205和运行时库206被静态地链接并一起发起。在另一个实施例中,首先发起运行时库206,且然后动态地加载用户应用程序205。静态地链接的库是在编译时间链接到应用程序的库。动态加载可以由动态链接器执行。动态链接器加载并链接共享库,以便在运行时运行用户应用程序。此处,用户应用程序205和运行时库206在运行时彼此可见,例如,所有过程数据都彼此可见。
79.在一个实施例中,用户应用程序205仅可以从如由运行时库206预定的一组内核中调用一个内核。在另一个方面中,用户应用程序205和运行时库206用无侧信道算法硬化以防御侧信道攻击,诸如基于缓存的侧信道攻击。侧信道攻击是基于从计算机系统的实施中获得的信息的任何攻击,而不是所实施的算法本身方面的弱点(例如,密码分析和软件错误)。侧信道攻击的示例包括缓存攻击,缓存攻击是基于攻击者在虚拟化环境或云环境中监测共享物理系统缓存的能力的攻击。硬化可以包括缓存的屏蔽、由算法生成的要放置在缓存上的输出。接下来,当用户应用程序完成执行时,用户应用程序终止其执行并退出。
80.在一个实施例中,该组内核203包括混淆内核算法。在一个实施例中,混淆内核算法可以是对称或非对称算法。对称混淆算法可以使用相同的算法来混淆和反混淆数据通信。非对称混淆算法需要一对算法,其中该对中的第一个用于混淆且该对中的第二个用于反混淆,反之亦然。在另一个实施例中,非对称混淆算法包括用于混淆数据集的单个混淆算法,但该数据集并不旨在被反混淆,例如,不存在对等的反混淆算法。
81.混淆是指通过使通信消息难以理解(通常利用令人困惑和模棱两可的语言)来模糊通信的预期含义。模糊的数据对于逆向工程来说更难也更复杂。可以在传达数据前应用混淆算法以模糊(加密/解密)数据通信,从而减少窃听的机会。在一个实施例中,混淆算法可以进一步包括加密方案以进一步加密混淆数据来实现附加的一层保护。与可能是计算密集型的加密不同,混淆算法可以简化计算。
82.一些混淆技术可以包括但不限于字母混淆、名称混淆、数据混淆、控制流混淆等。字母混淆是用特定的替代字母替换数据中的一个或多个字母的过程,从而使数据呈现为无意义。字母混淆的示例包括字母旋转功能,其中每个字母沿着字母表移位或旋转预定数量的位置。另一个示例是基于特定模式重新排序或打乱字母。名称混淆是用无意义的字符串替换特定的目标字符串的过程。控制流混淆可以用加性代码(插入死代码、插入不受控制的
跳转、插入替代性结构)改变程序中控制流的顺序,以隐藏算法/ai模型的真实控制流。
83.总之,系统200为ai加速器提供多层保护(用于数据传输,包括机器学习模型、训练数据和推理输出),以免数据机密性和完整性丢失。系统200可以包括可选的基于tpm的安全启动保护层和内核验证/校验层。系统200可以包括使用无侧信道算法以便防御侧信道攻击(诸如,基于缓存的侧信道攻击)的应用程序。
84.运行时206可以提供混淆内核算法以混淆主机104和ai加速器105至107之间的数据通信。在一个实施例中,混淆可以与密码方案成对。在另一个实施例中,混淆是唯一的保护方案,并且基于密码的硬件呈现为对于ai加速器来说是不必要的。
85.图2b是图示根据一个实施例的在一个或多个主机和一个或多个人工智能(ai)加速器之间的安全计算环境的框图。在一个实施例中,主机信道管理器(hcm)250包括可选的认证模块251、可选的终止模块252、可选的密钥管理器253、可选的(多)密钥存储区254和可选的密码引擎255。可选的认证模块251可以认证在主机服务器104上运行的用户应用程序以准许访问或使用ai加速器105的资源。hcm 250可以经由通信信道215与ai加速器105的加速器信道管理器(acm)280通信。
86.可选的终止模块252可以终止连接(例如,与该连接相关联的信道将被终止)。可选的密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,以针对不同的安全数据交换信道来加密/解密一个或多个数据包。此处,每个用户应用程序(作为图2a的用户应用程序205的一部分)可以以一对多的关系对应于或映射到不同的安全数据交换信道,并且每个数据交换信道可以对应一个ai加速器105。每个应用程序可以利用多个会话密钥,其中每个会话密钥用于对应于一个ai加速器(例如,加速器105至107)的安全信道。可选的(多)密钥存储区254可以存储加密非对称密钥对或对称密钥。可选的密码引擎255可以针对通过安全信道中的任一个交换的数据来加密或解密数据包。注意,这些模块中的一些可以被集成到较少的模块中。
87.在一个实施例中,ai加速器105包括acm 280、非敏感资源290和敏感资源270。acm 280是对应于hcm 250的对等的模块,其负责管理主机104和ai加速器105之间的通信,诸如例如资源访问控制。acm 280包括链路配置模块281,该链路配置模块与主机服务器104的hcm 250协作以在主机服务器104和ai加速器105之间建立通信信道215。acm 280进一步包括资源管理器282。资源管理器282强制执行对敏感资源270和非敏感资源290的限制访问。在一个实施例中,敏感资源270占据ai加速器105内的第一地址空间范围。非敏感资源290占据ai加速器105内的第二地址空间范围。在一个实施例中,第一地址空间和第二地址空间是互斥且不重叠的。在一个实施例中,资源管理器282进一步包含准许主机服务器104访问敏感资源270和非敏感资源280的逻辑(例如,访问控制逻辑)。在一个实施例中,资源管理器282强制执行从主机服务器104接收到的访问和配置策略,如下文进一步描述的。
88.敏感资源270可以包括可选的密钥管理器271、可选的(多)密钥存储区272、真随机数生成器273、可选的密码引擎274和存储器/存储装置277。可选的密钥管理器271可以管理(例如,生成、保管和/或销毁)非对称密钥对或对称密钥。可选的(多)密钥存储区272可以将密码非对称密钥对或对称密钥存储在敏感资源270内的安全存储装置中。真随机数生成器273可以生成用于密钥生成和密码引擎274使用的种子,诸如认证链接的ai加速器。可选的密码引擎274可以加密或解密用于数据交换的密钥信息或数据包。存储器/存储装置277可
以包括用于ai模型275和内核276的存储装置。内核276可以包括(多个)水印内核(包括继承的水印内核、启用水印的内核、水印签名内核等)、加密和解密内核、以及相关联的数据。
89.ai加速器105可以进一步包括非敏感资源290。非敏感资源290可以包括一个或多个处理器或处理逻辑291和存储器/存储装置292。处理器或处理逻辑192能够执行指令或程序以执行各种处理任务,诸如ai任务(例如,机器学习过程)。
90.链路配置模块281负责建立或连接从一个ai加速器到另一个ai加速器的链路或路径,或者终止或断连从一个ai加速器到另一个ai加速器的链路或路径。在一个实施例中,响应于加入一组ai加速器的请求(例如,来自主机),链路配置模块281建立从对应的ai加速器到该组或集群中的至少一些ai加速器的链路或路径,使得该ai加速器可以与其他ai加速器进行通信,例如访问其他ai加速器的资源以进行ai处理。类似地,响应于从第一组ai加速器切换到第二组ai加速器的请求,链路配置模块281终止来自第一组的对应的ai加速器的现有链路并建立到第二组ai加速器的新链路。
91.在一个实施例中,ai加速器105进一步包括ai处理单元(未示出),该ai处理单元可以包括ai训练单元和ai推理单元。ai训练单元和ai推理单元可以被集成到敏感资源270中的单个单元中。ai训练模块被配置为使用一组训练数据来训练ai模型。可以经由通信链路215从主机系统104接收要训练的ai模型和训练数据。在一个实施例中,训练数据可以存储在非敏感资源290中。ai模型推理单元可以被配置为在一组输入数据(例如,一组输入特征)上执行训练后的人工智能模型以推断和分类该输入数据。例如,可以将图像输入到ai模型以对图像是否包含人物、风景等进行分类。还可以通过通信链路215经由接口140从主机系统104接收训练后的ai模型和输入数据。
92.在一个实施例中,敏感资源270中的水印单元(未示出)可以包括水印生成器和水印刻录器(也称为“水印植入器”)。水印单元(未示出)可以包括敏感资源270的水印内核执行器或内核处理器(未示出)以执行内核276。在实施例中,可以从主机104接收或者从持久性或非持久性存储装置检索内核,并且在ai加速器105的敏感资源270中的内核存储器276中执行该内核。水印生成器被配置为使用预定的水印算法生成水印。替代地,水印生成器可以从现有的水印来继承水印或者从另一个数据结构或数据对象(诸如,人工智能模型或一组输入数据)提取水印,可以从主机系统104接收该另一个数据结构或数据对象。水印植入器被配置为将水印刻录或植入到数据结构(诸如,人工智能模型或由人工智能模型生成的输出数据)中。其中植入有水印的人工智能模型或输出数据可以通过通信链路215从ai加速器105返回到主机系统104。注意,ai加速器105至107具有相同或类似的结构或部件,并且本技术通篇中,关于ai加速器的描述将适用于所有ai加速器。
93.图3是图示根据实施例的主机104的框图,该主机控制人工智能加速器的集群310,每个集群具有将该集群内的一组311ai加速器的资源映射到主机上的虚拟机的虚拟功能,每个人工智能加速器具有安全资源和非安全资源。
94.主机104可以包括(多个)应用程序205(例如,人工智能(ai)应用程序)、运行时库206、一个或多个驱动程序209、操作系统211和硬件213,上文已参考图2a和图2b描述了以上各者中的每一者且此处将不进行重复。在虚拟计算实施例中,主机104可以进一步包括管理程序212,诸如vsphere/或。管理程序212可以是直接在物理服务器上运行的类型1“裸机”或“本机”管理程序。在一个实施例中,管理程序
212可以是像任何其他应用程序一样加载到操作系统211内部并由操作系统211管理的类型2管理程序。在任一情况下,管理程序212都可以支持主机104上的一个或多个虚拟机(未示出)。在这种方面中,可以将虚拟机(未示出)视为图1的客户端装置101和102。
95.人工智能(ai)加速器集群310可以包括上文参考图2a和图2b所描述的ai加速器105至107。参考图3,ai加速器集群310可以包括例如被标记为a到h的八(8)个ai加速器。加速器集群310中的每个ai加速器可以具有到加速器集群310中的一个或多个其他ai加速器的一个或多个通信链路215。上文参考图2a和图2b描述了ai加速器通信链路215。集群310中的每个ai加速器根据从主机104驱动程序209接收到的策略来进行配置。集群310中的每个ai加速器可以具有敏感资源270和非敏感资源290。
96.在图3中所示的示例中,ai加速器a-d被配置为第一组311四(4)个ai加速器。第一组311中的ai加速器的资源由虚拟功能vf1配置和管理,并且与第一虚拟机相关联。ai加速器e-h被配置在第二组312四(4)个ai加速器中。第二组312中的ai加速器的资源由虚拟功能vf2配置和管理,并且与第二虚拟机相关联。两个组311和312的资源是互斥的,并且两个组中的任一个的用户都不能访问两个组中的另一个的资源。在第一组311ai加速器中,每个ai加速器具有直接到另一个加速器的通信链路,例如a-b、a-c、b-d和c-d,抑或具有经由一个或多个介入加速器到另一个加速器的通信路径,例如a-b-d、a-c-d等。第二组312被示为在第二组312中的每个ai加速器和第二组312中的每个其他ai加速器之间具有直接通信链路。驱动程序209可以生成策略,其中,一组中的每个ai加速器与该组中的每个或一些其他ai加速器具有直接通信链路。在第一组311的情况下,驱动程序209可以生成策略,该策略进一步包括例如用于使ai加速器a和d彼此生成通信链路以及ai加速器b和c生成彼此通信链路的指令。集群310中可以存在被配置到任何数量的组中的任何数量的ai加速器。
97.在基于静态策略的实施例中,单个策略定义每个ai加速器的配置并从驱动程序209传输到集群310中的所有ai加速器。在实施例中,驱动程序209可以在单个广播消息中将策略传输到集群中的所有ai加速器。每个ai加速器读取策略并与集群310中的一个或多个ai加速器形成通信链路(链路连接)或断开通信链路(链路断开),由此将ai加速器配置到一个或多个组中。在图3中,存在八个(8)ai加速器,它们被配置为两组各四(4)个ai加速器。一组中的每个ai加速器具有到该组中的每个ai加速器的直接通信链路,抑或具有经由一个或多个ai加速器(该ai加速器具有到所述一个或多个ai加速器的直接通信链路)到每个ai加速器的间接通信路径。在基于静态策略的环境中,驱动程序209的调度器209a可以在应用程序205和/或虚拟机的用户之间使用时间分片来调度集群310的一个或多个组上的处理任务。在实施例中,加速器集群310中的每组加速器可以具有不同且分离的调度器209a。可以通过驱动程序209来改变静态策略,从而生成描述集群310中的每个ai加速器的配置的新策略。
98.集群310中的每个ai加速器(例如,链路配置模块281和/或资源管理器282)根据策略来重新配置自身,从而在该ai加速器和集群310中的一个或多个其他ai加速器之间形成通信链路(链路连接)或断开通信链路(链路断开)。基于静态策略的配置是快速的,因为该配置在单个(例如,广播的)消息中传输,并且每个ai加速器与集群310中的其他ai加速器基本上并行地配置自身。由于针对所有ai加速器的策略是同时传输到所有ai加速器的,因此配置可以非常快速地发生。例如,如果策略包括使ai加速器“a”生成到ai加速器“b”的链路
的指令,则策略也具有ai加速器b将要生成到ai加速器a的链路的指令。每个ai加速器可以基本上同时断开链路的其自己的那端,由此非常快速地断开ai加速器a和ai加速器b之间的链路。在一个实施例中,单个策略可以表达为ai加速器的邻接表。
99.基于静态策略的配置也是有效的,因为它支持不同用户之间的时间片调度并且支持将用户的处理任务分配给集群310中的不止一个ai加速器组。可以从分析器209b确定调度器209a中的处理任务的特性来生成静态策略。例如,调度器209a可以包括使用相同的ai模型来执行推理或进一步训练ai模型的大量任务。分析器可以生成策略,该策略将若干个ai加速器配置为准备在ai模型上执行推理或进行训练。配置可以包括:识别对ai加速器的分组,以及将一个或多个ai模型加载到ai加速器中的一个或多个的敏感存储器中来为调度器209a中的处理任务做准备。
100.在基于动态策略的实施例中,驱动程序209可以单独地将群集310中的每个ai加速器配置为实现ai加速器的配置。策略被单独地传输到每个ai加速器。在实践中,在基于动态策略的实施例中,传输到每个ai加速器的策略通常彼此不同。ai加速器接收策略并根据策略来配置自身。配置包括ai加速器将自身配置到集群310中的一个组中或脱离(out of)集群310中的一个组。根据策略,ai加速器通过与一组中的至少一个ai加速器形成通信链路(链路连接)来将自身配置到该组中。ai加速器通过断开该ai加速器和组中的所有ai加速器之间的通信链路(链路断开)而离开该组。在配置后,如果ai加速器不是任何一组ai加速器的成员,则可以将该ai加速器设置为低功率模型以减少热和节约能源。在一个实施例中,调度器209a将一个ai加速器或ai加速器组指派给调度器209a正在将处理任务调度到群集310所针对的每个用户或应用程序。
101.图4a是图示根据实施例的数据处理系统的部件的框图,该数据处理系统具有人工智能(ai)加速器以实施一种用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法。
102.源主机(host-s)401可以支持多个虚拟机(vm),诸如要经由网络103迁移到目标主机(host-t)451的第一(源)vm(vm1-s)。网络103可以是任何网络,如上文参考图1所描述的。host-s 401还可以支持附加vm,诸如vm2以及vm3。虚拟机vm1-s、vm2和vm3(每一个都被标记为“402”)可以各自包括至少一个应用程序403和至少一个驱动程序404。驱动程序404可以包括一个或多个函数库和应用程序编程接口(api),所述api使得包含驱动程序404的vm 402能够与一个或多个人工智能(ai)加速器410通信,所述ai加速器经由管理程序405、cpu 406和总线407与vm 402通信地联接。
103.管理程序x 405可以是任何类型的管理程序,包括在host-s 401的硬件上运行的“裸机”管理程序,或者管理程序可以运行host-s 401的在主机硬件(诸如,cpu 406和存储器(未示出))上执行的操作系统(未示出)。cpu 406可以是任何类型的cpu,诸如通用处理器、多核处理器、流水线处理器、并行处理器等。总线407可以是任何类型的高速总线,诸如外围部件互连高速(pcie)、光纤总线或其他类型的高速总线。如上文参考图2a、图2b和图3的通信信道215所描述的,可以加密通过总线407进行的通信。总线407将cpu 406通信地联接到所述一个或多个人工智能(ai)加速器410。每个vm可以具有单独加密的通信信道215,该通信信道使用与每个其他vm的加密通信信道215使用的密钥不同的一个或多个密钥。
104.每个ai加速器410可以托管一个或多个虚拟功能,诸如vf1、vf2、

vfn,每个虚拟功能在图4中用附图标记411来标记。虚拟功能411将资源412(例如,加速器acc1 410的
res1、res2、...resn)映射到特定的主机虚拟机402。每个虚拟机402具有用户。与特定vm 402(例如,vm1-s)相关联的虚拟功能411仅可以由该特定vm 402(例如,vm1-s)的用户访问。虚拟机资源各自在图4中用附图标记412来标记。上文参考图2b描述了虚拟机资源412,并且其包括诸如以下各者的资源:非敏感资源290(包括处理逻辑291和存储器/存储装置292)、加速器信道管理280(包括链路配置281和资源管理器282)、以及敏感资源270(包括(多个)ai模型275、(多个)内核276、存储器/存储装置277、以及密钥管理器271、(多)密钥存储区272、真随机数生成器273和密码引擎274)。如下文更充分描述的,在将虚拟机(例如,vm1-s)迁移到目标主机(例如,host-t 451)后,应擦除至少敏感资源,使得在将vm1-s的被迁移虚拟功能迁移到目标主机host-t 451并且将vm1-s的被迁移虚拟功能的现在未使用资源指派给新vm后,该新vm将无法得到被迁移vm1-s的敏感数据以及与虚拟功能(与vm1-s相关联)相关联的敏感数据。
105.目标主机(例如,host-t 451)可以具有与host-s 401相同或类似的硬件和软件配置。加速器410和加速器460应是相同或类似的类型,诸如对于它们各自的处理器具有兼容的指令集。host-t 451应在数量上具有如vm-s可能需要的可用的足够资源,使得vm1-s可以迁移到vm1-t。定性地说,host-s 401和host-t 451应具有兼容的操作硬件和软件。例如,host-s 401加速器410可与host-t 451上的加速器acc2 460属于同一制造商,并且型号兼容,否则迁移可能不成功。
106.检查点420是vm1-s的状态(一直到并包括作为vm1-s从host-s 401迁移到host-t 451的一部分正在迁移的虚拟功能411(例如,vf1))的快照。vm1-s的检查点以及相关联的虚拟功能可以包括以下信息。在实施例中,检查点不包括加速器410内部的资源412内所包含的信息。包括在检查点中的以下信息列表是为了图示而非限制。本领域技术人员可向下表添加或删除要迁移的虚拟机和虚拟功能的检查点420的信息。
[0107][0108][0109]
检查点器209c可以根据图6中所描述的事件生成检查点帧420。检查点帧420可以例如在指定的时间增量、在检测到系统异常或故障时、或者在接收到获取检查点帧420的指令时生成。这种指令可以来自用户,诸如管理员或最终用户。每个检查点帧420的大小可以大约为例如1个千兆字节(gb)。在实施例中,检查点器209可以包括循环缓冲器,其存储多达指定数目k的检查点帧420。当缓冲器已满时,下一个添加的帧覆写最久的检查点帧420。当是时候迁移虚拟机和虚拟功能时,用户可以选择特定的检查点帧420来用于执行迁移,该检查点帧表示用户偏好用于迁移的正在运行的应用程序403的已知状态。在实施例中,默认情况下迁移使用最近的检查点帧420。在实施例中,在源vm1-s的迁移期间,可以在将检查点帧420从源vm1-s传输到目标主机host-t 451前对检查点帧420、检查点帧420的哈希、以及检查点帧420的日期和时间戳进行数字签名。
[0110]
当目标主机host-t 451的管理程序455接收到检查点帧420时,管理程序455可以
使用vm1-s的公钥来解密检查点帧420,验证日期和时间戳落在预定的时间窗内,并且校验检查点帧的哈希。校验日期和时间戳验证了检查点帧420的新鲜性。如果目标host-t 451的管理程序455验证检查点帧420,则host-t 451的管理程序455可以在host-t 451处为源vm1-s分配资源以生成vm1-t 452。
[0111]
现在参考图4b,检查点器209可以进一步获得ai加速器状态帧421。ai加速器状态帧421与检查点帧420的不同之处在于ai加速器状态帧421捕获(多个)ai加速器410内部的信息。ai加速器状态帧的捕获的内容可以包括ai加速器内部的一个或多个寄存器的内容、安全存储器和非安全存储器的内容(包含例如ai模型、内核、中间推理计算等)。ai加速器状态帧421可以与检查点帧420同步获取,使得在ai加速器状态帧421获得的信息相对于要迁移的vm1-s及其关联的虚拟功能(该虚拟功能将ai加速器410资源的分配映射到虚拟机,例如vm1-s)的最近检查点帧420是“新鲜的”(当前)。在实施例中,可以在检查点帧420后并且在已停止正在执行的应用程序403的未决ai任务后获取ai加速器状态帧421。这种实施例避免ai加速器状态帧421存储ai加速器的状态,该ai加速器对应于在迁移后可能难以可靠地重新开始的部分的、在进行中的过程或线程。
[0112]
ai加速器状态帧421可以包含以下信息。以下信息是作为示例而非限制。本领域技术人员可向表中添加或删除用于特定的系统安装的信息。在vm1-s的迁移期间,可以在将ai加速器状态帧421传输到目标主机host-t 451的管理程序455之前用ai加速器410的私钥或虚拟机vm1-s的私钥对该帧、该帧的哈希、以及该帧的日期和时间戳进行数字签名。当是时候迁移虚拟机vm1-s和虚拟功能时,用户可以选择特定的ai加速器状态帧421,或者可以响应于对检查点帧420的选择并且响应于接收到将源vm1-s迁移到目标host-t 451的指令来生成帧421。在实施例中,默认情况下迁移使用与最近的检查点帧420相关联的ai加速器状态帧421。在实施例中,在源vm1-s的迁移期间,可以在将ai加速器状态帧421从源vm1-s传输到目标主机host-t 451的管理程序455前对ai加速器状态帧421、ai加速器状态帧421的哈希、以及ai加速器状态帧421的日期和时间戳进行数字签名。
[0113]
当目标主机的管理程序455接收到ai加速器状态帧421时,管理程序可以使用vm1-s的公钥或者在实施例中vm1-s的ai加速器410的公钥来解密ai加速器状态帧421,以验证日期和时间戳落在预定的时间窗内并校验ai加速器状态帧421的哈希。对日期和时间戳的检查验证了ai加速器状态帧421的新鲜性。如果目标host-t 451的管理程序455验证了ai加速器状态帧421,则host-t 451的管理程序455可以将ai加速器状态帧的内容拷贝到vm1-t 452上的ai加速器acc2 460。
[0114]
[0115][0116]
图5a图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看用于在虚拟化环境中使用检查点认证进行具有ai加速器的数据处理系统的虚拟机迁移的方法500。可以在要迁移到目标主机(例如,作为被迁移虚拟机vm1-t的host-t 451)的源虚拟机(例如,vm1-s)上实践方法500。
[0117]
在操作600中,vm1-s的逻辑可以确定是否存储vm1-s的检查点帧420,该vm1-s正在运行利用一个或多个人工智能(ai)加速器(例如,acc1 410)的应用程序403。检查点帧420包含vm1-s的快照,包括应用程序403、应用程序的执行线程、包含执行线程的调度器209a、由vm1-s分配的与应用程序相关的存储器、以及将一个或多个ai加速器的资源映射到vm1-s的虚拟功能,如上文参考图4a所描述的。在实施例中,可选地,生成检查点帧420还可以触发获取ai加速器状态帧421。在实施例中,可以在与应用程序403相关联的一个或多个ai任务在以下操作800中已暂停或停止后生成和存储ai加速器状态帧421。下文参考图6来详细描述操作600。
[0118]
在操作700中,vm1-s可以确定是否迁移vm1-s。该决定可以基于对用户命令的接收,诸如从管理员或最终用户。在实施例中,迁移vm1-s的决定可以基于高于阈值的异常或故障阈值。下文参考图7来详细描述操作700。
[0119]
在操作800中,响应于接收到将vm1-s、应用程序和用于相关联的ai加速器的虚拟
功能迁移到目标主机451的命令,并且响应于接收到对要用于执行迁移的检查点帧420的选择,检查点器209c记录与正在运行的应用程序相关的一个或多个正在执行的ai任务的状态,然后停止或暂停所述一个或多个正在执行的ai任务。然后,vm1-s开始用于将vm1-s和虚拟功能迁移到目标主机的过程800。下文参考图8来描述操作800。
[0120]
在操作900中,响应于vm1-s从目标主机451的管理程序455接收到管理程序455已成功地验证检查点420并且迁移完成的通知,源主机的管理程序命令目标主机451上的管理程序455在vm1-t中重新开始被迁移的应用程序和记录的任务。可选地,vm1-s通过虚拟功能对vm1-s以及与vm1-s相关联的所述一个或多个ai加速器执行迁移后清理。下文参考图9来描述操作900。方法500结束。
[0121]
图5b图示了根据实施例的一种从托管要迁移的源虚拟机的源管理程序的角度来看用于在虚拟化环境中使用ai加速器状态验证在具有ai加速器的数据处理系统上进行虚拟机迁移的方法550。可以在要迁移到目标主机(例如,作为被迁移虚拟机vm1-t的host2 451)的源虚拟机(例如,vm1-s)上实践方法550。
[0122]
在操作800中,响应于接收到将vm1-s、在vm1-s上运行的应用程序和用于相关联的ai加速器的虚拟功能迁移到目标主机451的命令,并且响应于接收到对要用于执行迁移的检查点帧420的选择,检查点器209c记录与正在运行的应用程序相关的一个或多个正在执行的ai任务的状态,然后停止或暂停所述一个或多个正在执行的ai任务。然后,vm1-s开始用于将vm1-s和虚拟功能迁移到目标主机的过程800。下文参考图8来描述操作800。
[0123]
在操作551中,在选择检查点帧420后,然后vm1-s生成或选择与vm1-s的虚拟功能相关联的ai加速器状态帧421。上文参考图4b描述了ai加速器状态帧421。生成ai加速器状态帧421的哈希,生成ai加速器状态帧421的日期和时间戳,并且用vm1-s的私钥或在实施例中ai加速器410(该ai加速器与将ai资源映射到vm1-s的虚拟功能相关联)的私钥对ai加速器状态帧421、哈希、以及日期和时间戳进行数字签名。将数字签名后的ai加速器状态帧421传输到目标主机451的管理程序455。
[0124]
在操作900中,响应于从目标主机451的管理程序455接收到检查点帧420和ai加速器状态帧421被成功地验证并且迁移完成的通知,目标主机541上的管理程序455在被迁移虚拟机vm1-t内重新开始应用程序和记录的ai任务。可选地,vm1-s可以执行迁移后清理。下文参考图9来详细描述操作900,该操作包括通过虚拟功能对vm1-s以及与vm1-s相关联的所述一个或多个ai加速器进行的迁移后清理。方法550结束。
[0125]
图6图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看生成检查点帧以供在一种用于在虚拟化环境中利用检查点认证进行虚拟机迁移的方法中使用的方法600。
[0126]
在操作601中,主机401中的管理程序405监测源虚拟机(例如,vm1-s)的状态、网络状态、ai加速器状态和作业完成进度。
[0127]
在操作602中,确定用于生成检查点帧420的时间增量是否已期满。该时间增量可由用户或管理员设置,并且可以基于条件加以动态地调节。在实施例中,用户调节时间增量,诸如预计到需要迁移vm1-s,诸如如果在vm1-s上运行的应用程序没有做出充分的进展,或其他原因。在实施例中,时间增量是固定的。在实施例中,时间增量相对于故障的频率或故障的缺乏而动态地增加或减小,使得如果故障增加则更频繁地生成检查点帧420,或者如
果故障减少,则不太频繁地生成检查点帧420。如果是时候生成检查点帧420了,则方法600在操作605处继续,否则方法600在操作603处继续。
[0128]
在操作603中,确定异常或故障是否已发生。故障计数器可以配置具有不同重要性的一种或多种不同类型的故障。处理器异常远比例如在支持重试失败的发送或接收的网络中的网络故障更重要。因此,处理器故障可以以低于网络故障计数的计数来触发检查点帧420的生成。如果异常或故障的发生超过了针对异常或故障类型所配置的故障计数,则方法600在操作605处继续,否则方法600在操作604处继续。
[0129]
在操作604中,确定作业进度是否小于完成的阈值进度百分比。在实施例中,作业进度可以具有多种类型的作业进度计数器。每种作业进度计数器类型可以例如通过调取特定的一段源代码或通过调用ai加速器内的特定ai功能(诸如,用于训练ai模型的作业进度计数器或用于ai推理的计数器)来触发。计数器可以基于期待的执行时间与实际的执行时间或者其他度量。如果作业进度计数器指示进度小于进度计数器类型的阈值百分比,则方法600在操作605处继续,否则方法600结束。
[0130]
在操作605中,vm1-s生成vm1-s的检查点帧420、正在运行的应用程序和将ai加速器资源映射到vm1-s的虚拟功能。
[0131]
在操作606中,可选地,可以在生成检查点帧420后生成ai加速器状态帧421。方法600结束。
[0132]
图7图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看确定是否在虚拟化环境中利用检查点认证和/或ai加速器状态验证来迁移具有ai加速器的数据处理系统的虚拟机的方法700。
[0133]
在操作701中,将指示是否迁移虚拟机(vm)的旗标设置为假。
[0134]
在操作702中,确定vm逻辑是否已接收到迁移vm的用户命令。在实施例中,迁移命令可以源自vm的用户,其可能正在监测正在执行的ai应用程序的进度。用户可以选择迁移vm的原因可以是如本领域已知的那样的:例如,过程没有像可能期待的那样做出充分的进展,特定的主机机器被严重加载或具有有限的资源,以及促成进度的缺乏等。如果接收到迁移vm的用户命令,则方法700在操作705处继续,否则方法700在操作703处继续。
[0135]
在操作703中,可以确定是否已从管理员接收到迁移vm的命令。管理员可以定期监测服务器上的负载、一个或多个应用程序的进度以及可用资源等级。管理员可以选择响应于用户请求或根据管理员自己的判断来发送迁移命令。如果管理员发出迁移vm的命令,则方法700在操作705处继续,否则方法700在操作704处继续。
[0136]
在操作704中,可以确定一种异常或故障类型的计数是否已超过阈值量。对于不同类型的故障,可以存在不同的阈值。例如,在基于故障计数触发自动迁移前,处理器异常的计数可能非常低,且网络故障的计数与处理器故障比较起来则可能高得多。在实施例中,代替基于自动检测到的条件来自动启动vm的迁移的做法是,可以将建议基于检测到的故障来迁移vm的通知发送到管理员。如果任何类型的故障或异常发生的次数均多于与该故障或异常类型相关联的阈值,则方法700在操作705处继续,否则方法700结束。
[0137]
在操作705中,将迁移旗标设置为真。还接收对要用于迁移的检查点的选择。在用于启动迁移的用户命令或管理员命令的情况下,该命令还可以包括要用于迁移的检查点帧420。在自动启动的迁移命令的情况下,可以自动生成检查点帧420,或者可以选择最近的检
查点帧420。在实施例中,如果最近存储的检查点帧420比阈值时间量久,则生成新的检查点帧420。
[0138]
在操作706中,可选地,可以生成ai加速器状态帧421。在自动生成的迁移命令的情况下,基于故障条件,可以自动生成ai加速器状态帧421并且其可以与该迁移一起使用。如果选择抑或生成了ai加速器状态帧,则可以执行方法550(图5b)。否则,执行方法500(图5a)。方法700结束。
[0139]
图8图示了根据实施例的一种从托管要迁移的虚拟机的源管理程序的角度来看在虚拟化环境中利用检查点认证来迁移具有ai加速器的数据处理系统的虚拟机的方法800。
[0140]
在操作801中,接收对目标(目的地)服务器(例如,主机451)的选择,该服务器将托管正在迁移的虚拟机(例如,vm1-s)。
[0141]
在操作802中,停止或暂停vm1-s上的正在运行的应用程序的一个或多个正在运行的ai任务。在实施例中,允许完成正在运行的ai任务中的一个或多个,而其他则被暂停或停止。
[0142]
在操作803中,将所选择的检查点帧420转移到目标主机451。vm1-s的管理程序405等待来自目标主机的响应,即对检查点帧420的签名、日期和时间戳以及哈希的验证已得到验证。
[0143]
在操作804中,管理程序405或驱动程序209记录在vm1-s上运行的ai应用程序和任何相关联的未完成的ai任务,并且停止所有未完成的ai任务。
[0144]
在操作805中,vm1-s管理程序405将未完成的ai作业的记录状态发送到目标主机451的管理程序455。方法800结束。
[0145]
图9图示了根据实施例的一种在于虚拟化环境中利用检查点认证来迁移具有ai加速器的数据处理系统的虚拟机后对源虚拟机执行迁移后清理的方法900。
[0146]
在操作901中,源虚拟机(vm1-s)的管理程序405从目标主机451的管理程序455接收检查点帧420的签名、日期和时间戳以及哈希全部已得到验证的通知。在实施例中,该通知还可以包括ai加速器状态帧421的签名、日期和时间戳以及哈希已得到验证的指示。该通知可以进一步指示:vm1-s到目标主机451的迁移完成,并且在目标主机451上的作为vm1-t的被迁移虚拟机处已重新开始应用程序和未完成的ai任务。
[0147]
在操作902中,源主机401的管理程序405和/或驱动程序404可以至少擦除由源vm1-s使用的ai加速器的安全存储器。管理程序405和/或驱动程序404还可以擦除由vm1-s上的应用程序使用的存储器,该应用程序经由与vm1-s相关联的虚拟功能来对使用与应用程序相关联的ai加速器的api或驱动程序做出调用。
[0148]
在操作903中,源主机401的管理程序405可以对vm1-s的资源解除分配,包括对ai加速器资源解除分配,这些ai加速器资源由vm1-s使用并且与将ai加速器资源映射到vm-s的虚拟功能相关联。方法900结束。
[0149]
图10图示了根据一些实施例的一种从将托管被迁移虚拟机的主机的目标管理程序的角度来看在虚拟化环境中利用检查点认证来迁移具有ai加速器的数据处理系统的虚拟机的方法1000。
[0150]
在操作1001中,目标主机机器451的管理程序455从与虚拟功能相关联的源虚拟机(例如,vm1-s)接收检查点帧420,该虚拟功能将ai处理器资源映射到vm1-s。管理程序455还
接收托管作为目标主机451上的被迁移虚拟机(vm1-t)的vm1-s的请求。
[0151]
在操作1002中,主机451上的管理程序455计算并保留用于在主机451上生成vm1-s作为vm1-t的资源。管理程序455根据接收到的检查点帧420来分配和配置用于托管vm1-s及其相关联的虚拟功能的资源。
[0152]
在操作1003中,目标主机451处的管理程序455接收作为将vm1-s迁移到vm1-t的一部分而接收到的数据帧,并向源主机401处的管理程序405确认这些数据帧。管理程序455将接收到的帧存储在主机451上,使得管理程序455可以生成vm1-t。
[0153]
在操作1004中,可选地,目标主机451处的管理程序455从源主机401处的管理程序505接收已签名的ai加速器状态帧421。管理程序455使用vm1-s的公钥或vm1-s的加速器的公钥来解密已签名的ai加速器帧421。管理程序455验证帧421中的日期和时间戳,并且验证帧421的摘要。如果已签名的ai加速器状态帧421被成功地验证,则管理程序455将来自ai加速器状态帧421的数据加载到ai加速器中并根据ai加速器状态帧421中的数据来配置ai加速器。
[0154]
在操作1005中,目标主机451的管理程序455接收在vm1-s上运行的应用程序的未完成的ai任务的记录状态。vm1-t在vm1-t上重新开始应用程序和未完成的ai任务。
[0155]
在操作1006中,目标主机451上的管理程序455将通知发送到源主机401上的源管理程序405,该通知指示重新开始应用程序和未完成的ai任务是成功的并且vm1-s到vm1-t的迁移是成功的。
[0156]
前面详细描述的一些部分已依据对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的那些技术人员用来最有效地将他们工作的实质传达给本领域其他技术人员的方式。此处,算法通常被构想成是导致期望结果的自洽操作序列。这些操作是那些需要对物理量进行物理操纵的操作。
[0157]
然而,应记住,所有这些术语和类似的术语将与适当的物理量相关联,并且仅仅是适于这些量的方便的标签。除非另有明确陈述(如从以上讨论显而易见),否则应了解,说明书通篇中,利用术语(诸如,以下权利要求书中所阐述的术语)进行的讨论参考计算机系统或类似的电子计算装置的动作和过程,该计算机系统或类似的电子计算装置操纵被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将所述数据转换为类似地被表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示装置内的物理量的其他数据。
[0158]
本公开的实施例还涉及一种用于执行本文中的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括:用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括:机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、快闪存储器装置)。
[0159]
在前面的图中所描绘的过程或方法可以由处理逻辑来执行,该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管上文依据一些顺序操作描述了过程或方法,但是应了解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行地执行,而不是顺序地执行。
[0160]
未参考任何特定编程语言来描述本公开的实施例。将了解,可以使用各种编程语
言来实施如本文中所描述的本公开的实施例的教导。
[0161]
在前面的说明书中,已参考本公开的具体示例性实施例描述了本公开的实施例。将明显的是,可以对其做出各种修改,而不脱离如所附权利要求书中阐述的本公开的较宽的精神和范围。因此,说明书和附图被认为是图示性的,而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献