| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
add range mod adj pow one_hot Co-authored-by: Nicooo-Wang<wangtianle3@huawei.com> # message auto-generated for no-merge-commit merge: !541 merge move-ops into master add range mod adj pow one_hot Created-by: Nicooo-Wang Commit-by: Nicooo-Wang;王天乐 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!541 | 8 个月前 | |
add range mod adj pow one_hot Co-authored-by: Nicooo-Wang<wangtianle3@huawei.com> # message auto-generated for no-merge-commit merge: !541 merge move-ops into master add range mod adj pow one_hot Created-by: Nicooo-Wang Commit-by: Nicooo-Wang;王天乐 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!541 | 8 个月前 | |
range等算子资料更新 Co-authored-by: suxiaolan2000<jiangyulong10@huawei.com> # message auto-generated for no-merge-commit merge: !697 merge math同步 into master range等算子资料更新 Created-by: suxiaolan2000 Commit-by: suxiaolan2000 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!697 | 8 个月前 | |
bincount等5个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !5585 merge ascend350_adapt_w2 into master bincount等5个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 5个算子新增ascend350平台支持:bincount、range、adjacent_difference、dynamic_stitch、atan2。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象 - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350/arch35 - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json(dynamic_stitch 上游命名为 dynamic_stitch.json,维持原名) - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(bincount/range/adjacent_difference 三条目 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子(dynamic_stitch/atan2)不新增登记,避免影响默认编译选项行为 ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:5/5 算子通过(产物 .o、run 包产出、json 选项注入均验证;dynamic_stitch 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3138 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(math/atan2/op_api/aclnn_atan2.cpp GetDtypeSupportList,master 未覆盖,由本 MR 修改);bincount/range/adjacent_difference/dynamic_stitch 复查无区间判断违规(range 的等值判断链均已带 IsRegBase()) - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegBase()(显式覆盖 regbase 芯片) - 行为零变化:950 原区间命中(true)→现 IsRegBase()(true);350 原被区间覆盖(true)→现 IsRegBase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## op_graph 层适配 - 全量排查两波算子目录 op_graph 层(融合 pass/graph_infer/plugin) - 🔴 修复 1 处:range/op_graph/range_graph_infer.cpp:37 DOUBLE 输入降级 FLOAT 判断 == "Ascend950" 增加 || == "Ascend350"(原 350 上 DOUBLE 输入输出 DOUBLE,kernel 不支持,与 950 行为分叉) See merge request: cann/ops-math!5585 | 3 天前 | |
refactor: arch35算子Reg级API重命名迁移 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !4468 merge work_8 into master refactor: arch35算子Reg级API重命名迁移 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 将 arch35 架构下 40 个算子 kernel 文件中的 Reg 级 API 名称从旧命名迁移到新命名,与已迁移的算子(xlogy、dawsn、rint、cdist、reduce_all、power 等)保持一致。 涉及的 API 重命名映射: - __local_mem__ → __ubuf__(地址空间限定符统一) - Reg::DataCopy (LoadDist) → Reg::LoadAlign(UB 到寄存器的对齐加载) - Reg::DataCopy (StoreDist) → Reg::StoreAlign(寄存器到 UB 的对齐存储) - Reg::DataCopyUnAlignPre → Reg::LoadUnAlignPre - Reg::DataCopyUnAlign → Reg::LoadUnAlign - Reg::MaskPack → Reg::Pack - Reg::MaskUnPack → Reg::UnPack - Reg::MaskAnd → Reg::And(与已有 Reg::And 通过重载统一) - Reg::CompareScalar → Reg::Compares - Reg::UnalignReg → Reg::UnalignRegForLoad 涉及的算子包括:clip_by_value、clip_by_value_v2、adjacent_difference、bitwise_xor、div、floor_div、floor_mod、lerp、logical_or、mod、pow、signbit、tanh_grad。 此外,adjacent_difference 算子中存在原有的 __local_mem__/__ubuf__ 地址空间限定符不一致问题(左侧声明与右侧转换不匹配),本次重命名一并修复。 ### 改动原因 AscendC SDK 更新了 Reg 级 API 命名规范,将原有的 DataCopy 拆分为语义更明确的 LoadAlign/StoreAlign,并移除了 Mask 系列 API 的 "Mask" 前缀(通过重载统一)。本 PR 将相关算子迁移至新命名。 ### 改动方法 纯机械重命名,无逻辑变更。所有改动均为 1:1 的 API 名称替换,增删行数完全对称(+417 -417)。Load/Store 语义区分基于原有模板参数(LoadDist → LoadAlign, StoreDist → StoreAlign)和参数顺序(寄存器在前为 Load,地址在前为 Store)。 ## 关联的Issue - #2529 ## 测试 待补充:二级冒烟测试、算子泛化测试。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:API 重命名重构 See merge request: cann/ops-math!4468 | 1 个月前 | |
feat: 补充adjacent_difference算子L0级 UT Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !4043 merge feat/ut_adjacent_difference into master feat: 补充adjacent_difference算子L0级 UT Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 描述 补充adjacent_difference算子的op_api和op_host infershape级别单元测试,覆盖以下场景: - 各数据类型测试 - 不同维度测试 - 异常场景测试:nullptr输入输出、shape不匹配等 ## 关联的Issue #2465 ## 测试 - 编译验证:bash build.sh -u --soc=ascend950 --ops=adjacent_difference --noexec 编译通过 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:UT补充 **关联 Issue:** #2465 See merge request: cann/ops-math!4043 | 1 个月前 | |
bincount等5个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !5585 merge ascend350_adapt_w2 into master bincount等5个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 5个算子新增ascend350平台支持:bincount、range、adjacent_difference、dynamic_stitch、atan2。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象 - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR 增加 ascend350/arch35 - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json(dynamic_stitch 上游命名为 dynamic_stitch.json,维持原名) - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(bincount/range/adjacent_difference 三条目 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子(dynamic_stitch/atan2)不新增登记,避免影响默认编译选项行为 ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:5/5 算子通过(产物 .o、run 包产出、json 选项注入均验证;dynamic_stitch 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3138 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(math/atan2/op_api/aclnn_atan2.cpp GetDtypeSupportList,master 未覆盖,由本 MR 修改);bincount/range/adjacent_difference/dynamic_stitch 复查无区间判断违规(range 的等值判断链均已带 IsRegBase()) - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegBase()(显式覆盖 regbase 芯片) - 行为零变化:950 原区间命中(true)→现 IsRegBase()(true);350 原被区间覆盖(true)→现 IsRegBase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## op_graph 层适配 - 全量排查两波算子目录 op_graph 层(融合 pass/graph_infer/plugin) - 🔴 修复 1 处:range/op_graph/range_graph_infer.cpp:37 DOUBLE 输入降级 FLOAT 判断 == "Ascend950" 增加 || == "Ascend350"(原 350 上 DOUBLE 输入输出 DOUBLE,kernel 不支持,与 950 行为分叉) See merge request: cann/ops-math!5585 | 3 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 2 天前 |
AdjacentDifference
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | × |
| Atlas A2系列产品 | × |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
-
算子功能:比较输入张量相邻元素的差异,若相邻元素相同,返回0,否则返回1。
-
计算公式:
outi=(xi==xj? 0:1).to(ydtype) j=i−1out_i = {(x_i == x_j ?\ 0 : 1)}.to(y_dtype) \ j = i - 1 outi=(xi==xj? 0:1).to(ydtype) j=i−1
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行AdjacentDifference计算的入参,公式中的x。 | FLOAT、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64 | ND |
| y_dtype | 输入 | 属性,指定输出类型,公式中的y_dtype。 | INT32 | ND |
| y | 输出 | 待进行AdjacentDifference计算的出参,公式中的out。 | INT32、INT64 | ND |
- Atlas训练系列产品、Atlas推理系列产品:不支持BFLOAT16。
约束说明
- 无。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式 | test_geir_adjacent_difference | 通过算子IR构图方式调用AdjacentDifference算子。 |