PR 链接:https://gitcode.com/cann/cann-outreach/pull/4268
自验证报告:
渠道:公众号


需要验证图片


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4270
自验证报告:

渠道:微信群


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4269
自验证报告:
渠道:线上宣发(CANN 社区)


PR链接:https://gitcode.com/cann/cann-outreach/pull/4267
自验证报告:图片
渠道:CANN社区






PR 链接:https://gitcode.com/cann/cann-outreach/pull/4274
自验证报告:

渠道:cann小助手


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4291
自验证报告:
渠道:微信群




PR 链接:https://gitcode.com/cann/cann-outreach/pull/4307
自验证报告:

渠道:微信朋友圈


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4318
自验证报告:当前账号的 HiDevLab Ascend 950 算力资格仍在开通中,暂未取得实机 PASS 截图;Python 语法检查已通过。获得 950 算力后补充真实验证图片。
渠道:线上宣发:GitCode CANN 社区活动页面


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4319
自验证报告:暂无 Ascend 950 实机 PASS 截图,如实说明如下。
本机无 NPU 设备节点(无 /dev/davinci0),且暂无 HiDevLab 可用凭据,
因此无法执行 python PR_code/HansonZhang/test_matmul_add_relu.py --device 0。
未使用任何占位图,也未引用他人验证图。
已实际执行并通过的检查:
| 检查项 | 结果 |
|---|---|
python -m py_compile 两个文件 |
PASS |
cmp 验证脚本与 Template 字节一致 |
PASS(未改判定脚本) |
diff 改动范围审计 |
PASS,仅 5 个 hunk 落在 TODO 分隔线之间 |
API 签名逐条对照 ascend-catlass-dsl==2.1.0 源码 |
PASS |
| 算法级数值仿真(复刻核函数控制流,纯 CPU) | PASS,0/65536 元素不匹配 |
算法级仿真严格复刻了本核的控制流:K=64 四分片累加 → SPLIT_M 按 M 行均分给
2 个 AIV → 每 AIV 两个 64×256 分片 → 每行 4 个 1×64 SIMD 向量
Add → ReLU → 原位写回 → 写回 GM,输出 max|diff| = 1.53e-05,
并做了反向对照(写成 ReLU(A@B)+X 会有 35348/65536 元素不匹配)。
该仿真覆盖算法逻辑,不覆盖 DSL 编译产物在真机上的行为,不能替代官方 PASS 输出。
补全要点:init_c 首片 True 覆盖 L0C、后三片 False 累加;L0C→UB 用
CopyL0C2DstParams(l0c2ub_mode=SPLIT_M) 且不启用 relu_enable
(该功能在 2.1.0 尚未实现,强行开启会抛 NotImplementedError);
ReLU 严格在加 X 之后由 Vector 侧 tla.max 完成。
取得可用算力后将运行官方验证脚本,并在此 issue 追加真实结果
(只追加新评论,不编辑本条,以免影响按楼层顺序的抽奖排名),代码本身不再改动。
渠道:线上宣发:GitCode CANN 社区活动页面


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4319
自验证报告:暂缺实机截图(提交环境无 Ascend NPU 算力,test_matmul_add_relu.py 未执行)。已完成的替代检查记录在 PR 的 verification/verify_report.txt,其中诚实列出了未完成项;性能相关内容均为 roofline 解析估算,硬件相关量以符号保留,未代入任何猜测值。拿到 Ascend 950 环境后可用 verify_hidevlab.sh 一键补齐,届时会追加评论。
渠道:线上宣发:GitCode CANN 社区活动页面
补充说明(PR 已完善)
本次 PR 在原五处 TODO 补全基础上,追加了三项可复现的自证材料:
-
perf_facts.py—— 从代码导出确定性性能量(访存字节数、FLOPs、切分规模),无硬件参数、无随机性。
关键结论:算术强度 42.67 FLOP/B,只要「Cube 吞吐 : HBM 带宽」比值 > 43 即为 compute-bound;L0C 的 4 次累加读写合计 1 MiB,是 GM 流量的 4 倍,为最大单项片上开销;SPLIT_M将 256 行均分为 128/128,整除无尾块,两个 AIV 负载完全均衡;每行恰好 4 个 64-lane SIMD 向量,无尾掩码。 -
algosim.py—— 算法级数值仿真,逐元素对照ReLU(A@B+X)。
特别加入了反向对照:仅证明「仿真没报错」是不够的(恒真的仿真也会 PASS),因此把本题真值故意实现为错误顺序ReLU(A@B)+X,实测不匹配 35348/65536,错误率过半 —— 说明该仿真有鉴别力,不是摆设。 -
PERF-ANALYSIS.md—— 完整的 roofline 推导与设计取舍分析。
所有结论均标注为解析推导,不含任何实测时延、吞吐或 TFLOPS。题目明确要求 Ascend 950,而本环境无该硬件,故不以其它平台数据替代。


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4318
自验证报告:已在本人 HiDevLab Ascend 950 环境按官方命令完成实机验证,截图包含 CATLASS 与 PyTorch 两组数字矩阵及最终 PASS。
- 芯片:Ascend950PR_9579
- torch:2.9.0+cpu
- torch_npu:2.9.0.post6
- 结果:PASS: M=N=K=256, blocks=1
- 退出状态:0
完整验证截图:

