| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
md大模型检测低错修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9420 merge master into master md大模型检测低错修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md aidd大模型检测低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5254 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9420 | 8 天前 | |
docs: 补充 scatter_list example 并修正 scatter_update example 命名 Co-authored-by: chenxingyu18<chenxingyu18@huawei.com> # message auto-generated for no-merge-commit merge: !8134 merge docs/add-scatter-list-aclnn-example into master docs: 补充 scatter_list example 并修正 scatter_update example 命名 Created-by: chenxingyu18 Commit-by: chenxingyu18 Merged-by: cann-robot Description: ## 描述 本 PR 合并两处 example 相关改动(均针对 issue #4212 的 example 补全/规范化): **1. scatter_list — 新增 aclnn api example** 新增 index/scatter_list/examples/test_aclnn_scatter_list.cpp,覆盖两段式接口完整调用流程 (Init → 构造 aclTensorList/aclTensor → GetWorkspaceSize → 执行 → 同步 → 打印 → 释放)。 调用签名已与生成接口真源 index/scatter_list/op_host/scatter_list_def.cpp 交叉核对一致 (inputs: var/indice/updates/mask;attrs: reduce 默认 "update"、axis 默认 -2)。 **2. scatter — inplace example 改名** index/scatter/example/test_aclnn_scatter.cpp 实际只测试了 aclnnInplaceScatterUpdate (scatter_update op 仅暴露该 inplace API,**不存在**非 inplace 的 aclnnScatterUpdate),文件名有歧义。 重命名为 test_aclnn_inplace_scatter_update.cpp,名实相符,并与 tests/ut/op_api/test_aclnn_inplace_scatter_update.cpp 命名对齐。 ## 关联的Issue #4212 ## 测试 - **scatter_list example**:与 scatter_list_def.cpp 输入/输出/属性顺序逐项核对;pre-commit 门禁(无行尾空格、末尾换行)通过。 - **scatter 改名**:git mv 保留历史;同步更新文件内 \file 注释;仅改名 + 注释,无逻辑改动。 - 两处 example 均不进构建(examples/example 目录无 CMakeLists,同仓内既有约定)。 ## 文档更新 - 新增 index/scatter_list/examples/test_aclnn_scatter_list.cpp - 重命名 index/scatter/example/test_aclnn_scatter.cpp → test_aclnn_inplace_scatter_update.cpp ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8134 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 1 个月前 | |
scatter tiling拦截axis用负数表示首轴情况 Co-authored-by: zhang-wenbo-beat<zhangwenbo67@huawei.com> # message auto-generated for no-merge-commit merge: !5108 merge scatter_axis into master scatter tiling拦截axis用负数表示首轴情况 Created-by: zhang-wenbo-beat Commit-by: zhang-wenbo-beat Merged-by: cann-robot Description: ## 描述 Scatter 算子 tiling 阶段对 axis 的校验存在缺陷:原 GetShapeAttrsInfo 仅检查 axis == 0,但**负数 axis 会绕过该校验**。例如 1 维输入传 axis=-1(语义上等价首轴 0),-1 != 0 通过检查,随后在 MergeDims 中归一化为 0,而 MergeDims 仅做范围校验(tmpAbsAxis < 0 || tmpAbsAxis >= oldDims)不复查 == 0,导致 axis=0 漏到下游引发越界访问。 **修复方法**(文件 index/scatter/op_host/arch35/scatter_tiling_arch35.cpp): 1. **GetShapeAttrsInfo 前置完整校验**:在 axis == 0 判断前先对负数 axis 归一化(axis < 0 ? inputDims + axis : axis),并将"首轴不支持"与"范围越界"合并为单一校验 axis <= 0 || axis >= inputDims。归一化后负数表示首轴的语义被正确识别并拦截,过于负的 axis 也在前置拦截,报错信息更靠前。 2. **MergeDims 去冗余**:移除原先 oldDims/tmpAbsAxis 的负数归一化与重复范围校验,简化为 size_t absAxis = size_t(axis)。由于 GetShapeAttrsInfo 调用先于 GetShapes/MergeDims(基类 DoTiling 调用顺序),此处 axis 已在 [1, inputDims) 范围内,后端只负责计算,职责分明。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5190 ## 测试 - 针对负数/零 axis(如 1 维输入 axis=-1)、过界 axis(如 axis >= inputDims)场景进行测试,均可正常拦截。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5108 | 8 天前 | |
AscendC接口兼容性变更整改 Co-authored-by: lihang_13123<lihang106@h-partners.com> # message auto-generated for no-merge-commit merge: !8316 merge scatter into master AscendC接口兼容性变更整改 Created-by: lihang_13123 Commit-by: lihang_13123 Merged-by: cann-robot Description: ## 描述 AscendC部分接口兼容性变更,为与接口文档保持一致,修改部分算子对应接口。修改后各算子二进制和修改前一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 修改后各算子二进制和修改前一致,算子调用OK,冒烟OK ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子AscendC接口兼容性整改 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8316 | 17 天前 | |
新增算子st用例 Co-authored-by: hw-zhangpanpan<zhangpanpan5@huawei.com> Co-authored-by: yu_qinfei<yuqinfei1@h-partners.com> Co-authored-by: ligen<ligen75@h-partners.com> Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !7825 merge st into master 新增算子st用例 Created-by: yefeicoding Commit-by: yefeicoding;yu_qinfei;hw-zhangpanpan;李根;ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4269 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充st ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7825 | 1 个月前 | |
新增scatter算子支持Ascend950 Co-authored-by: Huang-Peng<huangpeng98@huawei.com> # message auto-generated for no-merge-commit merge: !1267 merge scatter-tran into master 新增scatter算子支持Ascend950 Created-by: Huang-Peng Commit-by: Huang-Peng Merged-by: cann-robot Description: ## 描述 新增scatter算子在Ascend950的实现 将tensor updates中的值按指定的轴axis和索引indices逐个更新tensor data中的值。该算子为自定义算子语义,无对应的tensorflow或pytorch接口,在Ascend950上需要新增MapIndex算子的开发。需求开源Vector团队。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/778 ## 测试 本地自验证、二级冒烟 ## 文档更新 新增README.md和aclnnInplaceScatterUpdate.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1267 | 6 个月前 | |
docs(lamb/scatter): 补齐 16 个算子 README 产品支持表的 A2/A3 标记 Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !9223 merge fix/readme-a2a3-support into master docs(lamb/scatter): 补齐 16 个算子 README 产品支持表的 A2/A3 标记 Created-by: zl_hw Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 这 16 个算子在 A2(ascend910b)与 A3(ascend910_93)上均有可用实现,但各自 README 的「产品支持情况」表把这两行标成了 ×,与事实不符——从资料上看不出这些算子在 A2/A3 可用。本 PR 将这两行订正为 √。 判定依据(两条同时成立才改,逐个算子核对): 1. canndev ops/built-in/tbe/op_info_cfg/ai_core/{ascend910b,ascend910_93}/aic-*-ops-info.ini 中存在该 OpType 的注册段; 2. canndev ops/built-in/tbe/impl/(或 impl/dynamic/)下存在对应的实现文件。 涉及算子: - optim:lamb_apply_optimizer_assign、lamb_apply_weight_assign、lamb_next_m_v、lamb_next_m_v_with_decay、lamb_next_right、lamb_update_with_lr、lamb_update_with_lr_v2 - index:scatter、scatter_add、scatter_div、scatter_elements、scatter_max、scatter_min、scatter_mul、scatter_nd、quant_update_scatter 未改动项:仅改「Atlas A3 训练系列产品/Atlas A3 推理系列产品」与「Atlas A2 训练系列产品/Atlas A2 推理系列产品」两行的取值;「Atlas 200I/500 A2 推理产品」(名称中同样含 A2)及其余产品行、README 正文均未改动。 一致性说明:同目录下 scatter_nd_sub、scatter_non_aliasing_add、scatter_max_with_argmax 等算子同样是本仓 def 只注册 ascend950、A2/A3 实现在 canndev,其 README 本就标为 √;本次改动与既有写法保持一致。 ## 关联的Issue - 关联Issue #5164 (https://gitcode.com/cann/ops-nn/issues/5164) ## 测试 本 PR 仅涉及 README 文档,无代码改动,不涉及编译与用例执行。核对方式: 1. 脚本逐算子比对 canndev 的 ops-info 注册段与 impl 实现文件,确认 16 个算子在 ascend910b/ascend910_93 均命中;改后复跑同一脚本,同类算子中已无遗漏; 2. 核对 git diff,被修改的行全部为 <term>Atlas A2/A3 …</term> 两行,未触及其他产品行与正文。 ## 文档更新 更新了上述 16 个算子目录下的 README.md(每个文件 2 行,共 32 行)。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9223 | 10 天前 |
Scatter
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能: 将tensor updates中的值按指定的轴axis和索引indices逐个更新tensor data中的值。
-
示例: 该算子有3个输入和一个属性:data,updates,indices和axis,其中data是待更新的tensor,updates是存储更新数据的tensor,indices表示更新位置, axis是指定的更新维度。当indices为1维,存在以下两种场景:
场景一: indices为1维,axis指定更新的维度shape为1,indices指定的是每个batch维度(最高维)在axis维度的偏移。
样例输入: data:(a, b, c, d) updates:(a, b, 1, d) indices:(a,) axis = -2data[i][j][indices[i]][k] = updates[i][j][0][k] # if dim=-2 data[i][j][k][indices[i]] = updates[i][j][k][0] # if dim=-1场景二: indices为1维,axis指定更新的维度shape大于1,indices指定的是每个batch维度(最高维)在axis维度的偏移。
样例输入: data:(a, b, c, d) updates:(a, b, e, d), indices[i] + e <= c indices:(a,) axis = -2 or 2data[i][j][indices[i]+k][l] = updates[i][j][k][l] # if dim=-2 data[i][j][k][indices[i]+l] = updates[i][j][k][l] # if dim=-1
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_scatter | 通过aclnnInplaceScatterUpdate接口方式调用Scatter算子。 |