下载
中文
注册

dcmi_create_vdevice接口原型

函数原型

int dcmi_create_vdevice(int card_id, int device_id, struct dcmi_create_vdev_res_stru*vdev, struct dcmi_create_vdev_out *out)

功能说明

创建指定NPU单元的vNPU设备。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元ID,当前实际支持的ID通过dcmi_get_card_num_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

NPU芯片:[0, device_id_max-1]。

vdev

输入

struct dcmi_create_vdev_res_stru*

输入创建虚拟设备信息。

struct dcmi_create_vdev_res_stru {

unsigned int vdev_id;

unsigned int vfg_id;

char template_name[32];

unsigned char reserved[64];

};

说明:
  • vdev_id表示指定虚拟设备对应的虚拟设备ID,默认自动分配,默认值为0xFFFFFFFF。
  • vfg_id表示指定虚拟设备所属的虚拟分组ID,默认自动分配,默认值为0xFFFFFFFF。
  • template_name表示算力切分模板名称。可通过npu-smi info -t template-info命令查询其详细信息。
  • reserved表示预留参数。

out

输出

struct dcmi_create_vdev_out *

输出创建的虚拟设备信息。当前只支持vdev_id

struct dcmi_create_vdev_out {

unsigned int vdev_id;

unsigned int pcie_bus;

unsigned int pcie_device;

unsigned int pcie_func;

unsigned int vfg_id;

unsigned char reserved[DCMI_VDEV_FOR_RESERVE];

};

说明:
  • vdev_id表示指定虚拟设备对应的虚拟设备ID,默认自动分配,默认值为0xFFFFFFFF。
  • vfg_id表示指定虚拟设备所属的虚拟分组ID,默认自动分配,默认值为0xFFFFFFFF。
  • pcie_bus、pcie_device、pcie_func、vfg_id为预留参数。

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

N

N

N

调用示例

int card_id = 0; 
int device_id = 0; 
struct dcmi_create_vdev_out out = {0}; 
int ret; 
struct dcmi_create_vdev_res_stru vdev = {0};
vdev.vdev_id = 0xFFFFFFFF;
strncpy_s(vdev.template_name, sizeof(vdev.template_name), "vir02", strlen("vir02")); 
ret = dcmi_create_vdevice(card_id, device_id, &vdev, &out); 
if (ret != 0) { 
    //todo 
    return ret; 
}