昇腾社区首页
中文
注册
开发者
下载

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

设备ID,当前实际支持的ID通过dcmi_get_card_num_list接口获取。

device_id

输入

int

芯片ID,通过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

处理结果:

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

异常处理

无。

约束说明

表1 不同部署场景下的支持情况

物理机场景(裸机)

物理机+普通容器场景

root用户

运行用户组(非root用户)

root用户

N

N

N

注:Y表示支持;N表示不支持;NA表示不涉及,当前未规划此场景。

调用示例

…  
#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; 
…