昇腾社区首页
中文
注册

虚拟化规则

虚拟化模板

当前各处理器及型号包含的硬件资源如表1所示。

表1 产品规格

处理器型号

AI Core核数

内存

AI CPU

VPC总核数

VDEC总核数

JPEGD总核数

PNGD总核数

VENC总核数

JPEGE总核数

Atlas 训练系列产品(30个AI Core)

30

32G

14

16

16

16

24

NA

8

Atlas 训练系列产品(32个AI Core)

32

32G

14

16

16

16

24

NA

8

Atlas 推理系列产品(8个AI Core)

8

24G

7

12

12

16

NA

3

8

昇腾AI处理器包含AI Core、AI CPU、DVPP、内存等硬件资源,主要用途如下:

  • AI Core主要用于矩阵乘等计算,适用于卷积模型。
  • AI CPU主要负责执行CPU类算子(包括控制算子、标量和向量等通用计算)。
  • 虚拟化实例(创建指定芯片的vNPU)会使能SRIOV,将data CPU转化为AI CPU,因此会导致NPU信息中的AI CPU个数发生变化。
  • DVPP为数字视觉预处理模块,提供对特定格式的视频和图像进行解码、缩放等预处理操作,以及对处理后的视频、图像进行编码再输出的能力,包含VPC、VDEC、JPEGD、PNGD、VENC、JPEGE模块。
    • VPC:视觉预处理核心,提供对图像进行缩放、色域转换、降bit数处理、存储格式转换、区块切割转换等能力。
    • VDEC:视频解码器,提供对特定格式的视频进行解码的能力。
    • JPEGD:JPEG图像解码器,提供对JPEG格式的图像进行解码的能力。
    • PNGD:PNG图像解码器,提供对PNG格式的图像进行解码的能力。
    • VENC:视频编码器,提供对特定格式的视频进行编码的能力。
    • JPEGE:JPEG图像编码器,提供对图像进行编码输出为JPEG格式的能力。
表2 虚拟化实例模板

产品型号

虚拟化实例模板

说明

Atlas 训练系列产品(30或32个AI Core)

虚拟化实例模板包括:vir02、vir04、vir08、vir16。

  • vir后面的数字表示AI Core数量。
  • c前面的数字表示AI CPU数量。
  • dvpp表示虚拟化时包含所有数字视觉预处理模块(即VPC,VDEC,JPEGD,PNGD,VENC,JPEGE)。
  • ndvpp表示虚拟化时没有数字视觉预处理硬件资源。

Atlas 推理系列产品(8个AI Core)

虚拟化实例模板包括:vir01、vir02、vir04、vir02_1c、vir04_3c、vir04_3c_ndvpp、vir04_4c_dvpp。

  • vir后面的数字表示AI Core数量。
  • c前面的数字表示AI CPU数量。
  • dvpp表示虚拟化时包含所有数字视觉预处理模块(即VPC,VDEC,JPEGD,PNGD,VENC,JPEGE)。
  • ndvpp表示虚拟化时没有数字视觉预处理硬件资源。
表3 各虚拟化实例模板对应的资源信息

处理器型号

虚拟化实例模板

AI Core核数

内存

AI CPU

VPC

VDEC

JPEGD

PNGD

VENC

JPEGE

Atlas 训练系列产品(30或32个AI Core)

vir16

16

16G

7

8

8

8

12

NA

4

vir08

8

8G

3

4

4

4

6

NA

2

vir04

4

4G

1

2

2

2

3

NA

1

vir02

2

2G

1

1

1

1

1

NA

0

Atlas 推理系列产品(8个AI Core)

vir04

4

12G

4

6

6

8

NA

2

4

vir04_3c

4

12G

3

6

6

8

NA

1

4

vir02

2

6G

2

3

3

4

NA

1

2

vir02_1c

2

6G

1

3

3

4

NA

0

2

vir01

1

3G

1

1

1

2

NA

0

1

vir04_3c_ndvpp

