---
title: NPU卡虚拟化硬切分参考实践-官方技术文章-昇腾社区
description: 本参考实践主要用于介绍基于昇腾硬件驱动提供的硬切分能力&#xff0c;详细描述典型场景下虚拟化硬切分的方案。同时提供详细的操作指导&#xff0c;帮助用户快速将虚拟化硬切分应用到业务应用中。
keywords: NPU,卡虚拟化硬切,分参考实践,官方技术文章,昇腾社区,非商用声明,方案介绍,背景
url: https://www.hiascend.com/developer/techArticles/20251212-1
section: (其他)
---

# NPU卡虚拟化硬切分参考实践-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20251212-1
描述: 本参考实践主要用于介绍基于昇腾硬件驱动提供的硬切分能力&#xff0c;详细描述典型场景下虚拟化硬切分的方案。同时提供详细的操作指导&#xff0c;帮助用户快速将虚拟化硬切分应用到业务应用中。
关键词: NPU,卡虚拟化硬切,分参考实践,官方技术文章,昇腾社区,非商用声明,方案介绍,背景

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

NPU卡虚拟化硬切分参考实践

NPU卡虚拟化硬切分参考实践

昇腾部署算力切分

发表于: 2025/12/12

9k

33

# 非商用声明

该文档提供的内容为参考实践，仅供用户参考使用，用户可参考实践文档构建自己的软件，按需进行安全、可靠性加固，但不建议直接将相关Demo或镜像文件集成到商用产品中。

# 1 方案介绍

## 1.1 背景

为了提升昇腾设备的算力利用率，节省部署的资源成本，在很多业务场景下需要一张卡部署多个参数量较小的模型。但是简单的混合部署存在算力资源抢占风险，资源隔离性差，增加了运维难度，无法保证运行环境平稳和安全。因此昇腾提供虚拟化切分的能力，将NPU虚拟化为vNPU，分配给多个业务使用。从而在保证资源隔离的前提下，实现算力资源的高效利用和调度，保障业务运行的稳定性与安全性。

## 1.2 方案简介

基于昇腾硬件驱动提供的硬切分能力，将物理机配置的NPU切分成若干份vNPU（虚拟NPU）挂载到容器中使用，满足多个业务按需申请共同使用一个NPU，降低了用户使用NPU算力的成本，同时借助容器进行资源隔离，资源隔离性好，保证运行环境的平稳和安全。

本参考实践将以金融智能化助手一体机场景为例，详细描述该场景下虚拟化硬切分的方案，同时提供详细的操作指导，帮助用户快速将虚拟化硬切分应用到业务应用中。

## 1.3 关键特性

1、支持硬件：本切分方案支持Atlas推理系列产品：Atlas 300I Duo、Atlas 300I A2、Atlas 800I A2。

2、支持模型：本切分方案已验证支持Qwen2.5、Qwen3等LLM模型，支持Qwen2.5-VL等VLM模型，支持bge-m3等嵌入类模型，具体已验证模型支持情况如表1所示。其它模型支持情况用户可按需自行验证。

3、支持场景：当前版本硬切分特性仅支持推理场景。

表1已验证支持模型列表

