CANNBot 实操体验:基于Ascend C的矩阵乘法算子开发
目录引言测评结论✅ 核心优势⚠️ 待优化点 效率提升效果CANNBot 是什么核心能力一览本次实操案例第一部分环境搭建1.1 创建Notebook实例1.2 安装 Node.js 181.3 安装 OpenCode1.4 安装 CANNBot-Skills第二部分实操案例 - 开发矩阵乘法算子2.1 启动 OpenCode2.2 输入开发需求2.3 阶段 1环境检查2.4 阶段 2设计阶段2.5 阶段2.5设计串讲阶段2.6 阶段3开发阶段2.7 阶段4审查阶段2.8 阶段5修复循环2.9 阶段6性能验收2.10 阶段7完成汇报参考资源引言作为一名 CANN 开发者我在日常算子开发中经常遇到这些痛点痛点具体表现影响开发效率低手写代码框架耗时重复劳动多一个算子开发周期长性能优化难Tiling策略、双缓冲等技术门槛高难以充分利用NPU性能代码质量参差缺乏统一规范代码风格不一团队协作困难学习成本高Ascend C API繁多文档分散新人上手慢正好CANN 社区最近发布了CANNBot一个面向CANN开发的用于提升开发效率的系列智能体提供了丰富的技能模块和智能代理能力特别是自动算子生成和仿真能力让我眼前一亮。我想验证的是AI 真的能帮我写算子吗效果如何能提升多少效率于是我决定在 AtomGit Notebook 上完整体验这个项目开发一个矩阵乘法算子看看它是否真的能解决我的痛点。测评结论本次借助 CANNBot 顺利完成 Ascend C 算子开发整体实操耗时大幅压缩算子最终性能达到预期水准下面从核心优势、待优化方向、效率提升维度展开详细测评分析。✅ 核心优势优势具体表现效果评估开发效率高自动生成完整项目结构和代码框架⭐⭐⭐⭐⭐大大减少手动编写工作量代码质量好结构清晰注释详细包含最佳实践⭐⭐⭐⭐⭐代码规范统一性能优化到位自动实现 Tiling 策略和双缓冲技术⭐⭐⭐⭐☆性能表现良好学习价值高通过生成代码学习 Ascend C 最佳实践⭐⭐⭐⭐⭐新人友好流程标准化7阶段开发流程规范完整⭐⭐⭐⭐⭐团队协作更顺畅⚠️ 待优化点问题说明建议参数化程度当前代码参数化覆盖范围有限适配场景受限扩充参数配置项兼容更多数据类型、数据形状错误处理现有异常捕获逻辑单薄各类运行异常易直接导致程序中断补齐分支异常校验、兜底捕获逻辑提升代码健壮性文档完善现有文档仅记录功能结果缺少底层设计推导过程补充设计思路、优化逻辑注解方便他人理解优化策略响应速度构造复杂算子时计算链路长整体生成耗时偏高通过缓存、逻辑拆分等手段缩减算子生成耗时优化响应时间 效率提升效果通过本次实操我对比了使用 CANNBot前后的开发效率开发环节传统方式使用 Skills 后效率提升环境搭建1-2小时15分钟75%↑代码框架编写2-4小时10分钟90%↑Tiling设计2-3小时自动生成95%↑代码审查1小时自动审查80%↑性能调优2-4小时自动优化建议60%↑总体评价CANNBot 是一款值得推荐的 Ascend C 算子开发辅助工具特别适合快速验证算法思路、学习 Ascend C 编程和原型开发场景。CANNBot 是什么CANNBot是面向CANN开发的用于提升开发效率的系列智能体CANNBot-Skills仓库为其提供可复用的Skills模块目前已经从早期仅覆盖Ascend C算子开发的工具集演进为横跨9 大开发领域、60 Skills、20 Agents、10 个官方 Plugin的全栈技术体系覆盖了Ascend C / Catlass / PyPTO / TileLang / Triton算子开发、torch.compile图模式优化和NPU模型推理端到端优化。核心能力一览┌─────────────────────────────────────────────────────────────────────────────┐ │ CANNBot-Skills 核心能力 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ 9 大开发路径 10 个官方 Plugin │ │ Ascend C 直调/注册调用 · Catlass · PyPTO · TileLang · Triton │ │ torch.compile 图模式 · 模型推理优化 · 代码检视 · 仿真调试 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ 60 Skills6 大类别 │ │ 知识库NPU架构 · API最佳实践 · Tiling设计 · 精度标准 │ │ 工程模板注册调转直调 · Kernel直调模板 · Blaze算子生成 │ │ 调试测试精度调试 · 运行时调试 · 崩溃调试 · 环境检查 │ │ 性能优化性能采集分析 · AISS TilingSolver · 性能最佳实践 │ │ 仿真验证ops-simulator 精度/性能仿真 · 流水线空泡分析 │ │ 协作治理Skill审查 · PR/Issue自动化 · 代码检视 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ 20 智能Agent │ │ architect架构师· developer开发者· reviewer审查者 │ │ tester测试者· analyst分析师· perf-tuner调优师 │ │ design-reviewer设计串讲· implementer实施者 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ 多阶段开发流程 │ │ 环境检查 → 设计 → 设计串讲 → 开发 → 审查 → 修复 → 精度验收 → 性能验收 │ │ Step 6 新增独立精度验收环节 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ 双轨制安装 │ │ 完整安装install-helper / init.shPlugin Agents Workflows │ │ 独立安装npx skills addAgent Skills 标准70 AI 编程工具通用 │ └─────────────────────────────────────────────────────────────────────────────┘本次实操案例我选择开发一个支持 float16 数据类型的矩阵乘法算子这是深度学习中常用的操作且具有一定的复杂度适合测试 CANNBot的能力。算子规格算子名称MatMulFloat16数据类型float16输入矩阵 A [m, k]矩阵 B [k, n]输出矩阵 C [m, n]支持 shape[128, 128]、[256, 256]、[512, 512]第一部分环境搭建1.1 创建Notebook实例1.访问AtomGit官网https://ai.atomgit.com/2.登录账号进入 我的Notebook 页面3.点击 激活Notebook选择如图所示配置点击“立即启动”即可创建 免费实例。4.等待实例创建完成进入到下图所示界面1.2 安装 Node.js 18Node.js 18是CANNBot-Skills 安装及运行的前置条件。# 1.检查 node 是否存在 node -v # 2.安装 nvm v0.39.3 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash# 1.检查 nvm 命令是否正常 nvm ls # 2. 将 nvm 配置添加到 .bashrc 文件 echo export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh ~/.bashrc # 3. 应用配置 source ~/.bashrc# 1.安装 node v20.20.2 nvm install 20 # 1.查看 node 版本 node -v1.3 安装 OpenCodeOpenCode / Claude Code / Trae / Cursor / GitHub Copilot中任一 AI 编程工具都是 CANNBot-Skills安装及运行的前置条件这里我选择OpenCode # 安装 OpenCode curl -fsSL https://opencode.ai/install | bash添加路径到 PATH 环境变量验证安装成功。# 1. 将 OpenCode 配置添加到 .bashrc echo export PATH/opt/atomgit/.opencode/bin:$PATH ~/.bashrc # 2. 应用配置 source ~/.bashrc # 3. 验证安装成功 which opencode opencode --version1.4 安装CANNBot-Skills使用完整安装方式确保配置仅对当前项目生效# 通过 install-helper 一键安装 curl -fsSL https://raw.gitcode.com/cann/cannbot-skills/raw/master/install.sh | bash第二部分实操案例 - 开发矩阵乘法算子2.1 启动 OpenCode在初始化完成的目录下执行opencode2.2 输入开发需求在 OpenCode 交互界面中输入帮我开发一个矩阵乘法算子支持 float16 数据类型输入为两个矩阵 A 和 B输出为矩阵 C A × B。要求 1. 支持的 shape 主要是 [128, 128]、[256, 256]、[512, 512] 2. 优化 Tiling 策略充分利用 NPU 资源 3. 实现双缓冲技术提高内存访问效率2.3 阶段 1环境检查OpenCode 会自动加载 ascendc-kernel-develop-workflow 技能按照标准工作流程指导开发。首先进入阶段 1环境检查。检查项目目录结构验证开发环境创建项目结构并生成environment.json环境检查结果文件。2.4 阶段 2设计阶段OpenCode 会分析需求并生成设计方案2.5 阶段2.5设计串讲阶段2.6 阶段3开发阶段2.7 阶段4审查阶段2.8 阶段5修复循环审查通过无需阶段5修复循环2.9 阶段6性能验收2.10 阶段7完成汇报参考资源CANNBot 仓库cannbot-skills:基于 CANN 生态的 Agent 技能模块项目 - AtomGit说明文档cannbot-skills/docs · CANN/cannbot-skills - AtomGit问题反馈AtomGit - 全球开发者的开源社区,开源代码托管平台

