DCMI_MAIN_CMD_LP命令说明
函数原型
int dcmi_get_device_info(int card_id, int device_id, enum dcmi_main_cmd main_cmd, unsigned int sub_cmd, void *buf, unsigned int *size)
功能说明
获取LP相关信息。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
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]。 |
main_cmd |
输入 |
enum dcmi_main_cmd |
DCMI_MAIN_CMD_LP |
sub_cmd |
输入 |
unsigned int |
/* DCMI sub commond for Low power */ typedef enum { DCMI_LP_SUB_CMD_GET_WORK_TOPS = 8, // 获取当前工作档位 DCMI_LP_SUB_CMD_MAX, } DCMI_LP_SUB_CMD; |
buf |
输出 |
void * |
用于接收设备信息的返回值。 |
size |
输入/输出 |
unsigned int * |
buf数组的输入/输出长度。 |
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无。
约束说明
sub_cmd |
buf对应的数据类型 |
size |
参数说明 |
---|---|---|---|
DCMI_LP_SUB_CMD_GET_WORK_TOPS |
DCMI_LP_CUR_TOPS_STRU |
sizeof(DCMI_LP_CUR_TOPS_STRU) |
typedef struct dcmi_lp_cur_tops_stru { unsigned int work_tops; unsigned int tops_nums; } DCMI_LP_CUR_TOPS_STRU; work_tops为当前工作档位。 tops_nums代表工作档位的总数。 20T的Atlas 200I A2 加速模块分为四档,8T的Atlas 200I A2 加速模块分为两档,具体算力档位如下: 20T:
8T:
|
Linux物理机 |
Linux物理机容器 |
|
root用户 |
运行用户组(非root用户) |
root用户 |
Y |
Y |
Y |
调用示例
… int ret = 0; int card_id = 0; int device_id = 0; int buf = 0; unsigned int size = sizeof(int); unsigned int sub_cmd = 0; ret = dcmi_get_device_info(card_id, device_id, DCMI_MAIN_CMD_LP, sub_cmd, &buf, &size); if (ret != 0){ //todo:记录日志 return ret; } …