| 模型 | Atlas 300I A2（32G） | Atlas800I A2（32G） | Atlas800I A2（64G） | Atlas300I Duo（96G） | 模型适配地址 |
| --- | --- | --- | --- | --- | ---|
| PaddleOCR-VL 0.9B | 1切4 | 1切4 | 1切2、1切4 |  | https://github.com/PaddlePaddle/PaddleOCR/blob/main/readme/README_cn.mdhttps://www.paddleocr.ai/latest/version3.x/other_devices_support/paddlepaddle_install_NPU.html |
| bge-m3 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/embedding/bge-m3/README.md |
| bge-reranker-large | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/MindIE-LLM/tree/master/examples/atb_models/examples/models/bge/reranker-large |
| bge-reranker-v2-m3 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/embedding/bge-reranker-v2-m3/README.md |
| Qwen2.5 7B/Qwen3 8B | 不支持 | 不支持 | 1切2 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/Qwen2.5 |
| Qwen3 4B | 1切2 | 1切2 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/Qwen3 |
| Qwen2.51.5B / Qwen3 1.7B | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 | https://gitcode.com/Ascend/ModelZoo-PyTorch/tree/master/MindIE/LLM/Qwen2.5 |
| ResNet50 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/cv/Resnet50_Pytorch_Infer/README.md |
| Qwen2.5-VL-3B-Instruct | 1切2 | 1切2 | 1切2、1切4 |  | https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct/tree/main |
| SenseVoiceSmall | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/audio/SenseVoice/README_onnx.md |
| Whisper | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/tree/master/ACL_PyTorch/built-in/audio/whisper |
| YoloV8 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://gitcode.com/Ascend/modelzoo-GPL/blob/master/built-in/ACL_Pytorch/Yolov8_for_PyTorch/README.md |
| PP-OCRv5 | 1切2、1切4 | 1切2、1切4 | 1切2、1切4 |  | https://www.paddleocr.ai/latest/version3.x/pipeline_usage/OCR.html#421 |
| MinerU | 1切2 | 1切2 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/ocr/MinerU/README.md |
| Slanet-plus | 1切2 | 1切2 | 1切2、1切4 |  | https://paddlepaddle.github.io/PaddleX/latest/support_list/model_list_npu.html#_16 |
| CosyVoice2 | 1切2 | 1切2 | 1切2、1切4 |  | https://gitcode.com/Ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/built-in/audio/CosyVoice2/README.md |
| GLM-4V-9B | 不支持 | 不支持 | 1切2 |  |  |

注意：

1、对于Qwen2.5-VL-3B-Instruct 等多模态模型 ，使用MindIE部署时“npuMemSize”不支持设置为-1，因为需要给ViT部分预留空间。建议参考MindIE产品文档计算合适的数值进行配置。

2、对于MinerU 的模型部署 ，使用的 vLLM Ascend 镜像版本不应低于v0.12.0rc1。

3、MinerU 在使用 vLLM Ascend 进行服务化部署过程中若出现 显存不足（OOM）现象，可通过调整以下参数以降低显存占用：

（1）降低最大并发序列数（max-num-seqs）

（2）减少批处理规模（max-num-batched-tokens）

（3）禁用图优化（enforce-eager）

（4）调小显存利用上限（gpu-memory-utilization）

（ 实测可用配置：

a) Atlas 800I A2（64G）1切2 ：需要设置--max-num-seqs 128 --max-num-batched-tokens 256 --enforce-eager；

b) Atlas 300I A2、800I A2（32G）1切2 、Atlas 800I A2（64G）1切4 ： 需要设置--gpu-memory-utilization 0.9 --max-num-seqs 32）

## 1.4 应用场景

算力切分特性典型的应用场景为各类一体机场景，例如金融智能化助手一体机同时需要部署LLM模型（例如Qwen、Deepseek）和embedding模型（bge-m3）、reranker模型（bge-reranker-v2-m3）以及OCR模型（PP-OCRv5）、语音识别（SenseVoiceSmall）、语音生成（CosyVoice2）等多种模型，既需实现算力高效利用，又要保障资源隔离与运行可靠性。

本参考实践针对典型应用场景提供参考实践，用户可参考使用。

# 2 使用指导

## 2.1 软件配置

本参考实践使用的软件配套版本如下：

表1

