dcmi_get_device_resource_info接口原型
函数原型
int dcmi_get_device_resource_info (int card_id, int device_id, struct dcmi_proc_mem_info *proc_info, int *proc_num)
功能说明
获取指定设备上的SVM模块相关业务进程及其占用的内存。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
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]。 |
proc_info |
输出 |
struct dcmi_proc_mem_info * |
结构体包含进程id和进程占用的内存(byte),进程id是host侧id,内存是device侧OS占用的内存和业务分配的内存总和。 结构体定义如下: struct dcmi_proc_mem_info { int proc_id; //进程id unsigned long proc_mem_usage; //内存占用量 }; |
proc_num |
输出 |
int * |
进程个数,最多32个,无业务时进程为0。 |
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无。
约束说明
Linux物理机 |
Linux物理机容器 |
|
root用户 |
运行用户组(非root用户) |
root用户 |
N |
N |
N |
调用示例
… #define MAX_PROC_NUM_IN_DEVICE 32 int ret; int card_id = 0; int chip_id = 0; struct dcmi_proc_mem_info proc_info[MAX_PROC_NUM_IN_DEVICE] = {0}; int proc_num = 0; char proc_name[16] = {0}; int name_len = 0; ret = dcmi_get_device_resource_info(card_id, chip_id, proc_info, &proc_num); if (ret != DCMI_OK) { printf("dcmi_get_device_resource_info failed. err is %d\n", ret); } return ret; …
父主题: 设备管理接口