aclrtDevAttr
定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
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_MAX_GRID_DIM_X = 205, ACL_DEV_ATTR_MAX_GRID_DIM_Y = 206, ACL_DEV_ATTR_MAX_GRID_DIM_Z = 207, ACL_DEV_ATTR_MAX_BLOCK_PER_GRID = 208, ACL_DEV_ATTR_MAX_THREADS_PER_BLOCK = 209, ACL_DEV_ATTR_MAX_BLOCK_DIM_X = 210, ACL_DEV_ATTR_MAX_BLOCK_DIM_Y = 211, ACL_DEV_ATTR_MAX_BLOCK_DIM_Z = 212, ACL_DEV_ATTR_TOTAL_GLOBAL_MEM_SIZE = 301, ACL_DEV_ATTR_L2_CACHE_SIZE = 302, 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, ACL_DEV_ATTR_NPU_ARCH = 601U, } aclrtDevAttr; |
枚举项说明如下:
- ACL_DEV_ATTR_AICPU_CORE_NUM
- ACL_DEV_ATTR_AICORE_CORE_NUM
- ACL_DEV_ATTR_CUBE_CORE_NUM
- ACL_DEV_ATTR_VECTOR_CORE_NUM
- ACL_DEV_ATTR_WARP_SIZE
一个Warp里的线程数,在SIMT(单指令多线程,Single Instruction Multiple Thread)编程模型中,Warp是指执行相同指令的线程集合。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_THREAD_PER_VECTOR_CORE
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_UBUF_PER_VECTOR_CORE
每个VECTOR_CORE上可以使用的最大Unified Buffer的大小,单位Byte。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_GRID_DIM_X
Grid维度X的最大值,用于SIMT编程模型中线程块的网格配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
说明:Grid表示线程块网格,由多个线程块(Thread Block)组成。Grid采用三维结构,其维度X、Y和Z分别表示不同维度下线程块的大小。线程块同样采用三维结构,其维度X、Y和Z分别表示线程块中三个维度的线程数。
- ACL_DEV_ATTR_MAX_GRID_DIM_Y
Grid维度Y的最大值,用于SIMT编程模型中线程块的网格配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_GRID_DIM_Z
Grid维度Z的最大值,用于SIMT编程模型中线程块的网格配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_BLOCK_PER_GRID
每个Grid中Block的最大数量,用于SIMT编程模型中线程块的网格配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_THREADS_PER_BLOCK
每个Block中线程的最大数量,用于SIMT编程模型中线程块的配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_BLOCK_DIM_X
Block维度X的最大值,用于SIMT编程模型中线程块的配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_BLOCK_DIM_Y
Block维度Y的最大值,用于SIMT编程模型中线程块的配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_MAX_BLOCK_DIM_Z
Block维度Z的最大值,用于SIMT编程模型中线程块的配置。
仅Atlas 350 加速卡支持该选项。
对于不支持该选项的产品型号,默认返回0。
- ACL_DEV_ATTR_TOTAL_GLOBAL_MEM_SIZE
- ACL_DEV_ATTR_SMP_ID
- ACL_DEV_ATTR_PHY_CHIP_ID
- ACL_DEV_ATTR_SUPER_POD_DEVICE_ID
- ACL_DEV_ATTR_SUPER_POD_SERVER_ID
- ACL_DEV_ATTR_SUPER_POD_ID
- ACL_DEV_ATTR_CUST_OP_PRIVILEGE
取值如下:
- 0:自定义算子执行系统调用权限受控(例如不能执行Write操作)。
- 1:自定义算子可以执行更多的系统调用权限。
Atlas 350 加速卡不支持该选项。
- ACL_DEV_ATTR_MAINBOARD_ID
- ACL_DEV_ATTR_IS_VIRTUAL
- ACL_DEV_ATTR_NPU_ARCH
产品型号和NPU架构版本的对应关系如下所示:
- Atlas 350 加速卡:3510
Atlas A3 训练系列产品 /Atlas A3 推理系列产品 :2201Atlas A2 训练系列产品 /Atlas A2 推理系列产品 :2201Atlas 200I/500 A2 推理产品 :3002Atlas 推理系列产品 :2002Atlas 训练系列产品 :1001
了解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数据处理核心单元是AI Core以及单独的Vector Core:AI Core和Vector Core都拥有独立的Scalar调度单元。

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