| 软件/镜像 | 版本 | 说明 |
| --- | --- | ---|
| Ascend HDK | 25.5.0 | NPU驱动固件 |
| CANN | 9.0.0-beta.1 | 昇腾异构计算架构 |
| Ascend-Docker-Runtime | 7.1.RC1 | 用于将vNPU挂载到容器，按需选择安装 |
| MindIE | 2.2.RC2 | 用于部署Qwen等模型 |
| mis-tei | 7.1.RC1 | 用于部署Embedding、Rerank模型 |
| paddle-npu | 3.2 | 用于部署PP-OCRv5模型 |
| Docker | 18.09.0 | 用于部署镜像 |
| OS | openEuler release 22.03 (LTS-SP4) | 物理机操作系统（请使用昇腾官方兼容的OS） |

说明：

HDK 25.5.0 下载链接：链接 [了解详情](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743/software/264418066?idAbsPath=fixnode01|23710424|251366513|254884019|261408772|252764743)（例如：选择对应芯片型号的“Ascend-hdk-xxx-npu-driver_25.5.0_linux-aarch64.run”驱动文件，申请权限并下载）

paddle-npu安装部署文档：链接 [了解详情](https://www.paddlepaddle.org.cn/documentation/docs/zh/hardware_support/npu/install_cn.html)

## 2.2 使用约束

1、同个模型部署时不支持物理NPU+vNPU混合使用。

2、物理NPU虚拟化出vNPU后，不支持再将该物理NPU挂载到容器使用。

3、虚拟化实例模板是用于对整台服务器上所有NPU进行资源切分，不支持不同规格的标卡混插。如Atlas 300I Duo 支持48G和96G内存规格，不支持这两种内存规格的卡混插进行虚拟化。

4、一个推理服务只能绑定一张vNPU。

# 3 典型场景参考实践

以金融智能化助手一体机这一典型场景为例，通过采用虚拟化硬切分方案，可在单台Atlas 800I A2上部署7个不同模型，从而满足该一体机各类功能应用的模型需求。本章将围绕该场景下的典型实践，从场景介绍、模型需求、部署方案及部署步骤四个部分展开，以说明切分和部署的设计思路和操作方法。该一体机场景具备一定的通用性，也可为其他一体机场景提供参考；用户可根据自身模型需求，对部署方案进行相应调整和验证。

## 3.1 场景描述

随着金融行业迅速发展，业务系统对智能分析、自动化处理和风险识别的需求呈指数级增长。在银行、证券等核心金融领域，传统的信息处理方式已难以满足高频业务、海量数据的实时决策需求。本一体机方案面向银行、证券、保险等机构，提供智能化助手能力。系统内置 70B 市场分析大模型，可实时解读宏观走势、研判行业风险，并生成结构化研究结论；32B 模型用于客服咨询、业务办理指引等高频交互场景，实现快速响应与个性化服务。结合高性能向量检索与重排序模型，一体机支持海量业务文档的智能搜索、合规审查与知识问答。集成 OCR、语音识别和语音生成能力，可对贷款资料进行自动识别，提供语音交互实现实时应答，为网点和线上渠道提供端到端的智能处理能力，显著提升金融机构的运营效率与服务质量。

70B大模型需要使用4卡部署，32B模型需要2卡部署，剩下的两卡完成embedding、reranker模型以及语音生成、语音识别、OCR模型共5个模型部署，使用硬切分的方式灵活分配算力资源，实现单卡部署多模型。

## 3.2 模型需求

针对该场景，使用Atlas 800I A2（64G）整机构建一体机方案，根据模型需求，初步给出模型需求列表如下。

表1模型需求列表

| 模型类型 | 模型名称 | 用途 |
| --- | --- | ---|
| LLM模型 | DeepSeek-R1-Distill-Llama-70B | 市场分析、建模、报表生成、长文本/大数据输出场景（高算力、批量/异步任务） |
| LLM模型 | Qwen3 32B | 面向、交互式客服、实时问答（低延迟、在线交互） |
| embedding模型 | bge-m3 | 负责信贷文档检索、客户咨询语义匹配等场景 |
| reranker模型 | bge-reranker-v2-m3 | 负责精准排序，保证返回给 LLM 的知识高质量 |
| 语音识别模型 | SenseVoiceSmall | 语音指令解析；短问答转文字 |
| 语音生成模型 | CosyVoice2 | 语音客服 |
| OCR小模型 | PP-OCRv5 | 信贷/身份相关图像识别（证件、合同、影像表单） |

## 3.3 部署方案

针对该场景，使用Atlas 800I A2（64G）构建一体机方案，根据模型需求，给出具体的NPU切分方案和模型部署方案如下，作为参考，用户可以根据实际的性能需求，酌情调整模型使用的资源，并进行性能验证。

表1模型部署方案列表

| 模型名称 | 推理引擎 | NPU编号 | 切分规格 | 部署方案 |
| --- | --- | --- | --- | ---|
| DeepSeek-R1-Distill-Llama-70B | MindIE | 0，1，2，3 | NA | 使用Atlas800I A2（64G）的0，1，2，3卡部署1个实例 |
| Qwen3 32B | MindIE | 4，5 | NA | 使用Atlas800I A2（64G）的4，5卡部署1个实例 |
| bge-m3 | mis-tei | 6 | 1切2 | 在6卡上使用vir10_3c_32g进行1切2，在其中一个vNPU上部署该模型 |
| bge-reranker-v2-m3 | mis-tei | 6 | 1切2 | 在6卡上使用vir10_3c_32g进行1切2，在其中一个vNPU上部署该模型 |
| SenseVoiceSmall | MindIE | 7 | 1切4 | 在7卡上使用vir05_1c_16g进行1切4，在其中一个vNPU上部署该模型 |
| CosyVoice2 | MindIE | 7 | 1切4 | 在7卡上使用vir05_1c_16g进行1切4，在其中一个vNPU上部署该模型 |
| PP-OCRv5 | paddle-npu | 7 | 1切2 | 在7卡上使用vir10_3c_32g进行1切2，在其中一个vNPU上部署该模型 |

## 3.4 部署步骤

本节提供模型具体部署步骤以及注意事项。

1. 执行命令 npu-smi info 查询空闲NPU卡（如下图所示0号卡(id=0，chip_id=0)上无任何进程），可进行切分。

2. 执行命令 npu-smi info -t info-vnpu -i id -c chip_id 查询该NPU上是否有vNPU，若已存在vNPU，可参照本节步骤10的操作按需决定是否删除。

3. 执行命令 npu-smi info -t template-info 查询当前机型支持的切分模版。

4. 根据模型占用显存大小来选择合适的切分模板vnpu_config。例如：本实践中使用的PP-OCRv5模型，首先在单张物理整卡上准备好相关配置文件进行服务化部署，服务启动后使用jmeter等工具进行高并发压测，记录压测过程中出现的最大模型占用显存为23GB。使用切分模板vir10_3c_32g可以分配到32G显存，而vir05_1c_16g分配显存为16G，不满足此处显存要求。故应该选择切分模板vir10_3c_32g进行1切2。

5. 执行命令 npu-smi set -t create-vnpu -i id -c chip_id -f vnpu_config 进行切分。

6. 执行命令 npu-smi info -t info-vnpu -i id -c chip_id 查询该vNPU的信息，获取vNPU_id。

7. 参考附录中【命令参考-使用vNPU】节内容，提供两种vNPU挂载方式：

a)原生Docker使用vNPU：

