---
title: dcmi_get_device_hbm_info
description: "int dcmi_get_device_hbm_info(int card_id, int device_id, struct dcmi_hbm_info *hbm_info)"
url: https://www.hiascend.com/document/detail/zh/HDK/latest/A2/A2DCMI/dcmi_050.html
sourcePath: /source/zh/HDK/2610/A2/A2DCMI/dcmi_050.html
indexId: 8d35b8131ded44a6a13a8eec4412fb7edec8084fef6f9b0fa093e6a77c90fcda43
---
# dcmi_get_device_hbm_info

#### 函数原型

int dcmi_get_device_hbm_info(int card_id, int device_id, struct dcmi_hbm_info *hbm_info)


#### 功能说明

获取芯片的片上内存信息。


#### 参数说明

| 参数名称 | 输入/输出 | 类型 | 描述 |
| --- | --- | --- | --- |
| card\_id | 输入 | int | 设备ID，当前实际支持的ID通过dcmi\_get\_card\_list接口获取。 |
| device\_id | 输入 | int | 芯片ID，通过dcmi\_get\_device\_id\_in\_card接口获取。取值范围如下： NPU芯片：[0, device\_id\_max\-1]。 说明： device\_id\_max值为1，当device\_id为0时表示NPU芯片；当device\_id为1时表示MCU芯片。 |
| hbm\_info | 输出 | struct dcmi\_hbm\_info\* | 返回片上内存信息，片上内存信息结构体： struct dcmi\_hbm\_info { unsigned long long memory\_size; //片上内存总大小，单位MB unsigned int freq; // 片上内存频率，单位MHz unsigned long long memory\_usage; //片上内存已用内存 int temp; //片上内存温度 unsigned int bandwith\_util\_rate; //带宽利用率 }; |


#### 返回值说明

| 类型 | 描述 |
| --- | --- |
| int | 处理结果： 成功：返回0。 失败：返回码请参见返回码。 |


#### 异常处理

无。


#### 约束说明

- A300I A2 推理卡的片上内存为32G，无业务时系统占用3G。
- Atlas 800T A2 训练服务器、Atlas 200T A2 Box16 异构子框的片上内存为64G，无业务时系统占用4G。
- Atlas 900 A2 PoD 集群基础单元、A200I A2 Box 异构组件、Atlas 800I A2 推理服务器的片上内存为32G或64G，无业务时系统占用3G或4G。


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

| 产品形态 | 物理机场景（裸机）root用户 | 物理机场景（裸机）运行用户组（非root用户） | 物理机+普通容器场景root用户 | 物理机+容器AVI场景root用户 |
| --- | --- | --- | --- | --- |
| Atlas 900 A2 PoD 集群基础单元 | Y | Y | Y | Y |
| Atlas 800T A2 训练服务器 | Y | Y | Y | Y |
| Atlas 800I A2 推理服务器 | Y | Y | Y | Y |
| Atlas 200T A2 Box16 异构子框 | Y | Y | Y | Y |
| A200I A2 Box 异构组件 | Y | Y | Y | Y |
| A300I A2 推理卡 | Y | Y | Y | Y |
| 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 |


#### 调用示例

```
…
int ret = 0;
int card_id = 0;
int device_id = 0;
struct dcmi_hbm_info device_hbm_info = {0};
ret = dcmi_get_device_hbm_info(card_id, device_id, &device_hbm_info);
if (ret != 0){
//todo：记录日志
return ret;
}
…
```
