SuperAPI AI 工具集

external-cannbot-ops-npu-arch

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:查询与判断 Ascend NPU 的架构信息,用于确认芯片型号、NpuArch/SocVersion、架构代际差异、特性支持与条件编译策略。

主要概念:NpuArch 为芯片架构号,定义指令集与微架构,运行时通过 GetCurNpuArch() 获取;SocVersion 为片上系统版本,软件命名标识,通过 GetSocVersion() 获取;NPU_ARCH 为 Device 侧编译宏,四位数值,用于条件编译;archXX 为算子仓目录简写,取 DAV 编号前两位(如 DAV_3510 → arch35);DAV_C310 为构建系统内部宏,等价于 NpuArch::DAV_3510 / arch35 / NPU_ARCH=3510,不可按数值推断。

获取当前架构示例: #include "utils/tiling/platform/platform_ascendc.h" auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); NpuArch npuArch = ascendcPlatform.GetCurNpuArch(); platform_ascendc::SocVersion socVer = ascendcPlatform.GetSocVersion(); GetCurNpuArch() 失败返回 NpuArch::DAV_RESV,GetSocVersion() 失败返回 SocVersion::RESERVED_VERSION。

架构差异:DAV_3510 相对 DAV_2201,同架构内 Buffer 通常一致;L0C 由 128 KB 增至 256 KB,UB 由 192 KB 增至 248 KB,BT 由 1 KB 增至 4 KB。频率、核数、L2、Memory 因型号与形态而异,例如 Ascend910B2 (DAV_2201) Cube 核数 24、频率 1.8 GHz、L2 192 MB、Memory 64 GB;Ascend950PR PCIE 为 28 核、1.65 GHz、112 MB、112 GB;Ascend950PR Server 为 32 核、1.65 GHz、128 MB、128 GB。指令集与微架构变化包括新增 FP8 / MXFP8 / MXFP4 / HiF8 Cube MMAD 数据格式,新增 L0C→UB、UB→L1、SSBuffer 消息的 CV 直通通路,BufferID 替代 set/wait 强配对,新增 SIMT、SIMD-Regbase、NDDMA、CCU 通算融合编程模型。

用法与限制:完整产品系列与映射见 npu-hardware-params.md §0;运行时必须以 PlatformAscendC 接口获取实际值,禁止硬编码;详细参数与经验值见 references 目录。本技能聚焦架构判断与硬件能力识别,算子目录结构、CMake 配置、文件命名约定等工程模板内容不在范围内。