DCMI_MAIN_CMD_LP命令说明
函数原型
int dcmi_set_device_info(int card_id, int device_id, enum dcmi_main_cmd main_cmd, unsigned int sub_cmd, const void *buf, unsigned int buf_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_SET_WORK_TOPS = 7, // 设置工作档位
} DCMI_LP_SUB_CMD;
|
buf |
输入 |
const void * |
详细见本节约束说明。 |
buf_size |
输入 |
unsigned int |
buf数组的长度。 |
返回值说明
类型 |
描述 |
|---|---|
int |
处理结果:
|
异常处理
无。
约束说明
sub_cmd |
buf对应的数据类型 |
size |
参数说明 |
|---|---|---|---|
DCMI_LP_SUB_CMD_SET_WORK_TOPS |
DCMI_LP_WORK_TOPS_STRU |
sizeof(DCMI_LP_WORK_TOPS_STRU) |
#define DCMI_LP_WORK_TOPS_RESERVE 32
typedef struct dcmi_lp_work_tops_stru {
unsigned int work_tops;
unsigned int is_in_flash;
unsigned char reserve[DCMI_LP_WORK_TOPS_RESERVE];
} DCMI_LP_WORK_TOPS_STRU;
work_tops的值来源于DCMI_LP_SUB_CMD_TOPS_DETAILS查询结果中的档位列表。 is_in_flash设置非0时,会写入到flash;否则不会写入flash中。 20T的Atlas 200I A2 加速模块分为四档,8T的Atlas 200I A2 加速模块分为两档,具体算力档位如下: 20T:
8T:
|
Linux物理机 |
Linux物理机容器 |
|
|---|---|---|
root用户 |
运行用户组(非root用户) |
root用户 |
Y |
N |
N |
调用示例
…
int ret;
int card_id = 0;
int device_id = 0;
DCMI_MAIN_CMD main_cmd = DCMI_MAIN_CMD_LP;
unsigned int sub_cmd = DCMI_LP_SUB_CMD_SET_WORK_TOPS;
DCMI_LP_WORK_TOPS_STRU set_works_tops_lv = {0};
set_works_tops_lv.work_tops = 1;
set_works_tops_lv.is_in_flash = 0;
unsigned int size = sizeof(DCMI_LP_WORK_TOPS_STRU);
ret = dcmi_set_device_info(card_id, device_id, main_cmd, sub_cmd, (void *)&set_works_tops_lv, size);
if (ret) {
// todo
}
// todo
…