昇腾社区首页
中文
注册

dcmi_get_pcie_link_bandwidth_info接口原型

函数原型

int dcmi_get_pcie_link_bandwidth_info (int card_id, int device_id, struct dcmi_pcie_link_bandwidth_info *pcie_link_bandwidth_info)

功能说明

查询指定采样时间内,NPU设备与host OS间PCIe带宽信息。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元的ID,当前实际支持的ID通过dcmi_get_card_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。

pcie_link_bandwidth_info

输入/输出

dcmi_pcie_link_bandwidth_info

struct dcmi_pcie_link_bandwidth_info {

int profiling_time; //输入,控制采样时长

unsigned int tx_p_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备向远端写带宽

unsigned int tx_np_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备从远端读带宽

unsigned int tx_cpl_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备回复远端读操作CPL的带宽

unsigned int tx_np_lantency[AGENTDRV_PROF_DATA_NUM];

//输出,device设备从远端读的延时(ns)

unsigned int rx_p_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备接收远端写的带宽

unsigned int rx_np_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备接收远端读的带宽

unsigned int rx_cpl_bw[AGENTDRV_PROF_DATA_NUM]; //输出,device设备从远端读收到CPL回复的带宽

};

profiling_time范围为0ms~2000ms。

带宽单位均为MB/ms。

返回值

类型

描述

int

处理结果:

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

异常处理

无。

约束说明

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

N

N

N

调用示例

…
int ret = 0;
int card_id = 0;
int device_id = 0;
struct dcmi_pcie_link_bandwidth_info bandwidth_info = {0};
bandwidth_info.profiling_time = 1000;
ret = dcmi_get_pcie_link_bandwidth_info(card_id, device_id, &bandwidth_info);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…