更新时间:2025-08-27 GMT+08:00

NPU虚拟化概述

NPU虚拟化是指将通过资源虚拟化的方式将物理机中配置的NPU(昇腾AI产品)切分为多个虚拟NPU(vNPU),并挂载至容器中使用,以实现对硬件资源的灵活切分与动态管理。NPU虚拟化具有以下优势:

  • 资源高效利用:单台服务器的NPU可被划分为多个vNPU,供不同用户按需申请,降低算力使用成本。
  • 资源强隔离:基于容器化技术,确保不同用户的vNPU资源完全隔离,避免计算干扰或数据泄露。
  • 统一管理:不同规格资源的分配和回收处理过程统一,方便多租户管理。

NPU虚拟化基本原理

昇腾NPU硬件中包含AICore、AICPU和内存等核心计算资源。通过资源虚拟化技术,系统可以根据用户需求将这些物理资源灵活划分为多个vNPU,每个vNPU包含特定数量的AICore、AICPU和内存等资源。例如,一个容器申请4个AICore资源,另一个容器申请2个AICore,则系统将创建2个vNPU实例供容器使用,具体流程请参见图1

图1 vNPU案例

适用的NPU芯片类型

目前,仅昇腾Snt3P3的虚拟化特性经过CCE验证。

关于对应芯片的硬件资源数据,请登录对应节点,通过npu-smi info -t info-vnpu -i <id> -c <chip_id>命令查询。id和chip_id获取方式如下:

  • id:表示设备ID,通过npu-smi info -l命令查出的NPU ID即为设备id。
  • chip_id:表示芯片ID,通过npu-smi info -m命令查出的Chip ID即为芯片id。

NPU虚拟化模板

进行NPU虚拟化时,仅支持通过官方提供的虚拟化模板指定vNPU的资源规格。关于昇腾Snt3P3的适用的模板信息,请参见表1
表1 NPU虚拟化模板

芯片类型

虚拟化实例模板

AI Core核数

内存

AI CPU

VPC

VDEC

JPEGD

VENC

JPEGE

昇腾Snt3P3

vir04

4

12G

4

6

6

8

2

4

vir04_3c

4

12G

3

6

6

8

1

4

vir02

2

6G

2

3

3

4

1

2

vir02_1c

2

6G

1

3

3

4

0

2

vir01

1

3G

1

1

1

2

0

1

vir04_3c_ndvpp

4

12G

3

0

0

0

0

0

vir04_4c_dvpp

4

12G

4

12

12

16

3

8

NPU虚拟化功能支持虚拟化实例的灵活组合,即在同一张NPU芯片上,可以使用不同的虚拟化模板划分多种vNPU,各vNPU占用的资源总量不得超过该NPU卡的硬件上限。官方已给出推荐的组合模板,您可以根据需求进行灵活组合,具体请参见虚拟化实例组合

NPU虚拟化方式

CCE提供两种NPU虚拟化方式,您可以根据业务场景进行选择,具体如下:

  • 自动实现NPU虚拟化(算力切分):实现节点池粒度的NPU虚拟化,可以通过UI界面批量切分vNPU。该方式仅支持固定的虚拟化模板组合,适用于大规模场景下的统一资源管理。
  • 手动实现NPU虚拟化:实现节点粒度的NPU虚拟化,可以手动控制每张NPU卡的资源分配,具备更高的灵活性,但配置过程相对复杂,适合对资源使用有精细化需求的场景。