CANN/cannbot-skills归约类Tiling算法
Reduction 归约类 — 通用 Tiling 算法【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills归约类算子的通用 Tiling 建模合轴 → 五模板选型 → UB 预算 → 多核切分。 适用 ReduceSum、ReduceMax、Softmax、LayerNorm、ArgMax 及同类 Norm 算子。1. 适用算子算子类型沿 R 轴的典型计算模板选型注意点ReduceSum / ReduceMax单次归约标准 UB 预算Sum 可选二分累加Softmaxmax → exp → sum → div多遍流水Recompute 需重读原数据LayerNorm / RMSNormmean → var → normalize两个关联统计量分载时用 WelfordArgMax / ArgMin归约 索引跟踪启用 with_index 增强2. 文档索引文档内容tiling-flow.md五模板决策树、UB 预算公式、可选增强tiling-fields.mdTilingData 字段语义script/reduction_tiling.py参考实现简化版预算example/实践案例Softmax 等3. 输入与输出输入shapeaxes原始张量形状与归约轴dtypeFP32 / FP16 / BF16op_typesum / max / softmax / norm / argmax 等影响可选增强平台参数ub_size单核 UB 可用字节、core_num可用核数输出选定模板五选一TilingData形状参数、切分粒度、多核分配、尾块信息可选增强标志Group Reduce、Welford、二分累加、索引跟踪4. 推导流程概览Step 0 合轴 → (A1, R, A0) Step 1 A01 ? AR 族 : ARA 族 Step 2 按 R 与 UB 容量选模板SmallR / FullLoad / Recompute Step 3 计算 UB 切分粒度与多核分配 Step 4 可选启用 Group Reduce / Welford / 二分累加 / With-Index详细决策树与公式见 tiling-flow.md。5. Agent 使用指南为新的归约类算子如 LayerNorm、RMSNorm生成 Tiling 方案时读通用算法— tiling-flow.md 中的五模板决策树分析算子数学— 列出沿 R 轴需要的中间量如 max、sum、var及每步的 buffer 需求调整 UB 预算— 在通用公式基础上按算子的中间 buffer 数量修正分母/预留字节参考实践案例— example/softmax/experience.md 展示了 Softmax 四步流水如何映射到模板选型6. 实践案例算子案例文档说明Softmaxexample/softmax/experience.md数学流程 → 模板映射 → 预算修正7. 贡献新案例在fallback/example/下创建算子名目录如layernorm/描述该算子如何复用五模板及预算差异。 通用决策逻辑保持在fallback/根目录案例目录只记录算子特有的数学映射与参数修正。【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考