| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
pre-commit 补充license Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !5437 merge err_msg into master pre-commit 补充license Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: # ops-transformer 仓库 License 合规整改总结 ## 背景 ops-transformer 仓库在 pre-commit 流程中引入了 OAT(Open Source Audit Tool)合规性检查,用于扫描提交文件是否包含合规的 CANN License 头。在实际提交过程中,OAT 检查发现多个文件缺少 License 头,导致 commit 被阻断。为此进行了两笔提交来完成整改。 ## 提交记录 | 序号 | Commit | 提交信息 | 修改文件数 | 变更量 | |------|--------|----------|-----------|--------| | 1 | 7ad5476c9 | pre-commit 规则修改 | 1 | +10 / -1 | | 2 | 84b25cd9d | 补充license | 94 | +4399 / -3521 | ## 提交一:pre-commit 规则修改 ### 修改内容 对 .pre-commit-config.yaml 做了两处修改: 1. **补充 CANN License 头** — 该文件本身缺少 License,导致 OAT 检查报错 License Header Invalid 2. **codespell 排除范围扩展** — 在 --skip 参数中新增 *.md,避免对 Markdown 文档进行拼写检查(文档中包含大量技术术语和中文内容,误报率高) ### 触发原因 首次提交时 OAT 扫描结果: [OAT] Found 1 compliance issue(s): - Invalid File Type: 0 - License Header Invalid: 1 → .pre-commit-config.yaml (NoLicenseHeader) ## 提交二:补充 License ### 统计概览 - **涉及文件**: 94 个 - **文件类型分布**: | 类型 | 数量 | License 格式 | |------|------|-------------| | .py | 62 | # 注释风格 | | .sh | 14 | # 注释风格 | | .cpp | 8 | /**/ 注释风格 | | .h | 5 | /**/ 注释风格 | | .yml | 4 | # 注释风格 | | .yaml | 1 | # 注释风格 | - **模块分布**: | 模块 | 文件数 | |------|--------| | attention | 37 | | experimental | 31 | | examples | 7 | | .gitcode | 5 | | tests | 3 | | posembedding | 3 | | mc2 | 3 | | mhc | 2 | | torch_extension | 1 | | scripts | 1 | | ffn | 1 | ### License 头格式 #### Hash 风格(.sh / .py / .yaml / .yml) # ----------------------------------------------------------------------------------------------------------- # Copyright (c) 2025 Huawei Technologies Co., Ltd. # This program is free software, you can redistribute it and/or modify it under the terms and conditions of # CANN Open Software License Agreement Version 2.0 (the "License"). # Please refer to the License for details. You may not use this file except in compliance with the License. # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. # See LICENSE in the root of the software repository for the full text of the License. # ----------------------------------------------------------------------------------------------------------- #### C 风格(.cpp / .c / .h / .hpp) c /** * Copyright (c) 2025 Huawei Technologies Co., Ltd. * This program is free software, you can redistribute it and/or modify it under the terms and conditions of * CANN Open Software License Agreement Version 2.0 (the "License"). * Please refer to the License for details. You may not use this file except in compliance with the License. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. * See LICENSE in the root of the software repository for the full text of the License. */ ### 处理规则 | 场景 | 处理方式 | |------|---------| | 普通文件无 License | 在文件顶部添加 License 头 | | 文件有 shebang(#!/bin/bash) | License 插入在 shebang 之后 | | 文件有编码声明(# -*- coding: utf-8 -*-) | License 插入在编码声明之后 | | License 最后一行与代码之间 | 保留一个空行分隔 | | C 风格 */ 后 | 保留一个空行分隔 | | 空 __init__.py(0 字节) | 不添加 License,保持原样 | | 已有小写 copyright 的文件 | 不重复添加(识别为已有 License) | ### 额外修复 #### 1. 双 License 清理 以下 3 个文件原本同时包含 CANN License 和 Apache 2.0 License,删除了 Apache 2.0 部分: - scripts/util/insert_op_info.py - examples/add_example/op_kernel_aicpu/add_example_aicpu.cpp - examples/add_example/op_kernel_aicpu/add_example_aicpu.h #### 2. 格式规范化 - 所有 C 风格文件 */ 后确保有空行 - 所有 Hash 风格文件 License 块 # --- 后确保有空行 - 修复了 2 个文件(golden.py、golden_src.py)License 后的空格行替换为真正的空行 ### 排除范围 以下目录/文件未做修改: - build/ — 构建产物 - .git/ — Git 内部文件 - third_party/ — 第三方依赖 - */3rd/ — 第三方子模块 - oat_reports/ — OAT 扫描报告 - torch_extension/build/ — 构建产物 - 空 __init__.py(0 字节)— Python 包标识文件,无需 License ## 验证结果 整改完成后,对提交中所有 94 个文件进行了 5 项检查: | 检查项 | 结果 | |--------|------| | 1. 是否包含 Copyright Huawei 标识 | 全部通过 | | 2. 是否存在重复 Copyright | 全部通过 | | 3. C 风格 */ 后是否有空行 | 全部通过 | | 4. Hash 风格 # --- 后是否有空行 | 全部通过 | | 5. shebang/encoding 是否保持在第 1 行 | 全部通过 | See merge request: cann/ops-transformer!5437 | 13 小时前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
fix(KvRmsNormRopeCache): 修复Norm模式cache校验缺失与regbase两模板的cache越界写、写错页、整行漏写等缺陷 Co-authored-by: qianzehong<qianzehong@huawei.com> # message auto-generated for no-merge-commit merge: !8690 merge fix/kvrms-norm-cache-bn-check into master fix(KvRmsNormRopeCache): 修复Norm模式cache校验缺失与regbase两模板的cache越界写、写错页、整行漏写等缺陷 Created-by: qianzehong Commit-by: qianzehong Merged-by: cann-robot Description: ## 描述 对 KvRmsNormRopeCache 的 Norm 模式 host 校验与两个 regbase 模板(arch35 的 full_load TilingKey 10000 / recompute TilingKey 20000)做全量检视后,修复其中一组缺陷。它们的共性是**算子返回 SUCCESS,但 cache 被写错位置、漏写、或写到 cache 分配的内存之外**,且现有用例完全没有覆盖(UT 的 Norm 用例全部为 Skv=Scache=1,ST 中 Norm 模式无任何用例)。 ### 1. Norm 模式下 cache 的 B 维度校验缺失 → 静默越界写 cann/ops-transformer!3349 放开 Norm 模式 cache 的 N 维度校验时,把 B 维度的校验也一并删成了 OP_LOGW 警告(该 PR 描述中只提到放开 N)。Norm 下 kernel 按 (b * N + n) * cacheLength * D 线性寻址,当 cache 的 B*N 小于 kv 的 B*N 时(如 kv B=4、k_cache 第 0 轴为 1),b >= Bcache 的行会写到 cache 之外,而 tiling 不报错。 改为按**线性容量**校验:cacheB * cacheN < batchSize * numHead 时报错拦截;乘积足够但 B/N 拆分方式与 kv 不同(如 cache 传 [1,B,S,D]、kv 为 [B,1,S,D],二者是同一段线性内存)仍然放行,保留 !3349 放开 BN 维度的本意。 ### 2. recompute 模板 Norm 分支的 batch stride 用错了轴 recompute 用 seqLength(Skv) 作为 cache 的 batch stride,而 full_load(regbase_full_load.h)和 b1sd(b16_b1sd.h)用的都是 cacheLength(Scache)。cache 形状为 [Bcache, N, Scache, D],每个 batch 占 Scache * D,stride 必须是 cacheLength。Skv != Scache 时(decode 场景 Skv=1、Scache=128),batch 1..3 的数据被写进 batch 0 的段里。 **1 和 2 互相掩盖**:recompute 用错的小 stride 恰好使缺陷 1 的越界偏移落回合法区间,因此缺陷 1 在 recompute 路径上表现为静默写错数据而非崩溃;stride 改正后,缺陷 1 的 shape 立即变成真实越界。故必须一起修。 ### 3. recompute 的 PA_BLK_NZ 分支拿 index 的位置当页号 → block table 失效 ScatterBlkUpdateV/K 的 NZ 分支用 idx(index 张量里的**位置**)算 gmOffset,而不是 blockOffset(index 的**值** / blockSize,即 block table 查出的页号)——blockOffset 算了却没用。PA_BLK_BNSD 分支用的就是 blockOffset,full_load 用的是 pageId = pageOffset / blockSize,只有 recompute 的 NZ 分支写错。 ### 4. NZ 场景 dk 的半宽对齐缺口 → 整行 k_cache 不写 NZ 下 cache 按 dk0(32B) 分形排布,而 recompute 的 RoPE 按 rotate-half 分前后半区分别散射,后半区偏移 gmOffset + dk / 2 * blockSize 只有在 dk / 2 是 dk0 整数倍时才落在分形块边界上。host 原先只校验 dk % dk0 == 0,于是 fp16 cache + dk=16(或 int8 cache + dk=32)时散射循环 tmpFactor / dk0 整除截断为 0,**整行 k_cache 一个字节都不写**。 新增 dk % (2 * dk0) == 0 校验。该约束是 recompute 独有(full_load 整行写出,K 是整行一次 DataCopyPad,不受影响),因此校验放在 recompute 的 tiling 里。注意这会拒绝一批此前"能跑但结果错"的 shape(fp16: dk=16/48/80…,int8: dk=32/96…)。 ### 5. index 取值无上界校验 → cache GM 越界写(两个模板都有) index 的取值只判 >= 0,而 host 的 CheckIndexValid 只校验 index 的**元素个数**、不校验取值,device 侧数据 host 也无法校验。tiling 新增下发 cacheRowLimit(Norm 为 Scache,PA 系为 BlockNum * BlockSize),full_load 与 recompute 的散射写据此判上界,越界行跳过。GetCacheRowLimit() 放在 KvRmsNormRopeCacheTilingBase 供两个模板共用。 full_load 优先级更高(2000 < 3000),D 轴装得下 UB 时全部走 full_load,即缺防御的反而是主命中路径。 ### 6. recompute 的 xPowBuffer 按 sizeof(T_KV) 分配却按 float 的两段使用 → UB 越界写 InitBuffer(xPowBuffer, 2 * ubFactor * sizeof(T_KV)),但里面按 xPowLocal2 = xPowLocal1[ubFactor] 的两段 float 使用。T_KV 只支持 fp16/bf16(2B),实分配恒为所需的一半,第二段整段落在 buffer 之外,dv > ubFactor(即本模板存在的前提)就会踩。 量化实例下紧邻 xPowBuffer 之后的正是 kScaleOffsetQueue,**每一轮二分折叠都会踩坏 k 的 scale/offset**。之前一版描述写作"目前没有可观测的失效"并不准确——上板改前改后输出一致,是因为被踩脏的值在被读之前又被 DataCopyPad 从 GM 重新载入盖掉了(属**被掩盖**,而非未踩踏)。改为按 sizeof(float) 分配,host 的 UB 预算份数同步 22 → 24(CONST_ELEVEN → CONST_TWELVE),代价是 ubFactor 缩水约 8%。 该 buffer 同时被 RoPE 路径复用作 tmpBufferPtr(DIST_DINTLV_B32 一次读 2×VL = 512B)。扩容后其隐含约束 2 * ubFactor * sizeof(float) >= 512 即 ubFactor >= 64 恒满足(ubFactor 对齐到 64=VL_FP32);改前 4 * ubFactor >= 512 需 ubFactor >= 128,本 PR 顺带把这条隐式约束放宽了一倍。 ### 7. full_load 的 outUbSize 记账判据与 kernel 布局判据不同源 → UB 越界写约 2 倍 host 按 vScaleType_ > 0(可选输入 c_kv_scale 是否存在)决定 outQueue 每元素预留字节数,而 kernel 按 T_V_CACHE 是否量化 dtype(即 ckv_cache 的实际 dtype)决定实际写入宽度。这两个判据**并不等价**,且全仓无校验把它们绑定:CheckInputDtype 只约束了"量化 dtype 的 cache ⟹ scale 必须存在且为 FLOAT"这一个方向。 于是 {ckv_cache 为非量化 dtype、却传了 c_kv_scale、isOutputKv=false} 能通过全部 host 校验,此时 vScaleType_ > 0 → host 只按 dvB8Align * 1B 预留,而 kernel 走 RmsNormVF 按 dvAlign * sizeof(T_KV) = 2B/元素 写 outQueue → **UB 越界写约 2 倍**(dv=512、dk=64 时 outUbSize=512,实际需 1024)。 isOutputKv == false 分支此前按 3B/元素预留(dvB8Align * kvDtypeSize_ + dvB8Align * 1B,与 isOutputKv == true 分支表达式完全相同——属复制后漏改),富余掩盖了该错配;本 PR 把该分支收紧到 1B/元素(kernel 直接把 outQueue 整块当量化区用、无 T_KV 中间区,见 regbase_full_load.h:653)后,错配即暴露为真实越界。 修复:host 的 K/V outUbsize 记账改用与 kernel if constexpr **相同的判据** CheckCacheIsQuant(cache dtype),使记账与布局严格同源。对合法量化配置行为不变(量化 cache 必带 scale,两判据同时为真),只在错配组合上把预留改回 2B/元素。收紧 isOutputKv=false 分支的预留会放大 ubFactor(典型 MLA 配置 dv=512、dk=64、fp16、K/V 均量化、isOutputKv=false 下 ubFactor 提升约 36%),减少搬运循环并降低降级到 recompute 的概率。 ### 8. full_load 非量化路径对未 AllocTensor 的 LocalTensor 取址 非量化分支下 realKScaleLocal 等 4 个 LocalTensor 未经 AllocTensor 就调用 GetPhyAddr(),改为仅在量化 if constexpr 分支内取址。当前因 RopeVF 不接这些指针而未被解引用,属潜伏隐患。 ### 9. PA_BLK 模式下 blockSize=0 → tiling 整数除零,宿主进程 SIGFPE 崩溃 CheckIndexValid 的 PA_BLK 分支执行 page_num = (seqLen + pageSize - 1) / pageSize,除法前无 pageSize > 0 校验;唯一的 blockSize_ <= 0 守卫位于 GetCacheRowLimit,由模板层在 DoOpTiling 中调用,**晚于** base 层 GetShapeAttrsInfo 里的 CheckIndexValid,永远来不及生效。k_cache 的 dim1(blockSize) 为 0 时(PA_BLK_BNSD / PA_BLK_NZ),整数除零使**宿主进程直接 SIGFPE 核心转储**,而非返回错误码。修复为在除法前补 pageSize > 0 校验,畸形输入优雅拒绝(561002)。 ### 附:新增的 bool 返回函数判空写法 GetCacheRowLimit / CheckNzHalfDkAligned 都是返回 bool 的新增函数,内部判空**不能**用 OP_CHECK_NULL_WITH_CONTEXT——它失败时 return ge::GRAPH_FAILED,而 graphStatus = uint32_t、GRAPH_FAILED = 0xFFFFFFFF,隐式转 bool 是 true(= 校验通过),会让调用方的返回值校验失效(GetCacheRowLimit 甚至会下发 cacheRowLimit = 0 使全部散写被静默跳过)。已改用 OP_CHECK_IF(ptr == nullptr, ..., return false);CheckCacheValid / CheckNzHalfDkAligned 报错分支取 shape 前也补了判空。 ## 关联的Issue 关联 Issue #3750 (https://gitcode.com/cann/ops-transformer/issues/3750) ## 测试 **UT**:tests/ut/op_host/test_kv_rms_norm_rope_cache_tiling.cpp 新增 12 条 Ascend950 tiling 用例——Norm cache 的 B/N 三条(对齐 / BN 重排放行 / 容量不足拒绝)、recompute+PA_NZ 的 dk 对齐正反两条、cacheRowLimit 取值两条(Norm=Scache、PA 系=BlockNum×BlockSize)、PA_BLK blockSize=0 除零拦截、非量化 cache 传 scale 时 outUbSize 记账一条等。**ophost UT 52/52 通过**。 新增的两条断言型用例(cacheRowLimit、outUbSize)以 tilingData 掩码比对直接校验字段,并做过区分力自检——将判据改回缺陷版时 UT 如实 FAILED 并打印实际值(如 outUbSize 缺陷版打印 128、期望 256,正好是 2 倍差),确认非"掩码全跳过"的空校验。 **Ascend950 上板验证**(自建包装为唯一 vendor 并确认 load_priority;cos=1、sin=0、每个 batch 的 kv 填入可识别常数、cache 预填哨兵 7.0,直接观察落点与数值): | 用例 | 修复前 | 修复后 | |---|---|---| | Norm,Skv=1 / Scache=8,多 batch | batch 数据落进 batch 0 的段(batch stride 用了 seqLength) | 各 batch 写入各自的段,数值正确 | | Norm,index 取越界值(落在相邻 batch 行内) | b0 的数据被静默写进 b1 的行,算子返回 SUCCESS | 该行被跳过,相邻 batch 不受影响(full_load 与 recompute 均验证) | | PA_BLK_NZ,block table 非恒等映射(index 值 48/16 ⇒ 页 3/1,位置为 0/1) | 写进页 **0/1**(用了位置) | 写进页 **3/1**(用了 block table) | | PA_NZ + fp16 cache + dk=16 | k_cache 四页全零(整行不写),算子返回 SUCCESS | tiling 拒绝(561002) | | 非量化 ckv_cache + 传 c_kv_scale + isOutputKv=false | outUbSize 只按 1B/元素预留,kernel 按 2B/元素写(UB 越界约 2 倍) | outUbSize 按 2B/元素记账,落点数值均正确 | Ascend950 kernel 编译通过。 > **代码检视**:本 PR 经多维度检视(安全编码 / API 使用 / RegBase 专项 / 内存与索引),31 条条例中 29 条 PASS。发现并修复 2 条本 PR 引入/放大的缺陷:上表第 5 行的 outUbSize 记账错配(HIGH),以及新增 bool 函数误用 OP_CHECK_NULL_WITH_CONTEXT 的极性反转(见"附")。均已计入本次提交并补充上板/UT 验证。 > **路径可达性提示**:两个 regbase 模板的 IsCapable 完全相同(均为 return isRegbase_),recompute **只能**经 full_load 返回 GRAPH_PARAM_INVALID 被注册器软拒绝后进入。按 ubFactor 公式解出的降级阈值约 dv > 17993(非量化)/ dv > 10474(最坏量化配置),而 MLA 典型 dv = 512——即按文档典型 shape,key 20000 不可达;recompute 相关修复(缺陷 2/3/4/6)需构造 dv >= 18048 的非业务 shape 才能触达。 ## 文档更新 无需更新文档:aclnnKvRmsNormRopeCache.md 中 cache 形状 [Bcache,N,Scache,Dk] 与 index 取值范围 [0,Scache) 的定义本身即隐含本 PR 恢复的约束。 ## 遗留 - 910B / 910_93 的 DS 模板(kv_rms_norm_rope_cache_ds_tiling.cpp)从未调用 cache 的 B/N 校验,存在同类问题。因涉及存量用例的行为变更(静默越界 → 显式报错),本 PR 不涉及,已在 Issue #3750 中记录。 - 存量的多个 bool 返回校验函数(CheckCosSinValid、CheckGammaValid、CheckKCacheValidPA、CheckVCacheValidPA、CheckInputDtype 等)同样在内部使用 OP_CHECK_NULL_WITH_CONTEXT,是同一极性根因的存量实例。不在本 PR 变更范围,建议随 Issue #3750 单独澄清。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!8690 | 13 小时前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/ 和 common/src/tiling_base/ 合并到 common/include/op_host/ 和 common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!4870 | 2 个月前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
docs下基本概念文件名从中文改为英文+同时修改link Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9042 merge master into master docs下基本概念文件名从中文改为英文+同时修改link Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3899](https://gitcode.com/cann/ops-transformer/issues/3899) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!9042 | 1 天前 | |
更新license Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge lic into master 更新license Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新license <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!568 | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 天前 | ||
| 1 天前 | ||
| 13 小时前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 13 小时前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 2 个月前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 6 个月前 |