CN114721769A - 虚拟机迁移的方法 - Google Patents
虚拟机迁移的方法 Download PDFInfo
- Publication number
- CN114721769A CN114721769A CN202111655441.1A CN202111655441A CN114721769A CN 114721769 A CN114721769 A CN 114721769A CN 202111655441 A CN202111655441 A CN 202111655441A CN 114721769 A CN114721769 A CN 114721769A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- checkpoint
- state
- accelerators
- host
- 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.)
- Pending
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (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)
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了用于迁移虚拟机(VM)的方法和系统,VM具有将人工智能(AI)加速器的资源映射到VM的虚拟功能。AI加速器的驱动器可以生成调用AI加速器的VM进程的检查点,并且检查点可以包括由虚拟功能映射到AI加速器的资源的列表和配置。驱动器还可以访问AI加速器的代码、数据和存储器,以生成AI加速器状态的检查点。当VM迁移到新主机时,这些检查点帧中的一个或二者可用于确保在具有适当AI加速器资源的新主机上恢复VM可以在新主机上成功恢复。可以基于预期需要迁移VM的事件捕获一个或两个检查点帧。
Description
技术领域
本公开的实施例总体上涉及耦接到虚拟机的主机的一个或多个人工智能加速器。更特别地,本公开的实施例涉及迁移使用人工加速器的虚拟机。
背景技术
随着人工智能(artificial intelligence,AI)技术已部署在各种领域,诸如图像分类、医疗诊断或自主驾驶,AI模型(也称为“机器学习模型”)最近已被广泛使用。类似于软件应用的可执行图像或二进制图像,AI模型在训练后可以根据一组属性进行推理以作为特征分类。AI模型的训练可能需要在收集、整理和过滤数据方面进行大量投资,以生成产生有用预测的AI模型。此外,使用AI模型得出的预测可能包含用户希望保护的个人敏感数据。
从AI模型生成预测可以是计算密集型过程。为了为一个或多个用户提供足够的计算能力,一个或多个AI加速器可以耦接到一个或多个虚拟机的主机。为了为计算密集型任务,诸如训练AI模型,提供足够的计算能力,可以将AI加速器组织成集群,然后组织成多个组,每个组可以分配给单个虚拟机。对于强度较低的任务,单个虚拟机可以分配有单个AI加速器。
由于几个众所周知的原因,虚拟机可能需要迁移到不同的主机。现有技术的虚拟机迁移并不保护一个或多个AI加速器在迁移过程中的状态。生成一个或多个人工智能任务的AI应用(至少其中一些任务是在AI加速器上执行的)在迁移到另一个主机后可能会失败或中断。故障可能包括无法捕获AI加速器的配置、存储器内容和计算状态以及无法捕获虚拟机内AI任务的计算状态。
发明内容
在第一方面中,提供一种迁移源虚拟机(VM-S)的方法,所述源虚拟机正在执行访问人工智能(AI)加速器的虚拟功能的应用,所述方法包括:
响应于接收到迁移VM-S和虚拟功能的命令,并且接收到执行迁移中使用的VM-S和虚拟功能的检查点的选择:
记录,然后停止,应用的一个或多个正在执行的AI任务,
生成或选择与虚拟功能相关联的AI加速器的状态,以及
将AI加速器的检查点和状态传输到目标主机的管理程序,以生成迁移后的目标虚拟机(VM-T);以及
响应于接收到目标主机验证了检查点和AI状态,并且已经生成并配置了用于生成VM-T的资源,并且已经利用来自AI加速器状态的数据加载了目标主机上的AI加速器的通知:将VM-S和虚拟功能迁移到VM-T。
在第二方面中,提供一种编程有可执行指令的计算机可读介质,当由具有通信耦接到人工智能(AI)处理器的至少一个硬件处理器的处理系统执行可执行指令时,实现如第一方面所述的迁移正在执行访问系统的人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
在第三方面中,提供一种系统,包括至少一个硬件处理器,所述至少一个硬件处理耦接到编程有指令的存储器,当由所述至少一个硬件处理器执行所述指令时,使所述系统实现如第一方面所述的用于迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
在第四方面中,提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面所述的用于迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
根据本发明的实施例,可以避免AI应用在迁移到另一个主机后会失败或中断。
附图说明
本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。
图1是示出根据一个实施例的具有检查点认证和/或人工智能(AI)加速器状态验证的可以迁移虚拟机的安全处理系统的框图。
图2A和2B是示出根据一个实施例的一个或多个主机与一个或多个人工智能加速器之间的安全计算环境的框图。
图3是示出根据实施例的控制人工智能加速器的集群的主机的框图,每个集群具有将集群内的一组AI加速器的资源映射到虚拟机的虚拟功能,每个人工智能加速器具有安全的资源和非安全资源。
图4A是示出根据实施例的在虚拟化环境中实现具有检查点认证的虚拟机迁移的方法的具有人工智能(AI)加速器的数据处理系统的组件的框图。
图4B是示出根据实施例的在虚拟化环境中实现具有AI加速器状态验证的用于虚拟机迁移的方法的具有人工智能(AI)加速器的数据处理系统的组件的框图。
图5A示出了根据实施例,从要迁移的源虚拟机的主机的管理程序的角度,在虚拟化环境中带有检查点认证的具有AI加速器的数据处理系统的虚拟机迁移的方法。
图5B示出了根据实施例,从要迁移的源虚拟机的主机的管理程序的角度,在虚拟化环境中带有AI加速器状态验证的具有AI加速器的数据处理系统的虚拟机迁移的方法。
图6示出了根据实施例,从要迁移的虚拟机的主机的源管理程序的角度,生成在虚拟化环境中带有检查点认证的虚拟机迁移方法中使用的检查点的方法。
图7示出了根据实施例,从托管要迁移的虚拟机的源管理程序的角度,确定是否在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机的方法。
图8示出了根据实施例,从托管要迁移的虚拟机的源管理程序的角度,在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机的方法。
图9示出了根据实施例的在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机之后执行源主机计算设备的迁移后清理的方法。
图10示出了根据一些实施例,从将托管迁移后的虚拟机的主机上的目标管理程序的角度,在虚拟化环境中迁移具有带有检查点认证和可选的AI加速器状态验证的AI加速器的数据处理系统的虚拟机的方法。
具体实施方式
将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。
说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。
以下实施例涉及使用人工智能(AI)加速器来增加可以从主机设备卸载(或委托)到AI加速器的某些类型的操作的处理吞吐量。主机设备主持一个或多个虚拟机(virtualmachine,VM)。主机上的至少一个VM可以关联虚拟功能,经由虚拟功能将AI加速器的资源映射到VM。虚拟功能枚举AI加速器内映射到VM的资源以及这些资源在加速器内的配置。VM内的驱动器可以跟踪要由AI加速器处理的任务的调度和计算状态。驱动器还可以获取映射到VM的AI加速器的代码、数据和存储器。
如本文所用,“虚拟功能”是人工智能(AI)加速器或AI加速器集群中的一组AI加速器内的资源集到一个虚拟机的映射。资源集在本文中单独地和统称为“AI资源”。AI加速器或AI加速器集群在本文中被称为“AI加速器”,除非描述了一个AI加速器与AI加速器集群之间的区别。
AI加速器可以是通用处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其他类型的处理器。AI加速器可以是专有设计,诸如百度AI加速器或其他GPU等。尽管在主机设备安全地耦接到一个或多个AI加速器的情况下示出和描述了实施例,但是本文描述的概念可以更一般地实现为分布式处理系统。
多个AI加速器可以链接在集群中,集群由具有驱动器的主机设备管理,驱动器将应用程序处理请求转换为一个或多个AI加速器的处理任务。主机设备可以支持一个或多个虚拟机(VM),每个虚拟机具有与对应的VM相关联的用户。驱动器可以实现将AI加速器的资源映射到VM的虚拟功能。驱动器可以包括调度器,其调度来自多个VM的应用处理请求以由一个或多个AI加速器处理。在一个实施例中,驱动器可以分析调度器中的处理请求,以确定如何对集群中的一个或多个AI加速器进行分组,以及是否指示一个或多个AI加速器从组中断开链接并进入低功耗状态以减少热量和节约能源。
主机设备和AI加速器可以通过高速总线互连,诸如外围组件互连高速(PCIe)或其他高速总线。主机设备和AI加速器可以在执行下面描述的本发明的方面的操作之前通过PCIe总线交换密钥并启动安全信道。其中一些操作包括AI加速器使用人工智能(AI)模型以使用由主机设备提供的数据执行推理。在主机设备信任AI模型推断之前,主机设备可以让AI加速器来执行一个或多个验证测试,如下所述,包括确定AI模型的水印。在一些实施例和操作中,AI加速器不知道主机设备正在测试由AI加速器产生的结果的有效性。
主机设备可以包括耦接到一个或多个AI加速器的中央处理单元(CPU)。每个AI加速器可以通过总线或互连耦接到CPU。AI加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备的形式或其他形式的集成电路(IC)的形式实现。可替代地,主机处理器可以是主数据处理系统的一部分,而AI加速器可以是作为辅助系统的许多分布式系统(例如,云计算系统,软件即服务(software as a service,SaaS)系统,或平台即服务(platformas a service,PaaS)系统)中的一个,主系统可以通过网络远程卸载其数据处理任务至辅助系统。主机处理器和AI加速器之间的链接可以是外围组件互连快速(PCIe)链接或网络连接,诸如以太网连接。每个AI加速器可以包括一个或多个链接寄存器,用于启用(连接)或禁用(断开)与另一个AI加速器的通信链接。
在第一方面,一种迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的计算机实现的方法可以包括将VM-S的状态的检查点存储到VM-S的多个状态的存储中。VM-S的每个状态可以包括VM-S的资源的状态、应用的状态以及将AI资源映射到VM-S的AI加速器的虚拟功能的状态。响应于接收到迁移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的存储,以及应用对虚拟功能的任何调用。验证检查点的签名和保鲜期可以包括使用VM-S的公钥解密检查点的签名,确定检查点的日期和时间戳在阈值日期和时间范围内,以及验证VM-S的检查点的哈希。在实施例中,检查点可以包括一个或多个正在执行的AI任务的记录、通信耦接到VM-S的一个或多个AI加速器内的资源的配置信息、检查点的日期和时间戳、以及VM-S的存储的快照,包括虚拟功能、调度信息和一个或多个AI加速器内的通信缓存。
在第二方面,一种迁移正在执行访问人工智能(AI)加速器的虚拟功能(VF)的应用的源虚拟机(VM-S)的方法包括通过目标主机的管理程序接收来自与将人工智能(AI)处理器资源映射到VM-S的虚拟功能(VF)相关联的源虚拟机(VM-S)的检查点,并接收将VM-S作为目标虚拟机(VM-T)进行托管的请求。目标主机的管理程序根据检查点分配和配置用于将VM-S和VM-S的VF作为VM-T进行托管的资源。目标主机的管理程序接收VM-S的数据帧并存储数据帧以生成VM-T。目标主机的管理程序接收到VM-S的未完成AI任务的记录的状态,并在VM-T上重启未完成的AI任务。在实施例中,验证VM-S和VF的检查点包括用VM-S的公钥解密检查点的签名,确定检查点的日期和时间戳落在预先设定的范围内,并重新计算检查点的哈希并确定重新计算的哈希是否与检查点中存储的哈希匹配。响应于检查点的成功验证,将VM-S迁移到目标主机的管理程序继续进行,在目标主机上生成VM-T。
在第三方面,一种迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的计算机实现的方法包括:响应于接收迁移VM-S和虚拟功能的命令,并且响应于接收到用于执行迁移的VM-S和虚拟功能的检查点的选择,记录然后停止应用的一个或多个正在执行的AI任务。方法进一步包括生成或选择与虚拟功能相关联的AI加速器的状态,然后将检查点和AI加速器的状态传输到目标主机的管理程序以生成迁移的目标虚拟机(VM-T)。
响应于接收到目标主机验证了检查点和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加速器状态的哈希。
任何上述功能可以作为可执行指令被编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,处理系统使功能得以实现。任何上述功能可以由具有至少一个硬件处理器的处理系统实现,硬件处理器耦接到用可执行指令编程的存储器,当执行此执行指令时,使处理系统实现功能。
图1是示出根据一个实施例的安全处理系统100的框图,安全处理系统100可以迁移虚拟机并具有检查点认证和/或人工智能(AI)加速器状态验证。参考图1,系统配置100包括但不限于通过网络103通信耦接到源数据处理(data processing,DP)服务器104-S(例如主机)和目标数据DP服务器104-T的一个或多个客户端设备101-102。DP服务器104-S可以主持一个或多个客户端。一个或多个客户端可以是虚拟机。如本文所述,DP服务器104-S上的任何虚拟机可以迁移到目标DP服务器104-T。
客户端设备101-102可以是任何类型的客户端设备,诸如个人计算机(例如台式机、膝上型电脑和平板电脑)、“瘦”客户端、个人数字助理(PDA)、支持Web的设备、智能手表或移动电话(例如,智能手机)等。可替换地,客户端设备101-102可以是DP服务器104-S或104-T上的虚拟机。网络103可以是任何类型的网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、高速总线或其组合,有线或无线。
服务器(例如,主机)104-S和104-T(统称为DP服务器104,除非另有说明)可以是任何种类的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器、或其组合。服务器104进一步包括接口(未示出)以允许诸如客户端设备101-102的客户端访问由服务器104提供的资源或服务(诸如AI加速器经由服务器104提供的资源和服务)。例如,服务器104可以是云服务器或向客户端提供各种云服务,诸如,例如云存储、云计算服务、人工智能训练服务、数据挖掘服务等,的数据中心的服务器。服务器104可以被配置为云上软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,云可以是私有云、公共云或混合云。接口可以包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如,客户端可以是客户端设备101的用户应用(例如,Web浏览器、应用)。客户端可以向服务器104发送或传输用于执行的指令(例如,AI训练、AI推理指令等),并且此指令由服务器104经由网络103上的接口接收。响应于此指令,服务器104与AI加速器105-107通信来完成指令的执行。源DP服务器104-S可以通信地耦接到一个或多个AI加速器。由使用一个或多个AI加速器105-T..107-T的运行应用的DP服务器104-T托管的客户端虚拟机可以迁移到目标DP服务器104-T以在对应的AI加速器105-T..107-T上运行。在一些实施例中,指令是机器学习类型的指令,其中作为专用机器或处理器的AI加速器可以比通用处理器的执行快许多倍地执行指令。服务器104因此可以以分布式方式控制/管理一个或多个AI加速器的执行作业。服务器104然后将执行结果返回给客户端设备101-102或服务器104上的虚拟机。AI加速器可以包括一个或多个专用处理器,诸如可从百度公司获得的百度人工智能(AI)芯片组,或可替代地,AI加速器可以是来自其他AI芯片组供应商的AI芯片组。
根据一个实施例,访问由数据处理服务器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之间交换的数据受到保护免受恶意软件/入侵的攻击。
图2A是示出根据一些实施例的在一个或多个主机与一个或多个人工智能(AI)加速器之间的安全计算环境200的框图。在一个实施例中,系统200为主机104和AI加速器105-107之间的模糊通信提供保护方案,对AI加速器105-107有或没有硬件修改。主机或服务器104可以被描述为具有一个或多个要保护免受入侵的层的系统,层诸如用户应用205、运行时库206、驱动器209、操作系统211、管理程序212和硬件213(例如,中央处理单元(CPU)201和存储设备204)。在应用205和运行时库206下方,可以安装一个或多个驱动器209以接口到硬件213和/或AI加速器105-107。
驱动器209可以包括调度由一个或多个用户应用205请求的处理任务的调度器209A。驱动器209进一步可以包括具有逻辑的分析器209B,其基于诸如处理吞吐量、能耗和AI加速器产生的热量的调度标准,分析为在AI加速器105-107上的执行而调度的处理任务以确定如何最好地配置AI加速器105-107。驱动器209进一步可以包括旨在配置AI加速器以实现调度标准的一个或多个策略。配置AI加速器可以包括将AI加速器分组为一个或多个组,从一个或多个组中删除一个或多个AI加速器。驱动器209进一步可以包括检查点209C。检查点209C可以对用户应用205的状态、VM201内的存储、调度器209A状态、分析器209B状态以及VM 201内的虚拟功能的配置进行快照。本文使用的虚拟功能是人工智能(AI)加速器,例如105,或AI加速器105..107的集群内的资源集到虚拟机的映射。下面参考图3、4A和4B描述虚拟功能。
未分配给AI加速器集群内的一组AI加速器的AI加速器可被设置为低功耗状态以节省能量并减少热量。低功耗状态可以包括降低AI加速器的时钟速度或进入待机状态,在待机状态中,AI加速器仍然通信耦接到主机设备,并且可以进入运行状态,在运行状态中,AI加速器准备好从主机设备接收处理任务。未分配给集群中的组的AI加速器可替代地保持通电状态,使得驱动器209可以将工作分配给不属于一组AI加速器的成员的单个AI加速器。
配置AI加速器进一步可以包括指示一个或多个AI加速器生成与一个或多个其他AI加速器的通信链接(连接)以在AI加速器集群内形成一组AI加速器。配置AI加速器进一步可以包括指示一个或多个DP加速器断开AI加速器与一个或多个其他AI加速器之间的通信链接(断开)。AI加速器的连接和断开可以由每个AI加速器中的一个或多个链接寄存器管理。
在基于策略的划分实施例中,AI加速器配置策略是描述每个AI加速器的通信链接(连接或断开)的单个策略。虽然每个AI加速器的配置可以(并且通常会)与其他AI加速器不同,但每个AI加速器的配置都包括在单个策略内,并且集群中的每个AI加速器接收相同的策略。然后,每个AI加速器根据描述配置AI加速器的策略部分对自身进行配置。基于策略的划分可以基于调度器209A中的处理任务的分析。分析可以确定将AI加速器划分成组的最佳分配。在一个实施例中,一组处理器内或跨多组处理器(以优化吞吐量)的分时处理任务将能量消耗和产生的热量最小化。基于策略的AI加速器划分为组的优势包括AI加速器的快速划分、组内或跨组处理任务的灵活调度、AI加速器的分时和组的分时。
在动态划分实施例中,为每个AI加速器生成AI加速器策略。驱动器209可以动态地改变每个AI加速器的配置,包括重新组织AI加速器的组、从所有组中移除一个或多个AI加速器以及将这些AI加速器设置为低功耗状态。在动态划分实施例中,每组AI加速器分配给单个用户,而不是在用户之间分时共享AI加速器。驱动器209可以包括分析器209B,其分析调度器209A内的处理任务以确定AI加速器的最佳分组。分析可以为一个或多个AI加速器生成配置,并且可以将配置部署到每个这样的AI加速器以进行重新配置。动态划分的优点包括通过将一个或多个处理器设置为低功耗状态来节省能源,以及针对AI加速器或一组AI加速器的用户专用处理,而不是在用户之间进行时间切片。
硬件213可以包括具有一个或多个处理器201的处理系统201。硬件213进一步可以包括存储设备204。存储设备204可以包括一个或多个人工智能(AI)模型202和一个或多个内核203。内核203可以包括签名内核、支持水印的内核、加密和/或解密内核等。签名内核在执行时可以根据内核的编程对任何输入进行数字签名。支持水印的内核可以从数据对象(例如AI模型或其他数据对象)中提取水印。支持水印的内核还可以将水印植入AI模型、推理输出或其他数据对象。
水印内核(例如,水印继承内核)可以从另一个数据对象继承水印并将此水印植入到不同的对象中,诸如推理输出或AI模型。如本文所用,水印是与AI模型或由AI模型生成的推理相关联并可被植入到其中的标识符。例如,可以在一个或多个权重变量或偏置变量中植入水印。可替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的假节点)以植入或存储水印。
主机104可以是CPU系统,其可以控制和管理主机104和/或AI加速器105-107上的作业的执行。为了保护/遮蔽AI加速器105-107和主机104之间的通信信道215,可能需要不同的组件来保护易于被数据入侵或攻击的主机系统的不同层。
根据一些实施例,系统200包括主机系统104和AI加速器105-107。可以有任意数量的AI加速器。AI加速器可以包括百度AI芯片组或其他AI芯片组,诸如可以执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。在一个实施例中,主机系统104包括具有一个或多个CPU213的硬件,其可选地配备在主机104内的安全模块(诸如可选的可信平台模块(TPM))。可选的TPM是存储特定于主机系统的加密密钥(例如,RSA加密密钥)以进行硬件验证的端点设备上的专用芯片。每个TPM芯片可以包含一个或多个RSA密钥对(例如,公钥和私钥对),称为背书密钥(endorsement key,EK)或背书凭证(endorsement credential,EC),即根密钥。密钥对保存在可选的TPM芯片内,无法通过软件访问。固件和软件的关键部分可以在执行之前由EK或EC进行哈希,以保护系统免受未经授权的固件和软件修改。因此,主机上的可选TPM芯片可用作安全启动的信任根。
可选的TPM芯片还可以保护工作内核空间中的驱动器209和操作系统(OS)211以与AI加速器105-107通信。这里,驱动器209由AI加速器供应商提供并且可以用作用户应用205的驱动器209以控制主机和AI加速器之间的通信信道215。由于可选的TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动器209,TPM还有效地保护驱动器209和OS211。
因为用于AI加速器105-107的通信信道215可以专供OS 211和驱动器209使用,所以通信信道215可以通过可选的TPM芯片来保护。在一个实施例中,通信信道215包括外围组件互连(PCI)或外围组件互连快速(PCIE)信道。在一个实施例中,通信信道215是模糊的通信信道。
运行时库206可以将应用编程接口(API)调用转换为用于AI加速器的执行、配置和/或控制的命令。在一个实施例中,运行时库206提供一组预定的(例如,预定义的)内核以供用户应用执行。在一个实施例中,内核可以作为内核203存储在存储设备204中。
系统可以通过可选的基于TPM的安全启动来启动。可选的TPM安全启动确保在提供加速器服务的内核空间中仅启动签名/认证的操作系统211和加速器驱动器209。在一个实施例中,操作211系统可以通过管理程序(212)加载。管理程序或虚拟机管理器212是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是其中内核(即,用于执行的一组预定的(例如,预定义的)函数)被识别以向用户应用提供功能和服务的声明性区域或范围。如果系统的完整性受到损害,可选的TPM安全根可能无法启动,反而会关闭系统。
在启动之后,运行时库206运行用户应用205。在一个实施例中,用户应用205和运行时库206被静态链接并一起启动。在另一个实施例中,首先启动运行时库206,然后动态加载用户应用205。静态链接的库是在编译时链接到应用的库。动态加载可以由动态链接器执行。动态链接器加载和链接共享的库,以便在运行时运行用户应用。这里,用户应用205和运行时库206在运行时彼此可见,例如,所有过程数据彼此可见。
在一个实施例中,用户应用205只能从由运行时库206预先确定的一组内核中调用内核。在另一方面,用户应用205和运行时库206用免受侧信道算法加固以防御侧信道攻击,诸如基于缓存的侧信道攻击。侧信道攻击是基于从计算机系统的实施中获得的信息的任何攻击,而不是实施的算法本身的弱点(例如密码分析和软件错误)。侧信道攻击的示例包括缓存攻击,这是基于攻击者在虚拟化环境或云环境中监控共享物理系统的缓存的能力的攻击。加固可以包括缓存、由算法生成待放置在缓存上的输出的掩蔽。接下来,当用户应用完成执行时,用户应用终止其执行并退出。
在一个实施例中,内核203的集合包括模糊内核算法。在一个实施例中,模糊内核算法可以是对称或非对称算法。对称模糊算法可以使用相同的算法模糊和去模糊数据通信。非对称模糊算法需要一对算法,其中对中的第一个用于模糊,对中的第二个用于去模糊,反之亦然。在另一个实施例中,非对称模糊算法包括用于模糊数据集的单个模糊算法,但不打算对数据集进行去模糊,例如,不存在对应的去模糊算法。
模糊是指通过使通信消息难以理解来模糊通信的预期意义,通常使用令人困惑和模棱两可的语言。模糊的数据对于逆向工程来说更难也更复杂。可以在数据通信之前应用模糊算法来模糊(加密/解密)数据通信,从而减少窃听的机会。在一个实施例中,模糊算法可以进一步包括加密方案以进一步加密模糊数据以用于附加层的保护。与可能是计算密集型的加密不同,模糊算法可以简化计算。
一些模糊技术可以包括但不限于字母模糊、名称模糊、数据模糊、控制流模糊等。字母模糊是用特定替代字母替换数据中的一个或多个字母,使得数据毫无意义的过程。字母模糊的示例包括字母旋转函数,其中每个字母沿字母表移动或旋转预定数量的位置。另一个示例是根据特定模式重新排序字母或打乱字母的顺序。名称模糊是用无意义的字符串替换特定目标字符串的过程。控制流模糊可以使用附加代码更改程序中控制流的顺序(插入死代码、插入不受控制的跳转、插入替代结构),以隐藏算法/AI模型的真实控制流。
总之,系统200为AI加速器(用于数据传输,包括机器学习模型、训练数据和推理输出)提供多层保护,防止数据机密性和完整性的丢失。系统200可以包括可选的基于TPM的安全启动保护层和内核验证/认证层。系统200可以包括使用免受侧信道算法以防御侧信道攻击,诸如基于缓存的侧信道攻击的应用。
运行时库206可以提供模糊内核算法以模糊主机104和AI加速器105-107之间的数据通信。在一个实施例中,模糊可以与密码方案配对。在另一个实施例中,模糊是唯一的保护方案,并且基于密码的硬件被渲染为对于AI加速器是不必要的。
图2B是示出根据一个实施例的一个或多个主机与一个或多个人工智能(AI)加速器之间的安全计算环境的框图。在一个实施例中,主机信道管理器(host channelmanager,HCM)250包括可选的认证模块251、可选的终止模块252、可选的密钥管理器253、可选的密钥存储54和可选的密码引擎255。可选的认证模块251可以认证运行在主机服务器104上的用户应用以获得访问或使用AI加速器105的资源的许可。HCM 250可以经由通信信道215与AI加速器215的加速器信道管理器(ACM)280通信。
可选的终止模块252可以终止连接(例如,与此连接相关联的信道将被终止)。可选的密钥管理器253可以管理(例如,创建或销毁)用于不同安全数据交换信道的一个或多个数据包的加密/解密的非对称密钥对或对称密钥。这里,每个用户应用(作为图2A的用户应用205的一部分)可以以一对多的关系对应或映射到不同的安全数据交换信道,并且每个数据交换信道可以对应于AI加速器105。每个应用可以使用多个会话密钥,其中每个会话密钥用于与AI加速器(例如,加速器105-107)对应的安全信道。可选的密钥存储254可以存储加密非对称密钥对或对称密钥。可选的密码引擎255可以对通过任何安全信道交换的数据的数据包进行加密或解密。请注意,其中一些模块可以集成到更少的模块中。
在一个实施例中,AI加速器105包括ACM 280、非敏感资源290和敏感资源270。ACM280是对应于HCM 250的对应模块,负责管理主机104和AI加速器105之间的通信,诸如,例如,资源访问控制。ACM 280包括链接配置模块281,链接配置模块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接收到的访问和配置策略,如下文进一步描述。
敏感资源270可以包括可选的密钥管理器271、可选的密钥存储272、真随机数生成器273、可选的密码引擎274和存储器/存储277。可选的密钥管理器271可以管理(例如,生成、安全保留和/或销毁)非对称密钥对或对称密钥。可选的密钥存储272可以将加密非对称密钥对或对称密钥存储在敏感资源270内的安全存储中。真随机数生成器273可以生成用于密钥生成和密码引擎274使用的种子,诸如验证链接的AI加速器。可选的密码引擎274可以加密或解密用于数据交换的密钥信息或数据包。存储器/存储277可以包括用于AI模型275和内核276的存储。内核276可以包括水印内核(包括继承水印内核、支持水印的内核、水印签名内核等)、加密和解密内核,以及相关数据。
AI加速器105进一步可以包括非敏感资源290。非敏感资源290可以包括一个或多个处理器或处理逻辑291和存储器/存储292。处理器或处理逻辑192能够执行指令或程序以执行各种处理任务,诸如AI任务(例如,机器学习过程)。
链接配置模块281负责建立或连接从一个AI加速器到另一个AI加速器的链接或路径,或者终止或断开从一个AI加速器到另一个AI加速器的链接或路径。在一个实施例中,响应于加入一组AI加速器的请求(例如,来自主机),链接配置模块281建立从对应的AI加速器到组或者集群中的至少一些AI加速器的链接或路径,以便AI加速器可以与其他AI加速器进行通信,例如访问其他AI加速器的资源用于AI处理。同样,响应于从第一组AI加速器切换到第二组AI加速器的请求,链接配置模块281终止来自第一组的对应AI加速器的现有链接,并建立到第二组AI加速器的新链接。
在一个实施例中,AI加速器105进一步包括AI处理单元(未示出),其可以包括AI训练单元和AI推理单元。AI训练和推理单元可以被集成到敏感资源270中的单个单元中。AI训练模块被配置为使用一组训练数据来训练AI模型。待训练的AI模型和训练数据可以经由通信链接215从主机系统104接收。在一个实施例中,训练数据可以存储在非敏感资源290中。AI模型推理单元可以被配置为在一组输入数据(例如,一组输入特征)上执行训练的人工智能模型以推断和分类输入数据。例如,可以将图像输入到AI模型以对图像是否包含人物、风景等进行分类。还可以通过通信链接215经由接口140从主机系统104接收经训练的AI模型和输入数据。
在一个实施例中,敏感资源270中的水印单元(未示出)可以包括水印生成器和水印刻录器(也称为“水印植入器”)。水印单元(未示出)可包括敏感资源270的水印内核执行器或内核处理器(未示出)以执行内核276。在一个实施例中,内核可从主机104接收,或从持久或非持久的存储中检索,并在AI加速器105的敏感资源270的内核存储器276中执行。水印生成器被配置为使用预定的水印算法生成水印。可替代地,水印生成器可从现有水印继承水印或从另一数据结构或数据对象,诸如可从主机系统104接收的人工智能模型或输入数据集,提取水印。水印植入器被配置为在数据结构,诸如人工智能模型由人工智能模型生成的输出数据,中刻录或植入水印。其中植入有水印的人工智能模型或输出数据可以通过通信链接215从AI加速器105返回到主机系统104。注意,AI加速器105-107具有相同或相似的结构或组件以及关于AI加速器的描述将适用于整个应用中的所有AI加速器。
图3是根据一个实施例,示出控制人工智能加速器集群310的主机104的框图,每个集群具有将集群内的AI加速器组311的资源映射到主机上的虚拟机的虚拟功能,每个人工智能加速器具有安全资源和非安全资源。
主机104可以包括应用205,例如人工智能(AI)应用、运行时库206、一个或多个驱动器209、操作系统211和硬件213,上面已经参考图2A和2B描述了其中的每一个,这里将不再重复。在虚拟计算实施例中,主机104进一步可以包括管理程序212,诸如 或管理程序212可以是直接在物理服务器上运行的类型1“裸机”或“本机”管理程序。在一个实施例中,管理程序212可以是像任何其他应用一样加载在操作系统211内部并由操作系统211管理的类型2管理程序。在任一情况下,管理程序212可以在主机104上支持一个或多个虚拟机(未示出)。在这样的方面,虚拟机(未示出)可以被视为图1的客户端设备101和102。
人工智能(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。
在图3中所示的示例中,AI加速器A-D被配置为第一组311的四(4)个AI加速器。第一组311中AI加速器的资源由虚拟功能VF1配置和管理,并与第一虚拟机相关联。AI加速器E-H被配置在四(4)个AI加速器的第二组312中。第二组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加速器,配置成任意数量的组。
在基于静态策略的实施例中,单个策略定义每个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加速器的配置的新策略。
集群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加速器的邻接表。
基于静态策略的配置也是有效的,因为它支持不同用户之间的时间切片调度,并且支持将用户的处理任务分配给集群310中的多个AI加速器组。静态策略可以从分析器209B确定调度器209A中的处理任务的特征而生成。例如,调度器209A可以包括使用相同AI模型来执行推理或进一步训练AI模型的大量任务。分析器可以生成配置多个AI加速器以准备对AI模型执行推理或训练的策略。配置可以包括识别AI加速器的分组,以及将一个或多个AI模型加载到一个或多个AI加速器的敏感存储器中,以为调度器209A中的处理任务做准备。
在基于动态策略的实施例中,驱动器209可以单独地配置集群310中的每个AI加速器以实现AI加速器的配置。策略单独传输到每个AI加速器。实际上,在基于动态策略的实施例中,传输到每个AI加速器的策略通常彼此不同。AI加速器接收策略并根据策略进行自身配置。配置包括AI加速器将自身配置到集群310中的组中或组外。AI加速器根据政策通过与组中的至少一个AI加速器建立通信链接(连接),将自身配置到组中。AI加速器通过切断(断开)AI加速器与组中所有AI加速器之间的通信链接来离开组。配置完成后,如果AI加速器不是任何一组AI加速器的成员,可以将AI加速器设置为低功耗模型,以减少热量并节能。在一个实施例中,调度器209A将AI加速器或AI加速器组分配给调度器209A为其调度处理任务到集群310的每个用户或应用。
图4A是示出根据实施例的具有人工智能(AI)加速器以在虚拟化环境中实现具有检查点认证的虚拟机迁移的方法的数据处理系统的组件的框图。
源主机(HOST-S)401可以支持多个虚拟机(VM),诸如经由网络103要迁移到目标主机(HOST-T)451的第一(源)VM(VMl-S)。网络103可以是任何网络,如上面参考图1所描述的。HOST-S 401还可以支持附加的VM,诸如VM2和VM3。虚拟机VM1-S、VM2和VM3(每个标记为“402”)可以各自包括至少一个应用403和至少一个驱动器404。驱动器404可以包括一个或多个函数库和应用编程接口(API),使包含驱动器404的VM 402能够与一个或多个人工智能(AI)加速器410通信,这些人工智能(AI)加速器410经由管理程序405、CPU 406和总线407与VM 402通信耦接。
管理程序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使用不同的一个或多个密钥。
每个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标记。虚拟机资源412在上面参考图2B进行了描述,并且包括诸如非敏感资源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后,迁移后的VM1-S的敏感数据和与VM1-S相关联的虚拟功能相关联的敏感数据将无法被新VM访问。
目标主机,例如HOST-T 451可以具有与HOST-S 401相同或相似的硬件和软件配置。加速器410和加速器460应该是相同或相似的类型,诸如对于它们各自的处理器具有兼容的指令集。HOST-T 451在数量上应具有VM-S可能需要的足够可用资源,以便VM1-S可以迁移到VM1-T。定性上,HOST-S 401和HOST T-451应具有兼容的操作硬件和软件。例如,HOST-S401加速器410可以与HOST-T 451上的加速器ACC2 460属于同一制造商,并且具有兼容的模型,否则迁移可能不成功。
检查点420是VMl-S的状态的快照,直到并包括作为VMl-S从HOST-S 401到HOST--T451的迁移的一部分而被迁移的虚拟功能411(例如VFl)。VM1-S的检查点以及相关联的虚拟功能可以包括以下信息。在实施例中,检查点不包括包含在加速器410内的资源412内的信息。包括在检查点中的信息的以下列表是为了说明而非限制。本领域技术人员可以在下表中添加或删除要迁移的虚拟机和虚拟功能的检查点420的信息。
检查点209C可以根据图6中描述的事件生成检查点帧420。检查点帧420可以例如在指定的时间增量、在检测到系统异常或故障时、或在接收到采取检查点帧420的指令时,生成检查点帧420。这样的指令可以来自用户,诸如管理员或终端用户。每个检查点帧420的大小可以约为例如1吉字节(GB)。在实施例中,检查点209可以包括循环缓存器,其存储多达指定数目k的检查点帧420。当缓存器已满时,下一个添加的帧覆盖最旧的检查点帧420。当到迁移虚拟机和虚拟功能的时候时,用户可以选择特定的检查点帧420来用于执行迁移,表示用户喜欢用于迁移的正在运行的应用403的已知状态。在实施例中,迁移默认使用最近的检查点帧420。在实施例中,在源VM1-S的迁移期间,检查点帧420、检查点帧420的哈希以及检查点帧420的日期和时间戳可以在将检查点帧420从源VM1-S传输到目标主机HOST-T 451的管理程序之前进行数字签名。
当目标主机HOST-T 451的管理程序455接收到检查点帧420时,管理程序455可以使用VMl-S的公钥解密检查点帧420,验证日期和时间戳落入预先确定的时间窗口内,并验证检查点帧的哈希。验证日期和时间戳证实检查点帧420的新鲜性。如果目标HOST-T 451的管理程序455证实检查点帧420,则HOST-T 451的管理程序455可以为源VM1-S在HOST-T 451上分配资源以生成VM1-T 452。
现在参考图4B,检查点209可以进一步获得AI加速器状态帧421。AI加速器状态帧421与检查点帧420的不同之处在于AI加速器状态帧421捕获AI加速器410内部的信息。AI加速器状态帧的捕获内容可以包括AI加速器内部的一个或多个寄存器的内容、安全存储器的内容和非安全存储器的内容,包含例如AI模型、内核、中间推理计算等。AI加速器状态帧421可以与检查点帧420同步获取,使得AI加速器状态帧421获得的信息相对于要迁移的VM1-S的最近检查点帧420及其关联的虚拟功能(将AI加速器410资源的分配映射到虚拟机,例如VM1-S)是“新鲜的”(当前的)。在实施例中,AI加速器状态帧421可以在检查点帧420之后,并且在执行的应用403的待执行AI任务已停止之后获取。这样的实施例避免AI加速器状态帧421存储AI加速器的状态,此状态对应于在迁移之后可能难以可靠地重新启动的部分进行中的进程或线程。
AI加速器状态帧421可以包含以下信息。以下信息是作为示例而非限制。本领域技术人员可以为特定系统安装在表中添加或删除信息。在VM1-S的迁移期间,可以在将帧传输到目标主机HOST-T 451的管理程序455之前,用AI加速器410的私钥或虚拟机VM1-S的私钥对AI加速器状态帧421、帧的哈希以及帧的日期和时间戳进行数字签名。当到迁移虚拟机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的日期和时间戳进行数字签名。
当目标主机的管理程序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。
图5A示出了根据实施例的从托管待迁移的虚拟机的源管理程序的角度,在虚拟化环境中使用检查点认证的具有AI加速器的数据处理系统的虚拟机迁移的方法500。方法500可以在待迁移到目标主机的源虚拟机上实践,源虚拟机例如VM1-S,目标主机例如HOST-T451,作为迁移后的虚拟机VM1-T。
在操作600中,VM1-S的逻辑可以确定是否存储正在运行利用一个或多个人工智能(AI)加速器,例如,ACC1 410的应用403的VM1-S的检查点帧420。检查点帧420包含VM1-S的快照,包括应用403、应用的执行线程、包含执行线程的调度器209A、与应用相关的VM1-S分配的存储器以及将一个或多个AI加速器的资源映射到VM1-S的虚拟功能,如上文参考图4A所述。在实施例中,可选地,生成检查点帧420也可以触发获取AI加速器状态帧421。在实施例中,AI加速器状态帧421可以在与应用403相关联的一个或多个AI任务在下面的操作800中暂停或停止之后生成和存储。下面参考图6详细描述操作600。
在操作700中,VM1-S可以确定是否迁移VM1-S。决定可以基于用户命令的接收,诸如来自管理员或终端用户的用户命令。在实施例中,迁移VM1-S的决定可以基于高于阈值的异常或故障阈值。下面参考图7详细描述操作700。
在操作800中,响应于接收将VM1-S、应用和用于相关联的AI加速器的虚拟功能迁移到目标主机451的命令,并且响应于接收到在执行迁移时使用的检查点帧420的选择,检查点器209C记录与正在运行的应用相关的一个或多个正在执行的AI任务的状态,然后停止或暂停一个或多个正在执行的AI任务。VM1-S然后开始用于将VM1-S和虚拟功能迁移到目标主机的过程800。下面参考图8描述操作800。
在操作900中,响应于VMl-S从目标主机451的管理程序455接收到管理程序455已成功验证检查点420并且迁移完成的通知,源主机的管理程序指示目标主机451上的管理程序455重新启动迁移后的应用和VM1-T中记录的任务。可选地,VM1-S通过虚拟功能执行VM1-S和与VM1-S关联的另一个AI加速器的迁移后清理。下面参考图9描述方法900。方法500结束。
图5B示出根据实施例从托管待迁移的源虚拟机的源管理程序的角度,在虚拟化环境中使用AI加速器状态验证的具有AI加速器的数据处理系统上的虚拟机迁移的方法550。方法550可以在要迁移到目标主机的源虚拟机上实施,源虚拟机例如VM1-S,目标主机例如HOST2 451,作为迁移后的虚拟机VM1-T。
在操作800中,响应于接收到将VM1-S、在VM1-S上运行的应用以及相关联的AI加速器的虚拟功能迁移到目标主机451的命令,并且响应于接收到在执行迁移时使用的检查点帧420的选择,检查点器209C记录与正在运行的应用相关的一个或多个正在执行的AI任务的状态,然后停止或暂停一个或多个正在执行的AI任务。VM1-S然后开始用于将VM1-S和虚拟功能迁移到目标主机的过程800。下面参考图8描述操作800。
在操作551中,在选择检查点帧420之后,VM1-S生成或选择与VM1-S的虚拟功能相关联的AI加速器421的状态帧。上面参考图4B描述了AI加速器状态帧421。生成AI加速器状态帧421的哈希,生成AI加速器状态帧421的日期和时间戳,并使用VM1-S的私钥,或者在实施例中,使用与将AI资源映射到VM1-S的虚拟功能相关联的AI加速器410的私钥对AI加速器状态帧421、哈希和日期和时间戳进行数字签名。数字签名的AI加速器状态帧421被传输到目标主机451的管理程序455。
在操作900中,响应于从目标主机451的管理程序455接收到检查点帧420和AI加速器状态帧421被成功验证并且迁移完成的通知,目标主机541上的管理程序455重新启动迁移后的虚拟机VM1-T内的应用和记录的AI任务。可选的,VM1-S可以执行迁移后清理。操作900,包括通过虚拟功能对VM1-S和与VM1-S相关联的一个或多个AI加速器的迁移后清理,在下面参考图9进行详细描述。方法550结束。
图6从托管要迁移的虚拟机的源管理程序的角度示出了根据实施例的生成在虚拟化环境中具有检查点认证的虚拟机迁移方法中使用的检查点帧的方法600。
在操作601中,主机401中的管理程序405监视源虚拟机(例如VMl-S)的状态、网络状态、AI加速器状态和作业完成进程。
在操作602中,确定用于生成检查点帧420的时间增量是否已经过期。时间增量可由用户或管理员设置,并可根据情况动态调整。在实施例中,用户调整时间增量,诸如预期需要迁移VM1-S时,诸如如果在VM1-S上运行的应用没有取得足够的进展,或其他原因。在实施例中,时间增量是固定的。在实施例中,时间增量相对于故障的频率或故障的缺乏而动态地增加或减少,使得如果故障增加则更频繁地生成检查点帧420,或者如果故障减少则不那么频繁地生成检查点帧420。如果应该生成检查点帧420,则方法600在操作605处继续,否则方法600在操作603处继续。
在操作603中,确定异常或故障是否已经发生。故障计数器可以被配置为一种或多种不同类型的故障具有不同重要性。处理器异常远比例如支持重试发送或接收失败的网络中的网络故障更重要。因此,处理器故障可以以低于网络故障计数的计数触发检查点帧420的生成。如果异常或故障发生在为异常或故障类型配置的故障计数之上,则方法600在操作605处继续,否则方法600在操作604处继续。
在操作604中,确定作业进程是否小于完成的阈值进程百分比。在实施例中,作业进程可以具有多种类型的作业进程计数器。例如,每个作业进程计数器类型可以通过调用特定的源代码或通过调用AI加速器内的特定AI功能,诸如用于训练AI模型的作业进程计数器或用于AI推理的计数器来触发。计数器可以基于预期的执行时间相对实际执行时间或其他测量。如果作业进程计数器指示进程小于进程计数器类型的阈值百分比,则方法600在操作605继续,否则方法600结束。
在操作605中,VMl-S生成VMl-S的检查点帧420、运行的应用和将AI加速器资源映射到VMl-S的虚拟功能。
在操作606中,可选地,可以在生成检查点帧420之后生成AI加速器状态帧421。方法600结束。
图7从托管待迁移的虚拟机的源管理程序的角度示出根据实施例的在虚拟化环境中确定是否迁移具有AI加速器的数据处理系统的虚拟机的方法700,AI加速器具有检查点认证和/或AI加速器状态验证。
在操作701中,指示是否迁移虚拟机(VM)的标志被设置为假。
在操作702中,确定VM逻辑是否已经接收到迁移VM的用户命令。在实施例中,迁移命令可以源自可能正在监视正在执行的AI应用的进程的VM的用户。用户可以选择迁移VM的原因可以是本领域已知的:例如,进程没有像预期的那样取得足够的进展,特定的主机负载很重或资源有限,并且导致缺乏进展等。如果接收到迁移VM的用户命令,则方法700在操作705处继续,否则方法700在操作703处继续。
在操作703中,可以确定是否已经从管理员接收到迁移VM的命令。管理员可以定期监视服务器上的负载、一个或多个应用的进程以及可用的资源级别。管理员可以响应于用户请求,或者依管理员自己的判断而选择发送迁移命令。如果管理员发出迁移VM的命令,则方法700在操作705处继续,否则方法700在操作704处继续。
在操作704中,可以确定异常或故障类型的计数是否已经超过阈值量。对于不同类型的故障,可以有不同的阈值。例如,处理器异常的计数可以非常低,并且在基于故障计数触发自动迁移之前,网络故障的计数可能比处理器故障高得多。在实施例中,可以向管理员发送通知,建议基于检测到的故障迁移VM,而非基于自动检测到的条件自动启动VM的迁移。如果任何类型的故障或异常发生的次数多于与故障或异常类型相关联的阈值,则方法700在操作705继续,否则方法700结束。
在操作705中,迁移标志被设置为真。还接收用于迁移的检查点的选择。在启动迁移的用户命令或管理员命令的情况下,命令还可以包括用于迁移的检查点帧420。在自动发起的迁移命令的情况下,可以自动生成检查点帧420,或者可以选择最近的检查点帧420。在实施例中,如果最近存储的检查点帧420早于阈值时间量,则生成新的检查点帧420。
在操作706中,可选地,可以生成AI加速器状态帧421。在自动生成迁移命令的情况下,基于故障条件,可以自动生成AI加速器状态帧421并且可以与迁移一起使用。如果选择或生成了AI加速器状态帧,则可以执行方法550(图5B)。否则,执行方法500(图5A)。方法700结束。
图8示出了根据实施例的从托管待迁移的虚拟机的源管理程序的角度,在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机的方法800。
在操作801中,接收目标(目的地)服务器的选择,例如主机451,它将托管正在迁移的虚拟机,例如VM1-S。
在操作802中,停止或暂停VMl-S上运行的应用的一个或多个正在运行的AI任务。在实施例中,正在运行的AI任务中的一个或多个被允许完成,而其他的被暂停或停止。
在操作803中,选择的检查点帧420被传送到目标主机451。VMl-S的管理程序405等待来自目标主机的检查点帧420的签名、日期和时间戳以及哈希的验证已被证实的响应。
在操作804中,管理程序405或驱动器209记录在VMl-S上运行的AI应用和任何相关联的未完成的AI任务,并且所有未完成的AI任务被停止。
在操作805中,VM1-S管理程序405将记录的未完成AI作业的状态发送到目标主机451的管理程序455。方法800结束。
图9示出了根据实施例的在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机之后执行源虚拟机的迁移后清理的方法900。
在操作901中,源虚拟机(VMl-S)的管理程序405从目标主机451的管理程序455接收检查点帧420的签名、日期和时间戳以及散列都已通过认证的通知。在实施例中,通知还可以包括AI加速器状态帧421的签名、日期和时间戳以及哈希已经通过认证的指示。通知进一步可以指示VM1-S向目标主机451的迁移完成,应用和未完成的AI任务在目标主机451上作为VM1-T的迁移后的虚拟机处已经被重新启动。
在操作902中,源主机401的管理程序405和/或驱动器404可以至少擦除由源VMl-S使用的AI加速器的安全存储器。管理程序405和/或驱动器404还可以擦除VM1-S上的应用使用的存储器,VM1-S经由与VM1-S相关联的虚拟功能对使用与应用相关联的AI加速器的API或驱动器进行调用。
在操作903中,源主机401的管理程序405可以解除分配VM1-S的资源,包括解除分配由VM1-S使用并且与将AI加速器资源映射到VM-S的虚拟功能相关联的AI加速器资源。方法900结束。
图10从将托管迁移后的虚拟机的主机的目标管理程序的角度示出根据实施例的在虚拟化环境中迁移具有带有检查点认证的AI加速器的数据处理系统的虚拟机的方法1000。
在操作1001中,目标主机451的管理程序455从与将AI处理器资源映射到VM1-S的虚拟功能相关联的源虚拟机,例如VM1-S接收检查点帧420。管理程序455还接收将VM1-S作为迁移后的虚拟机(VM1-T)托管在目标主机451上的请求。
在操作1002中,主机451上的管理程序455计算并保留用于作为VMl-T在主机451上生成VMl-S的资源。管理程序455根据接收到的检查点帧420分配和配置用于托管VM1-S及其相关联的虚拟功能的资源。
在操作1003中,目标主机451处的管理程序455接收数据帧,并向源主机401处的管理程序405确认,此数据帧作为将VMl-S迁移到VMl-T的一部分而接收的数据帧。管理程序455将接收到的帧存储在主机451上,以便管理程序455可以生成VM1-T。
在操作1004中,可选地,目标主机451处的管理程序455从源主机401处的管理程序505接收签名的AI加速器状态帧421。管理程序455使用VMl-S的公钥,或使用VM1-S的加速器公钥解密签名的AI加速器帧421。管理程序455验证帧421中的日期和时间戳,并验证帧421的摘要。如果签名的AI加速器状态帧421被成功验证,则管理程序455将来自AI加速器状态帧421的数据加载到AI加速器中并根据AI加速器状态帧421中的数据配置AI加速器。
在操作1005中,目标主机451的管理程序455接收在VMl-S上运行的应用的未完成的AI任务的记录状态。VM1-T重新启动VM1-T上的应用和未完成的AI任务。
在操作1006中,目标主机451上的管理程序455向源主机401上的源管理程序405发送通知,指示应用和未完成的AI任务的重新启动成功并且VM1-S到VM1-T的迁移成功。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他技术人员传达他们工作的实质的方式。算法在这里并且通常被认为是导致期望结果的自洽操作序列。这些操作是那些需要对物理量进行物理操作的操作。
然而,应当记住,所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用于这些量的方便的标签。除非从上述讨论中清楚地另有说明,否则应理解,在整个描述中,使用诸如以下权利要求中阐述的那些术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,将在计算机系统的寄存器和存储器中表示为物理(电子)量的数据处理和转换为在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中类似地表示为物理量的其他数据。
本公开的实施例还涉及一种用于执行本文的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备)。
前述附图中描绘的过程或方法可以由包括硬件(例如电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行而不是顺序执行。
本公开的实施例没有参照任何特定的编程语言进行描述。应当理解,可以使用多种编程语言来实现如本文所述的本公开的实施例的教导。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。很明显,在不脱离所附权利要求中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图被认为是说明性的而不是限制性的。
Claims (10)
1.一种迁移源虚拟机(VM-S)的方法,所述源虚拟机正在执行访问人工智能(AI)加速器的虚拟功能的应用,所述方法包括:
响应于接收到迁移VM-S和虚拟功能的命令,并且接收到执行迁移中使用的VM-S和虚拟功能的检查点的选择:
记录,然后停止,应用的一个或多个正在执行的AI任务,
生成或选择与虚拟功能相关联的AI加速器的状态,以及
将AI加速器的检查点和状态传输到目标主机的管理程序,以生成迁移后的目标虚拟机(VM-T);以及
响应于接收到目标主机验证了检查点和AI状态,并且已经生成并配置了用于生成VM-T的资源,并且已经利用来自AI加速器状态的数据加载了目标主机上的AI加速器的通知:
将VM-S和虚拟功能迁移到VM-T。
2.根据权利要求1所述的方法,进一步包括:
响应于接收到VM-T已重新启动应用和AI任务的通知,执行VM-S和虚拟功能的迁移后清理,包括:
至少擦除AI加速器的安全存储器,包括任何AI推理、AI模型、安全计算的中间结果、或其部分;以及
擦除与虚拟功能关联的VM-S的存储器以及应用对虚拟功能的任何调用。
3.根据权利要求1所述的方法,进一步包括:
将虚拟功能和VM-S的状态的检查点存储到VM-S的多个检查点的存储中,其中VM-S的每个检查点包括VM-S的资源的状态、应用的状态、以及与AI加速器的资源相关联的虚拟功能的状态。
4.根据权利要求3所述的方法,其中所述检查点进一步包括:
一个或多个正在执行的AI任务的记录;
与VM-S通信耦接的AI加速器内的资源的配置信息;
VM-S的存储器的快照,包括一个或多个AI加速器内的通信缓存器和虚拟功能调度信息;以及
检查点的日期和时间戳。
5.根据权利要求1所述的方法,其中生成AI加速器的状态包括:
在AI加速器状态中存储状态的日期和时间戳;
在AI加速器状态中存储AI加速器内的存储器的内容,包括与AI加速器的处理器相关联的一个或多个寄存器,以及待由AI加速器处理的未决指令的缓存、队列或流水线;以及
生成AI加速器状态的哈希,并对状态、哈希以及日期和时间戳进行数字签名。
6.根据权利要求5所述的方法,其中,AI加速器状态进一步包括指示AI加速器被配置为与之通信的AI加速器集群中的一个或多个其他AI加速器的一个或多个寄存器设置。
7.根据权利要求1所述的方法,其中验证AI加速器状态的签名和新鲜性包括:
使用VM-S的公钥解密AI状态的签名;
确定AI加速器状态的日期和时间戳在阈值日期和时间范围内;以及
验证AI加速器状态的哈希。
8.一种编程有可执行指令的计算机可读介质,当由具有通信耦接到人工智能(AI)处理器的至少一个硬件处理器的处理系统执行可执行指令时,实现如权利要求1至7中任一项所述的迁移正在执行访问系统的人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
9.一种系统,包括至少一个硬件处理器,所述至少一个硬件处理耦接到编程有指令的存储器,当由所述至少一个硬件处理器执行所述指令时,使所述系统实现如权利要求1-7中任一项所述的用于迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
10.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的用于迁移正在执行访问人工智能(AI)加速器的虚拟功能的应用的源虚拟机(VM-S)的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/142,946 US12086620B2 (en) | 2021-01-06 | 2021-01-06 | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment |
US17/142,946 | 2021-01-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114721769A true CN114721769A (zh) | 2022-07-08 |
Family
ID=79730650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111655441.1A Pending CN114721769A (zh) | 2021-01-06 | 2021-12-30 | 虚拟机迁移的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12086620B2 (zh) |
EP (1) | EP4002114B1 (zh) |
JP (1) | JP7290708B2 (zh) |
CN (1) | CN114721769A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12039356B2 (en) | 2021-01-06 | 2024-07-16 | Baidu Usa Llc | Method for virtual machine migration with checkpoint authentication in virtualization environment |
US12086620B2 (en) * | 2021-01-06 | 2024-09-10 | Kunlunxin Technology (Beijing) Company Limited | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment |
US11989098B2 (en) * | 2022-04-22 | 2024-05-21 | Dell Products L.P. | Method and apparatus for detecting pre-arrival of device or component failure |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444670B2 (en) | 2006-03-21 | 2008-10-28 | International Business Machines Corporation | Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance |
JP4871850B2 (ja) | 2007-12-04 | 2012-02-08 | 株式会社日立製作所 | 仮想計算機システム及び仮想計算機移行制御方法 |
JP5281074B2 (ja) | 2008-02-25 | 2013-09-04 | パナソニック株式会社 | 情報セキュリティ装置および情報セキュリティシステム |
US8405666B2 (en) * | 2009-10-08 | 2013-03-26 | Advanced Micro Devices, Inc. | Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine |
US20120324236A1 (en) | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Trusted Snapshot Generation |
JP2013235317A (ja) | 2012-05-07 | 2013-11-21 | Mitsubishi Electric Corp | 仮想計算機システム |
US9282166B2 (en) * | 2012-11-29 | 2016-03-08 | International Business Machines Corporation | Management infrastructure analysis for cloud migration |
US10628378B2 (en) | 2013-09-03 | 2020-04-21 | Tintri By Ddn, Inc. | Replication of snapshots and clones |
US9652631B2 (en) | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
JP5904514B1 (ja) | 2014-10-28 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム |
US9811367B2 (en) * | 2014-11-13 | 2017-11-07 | Nsp Usa, Inc. | Method and apparatus for combined hardware/software VM migration |
US9671971B2 (en) | 2015-03-27 | 2017-06-06 | Intel Corporation | Managing prior versions of data for logical addresses in a storage device |
US9772906B2 (en) * | 2015-07-30 | 2017-09-26 | Unitrends, Inc. | Disaster recovery systems and methods |
US10387209B2 (en) * | 2015-09-28 | 2019-08-20 | International Business Machines Corporation | Dynamic transparent provisioning of resources for application specific resources |
JP2018005576A (ja) | 2016-07-01 | 2018-01-11 | 富士通株式会社 | ライブマイグレーションプログラム、およびライブマイグレーション方法 |
WO2018020603A1 (ja) | 2016-07-27 | 2018-02-01 | 株式会社日立製作所 | 計算機システム及びアクセラレータ管理方法 |
US10241947B2 (en) * | 2017-02-03 | 2019-03-26 | Intel Corporation | Hardware-based virtual machine communication |
US10740146B2 (en) * | 2017-02-10 | 2020-08-11 | Xilinx, Inc. | Migrating virtual machines between compute systems by transmitting programmable logic accelerator state |
WO2020000175A1 (en) * | 2018-06-26 | 2020-01-02 | Intel Corporation | Oversubscribable resource allocation |
EP3695587B1 (en) | 2019-01-04 | 2022-05-04 | Baidu.com Times Technology (Beijing) Co., Ltd. | Providing secure communications between a host system and a data processing accelerator |
US11080144B2 (en) * | 2019-01-25 | 2021-08-03 | Coinbase, Inc. | System and method for managing blockchain nodes |
CN111506385A (zh) | 2019-01-31 | 2020-08-07 | Ati科技无限责任公司 | 引擎抢占和复原 |
WO2020192448A1 (zh) * | 2019-03-25 | 2020-10-01 | 阿里巴巴集团控股有限公司 | 虚拟机的迁移方法和系统 |
US11175939B2 (en) * | 2019-05-09 | 2021-11-16 | International Business Machines Corporation | Dynamically changing containerized workload isolation in response to detection of a triggering factor |
CN112148418A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于访问数据的方法、装置、设备和介质 |
US20200409732A1 (en) * | 2019-06-26 | 2020-12-31 | Ati Technologies Ulc | Sharing multimedia physical functions in a virtualized environment on a processing unit |
US11281538B2 (en) * | 2019-07-31 | 2022-03-22 | Stratus Technologies Ireland Ltd. | Systems and methods for checkpointing in a fault tolerant system |
US11922199B2 (en) * | 2019-12-10 | 2024-03-05 | Vmware, Inc. | Associating security tags to continuous data protection checkpoints/snapshots/point-in-time images |
US11599376B1 (en) * | 2020-02-20 | 2023-03-07 | Amazon Technologies, Inc. | Deep learning architecture for edge computing system |
US11563745B2 (en) * | 2020-06-12 | 2023-01-24 | Baidu Usa Llc | Method for data protection in a data processing cluster with policy-based partition |
US11392384B2 (en) * | 2020-09-04 | 2022-07-19 | Alibaba Group Holding Limited | Methods of breaking down coarse-grained tasks for fine-grained task re-scheduling |
US20220198296A1 (en) * | 2020-12-23 | 2022-06-23 | EMC IP Holding Comnpany LLC | User context migration based on computation graph in artificial intelligence application executing in edge computing environment |
US12039356B2 (en) * | 2021-01-06 | 2024-07-16 | Baidu Usa Llc | Method for virtual machine migration with checkpoint authentication in virtualization environment |
US12086620B2 (en) * | 2021-01-06 | 2024-09-10 | Kunlunxin Technology (Beijing) Company Limited | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment |
-
2021
- 2021-01-06 US US17/142,946 patent/US12086620B2/en active Active
- 2021-12-28 JP JP2021214735A patent/JP7290708B2/ja active Active
- 2021-12-28 EP EP21217984.0A patent/EP4002114B1/en active Active
- 2021-12-30 CN CN202111655441.1A patent/CN114721769A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7290708B2 (ja) | 2023-06-13 |
US20220214903A1 (en) | 2022-07-07 |
US12086620B2 (en) | 2024-09-10 |
EP4002114B1 (en) | 2023-05-10 |
EP4002114A3 (en) | 2022-06-08 |
JP2022043279A (ja) | 2022-03-15 |
EP4002114A2 (en) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11991209B2 (en) | System and method for security health monitoring and attestation of virtual machines in cloud computing systems | |
US12039356B2 (en) | Method for virtual machine migration with checkpoint authentication in virtualization environment | |
JP7196132B2 (ja) | データプロセッシング(dp)アクセラレータのための難読化を用いたデータ伝送 | |
US10171432B2 (en) | Systems to implement security in computer systems | |
EP4002114B1 (en) | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment | |
US11210136B2 (en) | Systems and methods for an operating system module for a data processing accelerator | |
EP3923535A1 (en) | Method for data protection in a data processing cluster with policy-based partition | |
US20230297406A1 (en) | Confidential computing using multi-instancing of parallel processors | |
AbdElRahem et al. | Virtualization security: A survey | |
US11582260B2 (en) | Systems and methods for verifying a watermark of an AI model for a data processing accelerator | |
US11687376B2 (en) | Method for data protection in a data processing cluster with dynamic partition | |
US11847501B2 (en) | Method for data protection in a data processing cluster with partition | |
US11687629B2 (en) | Method for data protection in a data processing cluster with authentication | |
US20230297696A1 (en) | Confidential computing using parallel processors with code and data protection | |
Han et al. | Improving drone mission continuity in rescue operations with secure and efficient task migration |
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 |