发布时间:2026/8/30 4:47:14
CANN/cannbot-skills:CANNBot Step 1→7 在 MC2 场景下的工作流映射 CANNBot Step 1→7 在 MC2 场景下的工作流映射【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills本文档把父级plugins-official/ops-direct-invoke/AGENTS.md的 7 步流程具体化到 MC2 通算融合算子场景。CANNBot 主控和 Architect/Developer/Reviewer 三类 Subagent 在每个 Step 进入前都应先读对应小节明确本阶段在 MC2 场景下要做什么、门禁是什么、调用哪些 skill。父级流程定义以plugins-official/ops-direct-invoke/AGENTS.md为准本文件只补充 MC2 场景的差异化要点不重写父级规则。Step 1环境检查门禁标准动作父级定义按ascendc-env-checkskill 运行npu-smi info查设备列表与状态检查ASCEND_HOME_PATH/CANN_TOOLKIT_HOME等环境变量运行workflows/scripts/verify_environment.sh {operator_name}生成environment.json。MC2 场景额外校验校验项命令 / 方法失败处理NPU 架构必须为 dav-3510npu-smi info读Chip Name应为Ascend 950系列CMake 阶段再次校验NPU_ARCHdav-3510非 3510 直接终止告知用户本 skill 仅支持 Ascend 950 (dav-3510)SHMEM 第三方库可解析检查references/all_to_all_matmul/third_party/shmem/symlink 是否指向有效路径若不存在cmake/shmem.cmake会触发git submodule update --init提示用户初始化 submoduletensor_apiBlaze 头可解析同上检查third_party/tensor_api/提示用户初始化 submodule多卡环境可用npu-smi info至少能看到rankNum张卡默认 4 卡提示用户准备多卡环境单卡只能跑精度模式性能模式需多卡门禁environment.json的validation.all_passedtrue且上述 MC2 校验全部通过 → 进入 Step 2。任何一项失败禁止进入 Step 2告知用户原因。Step 2设计Architect输出物父级要求双文件operators/{op}/docs/DESIGN.mdoperators/{op}/docs/PLAN.md。MC2 场景下 DESIGN.md必须额外包含以下小节Reviewer 在 Step 4 会交叉检查§三大约束显式确认## 三大约束确认 ### 约束 1通信走 SHMEM - 选用的 SHMEM 原语aclshmemx_udma_put_nbi / aclshmemx_barrier_all_vec / ... - 确认无 Hccl:: 高阶 API✅ ### 约束 2Matmul 走 Blaze - 选用的 Blaze 模板Blaze::Gemm::Block::BlockMmad Kernel::QuantMatmulMxKernelSwat 等 - DispatchPolicyMatmulWithScaleMx / ... - 确认无 asc-devkit matmul API✅ ### 约束 3流程合规 - 复用基底references/all_to_all_matmul/ - 计划修改的文件清单列出 [MODIFY] 文件§切分策略两阶段tileCnt策略详见pipeline_tuning.mdStep 2-4 设计/审查阶段tileCnt1headMSizem做串行基线简化精度/审查调试Step 6 性能验收阶段扫描tileCnt ∈ {1, 2, 4, 8, 16, 32}找最优headMSize512只是起点不是最优值。M 轴切分headMSize m / tileCntbufferSize4SHMEM 空间预算默认 1 GB需够装下rankSize * bufferSize * bufferBlockSize scale§AIV/AIC 分工图明确哪些 work 在 AIV通信哪些在 AIC计算同步点在哪里CrossCoreSetFlag0x2, PIPE_*。Architect 加载顺序加载本 skillascendc-mc2-best-practice读references/mc2_architecture.md建立整体心智模型若通信侧不确定用哪个 SHMEM 原语 → 读references/comm_shmem.md若计算侧不确定用哪个 Blaze 模板 → 读references/matmul_blaze.md输出 DESIGN.md PLAN.md。门禁双文件齐全DESIGN.md 包含三大约束确认小节且勾选 ✅切分策略中headMSize等参数有可解释的依据不能拍脑袋。Step 2.5设计串讲Developer 串讲模式关注点复用的基底文件清单是否合理不能把[REUSE]文件错标成[MODIFY]AIC 是否在通信 buffer 上遍历所有 rankrankrankId 是否切换到本卡 GMSHMEM 空间预算是否够rankSize * commMSize_ * kPerRank * bufferSize scale 段。Architect 串讲回应关注点若 Developer 提出想用 HCCL 替代 SHMEM → 直接拒绝引用 SKILL.md 约束 1若 Developer 提出想用 asc-devkit matmul API → 直接拒绝引用 SKILL.md 约束 2。收敛严格 1 轮串讲分歧写入 WALKTHROUGH.md## 设计串讲仲裁。Step 3开发Developer起手流程# 1. 从基底工程复制 cp -r references/all_to_all_matmul operators/{op_name} # 2. 按 [MODIFY] 标记定点改造 # - src/{op_name}.cpp函数名、kernel 调用、参数解析 # - include/kernel/all_to_all_comm_udma.h通信原语若非 AllToAll # - include/kernel/all_to_all_matmul_impl.h通算融合主类 # - include/kernel/qbmm_mx_kernel.hBlaze Kernel 包装改 Scale/dtype/bias 时动 # - include/tiling/*TilingData 字段 # - scripts/gen_data.py verify_result.pydtype/容差 # 3. 编译 cd operators/{op_name} cmake -S . -B build -DNPU_ARCHdav-3510 cmake --build build -j # 4. 跑精度 bash run.sh # 默认 m2048 k8192 n3584 rank4 precision开发阶段红线禁止新增Hccl::调用Reviewer 会在 Step 4 grep禁止包含 asc-devkit 的 matmul 头禁止为了赶进度跳过run.sh的精度模式直接跑 perf改完每个[MODIFY]文件后立即跑一次bash run.sh做冒烟避免最后一次性 debug。门禁编译通过bash run.shprecision 模式输出verify_result.py: PASS代码已提交到operators/{op_name}/。Step 4审查Reviewer必查清单来自 SKILL.md 约束清单按 R1~R7 逐项检查# R1 架构3510 grep -r npu-arch operators/{op}/CMakeLists.txt # R2 无 HCCL 高阶 API应为空 grep -rn Hccl:: operators/{op}/ # R3 无 asc-devkit matmul API应为空 grep -rn AscendC::Matmul\b operators/{op}/ # R4 通信走 SHMEM grep -rn shmem.h\|aclshmem operators/{op}/include/kernel/ # R5 Matmul 走 Blaze grep -rn blaze/gemm/block/ operators/{op}/include/ # R6 流程门禁 ls operators/{op}/docs/{DESIGN,PLAN,WALKTHROUGH,REVIEW}.md cat operators/{op}/environment.json | grep all_passed # R7 性能采集合规在 Step 6 才完整执行Step 4 检查 heavy_kernels.h 是否被正确 include grep -rn heavy_add_kernel\|cache_flush operators/{op}/src/常见 FAIL 原因现象根因修复方向grep 到Hccl::AllReduce开发者把 HCCL 当成熟悉的 API用了回退到 Step 3要求 Developer 改写为aclshmemx_udma_put_nbi 自实现 Reduce 逻辑grep 到AscendC::Matmul开发者误用 asc-devkit 接口回退到 Step 3替换为Blaze::Gemm::Block::BlockMmadSHMEM 空间不足崩溃DESIGN.md 的空间预算没算对回退到 Step 2重算SHMEM_SPACE_SIZE精度对不上但无报错多半是 ProcessSingleBatch 中 rankrankId 分支错未切换到本卡 GM /remoteRankCnt没从 0 起算回退到 Step 3对照qbmm_mx_kernel.h注释核对门禁REVIEW.md 判定PASS或PASS WITH NOTES→ 进入 Step 6REVIEW.md 判定FAIL→ 进入 Step 5 修复循环。Step 5修复循环最多 3 轮。每轮Developer 修复 → Reviewer 复审。MC2 场景下常见的修不动问题跨核同步 flag 错位CrossCoreSetFlag0x2, PIPE_MTE3(mLoopIdx)与CrossCoreWaitFlag0x2, PIPE_MTE2(mLoopIdx)的 idx 必须一致UDMA Put 顺序错aclshmemx_udma_quiet(remoteRank)必须在每次 Put 后调用否则数据未真正下发remoteRankCnt 错位splitKNum必须等于rankSize否则 fixpipe 时机不对最后一次 mmadOp_ 才触发3 轮仍未通过 → 暂停上报用户。Step 6性能验收DeveloperMC2 专用流程必须刷 L2 cache详细步骤见profiling_mc2.md。这里只给摘要。PROJ$(pwd) # 1. 算子二进制已具备 perf 模式run.sh 第 5 参传 perf bash run.sh 2048 8192 3584 4 perf # 2. msprof task-based 采集无 warm-upL2 flush 由 perf 主循环内部保证 msprof --ai-coreon --aic-modetask-based \ --output${PROJ}/docs/perf/round_001 \ --application${PROJ}/build/{op_name} 2048 8192 3584 4 perf # 3. 多卡后处理每卡取最后 5 次 main kernel 平均4 卡取最大 python3 scripts/extract_perf.py ${PROJ}/docs/perf/round_001 AllToAllQuantMatmulKernelE4M3E4M3 5关键点两阶段tileCnt扫描进入 Step 6 时算子默认处于tileCnt1串行基线Step 2-4 期间配置。Step 6 的工作是扫描tileCnt ∈ {1, 2, 4, 8, 16, 32}每个值跑一次 msprof 采集 后处理对比整体 Task Duration 找最优。完整流程见pipeline_tuning.md§3 阶段 B §6 决策树L2 cache flush 必须在主循环每轮触发参考工程在 perf 主循环src/all_to_all_matmul.cpp的mode perf分支中每轮先调用heavy_add_kernel256 MB bf16 全核扫一遍刷 L2再跑主 kernel避免上一轮的热度污染本轮采集——所以 msprof 不需要--warm-upperf 模式默认跑 10 轮msprof task-based 为每轮 main kernel 生成一条op_summary_*.csv记录多卡数据提取规则每卡取最后 5 次 main kernel 的 Task Duration 求平均 → 4 卡平均值取最大值作为整体性能多卡并行由最慢卡决定。门禁docs/perf/round_NNN/存在且包含 4 个PROF_*子目录每卡一份extract_perf.py输出每卡rank_avg与整体maxTask Duration最优tileCnt与对应整体 Task Duration 已写入 DESIGN.md 性能调优记录若整体 Task Duration 与理论耗时差距 50% → 视为性能不达标检查通算流水是否真的并行AIV time vs AIC time。Step 7完成汇报CANNBot 主控汇总以下信息给用户最终判定PASS / PASS WITH NOTES总分Reviewer 100 分制代码路径operators/{op_name}/性能概要Task Duration、主导流水MC2 通常 AIC cube 主导、通信隐藏率AIV 与 AIC 重叠度关键问题列表Step 4~5 期间遗留的 NOTE【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/30 4:46:49