```bash
docker run -it -d --net=host --shm-size=1g \
    --name <container-name> \
    --device=/dev/davinci_manager \
    --device=/dev/hisi_hdc \
    --device=/dev/devmm_svm \
    --device=/dev/vdavinci212:/dev/davinci212 \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
    -v /usr/local/sbin:/usr/local/sbin:ro \
    -v /home:/home \
    <image_name> bash
```

说明：

本方案中MindIE和mis-tei容器均使用该方式挂载vNPU。

按实际情况设置docker run命令参数,使用 --device=/dev/vdavinci212:/dev/davinci212 的方式将vNPU挂载到容器中，212是第6步中查询到的vNPU_id。

b)Ascend Docker Runtime使用vNPU：

一些容器，例如本方案中的paddle-npu容器必须使用Ascend docker-runtime来挂载vNPU。否则会出现设备无法初始化等问题导致容器内找不到vNPU。需要通过Ascend Docker Runtime容器组件，将vNPU挂载到容器。

本方式需要在环境中安装Ascend docker-runtime组件。安装链接：Ascend Docker Runtime-MindCluster7.2.RC1-昇腾社区 [了解详情](https://www.hiascend.com/document/detail/zh/mindcluster/72rc1/clustersched/dlug/dlug_installation_017.html)

Ascend Docker Runtime组件提供有两种挂载方式：

```bash
docker run -it -d --net=host \
    --shm-size=128g \
    --name <container-name> \
    -e ASCEND_VISIBLE_DEVICES=100 \
    -e ASCEND_RUNTIME_OPTIONS=VIRTUAL \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /home:/work \
    -w=/work \ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann800-ubuntu20-npu-$(chip_type)-base-$(uname -m)-gcc84 bash
```

说明：

ASCEND_VISIBLE_DEVICES：切分得到的vNPU_id

或者

```bash
docker run -it -d --net=host \
    --shm-size=128g \
    --name <container-name> \
    -e ASCEND_VISIBLE_DEVICES=7 \
    -e ASCEND_VNPU_SPECS=vir10_3c_32g \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /home:/work \
    -w=/work \ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann800-ubuntu20-npu-$(chip_type)-base-$(uname -m)-gcc84 bash
```

说明：

ASCEND_VISIBLE_DEVICES：切分用到的物理卡卡号

ASCEND_VNPU_SPECS：切分模板名称

第一种方式需要我们提前创建好vNPU，在docker run命令中绑定容器。

第二种方式不需要提前创建vNPU，在保证该物理卡上的资源满足切分后，在docker run命令中完成vNPU切分并绑定容器。

8. 进入上一步创建的docker容器中，执行命令 npu-smi info 查询vNPU信息，若成功回显类似带有 “vir10_3c_32g ”字样的虚拟卡名称，说明vNPU成功挂载到容器中，后续使用方式跟使用普通NPU一样。

9. 各模型服务化启动方式不再一一列举，可参考1.3节中表1的各官方教程。

10. 确认该vNPU不再使用后，执行命令 npu-smi set -t destroy-vnpu -i id -c chip_id -v vnpu_id 销毁指定的vNPU，避免影响其他人使用。

本部署步骤适用于所有支持的昇腾推理硬件，切分后的各模型性能可以达到实际使用场景下的性能要求。

# 附录-命令参考

## 查询所有设备信息

```bash
npu-smi info
```

## 查询单NPU卡规格

```bash
npu-smi info -t info-vnpu -i id -c chip_id
```

说明：

id  设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。

chip_id   芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。

表1 Atlas 300I A2（64G）、Atlas 800I A2 （64G）规格

| AICORE | MemoryGB | AICPU | VPC | VENC | VDEC | JPEGD | JPEGE | PNGD |
| --- | --- | --- | --- | --- | --- | --- | --- | ---|
| 20/20 | 64/64 | 7/7 | 9/9 | 0/0 | 2/2 | 24/24 | 4/4 | NA/NA |

表2 Atlas 300I A2（32G）、Atlas 800I A2 （32G）规格

| AICORE | MemoryGB | AICPU | VPC | VENC | VDEC | JPEGD | JPEGE | PNGD |
| --- | --- | --- | --- | --- | --- | --- | --- | ---|
| 20/20 | 32/32 | 7/7 | 9/9 | 0/0 | 2/2 | 24/24 | 4/4 | NA/NA |

表3 Atlas 300I Duo（96G）单芯片规格

| AICORE | MemoryGB | AICPU | VPC | VENC | VDEC | JPEGD | JPEGE | PNGD |
| --- | --- | --- | --- | --- | --- | --- | --- | ---|
| 8/8 | 43/43 | 7/7 | 12/12 | 3/3 | 12/12 | 16/16 | 8/8 | NA/NA |

说明：

Atlas 300I Duo（96G）为单卡双芯片设计，上述43GB显存为单芯片的数据。总卡显存为双芯片显存之和

## 查询切分模板

```bash
npu-smi info -t template-info
```

表1 Atlas 300I A2（64G）、Atlas 800I A2 （64G）切分模板

| Name | AICORE | MemoryGB | AICPU | VPCPNGD | VENCVDEC | JPEGDJPEGE |
| --- | --- | --- | --- | --- | --- | ---|
| vir10_3c_32g | 10 | 32 | 3 | 40 | 01 | 122 |
| vir05_1c_16g | 5 | 16 | 1 | 20 | 00 | 61 |

表2 Atlas 300I A2（32G）、Atlas 800I A2 （32G）切分模板

| Name | AICORE | MemoryGB | AICPU | VPCPNGD | VENCVDEC | JPEGDJPEGE |
| --- | --- | --- | --- | --- | --- | ---|
| vir10_3c_16g | 10 | 16 | 3 | 40 | 01 | 122 |
| vir10_4c_16g_m | 10 | 16 | 4 | 90 | 02 | 244 |
| vir10_3c_16g_nm | 10 | 16 | 3 | 00 | 00 | 00 |
| vir05_1c_8g | 5 | 8 | 1 | 20 | 00 | 61 |

表3 Atlas 300I Duo（96G）切分模板

| Name | AICORE | MemoryGB | AICPU | VPCPNGD | VENCVDEC | JPEGDJPEGE |
| --- | --- | --- | --- | --- | --- | ---|
| vir01 | 1 | 6 | 1 | 10 | 01 | 21 |
| vir02 | 2 | 12 | 2 | 30 | 13 | 42 |
| vir02_1c | 2 | 12 | 1 | 30 | 03 | 42 |
| vir04 | 4 | 24 | 4 | 60 | 26 | 84 |
| vir04_3c | 4 | 24 | 3 | 60 | 16 | 84 |
| vir04_3c_ndvpp | 4 | 24 | 3 | 00 | 00 | 00 |
| vir04_4c_dvpp | 4 | 24 | 4 | 120 | 312 | 168 |

说明：

vir后面的数字表示AI Core数量。c前面的数字表示AI CPU数量。Memory/GB的数字表示显存资源分配大小；

## 创建vNPU

```bash
npu-smi set -t create-vnpu -i id -c chip_id -f vnpu_config
```

说明：

id  设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。

chip_id   芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。

vnpu_config  虚拟化实例模板名称，可参见附录【命令参考-查询切分模板】。

## 删除vNPU

```bash
npu-smi set -t destroy-vnpu -i id -c chip_id -v vnpu_id
```

## 使用vNPU

1、原生Docker使用vNPU

```bash
#vnpu绑定mindie容器
docker run -it -u root --name=mindie-vnpu212 --net=host --ipc=host \
    --device=/dev/vdavinci212:/dev/davinci212 \
    --device=/dev/davinci_manager \
    --device=/dev/devmm_svm \
    --device=/dev/hisi_hdc \
    -v /usr/local/Ascend:/usr/local/Ascend \
    -v /usr/local/sbin/:/usr/local/sbin/ \
    -v /var/log/npu:/var/log/npu \
    swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:2.2.RC1-800I-A2-py311-openeuler24.03-lts
```

说明：

使用--device=/dev/vdavinci212:/dev/davinci212的方式将vNPU挂载到容器中，212是创建vnpu后查询到的vNPU_id

2、Ascend Docker Runtime使用vNPU

Ascend Docker Runtime提供两种将vNPU绑定docker容器的方式：

a)启动容器时，挂载vNPU_ID为100的虚拟卡

