---
title: aclrtDevAttr
description: "```"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_1876.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_1876.html
indexId: 5fb5cc251ba2f00855bc4354fcb56ee5b9c2aa06073f0bbb04f5cc0679ac8cb468
---
# aclrtDevAttr

#### 定义

```
typedef enum { 
    ACL_DEV_ATTR_AICPU_CORE_NUM  = 1, 
    ACL_DEV_ATTR_AICORE_CORE_NUM = 101, 
    ACL_DEV_ATTR_CUBE_CORE_NUM = 102,
    ACL_DEV_ATTR_VECTOR_CORE_NUM = 201,      
    ACL_DEV_ATTR_WARP_SIZE = 202,
    ACL_DEV_ATTR_MAX_THREAD_PER_VECTOR_CORE,
    ACL_DEV_ATTR_UBUF_PER_VECTOR_CORE,
    ACL_DEV_ATTR_TOTAL_GLOBAL_MEM_SIZE = 301,
    ACL_DEV_ATTR_L2_CACHE_SIZE,
    ACL_DEV_ATTR_SMP_ID = 401U,
    ACL_DEV_ATTR_PHY_CHIP_ID = 402U,
    ACL_DEV_ATTR_SUPER_POD_DEVICE_ID = 403U,
    ACL_DEV_ATTR_SUPER_POD_SERVER_ID = 404U,
    ACL_DEV_ATTR_SUPER_POD_ID = 405U, 
    ACL_DEV_ATTR_CUST_OP_PRIVILEGE = 406U,
    ACL_DEV_ATTR_MAINBOARD_ID = 407U,
    ACL_DEV_ATTR_IS_VIRTUAL = 501U,
} aclrtDevAttr;
```


**表1 枚举项说明**

| 枚举项 | 说明 |
| --- | --- |
| ACL\_DEV\_ATTR\_AICPU\_CORE\_NUM | AI CPU数量。 |
| ACL\_DEV\_ATTR\_AICORE\_CORE\_NUM | AI Core数量。 |
| ACL\_DEV\_ATTR\_CUBE\_CORE\_NUM | Cube Core数量。 |
| ACL\_DEV\_ATTR\_VECTOR\_CORE\_NUM | Vector Core数量。 |
| ACL\_DEV\_ATTR\_WARP\_SIZE | 一个Warp里的线程数，在SIMT（单指令多线程，Single Instruction Multiple Thread）编程模型中，Warp是指执行相同指令的线程集合。 仅Atlas 350 加速卡支持该选项其它产品型号当前不支持该选项。 |
| ACL\_DEV\_ATTR\_MAX\_THREAD\_PER\_VECTOR\_CORE | 每个VECTOR\_CORE上可同时驻留的最大线程数。 仅Atlas 350 加速卡支持该选项其它产品型号当前不支持该选项。 |
| ACL\_DEV\_ATTR\_UBUF\_PER\_VECTOR\_CORE | 每个VECTOR\_CORE上可以使用的最大UB buffer的大小，单位Byte。 仅Atlas 350 加速卡支持该选项其它产品型号当前不支持该选项。 |
| ACL\_DEV\_ATTR\_TOTAL\_GLOBAL\_MEM\_SIZE | Device上的可用总内存，单位Byte。 |
| ACL\_DEV\_ATTR\_L2\_CACHE\_SIZE | L2 Cache（二级缓存）大小，单位Byte。 |
| ACL\_DEV\_ATTR\_SMP\_ID | SMP（Symmetric Multiprocessing） ID，用于标识设备是否运行在同一操作系统上。 |
| ACL\_DEV\_ATTR\_PHY\_CHIP\_ID | 芯片物理ID。 |
| ACL\_DEV\_ATTR\_SUPER\_POD\_DEVICE\_ID | SuperPOD Device ID表示超节点产品中的Device标识。 |
| ACL\_DEV\_ATTR\_SUPER\_POD\_SERVER\_ID | SuperPOD Server ID表示超节点产品中的服务器标识。 |
| ACL\_DEV\_ATTR\_SUPER\_POD\_ID | SuperPOD ID表示集群中的超节点ID。 |
| ACL\_DEV\_ATTR\_CUST\_OP\_PRIVILEGE | 表示查询自定义算子是否可以执行更多的系统调用权限。 取值如下： 0：自定义算子执行系统调用权限受控（例如不能执行Write操作）。 1：自定义算子可以执行更多的系统调用权限。 Atlas 350 加速卡不支持该选项。 |
| ACL\_DEV\_ATTR\_MAINBOARD\_ID | 主板ID。 |
| ACL\_DEV\_ATTR\_IS\_VIRTUAL | 是否为昇腾虚拟化实例。 0：不是昇腾虚拟化实例，是物理机。 1：是昇腾虚拟化实例，可能是虚拟机或容器。 |


#### 了解AI Core、Cube Core、Vector Core的关系

为便于理解AI Core、Cube Core、Vector Core的关系，此处先明确Core的定义，Core是指拥有独立Scalar计算单元的一个计算核，通常Scalar计算单元承担了一个计算核的SIMD（单指令多数据，Single Instruction Multiple Data）指令发射等功能，所以我们也通常也把这个Scalar计算单元称为核内的调度单元。不同产品上的AI数据处理核心单元不同，当前分为以下几类：

- 当AI数据处理核心单元是AI Core：

  - 在AI Core内，Cube和Vector共用一个Scalar调度单元，例如Atlas 训练系列产品。
  - 在AI Core内，Cube和Vector都有各自的Scalar调度单元，因此又被称为Cube Core、Vector Core。这时，一个Cube Core和一组Vector Core被定义为一个AI Core，AI Core数量通常是以多少个Cube Core为基准计算的，例如Atlas A2 训练系列产品 / Atlas A2 推理系列产品。
- 当AI数据处理核心单元是AI Core以及单独的Vector Core：AI Core和Vector Core都拥有独立的Scalar调度单元，例如Atlas 推理系列产品。


#### 了解SuperPOD ID、SuperPOD Server ID、SuperPOD Device ID之间的关系