4

12G

3

0

0

0

NA

0

0

vir04_4c_dvpp

4

12G

4

12

12

16

NA

3

8

虚拟化实例组合

Atlas 推理系列产品支持虚拟化实例组合如图1所示,1个昇腾AI处理器最大支持切分7个虚拟化实例,用户需要按照组合规格对NPU硬件资源进行虚拟化切分。

由于Atlas 推理系列产品只配置7个AI CPU,因此导致对Atlas 推理系列产品进行虚拟化时,无法做到资源均衡的划分vNPU,vNPU支持的划分组合如图1所示,因此您在使用Atlas 推理系列产品进行虚拟化实例功能前,需要评估现场服务器上推理应用所需的资源要求,比如划分6个vir01后,无法再切分2个vir01,只能再划分一个vir02_1c(或者一个vir01,但是会浪费一个AI Core),所以建议您的推理应用正式使用vNPU前,可以先划分vNPU进行测试验证,找到最佳的切分策略。

如果您需要了解典型模型在vNPU上推理的性能数据,您可以联系华为技术支持工程师获取信息。

图1 Atlas 推理系列产品支持虚拟化实例组合

Atlas 训练系列产品的虚拟化实例组合不一一列举,虚拟化机制为在一个NPU上创建的虚拟实例包含的AI Core数量达到了NPU实际AI Core数量后就不能够继续切分,如昇腾AI处理器为30个AI Core时,则不能切分两个vir16,只能切分一个vir16,剩余的14个AI Core则可以按照vir08+vir04+vir02切分,而昇腾AI处理器为32个AI Core时,则支持两个vir16。昇腾AI处理器为30个AI Core时,最大支持切分15个虚拟化实例,昇腾AI处理器为32个AI Core时,最大支持切分16个虚拟化实例。

虚拟化模式

虚拟化模式包含硬件虚拟化和软件虚拟化两种模式,两种模式说明如下:
  • 硬件虚拟化是指NPU虚拟化为vNPU后,该vNPU对应的AI Core、AI CPU、内存等硬件资源和其他vNPU相互隔离,为AI任务分配一个vNPU后,该任务可单独使用为其分配的硬件资源,互不影响。
  • 软件虚拟化是指用户创建vNPU时,相当于创建一个虚拟实例,而NPU的硬件资源相当于一个资源池,虚拟实例分配给AI任务使用时,该虚拟实例从资源池调用对应的硬件资源。

Atlas 训练系列产品只支持软件虚拟化方式,而Atlas 推理系列产品中vir04、vir04_3c、vir02、vir02_1c、vir04_3c_ndvpp、vir04_4c_dvpp模板为硬件虚拟化模式,vir01模板为软件虚拟化模式。

Atlas 推理系列产品虚拟化实例还涉及vGroup的概念:

  • vGroup是指虚拟化时NPU根据用户指定的虚拟化模板划分出虚拟资源组vGroup,每个vGroup包含若干AI Core、AI CPU、片上内存、DVPP资源;
  • 如果用户使用模板vir04、vir04_3c、vir02、vir02_1c、vir04_3c_ndvpp、vir04_4c_dvpp,那么系统就会创建一个对应资源的vGroup,该vGroup包含与虚拟化实例模板匹配的AI Core和其他硬件资源,vGroup再将资源提供给vNPU使用,虚拟化实例模板组合和vGroup的分配关系如图2所示;
  • Atlas 推理系列产品最多支持划分4个vGroup,vGroup至少包含2个AI Core,如果用户使用模板vir01(无论是1个vir01还是2个vir01),NPU分配的vGroup同样包含2个AI Core,vNPU通过分时复用的方式使用vGroup资源,比如通过2个vir01模板切分的2个vNPU,那么每个vNPU会通过串行的方式轮流使用vGroup的资源(如vNPU1使用1毫秒,然后vNPU2使用1毫秒)。
图2 vGroup和虚拟化实例模板组合的对应关系