文档
注册
评分
提单
论坛
小AI

dcmi_create_capability_group接口原型

函数原型

int dcmi_create_capability_group(int card_id, int device_id, int ts_id, struct dcmi_capability_group_info *group_info)

功能说明

创建昇腾虚拟化实例配置信息。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

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

device_id

输入

int

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

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

ts_id

输入

int

算力类型id:

typedef enum {

DCMI_TS_AICORE = 0,

DCMI_TS_AIVECTOR,

} DCMI_TS_ID;

目前不支持DCMI_TS_AIVECTOR

group_info

输入

struct dcmi_capability_group_info *

算力组信息。

算力信息结构体为:

#define DCMI_COMPUTE_GROUP_INFO_RES_NUM - AICORE_MASK_NUM 8

#define DCMI_AICORE_MASK_NUM 2

struct dcmi_capability_group_info {

unsigned int group_id;

unsigned int state;

unsigned int extend_attribute;

unsigned int aicore_number;

unsigned int aivector_number;

unsigned int sdma_number;

unsigned int aicpu_number;

unsigned int active_sq_number;

unsigned int aicore_mask [DCMI_AICORE_MASK_NUM];

unsigned int res[DCMI_COMPUTE_GROUP_INFO_RES_NUM - DCMI_AICORE_MASK_NUM];

};

  • group id表示算力组id,全局唯一。可配置范围:0~3,创建重复失败。
  • state表示算力组创建状态。0:not created, 1: created。该字段作为输入时,无意义。
  • extend_attribute表示默认昇腾虚拟化实例标志,1:表示系统默认使用该昇腾虚拟化实例,其他值表示不使用该昇腾虚拟化实例为默认组,缺省值:0。
  • aicore_number可配置范围:0~8或255,具体参照如下说明。
  • aivector_number、sdma_number、aicpu_number、active_sq_number仅支持配置为255,表示配置为剩余可用值,不支持切分。
  • aicore_mask表示aicore的编号掩码,其中每个bit表示一个core。1:该算力组内aicore,0:非算力组内aicore。该字段作为输入时,无意义。
  • res表示预留参数。
    说明:

    group_info参数的约束说明:

    • group_id 取值范围为0~3,且每次创建时需要使用未使用过的group id,否认将会返回失败。
    • 当创建不同分组时,各参数变量需要满足以下条件:
      • total_aicore_number为8。
      • 当aicore_number配置为255时,表示配置为剩余可用值,如果多个group配置255,这几个group共用剩余可用值。

返回值

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

  • 仅Control CPU开放形态使用该接口。
  • 调用该接口前,请先调用dcmi_get_capability_group_info接口原型查询已配置的资源信息,结合ts_id参数的说明和group_info参数的约束说明进行配置,否则可能出现接口调用失败。如果需要删除已有配置,可以调用dcmi_delete_capability_group接口原型接口进行删除。
  • 不建议与dcmi_create_vdevice相关算力功能共用,共用情况有可能存在异常。
表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

N

N

N

调用示例

… 
int ret = 0;
int card_id = 0;
int dev_id = 0;
int ts_id = 0;
struct dcmi_capability_group_info group_info = {0};
group_info.group_id = 0;
group_info.aivector_number = 255;
group_info.sdma_number = 255;
group_info.aicpu_number = 255;
group_info.active_sq_number = 255;
group_info.aicore_number = 8;
 
ret = dcmi_create_capability_group(card_id, dev_id, ts_id, &group_info);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词