虚拟化规则
虚拟化模板
当前各处理器及型号包含的硬件资源如表1所示。
处理器型号 |
AI Core核数 |
内存 |
AICPU |
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格式的能力。
产品型号 |
虚拟化实例模板 |
说明 |
---|---|---|
Atlas 训练系列产品(30或32个AI Core) |
虚拟化实例模板包括:vir02、vir04、vir08、vir16。 |
|
Atlas 推理系列产品(8个AI Core) |
虚拟化实例模板包括:vir01、vir02、vir04、vir02_1c、vir04_3c、vir04_3c_ndvpp、vir04_4c_dvpp。 说明:
Atlas 300I Duo 推理卡的2P场景下(即存在2张NPU卡),p0对应的虚拟化实例模板如上所示,p1对应的虚拟化实例模板名称需要在p0的基础上增加p1的标记,比如p1_vir01。 |
|
处理器型号 |
虚拟化实例模板 |
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上推理的性能数据,您可以联系华为技术支持工程师获取信息。
Atlas 训练系列产品的虚拟化实例组合不一一列举,虚拟化机制为在一个NPU上创建的虚拟实例包含的AIcore数量达到了NPU实际AIcore数量后就不能够继续切分,如昇腾AI处理器为30个AICore时,则不能切分两个vir16,只能切分一个vir16,剩余的14个AICore则可以按照vir08+vir04+vir02切分,而昇腾AI处理器为32个AICore时,则支持两个vir16。昇腾AI处理器为30个AICore时,最大支持切分15个虚拟化实例,昇腾AI处理器为32个AICore时,最大支持切分16个虚拟化实例。
虚拟化模式
- 硬件虚拟化是指NPU虚拟化为vNPU后,该vNPU对应的AICore、AICPU、内存等硬件资源和其他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包含若干AICore、AICPU、片上内存、DVPP资源;
- 如果用户使用模板vir04、vir04_3c、vir02、vir02_1c、vir04_3c_ndvpp、vir04_4c_dvpp,那么系统就会创建一个对应资源的vGroup,该vGroup包含与虚拟化实例模板匹配的AICore和其他硬件资源,vGroup再将资源提供给vNPU使用,虚拟化实例模板组合和vGroup的分配关系如图2所示;
- Atlas 推理系列产品最多支持划分4个vGroup,vGroup至少包含2个AICore,如果用户使用模板vir01(无论是1个vir01还是2个vir01),NPU分配的vGroup同样包含2个AICore,vNPU通过分时复用的方式使用vGroup资源,比如通过2个vir01模板切分的2个vNPU,那么每个vNPU会通过串行的方式轮流使用vGroup的资源(如vNPU1使用1毫秒,然后vNPU2使用1毫秒)。