---
title: dcmi_get_spod_node_status
description: "int dcmi_get_spod_node_status(int card_id, int device_id, unsigned int sdid, unsigned int *status)"
url: https://www.hiascend.com/document/detail/zh/HDK/latest/A3/A3DCMI/dcmia3_164.html
sourcePath: /source/zh/HDK/2610/A3/A3DCMI/dcmia3_164.html
indexId: 6d1a5e7cdb4868676b01dc4e3f4a92644ab0115bb1bfba0fa7011cbd76a71dfc45
---
# dcmi_get_spod_node_status

#### 函数原型

int dcmi_get_spod_node_status(int card_id, int device_id, unsigned int sdid, unsigned int *status)


#### 功能说明

查询SDID标识的NPU状态信息，NPU状态信息决定共享资源的释放方式。


#### 参数说明

| 参数名称 | 输入/输出 | 类型 | 描述 |
| --- | --- | --- | --- |
| 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]。 说明： device\_id\_max值为2，当device\_id为0或1时表示NPU芯片；当device\_id为2时表示MCU芯片。 |
| sdid | 输入 | unsigned int | 超节点系统里每个NPU的唯一标识，此处应传入目标NPU的SDID。 |
| status | 输出 | unsigned int | SDID标识的NPU状态信息，默认为0。 1表示目标NPU状态异常，后续共享资源释放方式为：本端NPU强制释放共享给目标NPU的资源。 0表示目标NPU状态正常，后续共享资源释放方式为：本端NPU协商释放共享给目标NPU的资源。 |


#### 返回值说明

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


#### 异常处理

无。


#### 约束说明

- SDID合法性说明：SDID表示32比特位的数值，可分为4个ID字段。22~31比特表示server_index，取值范围0~47；18~21比特表示Chip ID ，取值范围0~7；16~17比特表示DIE ID，取值范围0~2；0~15比特表示Device ID，取值为Chip ID乘以2+DIE ID。
- 该接口在物理机+特权容器场景下支持使用。


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

| 产品形态 | 物理机场景（裸机）root用户 | 物理机场景（裸机）运行用户组（非root用户） | 物理机+普通容器场景root用户 | 物理机+容器AVI场景root用户 |
| --- | --- | --- | --- | --- |
| Atlas 900 A3 SuperPoD 超节点 | Y | Y | Y | NA |
| Atlas 9000 A3 SuperPoD 集群算力系统 | Y | Y | Y | NA |
| Atlas 800T A3 超节点 | Y | Y | Y | N |
| Atlas 800I A3 系列硬件产品 | Y | Y | Y | N |
| A200T A3 Box8 系列硬件产品 | Y | Y | Y | NA |
| 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 |


#### 调用示例

```
…
int card_id = 0;
int device_id = 0;
unsigned int sdid = 0;
unsigned int status = 0;
int ret = dcmi_get_spod_node_status(card_id, device_id, sdid, &status);
if (ret != 0) {
//todo：记录日志
return ret;
}
…
```
