DCMI_MAIN_CMD_TS命令说明
函数原型
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)
功能说明
获取系统中TS相关信息。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
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_TS |
sub_cmd |
输入 |
unsigned int |
typedef enum { // 获取 AICORE 的单核利用率,正常值范围0-100 DCMI_TS_SUB_CMD_AICORE_UTILIZATION_RATE = 0, // 获取 VECTOR CORE 的单核利用率/获取AICORE单核中Vector单元利用率,正常值范围0-100 DCMI_TS_SUB_CMD_VECTORCORE_UTILIZATION_RATE, // 获取FFTS或者FFTS+的类型,0表示FFTS,1表示FFTS+ DCMI_TS_SUB_CMD_FFTS_TYPE, // 设置硬件屏蔽AICORE ERR的掩码 DCMI_TS_SUB_CMD_SET_FAULT_MASK, // 获取硬件屏蔽AICORE ERR的掩码 DCMI_TS_SUB_CMD_GET_FAULT_MASK, DCMI_TS_SUB_CMD_MAX, } DCMI_TS_SUB_CMD; 不支持DCMI_TS_SUB_CMD_SET_FAULT_MASK、DCMI_TS_SUB_CMD_GET_FAULT_MASK。 说明:
开启profiling时,查询单核利用率结果为0xEF。 |
buf |
输出 |
void * |
用于接收设备信息的返回值。 |
size |
输入/输出 |
unsigned int * |
buf数组的输入/输出长度。 |
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无。
约束说明
查询Vector Core的单核利用率时,buf至少为50字节内存空间,查询AI Core的单核利用率时,buf至少为25字节空间。
sub_cmd |
buf对应的数据类型 |
size |
---|---|---|
DCMI_TS_SUB_CMD_AICORE_UTILIZATION_RATE、DCMI_TS_SUB_CMD_VECTORCORE_UTILIZATION_RATE |
查询Vector Core的单核利用率时, buf至少为50字节内存空间,查询AI Core的单核利用率时,buf至少为25字节空间。 异常值: 0xEE:表示对应的core损坏; 0xEF:无效值; 出参时每个字节表示一个核的利用率,正常范围0-100 |
|
DCMI_TS_SUB_CMD_FFTS_TYPE |
unsigned int |
unsigned int |
Linux物理机 |
Linux物理机容器 |
|
root用户 |
运行用户组(非root用户) |
root用户 |
Y |
Y |
Y |
调用示例
… int ret; int card_id = 0; int dev_id = 0; void *buf = NULL; int buf_size = 10; buf = calloc(buf_size, sizeof(char)); if (buf == NULL) { printf("calloc buf failed.\n"); return -1; } ret = dcmi_get_device_info(card_id,dev_id,DCMI_MAIN_CMD_TS, DCMI_TS_SUB_CMD_AICORE_UTILIZATION_RATE, buf, &buf_size); if (ret != 0) { printf("dcmi_get_device_info failed, ret = %d.\n", ret); return -1; } return 0; …