应用场景及方案
应用场景
昇腾虚拟化实例功能适用于多用户多任务并行,且每个任务算力需求较小的场景。对算力需求较大的大模型任务,不支持使用昇腾虚拟化实例。
虚拟化场景
昇腾虚拟化实例功能在物理机或虚拟机使用时,支持以下虚拟化场景,如表1所示。本文主要介绍在昇腾设备划分vNPU支持的场景和方法,如果涉及虚拟机相关的配置,需要结合另一本文档《Atlas 系列硬件产品 25.0.RC1 虚拟机配置指南》的“安装虚拟机>配置NPU直通虚拟机>NPU直通虚拟机”章节一起使用。
划分vNPU有以下两种方式。
- 静态虚拟化:通过npu-smi工具手动创建多个vNPU。物理机和虚拟机场景均支持静态虚拟化。
- 动态虚拟化:通过软件配置,在收到虚拟化任务请求后,动态地自动创建vNPU、挂载任务、回收vNPU。
昇腾虚拟化实例功能支持场景 |
操作流程 |
支持昇腾硬件 |
支持的虚拟化方式 |
---|---|---|---|
在物理机划分vNPU,挂载vNPU到虚拟机 |
在物理机划分vNPU和挂载vNPU到虚拟机的步骤请参见《Atlas 系列硬件产品 25.0.RC1 虚拟机配置指南》的“安装虚拟机>配置NPU直通虚拟机>vNPU直通虚拟机”章节。 |
|
静态虚拟化 |
在物理机划分vNPU,挂载vNPU到容器 |
Atlas 推理系列产品 |
|
|
Atlas 训练系列产品 |
|
||
在物理机划分vNPU,挂载vNPU到虚拟机,在虚拟机内将vNPU挂载到容器 |
|
Atlas 推理系列产品:
|
静态虚拟化 |
在物理机直通NPU到虚拟机,在虚拟机内划分vNPU,再将vNPU挂载到虚拟机内的容器 |
Atlas 推理系列产品:
|
|
vNPU挂载到容器方案
将vNPU挂载到容器有以下方案:
- 原生Docker:结合原生Docker使用。仅支持静态虚拟化(通过npu-smi工具创建多个vNPU),通过Docker拉起容器时将vNPU挂载到容器。
不支持通过原生Containerd拉起容器时将vNPU挂载到容器。
- 结合MindCluster组件:
- Ascend Docker Runtime:单独基于Ascend Docker Runtime(容器引擎插件)使用。支持静态虚拟化和动态虚拟化,通过Ascend Docker Runtime拉起容器时将vNPU挂载到容器。
- Kubernetes:结合MindCluster组件Ascend Device Plugin、Volcano,通过Kubernetes拉起容器时将vNPU挂载到容器。支持静态虚拟化和动态虚拟化。
- 静态虚拟化:通过npu-smi工具提前创建多个vNPU,当用户需要使用vNPU资源时,基于Ascend Device Plugin组件的设备发现、设备分配、设备健康状态上报功能,分配vNPU资源提供给上层用户使用,此方案下,集群调度组件的Volcano组件为可选。
- 动态虚拟化:Ascend Device Plugin组件上报其所在机器的可用AICore数目。虚拟化任务上报后,Volcano经过计算将该任务调度到满足其要求的节点。该节点的Ascend Device Plugin在收到请求后自动切分出vNPU设备并挂载该任务,从而完成整个动态虚拟化过程。该过程不需要用户提前切分vNPU,在任务使用完成后又能自动回收,很好地支持用户算力需求不断变化的场景。
父主题: 虚拟化实例