```bash
docker run -it \
    -e ASCEND_VISIBLE_DEVICES=100 \
    -e ASCEND_RUNTIME_OPTIONS=VIRTUAL \
    image-name:tag /bin/bash
```

说明：

ASCEND_VISIBLE_DEVICES：切分得到的vNPU_id

b) 启动容器时，从物理芯片ID为0的芯片上，切分出5个AI Core作为虚拟设备并挂载至容器中。

```bash
docker run -it --rm \
    -e ASCEND_VISIBLE_DEVICES=0 \
    -e ASCEND_VNPU_SPECS=vir05_1c_8g \
    image-name:tag /bin/bash
```

说明：

ASCEND_VISIBLE_DEVICES：切分用到的物理卡卡号

ASCEND_VNPU_SPECS：切分模板名称

## 切分实例组合

图1 Atlas 800I A2 （32G）、Atlas 800I A2 （64G）切分实例组合图

图2 Atlas 300I A2（32G）、Atlas 800I A2（32G）切分实例组合图

图3 Atlas 300I Duo（96G）单芯片切分实例组合图

参考文档：创建vNPU-虚拟化实例 [了解详情](https://www.hiascend.com/document/detail/zh/computepoweralloca/300/cpaug/cpaug/cpaug_00010.html)

## vNPU配置恢复使能状态

- 查询当前环境中vNPU的配置恢复使能状态。保证设备重启后，vNPU配置依然生效。

```bash
npu-smi info -t vnpu-cfg-recover
```

说明：

查询当前环境中vNPU的配置恢复使能状态。

- 修改vNPU的配置恢复使能状态，可以切分后再修改使能状态。

```bash
npu-smi set -t vnpu-cfg-recover -d mode
```

说明：

mode表示vNPU的配置恢复使能状态，“1”表示开启状态，“0”表示状态，默认为开启状态。

点赞 33

本页内容

非商用声明 [了解详情](https://www.hiascend.com/#id-1)

1 方案介绍 [了解详情](https://www.hiascend.com/#id-2)

1.1 背景 [了解详情](https://www.hiascend.com/#id-3)

1.2 方案简介 [了解详情](https://www.hiascend.com/#id-4)

1.3 关键特性 [了解详情](https://www.hiascend.com/#id-5)

1.4 应用场景 [了解详情](https://www.hiascend.com/#id-6)

2 使用指导 [了解详情](https://www.hiascend.com/#id-7)

2.1 软件配置 [了解详情](https://www.hiascend.com/#id-8)

2.2 使用约束 [了解详情](https://www.hiascend.com/#id-9)

3 典型场景参考实践 [了解详情](https://www.hiascend.com/#id-10)

3.1 场景描述 [了解详情](https://www.hiascend.com/#id-11)

3.2 模型需求 [了解详情](https://www.hiascend.com/#id-12)

3.3 部署方案 [了解详情](https://www.hiascend.com/#id-13)

3.4 部署步骤 [了解详情](https://www.hiascend.com/#id-14)

附录-命令参考 [了解详情](https://www.hiascend.com/#id-15)

查询所有设备信息 [了解详情](https://www.hiascend.com/#id-16)

查询单NPU卡规格 [了解详情](https://www.hiascend.com/#id-17)

查询切分模板 [了解详情](https://www.hiascend.com/#id-18)

创建vNPU [了解详情](https://www.hiascend.com/#id-19)

删除vNPU [了解详情](https://www.hiascend.com/#id-20)

使用vNPU [了解详情](https://www.hiascend.com/#id-21)

切分实例组合 [了解详情](https://www.hiascend.com/#id-22)

vNPU配置恢复使能状态 [了解详情](https://www.hiascend.com/#id-23)
