当前位置: 首页 > news >正文

CANN Catlass后处理组件

Catlass 后处理(Epilogue)组件清单

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

导航:新架构文档已建立 → 设计时优先阅读 architecture/02-block-layer.md §2.3 BlockEpilogue 部分和 kernels/epilogue-patterns.md。本文档作为 catlass 内置组件索引补充。

若下表无所需运算:先走 custom-epilogue.md(设计:确认 catlass 是否已有 Tile → 无则先设计自定义 Tile),再在 codegen 中落盘op_kernel/custom_epilogue/

Epilogue 组件分为Tile 级(单 tile 内操作)和Block 级(协调多个 tile)两层,按功能分为以下类别。

Tile 级组件

类别可选组件说明
激活函数TileElemWiseGelu,TileElemWiseSiluGELU、SILU 激活;现成TileElemWiseTanh时在自定义 Tile 中用Exp/Muls/Adds/Div实现 (\tanh)(与 Silu 同双缓冲范式),或评估AscendC::Tanh与固定COMPUTE_LENGTH、小 (M\times N) 的运行期 UB 风险
逐元素运算TileElemWiseAdd,TileElemWiseMul,TileElemWiseMuls加法、乘法、标量乘
广播运算TileBroadcastAdd,TileBroadcastMul,TileBroadcastInplaceByColumn,TileBroadcastInplaceByRow广播加/乘、按列/行原地广播
数据搬运TileCopy(含CopyGMToUBCopyUBToGM变体)GM ↔ UB 搬运
类型转换TileCast精度转换
数据重排TileSwizzle内存布局重排
量化反量化TileRowBroadcastMul,TileBroadcastOneBlk,TileOneBlkColumnBroadcastMul,TilePerTokenDequant行广播乘、单块广播、列广播乘、per-token 反量化

Block 级组件

类别可选组件说明
通用后处理BlockEpilogue组合 Tile 组件的标准流水
单源逐元素BlockEpilogueElemwiseOneSource带一个额外输入(如加偏置)
无源逐元素BlockEpilogueElemwiseNoSource无额外输入的后处理
SoftmaxBlockEpilogueOnlineSoftmaxNoMask在线 Softmax
量化反量化BlockEpiloguePerTokenDequant,BlockEpilogueW4A4PerTokenPerChannelDequant,BlockEpilogueDequant反量化
量化反量化+激活BlockEpilogue(组合 dequant tiles +TileElemWiseGelu量化乘 + 反量化 + 激活融合
GEMM/GEMVBlockEpilogueGEMM,BlockEpilogueGEMVGEMM/GEMV 专用
Flash AttentionBlockEpilogueFARescaleO,BlockEpilogueFASoftmaxFA 后处理
MLABlockEpilogueMLARescaleO,BlockEpilogueMLASoftmaxMLA 后处理

组装模式

BlockEpilogue将多个 Tile 组件组合为后处理流水线,典型模式:

模式流水线典型用例
纯矩阵乘无 Epilogue(BlockEpilogue = void基础 Matmul
激活函数Copy入 → GELU/SILU → Copy出Matmul + GELU
加偏置Copy入 → Add(额外源) → Copy出Matmul + Bias
加偏置+激活Copy入 → Add → GELU → Copy出Matmul + Bias + GELU
广播+运算Copy入 → BroadcastAdd → Mul → Copy出融合后处理
量化反量化TileRowBroadcastMul → TileBroadcastOneBlk → TileOneBlkColumnBroadcastMul → TileCopyW8A8 量化乘 + per-token 反量化
量化反量化+激活TileRowBroadcastMul → TileBroadcastOneBlk → TileOneBlkColumnBroadcastMul → TileElemWiseGelu → TileCopyW8A8 量化乘 + 反量化 + GELU

选型原则

  1. 按需组合:只选需要的环节,不要全部引入
  2. Tile 组件按序排列:Copy入 → 计算 → Copy出
  3. Block 组件接收 Tile 列表BlockEpilogue<DispatchPolicy, InType, OutType, Tile...>
  4. 无后处理时设BlockEpilogue = void

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

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

http://www.jsqmd.com/news/896126/

相关文章:

  • 3分钟学会绘制专业网络拓扑图:easy-topo免费工具完全指南
  • OpenClaw实战:29个真实用例解析与自动化工作流搭建指南
  • 设计模式(六)—— 适配器模式、建造者模式/生成器模式、命令模式、工厂模式
  • GCViewer vs. GCEasy:两款免费JVM GC日志分析工具,我该选哪个?
  • 2026年黄金回收行业优质服务商推荐:黄金回收/旧金回收/金银回收/黄金以旧换新/投资金条,认准深圳灵基数字科技有限公司(金淘淘) - 2026年企业资讯
  • 大众点评全站数据采集:高效实现动态字体加密破解与餐饮数据获取
  • 2026年宜昌装修公司TOP10排行榜:金螳螂家以硬核实力打造高性价比口碑家装 - 速递信息
  • Keyboard Chatter Blocker:三招解决机械键盘连击问题,让你的旧键盘焕发新生
  • 暗黑破坏神2存档编辑器:5分钟快速上手的终极修改指南
  • 探索GMPlot:在Python中绘制地理数据的高效工具
  • 跨系统数据搬运的“破壁者”:实测AI Agent如何终结人肉复制粘贴
  • python mitmproxy抓包详细过程
  • 全国不锈钢管厂家实力排行:资质与服务维度对比 - 速递信息
  • 广州包包回收行情解读!看懂成色估价,卖包不亏价 - 奢侈品回收测评
  • 使用Kotlin构建代码知识图谱:从实体关系到智能查询的工程实践
  • 终极指南:如何免费解锁《艾尔登法环》帧率限制,畅享高帧率游戏体验
  • 工业网络新引擎—基于IPQ5018的WiFi 6工业路由器核心优势与场景化部署解析
  • 清华大学thuthesis论文模板:在Overleaf上撰写完美学位论文的终极指南
  • 2026 GEO 优化公司选型: AI 时搜索优化核心概念|附 5 家服务商推荐 - 资讯快报
  • 西门子博途软件安装问题汇总
  • 抖音无水印视频下载终极方案:douyin-downloader专业指南
  • 深圳物业经理培训哪家好?鑫诺教育:6年专注物业考证,高通过率更靠谱 - 奔跑123
  • 2026年 水处理设备/纯水处理设备/反渗透软水/工业一体化纯净水/超纯水RO反渗透设备厂家推荐与选购指南 - 品牌企业推荐师(官方)
  • FModel:虚幻引擎游戏资源逆向工程与资产提取技术深度解析
  • 3分钟高效转换:Ofd2Pdf免费开源工具完全指南
  • 2026年5月欧米茄二手市场真假混卖现状权威核验 - 速递信息
  • 桌面分区革命:如何用NoFences彻底告别Windows桌面混乱
  • 杭州市钱塘区杭来环保科技:杭州水下打捞公司 - LYL仔仔
  • 51单片机直流电机控制
  • 前端包管理咋选?我从npm叛逃到pnpm的血泪史(附避坑指南)