PUBG罗技鼠标宏压枪脚本:从原理到实战的深度解析

PUBG罗技鼠标宏压枪脚本:从原理到实战的深度解析 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在绝地求生这类FPS游戏中&#xff0…

2026/8/30 4:44:13

无损推理(Lossless Inference)概念、误差来源与工程验证实战

在 LLM 服务部署和推理优化领域,有一个概念最近经常被提起:Lossless Inference,也就是“无损推理”。字面上看,它追求的是在优化推理性能的同时,不让模型输出质量出现肉眼可见的下降。很多同学第一次听到这个词时&…

2026/8/30 4:44:13

英伟达暂停收益分成协议:对AI算力市场与GPU部署的深层影响

这次的消息不是某个新模型发布,而是一条会影响 AI 算力市场格局的商业新闻:据多家媒体报道,英伟达正在暂停与多家 AI 公司的“收益分成协议”,目的很可能是为了规避反垄断审查。对大部分做本地部署、模型微调、AI 应用开发的读者来…

2026/8/30 4:44:13

NRBO优化BP神经网络实现多输入多输出回归预测

简介:本资源是一套面向人工智能与智能优化方向研究者、高校师生及工程技术人员的MATLAB实战代码包,聚焦于解决传统BP神经网络在多输入多输出(MIMO)回归任务中收敛慢、易陷局部极小等核心痛点。创新性地将改进型牛顿拉夫逊优化算法…

2026/8/30 4:44:13

美团2013笔试题精讲:二分、链表、动态规划与系统设计

1. 从2013年美团笔试卷说起:为什么老题仍然值得做 2013年的美团,正处于团购大战最激烈的阶段。当时的地推团队遍布全国,技术团队却在快速扩张中,笔试题目带着鲜明的“算法优先、工程落地”风格。我最近重新翻出这份老试卷&#xf…

2026/8/30 4:39:13

基于FISCO BCOS的供应链协同平台:架构设计与智能合约实战

简介:本资源是一套基于FISCO-BCOS国产开源区块链平台构建的供应链管理系统高分毕业设计项目,面向计算机、软件工程等专业本科生及区块链初学者,解决课程设计、期末大作业与毕业设计中缺乏可运行区块链实战案例的痛点。压缩包共154个文件&…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…