| fix(lightning_indexer_grad/pool_key_indexer): issue问题修复 Co-authored-by: guijianwei<guijianwei@huawei.com> # message auto-generated for no-merge-commit merge: !15063 merge master into master fix(lightning_indexer_grad/pool_key_indexer): issue问题修复 Created-by: guijianwei Commit-by: guijianwei Merged-by: cann-robot Description: 描述 本 PR 处理 4 个社区缺陷反馈(#6613、#6634、#6635、#6636),含 1 处缺陷修复与 3 处契约澄清: lightning_indexer_grad(#6613,缺陷修复) aclnnLightningIndexerGradGetWorkspaceSize 的 inputLayout 传 nullptr 时,ValidateParams()/CheckParams() 均未校验该指针,随后 ContiguousAndLightningIndexerGrad() 中 op::ToString(params.layout) 以 nullptr 构造 std::string,抛出未捕获的 std::logic_error(basic_string::_S_construct null not valid)导致进程 abort。修复:在 CheckParams() 补 params.layout != nullptr 校验(位于 query 空张量提前返回分支之前),返回 ACLNN_ERR_PARAM_NULLPTR(161001),与同族接口对空 layout 的防御行为对齐。 pool_key_indexer(#6634/#6635/#6636,契约澄清与定位辅助) 经源码定位(golden/kernel/proto/回归测试四处交叉验证): - #6636 非缺陷:poolKey 仅包含完整 pool,不完整尾池不在 poolKey 中,每 batch 有效 token 总数 = 完整 pool 数 × pool_size + poolTailK,sparseIndicesOut 的合法域为 [0, 完整pool数×pool_size+poolTailK) 的原始 KV token 索引(尾 token 由下游按索引从原始 KV 回取),报告中的 32/33 为合法尾 token 索引; - #6635 为文档-实现不一致:实现按设计在 BSND 场景拒绝显式 actual_seq_q/actual_seq_k(tiling 层返回 561002),但文档未声明该限制; - #6634 根因是用例参数构造错误(TND 下 pool_tail_k 元素数必须等于 B,B = actual_seq_q 元素数),TND 路径本身可用,唯报错信息未说明 B 的来源、定位困难。 采取的方法:中英文 4 份文档补充上述语义(尾池归属、索引合法域、-1 填充规则、BSND 下 actualSeq 必须传空指针、poolTailK 元素数 = B);tiling 中 pool_tail_k 元素数校验的报错信息补充 B 的来源说明。 关联的Issue - 关联Issue #6613 - 关联Issue #6634 - 关联Issue #6635 - 关联Issue #6636 测试 1. UT:lightning_indexer_grad op_api UT 新增用例 E4_null_layout_failed(layout=nullptr 期望返回 161001 且不创建 executor),与既有 E1–E3 同口径。 2. pytest 回归:pool_key_indexer 新增 TestTailSemantics::test_tail_index_domain_bsnd(npool=8/ps=4/topk=16,ptk=2 与 ptk=0 双态):校验展开区两态逐比特一致、ptk=2 尾区槽为 [32, 33, -1]、全部索引落在 [0, npool*ps+ptk) 合法域、ptk=0 尾区槽全 -1;套件 TestTailSemantics 7/7 通过(910B3 真机)。 3. 真机端到端验证(Atlas 910B3 / CANN 9.3.0,gjw_pki vendor 包重新构建安装后直调两段式 C 接口): - #6613:合法 BSND layout 第一段返回 0 不回归;inputLayout=nullptr 返回 161001,进程不再 abort,日志命中新增校验 inputLayout must not be nullptr; - #6634:TND + poolTailK 元素数=B(2) 时两段 0/0(证实 TND 可用);元素数不足返回 561002,报错日志含新增的 B 来源说明; - #6635:BSND + nullptr 两段 0/0 不回归;BSND + 显式 actualSeq 维持 561002(文档化限制); - #6636:ptk=2 输出尾区槽 [32,33,-1] 且全部索引 < npool×ps+ptk=34,ptk=0 尾区槽全 -1 且索引 < 32,与 golden/文档契约一致。 4. 流水线检查:clang-format、ruff、OAT 合规、codespell、重复头文件检查等本地与远端钩子全部通过。 文档更新 - attention/pool_key_indexer/docs/aclnnPoolKeyIndexer.md 与 aclnnPoolKeyIndexer_en.md:公式区明确尾池不包含在 poolKey 中;poolTailK 参数补有效 token 总数关系与元素数 = B;sparseIndicesOut 输出补合法域与 -1 填充规则;actual_seq_q/actual_seq_k 补「BSND 必须传空指针」;约束说明区新增 actualSeq 空指针约束与索引合法域约束。 - attention/pool_key_indexer/docs/pool_key_indexer.md 与 pool_key_indexer_en.md:torch 接口文档同步上述语义。 类型标签 - 🐛 Bug修复 - 🧪 测试 - 📝 文档更新 See merge request: cann/ops-transformer!15063 | 7 days ago |
| docs(pre-commit): 修复 git pc 别名对含空格/非 ASCII 路径的静默漏检 原别名以空白切分 $(git diff --name-only) 的输出,且 Git 对非 ASCII 路径默认输出带引号的转义形式——两种路径经展开后 pre-commit 均收到 不存在的文件名,hook 跳过该文件并报告成功(假收敛)。 改为 NUL 分隔输出 + xargs -0 传输(文件名二进制安全),加 -r (--no-run-if-empty)避免无差异时空参数误跑全仓检查。 按 review 意见补验活段:管道只返回尾进程退出码,无效 revision (拼错/浅克隆缺 HEAD~N)时 git diff 退出 128 且无输出,xargs -r 空输入直接以 0 退出——无效范围被误判为检查通过。别名前置一遍 git diff 验活(丢弃输出仅取退出码),无效范围显式返回非零。 实测四场景:有差异/空差异返回 0;无效 revision 与浅克隆缺 HEAD~N 返回非零。 对齐 cannbot-skills 仓同款修复(PR #1700,issue #1021)。 | 7 hours ago |
| chore: replace gitcode.com links with atomgit.com Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !12664 merge master into master chore: replace gitcode.com links with atomgit.com Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 transformer仓gitcode.com改成atomgit.com ## 关联的Issue 关联Issue 5667 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!12664 | 1 month ago |
| docs(ops-transformer): 对齐NN和Math的SoC参数列表 Co-authored-by: zzzzzzyf_<zhouyunfei10@huawei.com> # message auto-generated for no-merge-commit merge: !15438 merge docs/a3-device-identification-20261106 into master docs(ops-transformer): 对齐NN和Math的SoC参数列表 Created-by: zzzzzzyf_ Commit-by: zzzzzzyf_ Merged-by: cann-robot Description: ## 描述 将快速入门中的 SoC 参数映射表改为与 ops-nn、ops-math 当前文档一致的三项列表,统一产品名称及说明文字。 保留 soc-version-mapping 锚点,保证原有跳转入口可用。不增加外部链接、硬件查询步骤或安装包提示。 ## 关联的Issue 关联 #7191。本次范围按维护意见调整为三仓文档格式和表述对齐,不新增设备检测流程。 ## 测试 - 对照 NN、Math 当前产品与 SoC 参数列表。 - 保留原有三组 SoC 参数及跳转锚点。 - git diff --check、远程 Git Hooks 检查通过。 - 纯文档修改,未执行算子构建或设备运行测试。 ## 文档更新 仅修改 docs/QUICKSTART.md。 ## 类型标签 - [x] 📝 文档更新 See merge request: cann/ops-transformer!15438 | 3 days ago |
| [Docs]Metadata算子开发指南 Co-authored-by: ChengjiaWu<wuchengjia1@h-partners.com> # message auto-generated for no-merge-commit merge: !14856 merge master into master [Docs]Metadata算子开发指南 Created-by: ChengjiaWu Commit-by: ChengjiaWu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加Metadata算子开发指南,提供原理解释和开发指导 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> Issue [#6912](https://gitcode.com/cann/ops-transformer/issues/6912) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!14856 | 9 days ago |