cannbot-skills NPU设备规格参数

cannbot-skills NPU设备规格参数
NPU 设备规格参数【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills1. 概述HACC 方言通过DeviceSpecEnum枚举和TargetDeviceSpecAttr属性描述 NPU 设备的硬件规格。编译器可基于这些规格进行 Tiling、内存分配等优化决策。源码参考HACCAttrs.td、Passes.td2. DeviceSpecEnum 完整列表枚举值整数值说明AI_CORE_COUNT0AI Core 数量CUBE_CORE_COUNT1Cube Core 数量矩阵乘单元VECTOR_CORE_COUNT2Vector Core 数量向量计算单元UB_SIZE3Unified Buffer 大小字节L1_SIZE4L1 缓存大小字节L0A_SIZE5L0A 缓存大小字节矩阵乘 A 矩阵缓冲L0B_SIZE6L0B 缓存大小字节矩阵乘 B 矩阵缓冲L0C_SIZE7L0C 缓存大小字节矩阵乘 C 结果缓冲UB_ALIGN_SIZE8Unified Buffer 对齐大小字节L1_ALIGN_SIZE9L1 缓存对齐大小字节L0C_ALIGN_SIZE10L0C 缓存对齐大小字节MINIMAL_D_CACHE_SIZE11最小 D Cache 大小MAXIMUM_D_CACHE_SIZE12最大 D Cache 大小ARCH13架构版本标识TableGen 定义def HACC_DeviceSpecEnum : HACC_I32EnumDeviceSpec, HACC device spec, [ I32EnumAttrCaseAI_CORE_COUNT, 0, I32EnumAttrCaseCUBE_CORE_COUNT, 1, I32EnumAttrCaseVECTOR_CORE_COUNT, 2, I32EnumAttrCaseUB_SIZE, 3, I32EnumAttrCaseL1_SIZE, 4, I32EnumAttrCaseL0A_SIZE, 5, I32EnumAttrCaseL0B_SIZE, 6, I32EnumAttrCaseL0C_SIZE, 7, I32EnumAttrCaseUB_ALIGN_SIZE, 8, I32EnumAttrCaseL1_ALIGN_SIZE, 9, I32EnumAttrCaseL0C_ALIGN_SIZE, 10, I32EnumAttrCaseMINIMAL_D_CACHE_SIZE, 11, I32EnumAttrCaseMAXIMUM_D_CACHE_SIZE, 12, I32EnumAttrCaseARCH, 13 ]3. TargetDeviceSpecAttrTargetDeviceSpecAttr用于表示具体 NPU 设备的规格参数集合基于 DLTIData Layout Target Information机制存储。3.1 属性定义def HACC_TargetDeviceSpecAttr : HACC_AttrTargetDeviceSpec, target_device_spec, [TargetDeviceSpecTrait, HACCTargetDeviceSpecTrait] { let parameters (ins ArrayRefParameterDataLayoutEntryInterface, single spec entry:$entries ); let assemblyFormat $entries ; }3.2 MLIR 表示#hacc.target_device_spec #dlti.dl_entryUB_SIZE, 196608 : i323.3 HACCTargetDeviceSpecInterface该接口继承自TargetDeviceSpecInterface提供按枚举值查询规格的方法方法名返回类型参数说明getSpecForIdentifierEnum(DeviceSpec)::mlir::DataLayoutEntryInterfaceidentifier根据枚举值返回对应的规格条目4. TargetAttrTargetAttr用于指示目标设备名称。def HACC_TargetAttr : HACC_AttrTarget, target { let parameters (ins AttrParameterStringAttr, target device:$target); let assemblyFormat $target ; }5. NPU 型号映射hacc-append-device-specPass 通过--target选项指定 NPU 型号自动附加设备规格信息。支持的型号列表如下5.1 Ascend 910B 系列型号标识Ascend910B1Ascend910B2Ascend910B3Ascend910B45.2 Ascend 910_93 系列型号标识Ascend910_9362Ascend910_9372Ascend910_9381Ascend910_9382Ascend910_9391Ascend910_93925.3 Ascend 310B 系列型号标识Ascend310B1Ascend310B2Ascend310B3Ascend310B45.4 Ascend 950 系列型号标识型号标识Ascend910_950zAscend950PR_950zAscend910_9579Ascend950PR_9579Ascend910_957bAscend950PR_957aAscend910_957dAscend950PR_957bAscend910_9581Ascend950PR_957cAscend910_9589Ascend950PR_957dAscend910_958aAscend950PR_9589Ascend910_958bAscend950PR_958aAscend910_9599Ascend950PR_958bAscend950PR_958cAscend950PR_958dAscend950PR_9599Ascend950PR_959aAscend950PR_959b5.5 Ascend 950DT 系列型号标识Ascend950DT_950xAscend950DT_950yAscend950DT_9571~Ascend950DT_9578Ascend950DT_9581~Ascend950DT_9588Ascend950DT_9591,Ascend950DT_9592Ascend950DT_9595,Ascend950DT_9596Ascend950DT_95A1,Ascend950DT_95A26. 内存层次示意------------------------------------------- | GM (Global Memory) | ------------------------------------------- | | -------v-------- -------v-------- | L1 Cache | | L1 Cache | --------------- --------------- | | -------v-------- -------v-------- | L0A | L0B | L0C| | L0A | L0B | L0C| -------------- -------------- | | -------v-------- -------v-------- | UB (Unified | | UB (Unified | | Buffer) | | Buffer) | ---------------- ----------------GM全局内存Host 与 Device 共享L1AI Core 内部一级缓存L0A/L0B/L0CCube 单元专用缓冲UB统一缓冲区Vector 计算单元的工作空间【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考