CANN/cannbot-skills:Kernel层扩展开发

发布时间:2026/9/12 4:08:35

CANN/cannbot-skills:Kernel层扩展开发 Kernel 层扩展开发指南【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills适用路径blaze_custom路径 A§1 何时需要扩展条件示例需要新的数据通路新增 INT4 量化路径需要新的调度策略自定义负载均衡、三维 K 切分仅更换 dtype/Layout → 修改 Launcher 模板参数仅增加 epilogue → 用MatmulKernelFused。参考 →references/fundamentals/blaze-framework-overview.md§4§2 扩展 DispatchPolicyScheduleType 标签空结构体struct KernelMmadMyNewStrategy {};Policy 结构体template uint64_t FULL_LOAD_MODE_ 0 struct MyNewPolicy { using ScheduleType KernelMmadMyNewStrategy; constexpr static uint64_t fullLoadMode FULL_LOAD_MODE_; };SFINAE 绑定blaze_custom 统一用is_base_of风格见matmul_block_mmad.h:77-79template class DispatchPolicy_, class AType_, ... class BlockMmadDispatchPolicy_, AType_, ..., enable_if_tis_base_of_vMyNewPolicy0, DispatchPolicy_ { /* 实现 */ };blaze 库风格则用直接类型匹配BlockMmadMyNewPolicy0, AType_, ...。§3 扩展 GemmUniversal 偏特化blaze 库路径按ScheduleTypeSFINAE 选择GemmUniversal偏特化template typename PS, typename BM, typename BE, typename BS, typename Enable void struct GemmUniversal { static_assert(always_false_vBM, Unsupported); }; template typename PS, typename BM, typename BE, typename BS struct GemmUniversalPS, BM, BE, BS, enable_if_tis_same_vtypename BM::DispatchPolicy::ScheduleType, KernelMmadMyNewStrategy { /* 实现 */ };blaze_custom 路径不使用GemmUniversal直接编写独立 Kernel 类见 §4。§4 自定义 Kernel 开发3 参数模板 block 循环参考MatmulKernelmatmul_kernel.htemplate class ProblemShape, class BlockMmad, class BlockScheduler class MyNewKernel { public: struct Params { ProblemShape problemShape; typename BlockMmad::Params mmadParams; typename BlockMmad::L1Params l1Params; typename BlockSchedulerOp::Params schParams; }; __aicore__ inline void operator()(const Params params) { if ASCEND_IS_AIV { return; } BlockSchedulerOp bs(params.problemShape, params.schParams); BlockMmad mmadOp; mmadOp.Init(/* ... */); auto gmA MakeTensor(MakeMemPtrLocation::GM(aGmPtr), layoutA); BlockCoord blockIdx; while (bs.GetTileIdx(blockIdx)) { BlockShape singleShape bs.GetBlockShape(blockIdx); mmadOp(gmA.Slice(...), gmB.Slice(...), gmC.Slice(...), singleShape); } } };融合场景参考MatmulKernelFused修饰符改__mix__输出用Location::UB增加 CrossCore 同步 Epilogue 调用。模块索引 →references/modules/blaze-custom/kernel-modules.md【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/9 9:14:42

工业级国产存储芯片4Mb并行接口MRAM芯片

作为优质EMI国产芯片产品,该器件基于STT-MRAM(自旋转移扭矩磁阻随机存取存储器)技术打造,具备非易失性存储、超低功耗、无限读写耐久、强环境适配等核心优势。可完美替代传统FRAM、低功耗SRAM、nvSRAM等存储器件,大幅简…

2026/9/8 22:37:26

算法设计与分析核心思想:从“如何穷举”到“聪明地穷举”

1. 算法设计的本质:穷举的艺术 计算机解决问题的方式其实非常"笨"——它唯一的办法就是尝试所有可能性。就像你要破解一个三位数的密码锁,最直接的方法就是从000试到999。这种暴力尝试所有可能解的方法,我们称之为 穷举法 。 但…

2026/9/12 4:04:44

PyTorch激活层实战指南:从源码、数值稳定性到工业部署避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

Java封装机制详解:从基础到高级实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

SpringBoot舞蹈室管理系统开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

基于YOLO与多模态大模型的电子元器件目标检测系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 3:59:43

创新创业大赛方案设计的3个核心原则与实战技巧

1. 创新创业大赛方案设计核心思路参加创新创业大赛不同于普通的商业计划比赛,评委更关注项目的创新性、可行性和成长潜力。我在担任多次创业大赛评委和指导参赛团队的过程中,总结出三个核心设计原则:首先是问题导向。真正优秀的创业项目都源于…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码