相关新闻

AI辅助开发效能跃迁路径(2024企业级落地白皮书首发)

AI辅助开发效能跃迁路径(2024企业级落地白皮书首发)

更多请点击: https://codechina.net 第一章:AI辅助开发效能跃迁路径(2024企业级落地白皮书首发) 企业正从“局部试点AI工具”迈向“系统性重构研发范式”的关键拐点。2024年,头部科技公司实测数据显示:在C…

2026/7/23 22:55:53阅读更多 →
【RT-DETR涨点改进】CVPR 2026 | 卷积创新改进篇 | 轻量化改进!引入YOLO-ULM中轻量D3C2f轻量化模块,含二次创新模块,5种创新改进点,助力目标检测任务,高效涨点

【RT-DETR涨点改进】CVPR 2026 | 卷积创新改进篇 | 轻量化改进!引入YOLO-ULM中轻量D3C2f轻量化模块,含二次创新模块,5种创新改进点,助力目标检测任务,高效涨点

一、本文介绍 🔥本文给大家介绍使用 YOLO-ULM中轻量D3C2f模块 改进RT-DETR网络模型,D3C2f 通过特征切分与聚合结构保留 C2f 的高效梯度流动和特征复用能力,同时在 D3 Block 中级联 33 深度可分离卷积、77 大核深度卷积和 33 深度可分离卷积,既扩大模型感受野、增强高层语…

