CANN/cannbot-skills Blaze Tiling选择指南

CANN/cannbot-skills Blaze Tiling选择指南 Blaze Tiling 选择指南【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills适用范围Ascend 950 / DAV_3510 上使用 Blaze / tensor_api 路径开发普通 MatMul、MX MatMul、Grouped MatMul 以及 CV 融合算子。本 skill 只提供 SWAT 流式 tiling。Full-load、StreamK、4-buffer 和 grouped 专用 tiling 不属于默认路径。1. 边界Blaze 路径的 tiling 选择由本 skill 维护。Ascend 950 / DAV_3510 的 Blaze MatMul 场景不要引用 AscendC API MatmulImpl / MatmulApiTiling 文档。本文不做不推导MatmulTilingSwat/QuantMatmulTilingSwat内部算法。不为 CV 的 Vector 部分新增独立 tiling engine。不为 Grouped MatMul 新增 grouped 专用 tiling data。2. 场景路由Blaze 场景Tiling engineTiling shape说明普通 MatMulMatmulTilingSwat{M,N,K}A/B 两输入、可选 bias、输出 C普通 MatMul CVMatmulTilingSwat{M,N,K}V 部分只消费剩余 UB普通 Grouped MatMulMatmulTilingSwat{totalM,N,K}groupNum/groupList独立传给 grouped kernel普通 Grouped MatMul CVMatmulTilingSwat{totalM,N,K}grouped 与 epilogue 参数均不进入 tiling dataMXFP8/MXFP4 MatMulQuantMatmulTilingSwatAType,BType{M,N,K}A/B/ScaleA/ScaleB可选 bias输出 CMXFP8/MXFP4 MatMul CVQuantMatmulTilingSwatAType,BType{M,N,K}V 部分只消费剩余 UBMX Grouped MatMulQuantMatmulTilingSwatAType,BType{totalM,N,K}group 参数独立传入 kernelMX Grouped MatMul CVQuantMatmulTilingSwatAType,BType{totalM,N,K}不新增 grouped tiling3. 调用方式普通 MatMulMatmulTilingData tilingData; MatmulTilingSwat tiling; tiling.GetTilingData( m, n, k, inputElemBytes, tilingData, transA, transB, isANz, isBNz, hasBias);MX MatMulQuantMatmulTilingData tilingData; QuantMatmulTilingSwatmm::DataType::DT_FLOAT8_E4M3FN, mm::DataType::DT_FLOAT8_E4M3FN tiling; tiling.GetTilingData( m, n, k, tilingData, transA, transB, isANz, isBNz, hasBias);Grouped 场景只把m替换为totalM sum(groupList)。groupList内容不参与 tiling engine 计算。4. 支持范围TilingdtypeformattransposebiasMatmulTilingSwatfp16/bf16/fp32/int8 等按inputElemBytes区分A/B ND 或 NZA/B 4 种组合支持 L1 预算预留QuantMatmulTilingSwatA/B 为 MXFP8 或 packed MXFP4A/B ND 或 NZA/B 4 种组合支持 L1 预算预留平台信息AIC/AIV 核数、UB/L1/L0A/L0B/L0C/L2/BT 容量必须通过platform_ascendc::PlatformAscendCManager获取禁止在 tiling 中写死容量。5. 常见误用误用正确做法为 Grouped MatMul 新增groupNum/groupListtiling data 字段group 参数独立传给 grouped kerneltiling 使用{totalM,N,K}CV 为 V 部分新增独立 tiling engineV 部分只在 Cube tiling 后的剩余 UB 中规划 stage在本 skill 中切换 full-load、StreamK 或 4-buffer默认只走 SWAT这些变体需要单独设计和验证MX format 参数传给旧的 5 参数接口使用包含isANz/isBNz/hasBias的新接口【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考