渠道:线上宣发:GitCode CANN 社区活动页面


PR 链接:【代码侦探Challenge09】完成 MatmulAddRelu 融合算子实现https://gitcode.com/cann/cann-outreach/pull/4363
自验证报告:
渠道:线上宣发:2026.CANN训练营


PR 链接:https://gitcode.com/cann/cann-outreach/pull/4395
自验证报告:已在本人 HiDevLab Ascend 950 环境按官方命令完成实机验证,截图同屏包含 CATLASS 与 PyTorch 两组 tensor 数字矩阵及最终 PASS。
芯片:Ascend950PR_9579
CANN:9.1.0
CATLASS:2.1.0
torch:2.9.0+cpu
torch_npu:2.9.0.post6
结果:PASS: M=N=K=256, blocks=1
退出状态:0
完整验证截图:

渠道:线上宣发:GitCode CANN 社区活动页面


PR 链接:【代码侦探·Challenge 09】Student_ZZX 补全 MatmulAddRelu 算子
自验证报告:HiDevLab Ascend 950(CANN 9.1.0 Ubuntu)实机验证通过,Catlass Python 与 PyTorch 参考矩阵一致,输出 PASS: M=N=K=256, blocks=1。

渠道:线上宣发:GitCode CANN 社区活动页面





每周更新活动代码,参与补全代码使其能够正确运行并在此 issue 下方评论提交 PR 链接,即有机会赢取奖励!
更多活动大奖等你来拿! 👉 立即参与
参与流程
一、本期活动代码 · CATLASS Python 融合算子
基于 CATLASS Python 实现 MatmulAddRelu 融合算子:补全五处关键代码,完成数据加载、Cube 矩阵乘、Vector 加法与 ReLU。体验 Cube 与 Vector 协同计算,快来挑战!
按照任务书中要求,根据任务说明中的
// 请补充……注释提示,补充代码实现,完成本期CATLASS Python 融合算子的开发,并按要求提交PR。二、答题评论格式
参与者请在本 issue 下方按以下固定格式评论答题,格式不全或信息缺失将视为无效答题,无法兑奖:
1. PR 链接:请提交至指定仓库(cann-outreach)后,在此附上 PR 链接,确保链接公开可访问,PR 链接标题前缀必须带上【代码侦探·Challenge 09】
2. 提供自验证报告:请提交验证成功的图片(如下图)

3. 提供渠道来源(如下示例):
格式示例:
🔄 注意:
三、奖项设置
🏅 奖项
🏅 名额(参与人数越多,送出的奖品越多)
📋 获奖规则
✅ 1. 参与与获奖
✅ 2. 抽奖规则
四、兑奖须知
五、常见问题(FAQ)
作为新手小白如何提交代码?
A:参考小白CANN社区贡献代码全流程
PR 需要先提交才能参与吗?
A:需要。PR 已提交至指定仓库且链接可公开访问即可参与,审核人员会验证代码是否正确
评论后可以修改吗?
A:可以,但修改后的评论以最后编辑时间为准;建议确认无误后再提交,避免因编辑时间影响 TOP1 排名
如果 TOP1 获奖者同时被抽中幸运奖怎么办?
A:TOP1 获奖者不参与幸运奖抽取,幸运奖从剩余答题者中产生
公示期内发现问题如何反馈?
A:可直接在本 issue 下评论或私信昇腾小助手(微信号:Ascend-CANN),我们将在核实后进行相应处理
PR 标题忘记加【代码侦探·Challenge 09】前缀了怎么办?
A:可在活动截止前修改 PR 标题补上前缀,修改后仍有效;若截止时仍未添加,则该 PR 不计入有效参与
截止时间以什么为准?
A:PR 更新和 issue 评论时间均需在截止时间内,请在截止时间前完成 PR 及评论提交,逾期不计入有效参与