三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

CANNBot Epilogue后处理模式

CANNBot Epilogue后处理模式

Kernel 路由:Epilogue 后处理模式

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

占位文件。本文档将系统性地描述 catlass Epilogue 的各种组合模式和自定义方法。

Epilogue 概述

BlockEpilogue 在 BlockMmad 计算完成后对输出矩阵做逐元素后处理。catlass 提供了多种 EpilogueDispatchPolicy,每种对应固定的 Tile 槽序列。

常见 EpilogueDispatchPolicy

Policy所在头文件槽数典型用途
EpilogueAtlasA2ElemWiseNoSourceblock_epilogue_elemwise_no_source.hpp1纯激活(GELU/SILU/RELU)
EpilogueAtlasA2ElemWiseOneSourceblock_epilogue_elemwise_one_source.hpp2Bias + 激活
EpilogueAtlasA2PerTokenDequantblock_epilogue_per_token_dequant.hpp5Per-token 反量化
EpilogueAtlasA2ElemWiseOneSrcFixpipe......950 芯片 Epilogue

现有 Epilogue 组件(catlass 内置 Tile)

Tile 名功能使用场景
TileElemWiseGeluGELU 激活Matmul + GELU
TileElemWiseSiluSILU 激活Matmul + SILU
TileElemWiseReluRELU 激活Matmul + RELU
TileElemWiseClamp数值裁剪输出范围控制
TileCopy数据搬运Bias 搬运 / 格式转换
EpilogueTileSwizzleSwizzle 写回输出重排

自定义 Tile(粒度 A)流程

  1. 打开目标 EpilogueDispatchPolicy 的特化头文件,确认目标槽位的接口签名(模板形参集合、operator()入参、必要 typedef)
  2. 编写自定义 Tile 头文件,严格对齐签名
  3. 在 catlass 拼装头中用自定义 Tile 替换原槽位的 Tile

详见references/custom-epilogue.md

完整的后处理模式清单和组合指南待后续补充。

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表