2026/7/23 22:55:53阅读更多 →
【RT-DETR涨点改进】TGRS 2026 | 特征融合改进篇 |引入CDSF跨域协同融合模块,增强特征互补性与语义一致性,助力高光谱目标检测、遥感目标检测、多模态融合目标检测任务,高效涨点

【RT-DETR涨点改进】TGRS 2026 | 特征融合改进篇 |引入CDSF跨域协同融合模块,增强特征互补性与语义一致性,助力高光谱目标检测、遥感目标检测、多模态融合目标检测任务,高效涨点

一、本文介绍 🔥本文给大家介绍使用 CDSF跨域协同融合模块 改进 RT-DETR 网络模型,主要作用是对不同层级、不同尺度或不同模态的特征进行自适应对齐与互补融合,避免传统拼接或直接相加造成的语义错位和信息冗余。该模块先利用多尺度深度可分离卷积提取局部细节与大范围上下…

2026/7/23 22:55:53阅读更多 →
学术AI搜索工具深度测评(2024真实数据对比):Scite、Elicit、Consensus、Perplexity、Semantic Scholar谁才是论文加速器?

学术AI搜索工具深度测评(2024真实数据对比):Scite、Elicit、Consensus、Perplexity、Semantic Scholar谁才是论文加速器?

更多请点击: https://codechina.net 第一章:学术AI搜索工具深度测评(2024真实数据对比):Scite、Elicit、Consensus、Perplexity、Semantic Scholar谁才是论文加速器? 2024年,五款主流学术AI搜索…

2026/7/24 0:16:09阅读更多 →
【AI编程未来趋势权威预测】:2024-2030年技术演进路线图与开发者生存指南

【AI编程未来趋势权威预测】:2024-2030年技术演进路线图与开发者生存指南

更多请点击: https://kaifayun.com 第一章:AI编程未来趋势的宏观图景与范式迁移 人工智能正从“辅助编码”跃迁至“协同创作”,其核心驱动力不再是单一模型能力的提升,而是开发范式、工具链与人机协作关系的系统性重构。开发者角…

2026/7/24 0:16:09阅读更多 →
Claude中文场景专项优化(金融/医疗/政务三大垂直领域Prompt库已脱敏上线)

Claude中文场景专项优化(金融/医疗/政务三大垂直领域Prompt库已脱敏上线)

更多请点击: https://kaifayun.com 第一章:Claude中文场景专项优化(金融/医疗/政务三大垂直领域Prompt库已脱敏上线) 为提升大语言模型在高敏感、强规范性中文垂直场景中的推理准确性与合规性,我们已完成Claude系列模…

2026/7/24 0:16:09阅读更多 →
影刀RPA 自动化舆情监控:关键词预警与报告生成

影刀RPA 自动化舆情监控:关键词预警与报告生成

影刀RPA 自动化舆情监控:关键词预警与报告生成 作者:林焱 写在前面 品牌负面舆情一旦爆发,几个小时内可能蔓延全网。靠人工每天刷微博、知乎、新闻,根本来不及。影刀可以帮你搭一套724小时的舆情监控系统:定时采集多…

2026/7/24 0:12:08阅读更多 →
ArkUI Provider 和 Consumer 乱用怎么办:中式美食同类多层筛选页为什么别一路传参数

ArkUI Provider 和 Consumer 乱用怎么办:中式美食同类多层筛选页为什么别一路传参数

先把相关概念说清楚知识点在这个问题里怎么看自定义组件冻结功能用来写多页面栈、TabContent、LazyForEach 和 BuilderNode 混用时的刷新边界状态管理 V1 向 V2 迁移用来拆 State 到 Local、Param、Once、Event 的迁移判断Provider / Consumer用来解释跨层级双向同步&#xff0…

2026/7/24 0:12:08阅读更多 →
【K8S 运维实战】11-资源管理Requests与Limits

【K8S 运维实战】11-资源管理Requests与Limits

资源管理:Requests/Limits 与 QoS 分级 一句话定位:为什么设了 Limits 还是被 OOM QoS 三级怎么用 ResourceQuota 实战。 写在前面 “我明明设了 memory limit 4G,Pod 还是 OOMKilled 了,这是什么玄学?”——这是我遇到过最经典的资源管理困惑。还有一类:“节点资源没用满,…

2026/7/24 0:12:08阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →