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。
适用的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虚拟化功能支持虚拟化实例的灵活组合,即在同一张NPU芯片上,可以使用不同的虚拟化模板划分多种vNPU,各vNPU占用的资源总量不得超过该NPU卡的硬件上限。官方已给出推荐的组合模板,您可以根据需求进行灵活组合,具体请参见虚拟化实例组合。
NPU虚拟化方式
CCE提供两种NPU虚拟化方式,您可以根据业务场景进行选择,具体如下:
- 自动实现NPU虚拟化(算力切分):实现节点池粒度的NPU虚拟化,可以通过UI界面批量切分vNPU。该方式仅支持固定的虚拟化模板组合,适用于大规模场景下的统一资源管理。
- 手动实现NPU虚拟化:实现节点粒度的NPU虚拟化,可以手动控制每张NPU卡的资源分配,具备更高的灵活性,但配置过程相对复杂,适合对资源使用有精细化需求的场景。