| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
批量修改ws=0 Co-authored-by: ligen<ligen75@h-partners.com> # message auto-generated for no-merge-commit merge: !6212 merge master into master 批量修改ws=0 Created-by: ligen75 Commit-by: ligen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 批量修改算子workspace=0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3013 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 自验通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6212 | 8 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
适配ascend350 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6165 merge dvlite into master 适配ascend350 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配ascend350 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3439](https://gitcode.com/cann/ops-math/issues/3439) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6165 | 10 天前 | |
修改aclnnAcosh接口文档以及KlDivV2算子文档 Co-authored-by: xiu_ling_wang<wangxiuling2@h-partners.com> # message auto-generated for no-merge-commit merge: !6506 merge doc-md into master 修改aclnnAcosh接口文档以及KlDivV2算子文档 Created-by: xiu_ling_wang Commit-by: xiu_ling_wang Merged-by: cann-robot Description: ## 描述 修改aclnnAcosh接口文档以及KlDivV2算子文档 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3501 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6506 | 2 天前 | |
[acosh_grad] quality-hardening:算子质量加固修复 Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6196 merge acosh_grad_quality_hardening into master [acosh_grad] quality-hardening:算子质量加固修复 Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [acosh_grad] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 一、变更概述 本 PR 针对 AcoshGrad(acosh_grad)算子 2026-09-23 准入扫描(白盒模式,总体结论 FAIL,唯一 FAIL 项为 1.4 资料-缺少动态 shape 约束说明,另有 X2 规则级 WARN)与代码检视(125 条例,FAIL 1 / SUSPICIOUS 1 / 风格违规 3 项可修 / 设计一致性 4 维不一致)发现的问题,完成如下整改: - 准入 1.4:README 补充动态 shape/动态 rank 约束说明(消除唯一 FAIL); - 准入 X2:Tiling 新增私有格式显式拒绝(origin/storage 双查)+ 私有格式异常 UT×3(消除 WARN); - 准入 X7 建议:README 补充空 Tensor 行为说明; - 检视 LOG-1:裸 OP_LOGE 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 结构化预定义宏; - 检视 RED-1:ubBlockSize 增加显式零值守卫; - 检视 S4/S5/S6、D8:DESIGN.md v1.1 与实现同步(GEIR-only 交付姿态、TilingData 3 字段、简化切分算法、动态 shape 说明、248KB 格式修正); - 风格 STYLE-2.1/2.4/3.3:行宽折行、if 补齐大括号、清理开发阶段编号注释; - 覆盖度 P5:归档用例补齐(L2 异常用例 +7、功能缺口用例 +10)。 变更范围:代码仓 quality-hardening-acosh_grad/ops-math(分支 acosh_grad_quality_hardening,4 笔提交)+ 交付件仓 operator-artifacts/AcoshGrad/(提交 625b165 本算子部分)。 ## 二、分类修改清单 ### (一)代码修复(ops-math,逐条对应报告条目) | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission X2 / P2(WARN) | 新增 IsPrivateFormat()(NC1HWC0/FRACTAL_Z/NDC1HWC0/FRACTAL_Z_3D/FRACTAL_NZ/NC1HWC0_C04),y/dy/z origin/storage 双查显式拒绝,报错走 OP_LOGE_FOR_INVALID_FORMAT_WITH_REASON | op_host/arch35/acosh_grad_tiling_arch35.cpp:51-55、:112-137 | | code-review LOG-1(FAIL) | 两处裸 OP_LOGE("coreNum is 0"/"ubSize is 0") 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON 结构化宏 | op_host/arch35/acosh_grad_tiling_arch35.cpp:63-68 | | code-review RED-1(SUSPICIOUS) | ubBlockSize 增加显式零值守卫(OP_LOGE_FOR_INVALID_VALUE_WITH_REASON) | op_host/arch35/acosh_grad_tiling_arch35.cpp:198-200 | | STYLE-2.1 | 两处超 120 字符行按运算符放行末折行 | op_host/arch35/acosh_grad_tiling_arch35.cpp:78-79;op_kernel/arch35/acosh_grad_kernel.h:90 | | STYLE-2.4 | Process() 单语句 if 补齐大括号 | op_kernel/arch35/acosh_grad_kernel.h:203-206 | | STYLE-3.3 | 删除开发阶段编号注释(Step 1-7、"// 1..7 步骤"、"迭代二"),关键约束并入函数头注释 | op_host/acosh_grad_def.cpp:17;op_host/arch35/acosh_grad_tiling_arch35.cpp:139-193;op_kernel/arch35/acosh_grad_kernel.h:163-177 | ### (二)资料修复 | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission 1.4 / P1(FAIL) | README 补充动态 shape/动态 rank(rank 0~8)约束说明;DESIGN.md v1.1 同步 | math/acosh_grad/README.md:76;operator-artifacts AcoshGrad/DESIGN.md:133 | | admission X7 建议 | README 补充空 Tensor(元素数为 0 直接返回空结果)说明 | math/acosh_grad/README.md:77 | | code-review S4/S5/S6(设计一致性 ❌) | DESIGN.md v1.1 改文档迁就实现:GEIR-only 交付姿态(去除 ACLNN 接口、调用仅图模式);TilingData 简化为 3 字段(totalNum/blockFactor/ubFactor)单均分 + ubFactor 循环、末 tile 由 Kernel 处理;Tiling 算法对齐 CeilAlign/CeilDiv/FloorAlign/FloorDiv + GetUbBlockSize 实际实现 | operator-artifacts AcoshGrad/DESIGN.md:8、:60、:132、:159-169、:171-198 | | code-review D8(文档格式) | 5 处 "248 KB" 数字单位空格违规改为 248KB | operator-artifacts AcoshGrad/DESIGN.md:391-395、:454 | ### (三)用例补充 | 报告条目 | 修复内容 | 文件 | |---------|---------|------| | admission X2 / P2 | 私有格式异常 UT×3(014:y=NC1HWC0、015:dy=FRACTAL_NZ、016:z=FRACTAL_Z,均断言 GRAPH_FAILED) | math/acosh_grad/tests/ut/op_host/arch35/test_acosh_grad_tiling_arch35.cpp:344-400 | | admission P5(覆盖度缺口) | L2 异常用例 +7(dtype 异常 float64、rank 9 越界×3 dtype、NCHW 格式异常×3 dtype);功能缺口用例 +10(特殊值 ±0/inf/nan×3 dtype、空 Tensor×3 dtype、压力档、subnormal、minnormal、UB 整除) | operator-artifacts AcoshGrad/测试用例/acosh_grad_l2_exception.csv、acosh_grad_selected_100.csv | ## 三、逐 commit 摘要 ### 代码仓(ops-math,分支 acosh_grad_quality_hardening,自基线 9b3d87785 起) | commit | 主题 | 对应报告条目 | |--------|------|-------------| | f1922aaaa | 修复 acosh_grad 异常处理:LOG-1 裸 OP_LOGE 替换为 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON、RED-1 ubBlockSize 增加零值守卫 | LOG-1、RED-1 | | 5693ed64d | acosh_grad 代码风格整改:STYLE-2.1 行宽超标换行、STYLE-2.4 if 补齐大括号、STYLE-3.3 清理开发阶段编号注释(STYLE-2.3 指针声明与本仓 clang-format PointerAlignment:Left 冲突,不修改) | STYLE-2.1、STYLE-2.4、STYLE-3.3 | | 84b76176b | README 补充动态shape/动态rank与空Tensor约束说明 | admission 1.4/P1、X7 建议 | | fbf57e745 | 修复 acosh_grad 格式校验:X2 tiling 显式拒绝私有格式(NC1HWC0/FRACTAL_Z 等,origin/storage 双查)+ 新增私有格式异常 UT×3 | admission X2/P2 | ### 交付件仓(operator-artifacts,本算子部分) | commit | 主题 | 对应报告条目 | |--------|------|-------------| | 625b165 | quality-hardening 19 算子批量修复(AcoshGrad 部分):DESIGN.md v1.1 设计同步(GEIR-only、TilingData 3 字段、简化切分、动态 shape、248KB 修正)+ 测试用例归档补齐(l2_exception +7、selected_100 +10) | S4/S5/S6(文档侧)、D8、P5 | 说明:交付件仓提交 8a47e70(第二轮补修)经核验不含本算子任何文件,本 PR 不涉及。 ## 四、测试与验证 - **编译**:本环境无 NPU/编译工具链,未执行实机编译(与准入报告一致,运行时证据项 UNAVAILABLE)。本批次代码改动均为语法级局部修改(宏替换、注释清理、大括号、折行、守卫新增),不触碰计算链路(Kernel Mul→Adds(-1)→Sqrt→Div 公式未变)。 - **UT(Tiling 侧)**:归档 16 条 Tiling UT(tests/ut/op_host/arch35/test_acosh_grad_tiling_arch35.cpp:69-400),覆盖大/小 shape、多核切分、非对齐、空 Tensor、5 类失败路径(shape 不一致、dtype 不一致、不支持 dtype、输入/输出 dtype 不一致)及新增私有格式异常 3 类(014-016,模拟 TilingContext 断言 GRAPH_FAILED)。未修项明细条目 2 亦引证"代码侧已有 16 条 Tiling UT 验证,功能正确性有证据"。 - **覆盖度复测**:admission 覆盖度报告(hardening-report/admission/coverage_report.md)为 2026-09-23 修复前快照——kernel 侧 4 文件 346 用例、85.7% PASS,缺口列示 UB整除、不支持 dtype 异常、shape/rank 异常×dtype、format 异常×dtype。本批次归档用例(l2_exception.csv +7、selected_100.csv +10)已逐一补齐上述全部列示缺口;覆盖度评估器(Step 7.5)未随修复重跑,复测得分待扫描器重跑后更新。 - **GEIR 实机 / TTK**:未执行(无 NPU/TTK,admission-report.md:60 标记 UNAVAILABLE);既有精度三方报告为 09-14 修复前版本产物,修复后实机回归证据待补(见未修项明细条目 4)。 ## 五、未完成事项与限制 本 PR 遵守三条禁区决策,以下事项不在本次修复范围: 1. **ACLNN 接口不新增**:本算子维持 GEIR-only 交付姿态(CMakeLists.txt:16 ACLNNTYPE=aclnn_exclude,admission 1.3 已确认 aclnn 通路豁免)。DESIGN.md v1.1 已与实现同步,但 REQUIREMENTS.md / req_analysis.md 需求基线("ACLNN 调用 [x]"、ACLNN API 接口定义章节)未同步——属需求变更,待需求侧决策,见未修项明细条目 1。 2. **产品支持矛盾不处理**:产品支持标记不新增/不撤销(admission 1.1 已 PASS,README 6 产品与代码双向一致;旧芯片 TBE ini [AcoshGrad] 段为存量迁移注册,E3 PASS,维持现状)。 3. **canndev 不改动**:本 PR 不含任何 canndev 修改(admission E3/E4 均 PASS,无 canndev 行动项)。 其余未完成事项与限制: 4. **S5/S6 简化方案缺架构背书**:Tiling 3 字段单均分方案(改设计文档迁就代码)无人工评审记录,待架构确认;若否决需恢复 former/tail 双块切分。见未修项明细条目 2。 5. **STYLE-2.3 豁免待裁决**:指针声明符左贴类型与本仓 .clang-format PointerAlignment: Left 冲突,修改会被 pre-commit 自动回退,已有意搁置(见 5693ed64d 提交说明)。见未修项明细条目 3。 6. **无 NPU/TTK**:GEIR 实机验证与 TTK 异常测试证据未执行(UNAVAILABLE),环境就绪后需补跑私有格式拒绝路径、examples 冒烟与精度三方回归。见未修项明细条目 4。 7. **admission P3 扫描器展示缺陷**:1.6 交付件一致性实际 PASS(verification_result.csv 双"一致")但被 scan_transfer_test.py 渲染为 N/A,属外置工具缺陷,随扫描器版本修复。见未修项明细条目 5。 完整未修项明细见:guide/未修项明细/acosh_grad_未修项明细.md(条目 1-5)。 See merge request: cann/ops-math!6196 | 9 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !5676 merge master into master 完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 针对 AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack,完善可选属性、输入输出类型与形状、系数长度及接口指针校验,修正 SignBitsPack 空 Tensor 初始化及搬运分块与 Tiling 不一致的问题,优化 AddMatMatElements 广播数据复用以减少重复搬运;同时整理 Tiling 常量和 UB 空间计算,补充 AsinGrad 单测、调整 AdaCast golden 实现,更新约束文档并修复代码格式和许可证头问题。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3266 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5676 | 29 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
fix(golden): 规范 AddV2、MulNoNan 和 TensorRedirect 三腿参考 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6247 merge fix/golden-three-leg-contract-20261012 into master fix(golden): 规范 AddV2、MulNoNan 和 TensorRedirect 三腿参考 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修正 AddV2、MulNoNan、TensorRedirect 的 Golden,使其遵循 TTK 三腿比对与 Golden 编写规范。仅修改 3 个 tests/assets/golden.py。 - CPU Promote 不做输入或输出精度转换;AddV2 的 BF16 桥接改为位视图,普通模式及 GPU 标杆的 FP16/BF16 跟随 kernel 在 FP32 计算后窄回。 - MulNoNan kernel/GEIR 的 CPU Golden 使用 TensorFlow 原生浮点 API,int32 使用 TF 乘法与 Select 组合,保留原有溢出和第二输入为零的掩码语义。 - MulNoNan TF E2E 复用 TTK 默认 CPU 原生 TF 通路及框架 Promote,GPU 标杆改为 Torch,并使用 TF API 的 x/y 形参名适配按名绑定。 - 移除三个算子的 TF GPU provider。TensorRedirect 的计算与逐位拷贝逻辑不变,全部 dtype tolerance 和 legacy 注册保留。 - 算子实现、Host、Parser 和 TTK 均无改动。 ## 关联的Issue Closes #3496 https://gitcode.com/cann/ops-math/issues/3496 ## 测试 - Golden CPU 回归 248/248 通过,基线为 f53b52a3e7deaedca104d82c453c99900de60b25。 - 同一固定输入运行主线和整改版,并用独立参考校验整改结果;覆盖全部声明 dtype、Promote FP32/FP64、广播、标量、非连续和空输入、整数溢出、NaN/Inf 与零。 - TensorRedirect 覆盖 11 种 dtype,逐位检查负零、NaN payload 和非规格化数。 - 使用当前工作目录 TTK 的真实 TestSpec loader、参数绑定和 CPU Golden 模块检查注册、完整 dtype tolerance、MulNoNan TF E2E 的普通及 Promote 默认通路。 - pre-commit run --files <本次3个golden.py>、git diff --check 通过。 - Torch GPU 标杆的 Python 组合在 CPU 执行验证;未执行 NPU/远程 GPU、算子性能或算子精度测试。本轮本地 CI 结果见下文。 预期变化:MulNoNan Promote 的 FP64 乘积不再经过 FP32 舍入;TF E2E 普通模式不再无条件升精度。一般浮点算术的 NaN payload 不作为一致性要求,TensorRedirect 仍严格逐位相等。 ## 文档更新 当前工作目录保留整改报告、主线 Golden 快照、可复现脚本和逐项结果;仓库文档未修改。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 输入输出自查 修复 MulNoNan 在标量输入下返回 NumPy scalar 的兼容问题,使用 np.asarray(output.numpy()) 保持原来的零维 ndarray,不转换 dtype 或改变数值。新增 legacy/Spec 的签名、返回容器、输出数量/顺序/shape/dtype、输入不被改写、Promote 元信息及真实 TTK 服务端 CPU 参数绑定检查。默认 TF E2E 标量输出另经真实 TTK 比对器验证兼容。 两仓累计 Golden CPU 自查 **447/447** 通过,本仓 **248/248**。未执行 NPU/远程 GPU、算子性能或算子精度测试。当前受检 HEAD:2ed0535b23f764e6efbae7ded2d6d5513baa33dc。 ## 本地 CI 统一入口 /workspace/CI-skills/ci_local_check.sh 定向检查通过;pre-commit、隔离 oat-py 1.0.3、Ascend 950 与 A2(ascend910b)定向 package/UT 已通过。构建并行度最多 8,使用任务目录内 CANN_Revise 的 0923 Toolkit/ops。 受测 HEAD:2ed0535b23f764e6efbae7ded2d6d5513baa33dc;rebase 主仓 master:f53b52a3e7deaedca104d82c453c99900de60b25;本轮 CI 基线快照:f53b52a3e7deaedca104d82c453c99900de60b25。每仓相对 rebase 基点仅 1 个提交,squash 前后完整 diff 和 tree 一致,7 个 Golden 内容不变。 覆盖边界:下列定向 UT 阶段未执行用例(0 项或仅构建目标):opapi/ascend950、opgraph/ascend950、opapi/ascend910b、opgraph/ascend910b、opkernel/ascend910b。不将这些阶段的构建通过计为用例覆盖。 线上 CI 触发凭据:https://gitcode.com/cann/ops-math/merge_requests/6247#note_193365306。仅记录已触发请求/现有任务,不表示线上 CI 已通过。 See merge request: cann/ops-math!6247 | 10 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
test: 新增 8 个算子 Ascend 950 arch35 ST 测试样例(as_strided、concat、concat_v2、dynamic_partition、mem_set、split_v、strided_slice_grad、addr) Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !6381 merge add-arch35-st-ttk-samples into master test: 新增 8 个算子 Ascend 950 arch35 ST 测试样例(as_strided、concat、concat_v2、dynamic_partition、mem_set、split_v、strided_slice_grad、addr) Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 DV122 补充算子 ST 测试样例:为 8 个算子新增 Ascend 950(arch35)ST 测试资产。 覆盖算子(REG_OP、kernel 模式,输入格式 ND): | 算子 | 目录 | 功能 | |------|------|------| | as_strided | conversion/ | 以 size/stride/storage_offset 在 x 存储上构造视图张量 | | concat | conversion/ | 沿指定维度拼接多个张量 | | concat_v2 | conversion/ | 沿指定维度拼接多个张量(v2 接口) | | dynamic_partition | conversion/ | 按 partitions 索引将 x 切分为 num_partitions 个输出 | | mem_set | conversion/ | 以指定尺寸与初始值初始化内存区域 | | split_v | conversion/ | 按 size_splits 沿 split_dim 将 x 切分为 num_split 个输出 | | strided_slice_grad | conversion/ | StridedSlice 梯度:将 dy 按 strides 散射到 shape 尺寸零张量 | | addr | math/ | 计算 y = beta * x1 + alpha * (x2 ⊗ x3) | 每个算子新增 11 个文件: - tests/st/arch35/ttk_kernel_{op}_st.csv:arch35 ST 样例(每算子 10 条,维度覆盖 1d~8d) - tests/st/testcases/:L0 功能用例 + L2 异常用例 CSV ## 关联的Issue - #3595(https://gitcode.com/cann/ops-math/issues/3595) ## 测试 - arch35 ST 样例 80 条(8 算子 × 10,维度覆盖 1d~8d) - L0 功能用例 277 条:as_strided 37、concat 40、concat_v2 40、dynamic_partition 35、mem_set 12、split_v 31、strided_slice_grad 40、addr 42;数据类型覆盖各算子合法 dtype 域,含 nan/inf/极值等特殊输入 - L2 异常用例 121 条:dtype 非法 60、format 不支持(FRACTAL_NZ)30、输出 shape 不匹配 5、必选参数缺失 8、约束违反 14、mem_set 数组类异常 4,期望返回对应 ACL_ERROR_* 错误码 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新增算子 ST 测试样例 See merge request: cann/ops-math!6381 | 6 天前 | |
feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Co-authored-by: tan_xin<tanxin44@huawei.com> # message auto-generated for no-merge-commit merge: !5447 merge master-v121 into master feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Created-by: tan_xin Commit-by: tan_xin;t00850857 Merged-by: cann-robot Description: ## 描述 为 Adds、Expand、BroadcastTo、Tile、GetShape 五个算子新增 ascend960dt 平台支持,使其可在 ascend960dt(Ascend960DT_968B7)芯片上完成编译与调用。主要改动: ### 算子定义与编译配置 - 各算子 op_host 定义文件(adds_def.cpp、expand_def.cpp、broadcast_to_def.cpp、tile_def.cpp、get_shape_def.cpp)通过 AICore().AddConfig("ascend960dt", ...) 注册平台配置 - 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 增加 "ascend960dt",tiling 目录沿用 arch35;get_shape 的 kernel 源码 COMPUTE_UNITS 同步增加 ascend960dt - 新增各算子 ascend960dt 平台二进制编译配置 op_host/config/ascend960dt/*_binary.json 与 *_simplified_key.ini(simplified_key_mode=0) - ascendc_config.json 中 Adds、BroadcastTo、Tile 的 compute_units 增加 ascend960dt,并配置对应编译选项 ### 公共构建配置 - 顶层 CMakeLists.txt 的 ASCEND_ALL_COMPUTE_UNIT 增加 ascend960dt - scripts/build.conf.sh 的 SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend960dt - scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 增加 [Ascend960DT]="Ascend960DT_968B7" ### op_api 适配 - expand:aclnn_expand.cpp 的 dataTypeSupportedMap 与 expand.cpp 的 IsAiCoreSupport 增加 NpuArch::DAV_9201 分支,数据类型支持列表沿用 ASCEND910B(FLOAT、FLOAT16、INT32、UINT8、INT8、BOOL、BF16、INT64) - 公共头文件 aclnn_check.h:IsRegBase 的 regbaseArch 集合增加 NpuArch::DAV_9201、NpuArch::DAV_9202;其余为 clang-format 格式整改 ## 关联的Issue - #3561 ## 测试 - 已通过 pre-commit 检查(clang-format 格式、codespell 拼写、文件末尾换行整改,见提交记录) ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5447 | 8 天前 | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 6 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
fix(docs): 修正 bincount/angle_v2/top_k_v2 中 ouput 拼写(应为 output) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5948 merge fix/3293-output-typos into master fix(docs): 修正 bincount/angle_v2/top_k_v2 中 ouput 拼写(应为 output) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 bincount 两个 kernel 文件注释(3 处)、angle_v2 tiling 注释(7 处同型)及 top_k_v2 未使用参数名 ouputLastDimValue 中,output 均被拼写为 ouput。统一修正,仅涉及注释与未使用参数名,不影响任何逻辑。 ## 关联的Issue 关联Issue #3293(注:issue 中抽样 2 处,angle_v2 实际含 7 处同型注释,已一并修复,全仓该模式已清零) ## 测试 - 纯注释文本与未使用参数名修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5948 | 25 天前 | |
产品名变更 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 | 1 个月前 | |
feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Co-authored-by: jzj007<jiangzhijie9@huawei.com> # message auto-generated for no-merge-commit merge: !5787 merge v121 into master feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Created-by: jzj007 Commit-by: jzj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 diag、arg_max_v2、arg_max_with_value、arg_min、arg_min_with_value 五个算子新增 ascend960dt 芯片平台适配,使其可在 ascend960dt(arch35)上完成算子定义注册、tiling 编译与二进制 kernel 配置生成。 ### 改动原因 算子 v121 分支合入主线,并为上述 5 个算子补齐 ascend960dt 平台支持。 ### 改动方法 1. 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 新增 ascend960dt,SUPPORT_TILING_DIR 对应追加 arch35,复用 arch35 tiling 实现。 2. 各算子 op_host/*_def.cpp 增加 this->AICore().AddConfig("ascend960dt", aicore_config),完成 AICore 配置注册。 3. 新增 op_host/config/ascend960dt/ 目录,包含 {op}_binary.json(二进制 kernel 配置)与 {op}_simplified_key.ini(simplified_key_mode 配置,default=0)。 4. scripts/kernel/binary_config/ascendc_config.json 为 Diag/ArgMaxWithValue/ArgMaxV2/ArgMinWithValue/ArgMin 增加 ascend960dt compute_units,并配置编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false。 5. math/arg_min/framework/argmin_onnx_plugin.cpp 的 IsRegBasePlatform() 将 NpuArch::DAV_9201 加入 regbase 架构集合。 ### 变更文件 - conversion/diag:CMakeLists.txt、op_host/diag_def.cpp、新增 config/ascend960dt/{diag_binary.json, diag_simplified_key.ini} - math/arg_max_v2:CMakeLists.txt、op_host/arg_max_v2_def.cpp、新增 config/ascend960dt/{arg_max_v2_binary.json, arg_max_v2_simplified_key.ini} - math/arg_max_with_value:CMakeLists.txt、op_host/arg_max_with_value_def.cpp、新增 config/ascend960dt/{arg_max_with_value_binary.json, arg_max_with_value_simplified_key.ini} - math/arg_min:CMakeLists.txt、framework/argmin_onnx_plugin.cpp、op_host/arg_min_def.cpp、新增 config/ascend960dt/{arg_min_binary.json, arg_min_simplified_key.ini} - math/arg_min_with_value:CMakeLists.txt、op_host/arg_min_with_value_def.cpp、新增 config/ascend960dt/{arg_min_with_value_binary.json, arg_min_with_value_simplified_key.ini} - scripts/kernel/binary_config/ascendc_config.json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> - 关联 Issue:https://gitcode.com/cann/ops-math/issues/3306 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本次改动为芯片平台适配(CMake 编译配置、算子定义注册、binary/simplified_key 配置),未修改 kernel 计算逻辑,复用 arch35 tiling 与 kernel 实现。需在 ascend960dt 环境完成编译及算子泛化、二级冒烟验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5787 | 3 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 2 天前 | |
feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Co-authored-by: jzj007<jiangzhijie9@huawei.com> # message auto-generated for no-merge-commit merge: !5787 merge v121 into master feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Created-by: jzj007 Commit-by: jzj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 diag、arg_max_v2、arg_max_with_value、arg_min、arg_min_with_value 五个算子新增 ascend960dt 芯片平台适配,使其可在 ascend960dt(arch35)上完成算子定义注册、tiling 编译与二进制 kernel 配置生成。 ### 改动原因 算子 v121 分支合入主线,并为上述 5 个算子补齐 ascend960dt 平台支持。 ### 改动方法 1. 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 新增 ascend960dt,SUPPORT_TILING_DIR 对应追加 arch35,复用 arch35 tiling 实现。 2. 各算子 op_host/*_def.cpp 增加 this->AICore().AddConfig("ascend960dt", aicore_config),完成 AICore 配置注册。 3. 新增 op_host/config/ascend960dt/ 目录,包含 {op}_binary.json(二进制 kernel 配置)与 {op}_simplified_key.ini(simplified_key_mode 配置,default=0)。 4. scripts/kernel/binary_config/ascendc_config.json 为 Diag/ArgMaxWithValue/ArgMaxV2/ArgMinWithValue/ArgMin 增加 ascend960dt compute_units,并配置编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false。 5. math/arg_min/framework/argmin_onnx_plugin.cpp 的 IsRegBasePlatform() 将 NpuArch::DAV_9201 加入 regbase 架构集合。 ### 变更文件 - conversion/diag:CMakeLists.txt、op_host/diag_def.cpp、新增 config/ascend960dt/{diag_binary.json, diag_simplified_key.ini} - math/arg_max_v2:CMakeLists.txt、op_host/arg_max_v2_def.cpp、新增 config/ascend960dt/{arg_max_v2_binary.json, arg_max_v2_simplified_key.ini} - math/arg_max_with_value:CMakeLists.txt、op_host/arg_max_with_value_def.cpp、新增 config/ascend960dt/{arg_max_with_value_binary.json, arg_max_with_value_simplified_key.ini} - math/arg_min:CMakeLists.txt、framework/argmin_onnx_plugin.cpp、op_host/arg_min_def.cpp、新增 config/ascend960dt/{arg_min_binary.json, arg_min_simplified_key.ini} - math/arg_min_with_value:CMakeLists.txt、op_host/arg_min_with_value_def.cpp、新增 config/ascend960dt/{arg_min_with_value_binary.json, arg_min_with_value_simplified_key.ini} - scripts/kernel/binary_config/ascendc_config.json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> - 关联 Issue:https://gitcode.com/cann/ops-math/issues/3306 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本次改动为芯片平台适配(CMake 编译配置、算子定义注册、binary/simplified_key 配置),未修改 kernel 计算逻辑,复用 arch35 tiling 与 kernel 实现。需在 ascend960dt 环境完成编译及算子泛化、二级冒烟验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5787 | 3 天前 | |
feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Co-authored-by: jzj007<jiangzhijie9@huawei.com> # message auto-generated for no-merge-commit merge: !5787 merge v121 into master feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt Created-by: jzj007 Commit-by: jzj007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 diag、arg_max_v2、arg_max_with_value、arg_min、arg_min_with_value 五个算子新增 ascend960dt 芯片平台适配,使其可在 ascend960dt(arch35)上完成算子定义注册、tiling 编译与二进制 kernel 配置生成。 ### 改动原因 算子 v121 分支合入主线,并为上述 5 个算子补齐 ascend960dt 平台支持。 ### 改动方法 1. 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 新增 ascend960dt,SUPPORT_TILING_DIR 对应追加 arch35,复用 arch35 tiling 实现。 2. 各算子 op_host/*_def.cpp 增加 this->AICore().AddConfig("ascend960dt", aicore_config),完成 AICore 配置注册。 3. 新增 op_host/config/ascend960dt/ 目录,包含 {op}_binary.json(二进制 kernel 配置)与 {op}_simplified_key.ini(simplified_key_mode 配置,default=0)。 4. scripts/kernel/binary_config/ascendc_config.json 为 Diag/ArgMaxWithValue/ArgMaxV2/ArgMinWithValue/ArgMin 增加 ascend960dt compute_units,并配置编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false。 5. math/arg_min/framework/argmin_onnx_plugin.cpp 的 IsRegBasePlatform() 将 NpuArch::DAV_9201 加入 regbase 架构集合。 ### 变更文件 - conversion/diag:CMakeLists.txt、op_host/diag_def.cpp、新增 config/ascend960dt/{diag_binary.json, diag_simplified_key.ini} - math/arg_max_v2:CMakeLists.txt、op_host/arg_max_v2_def.cpp、新增 config/ascend960dt/{arg_max_v2_binary.json, arg_max_v2_simplified_key.ini} - math/arg_max_with_value:CMakeLists.txt、op_host/arg_max_with_value_def.cpp、新增 config/ascend960dt/{arg_max_with_value_binary.json, arg_max_with_value_simplified_key.ini} - math/arg_min:CMakeLists.txt、framework/argmin_onnx_plugin.cpp、op_host/arg_min_def.cpp、新增 config/ascend960dt/{arg_min_binary.json, arg_min_simplified_key.ini} - math/arg_min_with_value:CMakeLists.txt、op_host/arg_min_with_value_def.cpp、新增 config/ascend960dt/{arg_min_with_value_binary.json, arg_min_with_value_simplified_key.ini} - scripts/kernel/binary_config/ascendc_config.json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> - 关联 Issue:https://gitcode.com/cann/ops-math/issues/3306 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本次改动为芯片平台适配(CMake 编译配置、算子定义注册、binary/simplified_key 配置),未修改 kernel 计算逻辑,复用 arch35 tiling 与 kernel 实现。需在 ascend960dt 环境完成编译及算子泛化、二级冒烟验证。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5787 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !5676 merge master into master 完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 针对 AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack,完善可选属性、输入输出类型与形状、系数长度及接口指针校验,修正 SignBitsPack 空 Tensor 初始化及搬运分块与 Tiling 不一致的问题,优化 AddMatMatElements 广播数据复用以减少重复搬运;同时整理 Tiling 常量和 UB 空间计算,补充 AsinGrad 单测、调整 AdaCast golden 实现,更新约束文档并修复代码格式和许可证头问题。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3266 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5676 | 29 天前 | |
适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6424 merge ascend350 into master 适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 11个conversion/math算子新增ascend350计算单元支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3649 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6424 | 3 天前 | |
docs: 修正 math 算子 README 文档中的描述与数据类型说明 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6158 merge 3246 into master docs: 修正 math 算子 README 文档中的描述与数据类型说明 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修正 math 目录下 13 个算子 README.md 文档中的描述问题,提升文档准确性与术语一致性,具体包括: - 数据类型说明修正: abs 输出类型列表去掉重复的 FLOAT16、FLOAT,改为 COMPLEX32、COMPLEX64;assign_sub 修正拼写 BFOAT16 → BFLOAT16。 - 属性名拼写修正:hans_encode 的 reshuff → reshuffle。 - 术语大小写统一:arg_min 的 infershape → InferShape;reduce_all 的 tenor → Tensor。 - 表述/用词修正:add_n 的"主元素相加"→"逐元素相加";add_lora 的"Lora"→"LoRa";cholesky 的"需为"→"须为";cosine_similarity 的"显示指定"→"显式指定";cumsum 的"累计求和"→"累积求和";lgamma 的"输入张量x1"→"输入张量x";mul_addn 表述精简;asinh_grad 的"通过图模式方式调用"→"通过图模式调用"。 ### 改动原因 文档中存在错别字、术语拼写与大小写不统一、数据类型说明错误等问题,影响可读性与准确性。 ### 改动方法 逐文件校对并修正上述 README.md 中的文本与类型说明,仅涉及文档,不改变任何代码逻辑。 ## 关联的Issue #3426 ## 测试 文档变更,无需代码测试。 ## 文档更新 更新 math 目录下以下 13 个 README.md: math/abs、math/add_lora、math/add_n、math/arg_min、math/asinh_grad、math/assign_sub、math/cholesky、math/cosine_similarity、math/cumsum、math/hans_encode、math/lgamma、math/mul_addn、math/reduce_all ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6158 | 13 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
[bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6147 merge bessel_i0e_quality_hardening into master [bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [bessel_i0e] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 变更概述 本 PR 为 BesselI0e 算子(逐元素指数缩放零阶修正贝塞尔函数,GE 图模式单通道 + ascend950 单目标)的质量加固整改分支,输入为 2026-09-23 的准入扫描报告与代码检视报告: - **准入扫描**(总结论 FAIL):E3 TBE ini 残留、15.6 golden 子项 2 个 FAIL + 1.4 约束说明 1 个 REVIEW;kernel 用例覆盖度 85.7%,缺口 6 类 - **代码检视**:OP-1 FAIL(HIGH)、CMP-2 SUSPICIOUS(MED)、RD-1 SUSPICIOUS(LOW)、STYLE-3.3 FAIL(中) 共 4 条问题;设计一致性总体"不一致"(S1 架构匹配 ❌、S5 参数语义 ⚠️、D8 文档格式 ❌) 本分支完成:代码侧 4 条修复(OP-1/RD-1/STYLE-3.3/X2),资料侧 5 处整改(README 3 处 + DESIGN/REQUIREMENTS 设计回写),用例侧补齐 6 类缺口(kernel 覆盖度 85.7% → 100%),op_host UT 36/36 全量通过。需架构/产品/仓级/实机决策的残留项单独记录于未修项明细(见文末)。 ## 分类修改清单 ### 一、代码修改(ops-math) | 项 | 内容 | 关联问题 | |---|---|---| | TilingKey 去 dtype 编码 | TilingKey 改为单值占位轴 schMode,dtype 由构建系统按 def DataType 列表注入 DTYPE_X 宏实例化 kernel 变体 | OP-1(C1) | | ubBlockSize 零值守卫 | OP_CHECK_IF(ubBlockSize == 0, ...) 显式守卫后作对齐除数 | RD-1(C4) | | 开发阶段注释清理 | 删除步骤编号注释、==== 分隔线、"迭代二变更"记录 | STYLE-3.3(C3) | | FORMAT_ND 显式格式校验 | tiling 增加 IsPrivateFormat/storage≠ND 拒绝,def 仅声明 FORMAT_ND 与运行时校验闭环 | X2(P3) | ### 二、资料修改 | 项 | 内容 | 关联问题 | |---|---|---| | README 约束说明 | 修正中英文数字间空格;补充 ND 数据格式约束声明 | D8-D1、X2 | | README 产品支持表 | 回退至父版本表述,与 def/CMake 支持面一致 | 1.1 资料一致性 | | DESIGN.md | 架构一致性回写(GE-only/arch35 子目录/910B 标注待后续迭代)、TilingData 3 字段、D1 格式修正 | S1/S5/D8 | | REQUIREMENTS.md | 补充格式约束(输入输出仅支持 ND 格式) | X2 | ### 三、用例修改 - **UT**:tiling 新增 tiling_unsupported_format(4 种非法格式);tilingkey_verify 断言随 TilingKey 改造更新(各 dtype 统一为 0)——op_host UT 36/36(tiling 23 + infershape 13) - **归档用例**:测试用例/bessel_i0e.csv 新增 24 条(UB 整除、dtype 异常、rank9 异常、format 异常、特殊值、空 tensor、压力、rank0/rank8、边界值),6 类缺口全部覆盖,kernel 覆盖度 85.7% → 100% ## 逐 commit 摘要表 | # | commit | 仓库 | 内容 | 关联问题 | |---|---|---|---|---| | 1 | c7f067a86 | ops-math | 回退 bessel_i0e README 产品支持表至父版本 | 1.1 一致性 | | 2 | dd268734b | ops-math | TilingKey 去除 dtype 编码(OP-1),UT 断言同步更新 | C1 | | 3 | c6c65755e | ops-math | ubBlockSize 增加零值守卫(RD-1) | C4 | | 4 | a5b9840a0 | ops-math | 清理开发阶段注释(STYLE-3.3) | C3 | | 5 | b4d900b44 | ops-math | 修正 README 中英文数字间空格(D1) | D8-D1 | | 6 | 9fd86f88a | ops-math | Tiling 增加 FORMAT_ND 显式格式校验(X2/P3),新增 UT | P3 | | 7 | 911852351 | ops-math | README 约束说明补充 ND 格式约束(X2 资料同步) | P3 | | 8 | 625b165 | operator-artifacts | DESIGN.md 设计同步回写(S1/S5/D8)+ 测试用例 CSV 覆盖度缺口补齐(bessel_i0e 部分) | S1、S5、D8、覆盖度 | | 9 | 8a47e70 | operator-artifacts | DESIGN.md §3.4 与 REQUIREMENTS.md 补 FORMAT_ND 校验说明(bessel_i0e 部分) | P3 | ## 测试与验证 - **编译打包**:ops-math 全量编译通过(ascend950 · ENABLE_UT_EXEC=TRUE),成功产出 cann-ops-math-custom_linux-x86_64.run 安装包(build-logs/bessel_i0e.log,2026-09-23) - **op_host UT**:36/36 PASS——tiling 23 例(含新增 tiling_unsupported_format 与更新后的 tilingkey_verify);infershape 13 例 - **白盒复验**:E3(P1)经 canndev 上游 legacy 下线删除后复核无 [BesselI0e] 残留;1.4(P4)LLM A/B 审视闭环 PASS;检视问题 C1/C3/C4 全部关闭 - **覆盖度复评**:kernel 侧 6 类缺口均有对应归档用例,85.7% → 100% - **未执行(无 NPU/TTK)**:GEIR/TTK 实机测试、精度契约实机验证(fp16 rtol≤1e-3、bf16≤4e-3、fp32≤1e-4)、NaN/inf 特殊值实机行为、DataCopyPad 尾块非对齐搬运实机验证 ## 未完成事项与限制 ### 三禁区声明 1. **架构/产品禁区**:ACLNN 两段式接口立项与 910B 产品支持矩阵变更属架构师/产品决策,本分支仅在 DESIGN.md 文档层回写("后续迭代规划/待后续迭代"标注),未立项实现 2. **仓级/上游禁区**:canndev 配置与 ops-math 仓级公共 cmake 不在算子侧改动范围——E3 ini 残留由 canndev 上游删除闭环;CMP-2 栈保护选项冲突为仓级公共配置,转仓级 owner 3. **实机验证禁区**:精度契约、特殊值实机行为、GEIR/TTK 实机测试依赖 NPU/TTK 环境,本环境不可执行,转 TTK 排期 ### 环境限制 - 无 NPU/TTK:admission 中 GEIR/TTK 项标记 UNAVAILABLE,实机类验证项均未执行 ### 未修项明细引用 - 残留 4 条未修项(ACLNN 接口未交付、910B 产品支持矛盾、CMP-2 栈保护选项净关闭、golden 检索规则未覆盖 {op}/golden/ 路径)及无 NPU/TTK 验证缺口详见《/home/s00947152/LongTail/guide/未修项明细/bessel_i0e_未修项明细.md》 See merge request: cann/ops-math!6147 | 8 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
fix(bias): tiling 补 num_axes=0 元素数校验;golden 按 TTK 三方比对规范加固 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !6336 merge feat/bias into master fix(bias): tiling 补 num_axes=0 元素数校验;golden 按 TTK 三方比对规范加固 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本 PR 包含两处修复: **1. tiling 元素数漏检(bias_tiling_arch35.cpp)** num_axes=0 时原校验只检查 bias 的秩(rank==1),未校验元素数。bias=[N](N>1) 的非法输入会漏过 tiling 检查,kernel 将 N 元素的 bias 按 1 元素标量广播,golden 侧 reshape 报错。修复为:biasDimNum != 1 || biasShape.GetDim(0) != 1,按元素数报 OP_LOGE_FOR_INVALID_SHAPEDIM。 **2. golden 按 TTK 三方比对规范加固(tests/assets/golden.py,对齐 zl_hw/myOpen#2)** - 出口零 cast:按 Promote 后的 output_dtypes 取 dtype,补 float64 映射(原实现将 fp32 用例的 fp64 真值砍回 fp32,撤销 Promote 导致三比值分母被夹、RMSE 假红) - 三方腿(third_party/torch)按 NPU 加宽行为同步 cast:fp16/bf16 升 fp32 计算后窄回原 dtype,fp32 直算(对齐 kernel BiasKernel<half/bfloat16_t, true> 行为) - 入口零 cast + bf16 位级桥接(uint16 位串 / ml_dtypes.bfloat16 两方模式) 另新增 UT 反例 tiling_invalid_num_axes_zero_bias_elems(num_axes=0 + bias=[4] 期望 GRAPH_FAILED)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #3579 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 平台:Ascend950 (950DT_9592),CANN 9.2.0,TTK 三方比对(NPU + CPU golden + torch 三方腿): - Host UT:13/13 PASS(build.sh -u --ophost --soc=ascend950 --ops=bias,含新反例) - ST 三方 cross_check 全量:828/828 PASS - 精度专项(inf/nan/大 shape/非对齐):16/16 PASS - DFX(空 tensor/inf-nan/非连续/动态 shape):13/15 PASS,余 2 例 inf/nan 用例首轮因手工输入文件丢失(测试基础设施问题,非算子问题)未完成复跑 - 性能:21/21 PASS(DYN/BIN perf 数值正常) - GEIR 通路:50/50 PASS - ST 两方 close 泛化:抽样 55 例 0 FAIL(含 bf16 全 dtype) ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6336 | 8 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
增加reduce模板算子v121配置 Co-authored-by: Sunee<sunyi35@huawei.com> # message auto-generated for no-merge-commit merge: !6243 merge v121 into master 增加reduce模板算子v121配置 Created-by: sunzhongwen1 Commit-by: Sunee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给bias_add_grad、diag_part、dot、kl_div_v2、reduce_all、reduce_any、reduce_log_sum_exp、reduce_max、reduce_mean、reduce_min、reduce_prod、reduce_sum、square_sum_v1算子增加v121/122配置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6243 | 7 天前 | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 6 天前 | |
fix(bitwise_and): 资料与业务代码一致性整改 Co-authored-by: wangqi_ai<wangqi195@hisilicon.com> # message auto-generated for no-merge-commit merge: !6375 merge fix/bitwise_and_doc_code_consistency into master fix(bitwise_and): 资料与业务代码一致性整改 Created-by: wangqi_ai Commit-by: wangqi_ai Merged-by: cann-robot Description: ## 关联 Issue - #3590 ## 修改原因 math/bitwise_and 的资料与业务代码能力存在不一致:aclnnBitwiseAndTensorOut 系列接口漏支持 UINT32/UINT64、文档 dtype 与错误码和实现不符、两篇 Inplace 文档的 310P 支持标注与自身注释自相矛盾。本 MR 在**上板实测**后做一致性整改。 ## 主要修改 **1. 补齐 RegBase 接口能力(核心)** - aclnnBitwiseAndTensorOut / aclnnInplaceBitwiseAndTensorOut(仅 Ascend 950 系列可用)的 DTYPE_SUPPORT_LIST 由 7 种扩为 9 种(补 UINT32/UINT64),与 aclnnBitwiseAndTensor、torch.bitwise_and 对齐,消除**漏支持**; - 资料同步:aclnn_bitwiseand.h(self/other 7→9、out 7→15)、aclnnBitwiseAndTensorOut&aclnnInplaceBitwiseAndTensorOut.md(self/other 7→9、out 9→15),错误码表补两条“数据格式需保持一致”。 **2. 修正 310P 支持标注(仅资料口径,不动代码)** - aclnnInplaceBitwiseAndScalar.md、aclnnInplaceBitwiseAndTensor.md 的「Atlas推理系列产品」由“不支持”改为“支持”:与文档自身 dtype 注记自洽(310P 属支持产品、仅不支持 UINT32/UINT64),且与 bitwise_or / bitwise_xor / logical_and 全家族 Inplace 口径一致;业务代码无任何 310P 专属限制。两篇文档下方 dtype 注记保持原样。 **3. 通用资料纠错(与产品无关)** - 计算公式:标量接口 out_i = self_i & other、Inplace 张量接口 selfRef_i = selfRef_i & other_i;输入推导链接改为 deduction_relationship; - **带 out 接口的口径对齐**:aclnnBitwiseAndScalar.md 的 out 数据类型由 11 种补为 15 种(补 UINT32、UINT64、COMPLEX64、COMPLEX128),与同族 bitwise_or / bitwise_xor 的 Scalar 类文档逐字一致;aclnnBitwiseAndTensor.md 的 out(9 种)与两位兄弟的 Tensor 类文档保持一致,未改动; - 错误码表头统一“返回值”,修正越界与空指针行;README 的功能说明与「描述」列收敛为与其他算子一致(详见下条),并补齐两个 *TensorOut 样例链接; - README「参数说明」由 - self(aclTensor*,计算输入) 列表式改为与仓库标准一致的五列参数表(参数名 / 输入、输出、属性 / 描述 / 数据类型 / 数据格式),**参数说明内不再体现 aclTensor、aclScalar 类型标注**(与 bitwise_or/bitwise_xor 及全仓 189 个表格式 README 一致);dtype 口径以“支持列表 + 按产品注解”表达,并按 产品支持情况 里所有 √ 的产品补齐注解覆盖(950 落在表内支持列表;Atlas A3、Atlas A2、Atlas推理系列产品、Atlas训练系列产品 由表后注解给出不支持项,与本文档 aclnnBitwiseAndScalar.md 的 dtype 注记口径逐字一致),原内容不删减; - README 收敛为与其他算子写法一致:功能说明去掉 (Tensor-Tensor 与 Tensor-Scalar 两种形式) 枚举(全仓 236 个 README 中仅此 1 例),计算公式改为 当other为张量时 / 当other为标量时;「描述」列删除属于 API 文档的子句(支持非连续的Tensor、数据维度不支持8维以上),并去掉 other/out 里的 Tensor-Tensor形式/Tensor-Scalar形式 表述与 broadcast关系/互转换关系 子句(去掉限定词后这些子句在标量接口下会失真)—— 三列「描述」与同族 bitwise_or/bitwise_xor **逐字一致**;相关信息由本算子 5 篇 API 文档的「使用说明」「维度(shape)」「非连续Tensor」专列及 README 的约束说明承载,无信息丢失。 **4. 样例与测试** - 样例:新增两个 *TensorOut 样例;并补齐此前缺失的 aclnnInplaceBitwiseAndScalar / aclnnInplaceBitwiseAndTensor 两个样例,README 调用说明表随之从 2 行补到 **6 行**(与 docs/zh/op_api_list.md 的接口顺序一致;兄弟算子 bitwise_or 的 Inplace 接口也都有样例); - 测试:新增 RegBase dtype / 维度 / 格式契约 UT(8 例); - golden.py 注册 *TensorOut golden,并按 TTK TestSpec 补 third_party 三方标杆;新增 5 条 ST 用例;修正 arch35 ST 整数 dtype 取值范围与精度容差; - 删除 tests/ut/op_host/op_api 下 3 个**从未参与编译的死文件**(依据:该目录 CMakeLists 为占位、无 add_modules_ut_sources;op_host UT 仅 GLOB test_*_tiling.cpp、op_api UT 仅扫 tests/ut/op_api;全仓零引用)。README 只引用 examples/ 与 docs/,不引用 tests/,样例链接不受影响。 **5. 清理** - 6 个头 / 源文件 clang-format 对齐、去掉 CMakeLists 末尾空行、新增文件版权年份统一 2026(纯格式,无语义变化)。 ## 上板验证(Ascend950PR_9589) | 通路 | 结果 | |---|---| | aclnn ST(30 例) | **30/30 PASS** | | e2e ST(13 例) | **13/13 PASS** | | dtype 契约 UT(8 例) | **8/8 PASSED** | - 精度口径:精确算符 ((0,0),) + absolute_precision=1e-08;950 上 9×9 输入 × 15 种 out 组合穷举与 torch.bitwise_and 零差异; - 新增 4 个样例上板执行结果与预期一致:*TensorOut 两个样例输出 {0,1,2,3,0,1,4,4};aclnnInplaceBitwiseAndTensor 样例原地写回 {0,1,2,3,0,1,4,4}、aclnnInplaceBitwiseAndScalar 样例原地写回 {4,0,2,2}; - pre-commit run --files <变更文件> 全部通过。 ## 范围说明 - dtype 口径调整只落在 RegBase(两个 *TensorOut 接口仅 950 可用,与 docs/zh/op_api_list.md 第 66 行 A2/A3 列为 - 一致);非 RegBase 仅上述两处支持标注纠错,**不改动 dtype 口径与业务代码逻辑**; - 以下两条**本 MR 有意不做改动**,以避免影响其他芯片(非 RegBase)的既有行为:① aclnn_bitwise_and_tensor.cpp 是否补 IsRegBase() 区分(现状与 bitwise_or 一致,bitwise_xor 已两侧区分);② 两篇 Tensor 文档是否补「非 RegBase 不支持 UINT32、UINT64」注记。二者属非 RegBase 的 dtype 口径,需产品裁定与相应产品上板实测后另行处理。 See merge request: cann/ops-math!6375 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 2 天前 | |
style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !6425 merge fix/math-codecheck-opapi into master style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 变更说明 修复 CodeCheck 静态检查在 math 仓 op_api 层报告的规范问题,仅做等价修改,不改变任何业务逻辑与对外接口(aclnn API 签名/ABI 不变)。 涉及规则与修改: 1. **G.FUN.02(声明与定义参数名/限定不一致)** - math/sqrt/op_api/aclnn_sqrt.h/.cpp:头文件两处声明形参 opExecutor 对齐为 executor,@param 注释同步更新(DFX 宏内部硬编码标识符 executor,故改声明侧而非定义侧,不影响 ABI/调用方);移除 aclnnSqrt/aclnnInplaceSqrt 中 const aclrtStream stream 的多余顶层 const,与头文件声明保持一致。 - math/arg_min/op_api/aclnn_argmin.cpp:aclnnArgMin 定义移除 const aclrtStream stream 的多余 const,与头文件声明一致。 2. **G.INC.12(内部链接函数缺少 static)** - math/greater_equal/op_api/aclnn_ge_scalar.cpp:仅本文件内调用的 aclnnGeScalarCommon 增加 static,限定内部链接。 3. **G.INC.02(冗余 include)** - 删除 cumprod、cosh、sign_bits_pack、polar、grouped_bias_add_grad 五个 op_api 源文件中未使用的 #include "op_api/op_api_def_math.h"。 4. **G.CNS.04(只读指针参数应加 const)** - math/cdist_grad/op_api/aclnn_cdist_backward.cpp:GetOutTensorWithValueZero 形参加 const。 - math/sqrt/op_api/aclnn_sqrt.cpp、math/log/op_api/aclnn_log10.cpp、math/cos/op_api/aclnn_cos.cpp:CheckInplaceDtypeValid 形参加 const。 ## 关联 Issue ## 测试报告 - 编译验证(ascend950): - bash build.sh --soc=ascend950 --ops=sqrt,arg_min,greater_equal,cdist_grad,cos,cosh,cumprod,grouped_bias_add_grad,log,polar,sign_bits_pack -j16:ophost + binary 编译成功。 - bash build.sh --opapi --soc=ascend950 -j16:opapi 库编译成功。 - opapi UT:bash build.sh -u --opapi --soc=ascend950 -j16,均通过。 ## 自测考虑 - [x] 编译通过 - [x] UT 验证通过 - [x] 保持原有逻辑与接口不变 ## 文档 无 See merge request: cann/ops-math!6425 | 5 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
docs: 修正 math 算子 README 文档中的描述与数据类型说明 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6158 merge 3246 into master docs: 修正 math 算子 README 文档中的描述与数据类型说明 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修正 math 目录下 13 个算子 README.md 文档中的描述问题,提升文档准确性与术语一致性,具体包括: - 数据类型说明修正: abs 输出类型列表去掉重复的 FLOAT16、FLOAT,改为 COMPLEX32、COMPLEX64;assign_sub 修正拼写 BFOAT16 → BFLOAT16。 - 属性名拼写修正:hans_encode 的 reshuff → reshuffle。 - 术语大小写统一:arg_min 的 infershape → InferShape;reduce_all 的 tenor → Tensor。 - 表述/用词修正:add_n 的"主元素相加"→"逐元素相加";add_lora 的"Lora"→"LoRa";cholesky 的"需为"→"须为";cosine_similarity 的"显示指定"→"显式指定";cumsum 的"累计求和"→"累积求和";lgamma 的"输入张量x1"→"输入张量x";mul_addn 表述精简;asinh_grad 的"通过图模式方式调用"→"通过图模式调用"。 ### 改动原因 文档中存在错别字、术语拼写与大小写不统一、数据类型说明错误等问题,影响可读性与准确性。 ### 改动方法 逐文件校对并修正上述 README.md 中的文本与类型说明,仅涉及文档,不改变任何代码逻辑。 ## 关联的Issue #3426 ## 测试 文档变更,无需代码测试。 ## 文档更新 更新 math 目录下以下 13 个 README.md: math/abs、math/add_lora、math/add_n、math/arg_min、math/asinh_grad、math/assign_sub、math/cholesky、math/cosine_similarity、math/cumsum、math/hans_encode、math/lgamma、math/mul_addn、math/reduce_all ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6158 | 13 天前 | |
perf: 非连续广播场景直通优化,expand 广播输入不再强制转连续,广播场景性能提升 1.4~3.6 倍 Co-authored-by: zzz2048<zhuhanhan@huawei.com> # message auto-generated for no-merge-commit merge: !5522 merge fix/div-broadcast-input-gate into master perf: 非连续广播场景直通优化,expand 广播输入不再强制转连续,广播场景性能提升 1.4~3.6 倍 Created-by: zzz2048 Commit-by: zzz2048 Merged-by: cann-robot Description: ## 描述 PR #4935 引入的 broadcast_util 将 stride=0 的 expand 广播输入(dim != 1 且 stride == 0)归类 needsNonContiguousBase,当合轴后输出末轴超过 8192 (NON_CONTIGUOUS_LAST_DIM_LIMIT)时整体回退 Contiguous 转换路径,导致 aclnn 层转连续时按广播倍数放大数据量(如 aclnnDiv 广播场景 input1 按 96 倍 放大 6.4MB -> 615MB),div/real_div/greater/greater_equal 四算子的广播场景 普遍性能回退。 本 PR 修复该场景: 1. expand 广播输入单独立类 isBroadcastInput,不再归入 needsNonContiguousBase 2. 跳读形态且存在广播输入时直通:内核广播拷贝优于转连续 3. 分类循环 needsNonContiguousBase 分支不再提前退出,广播豁免判定 与输入顺序无关 转置/纯跳读形态的大末轴门限拦截(PR #4935 既有收益)完整保留。 ## 关联的Issue 关联 PR:https://gitcode.com/cann/ops-math/merge_requests/4935 ## 测试 ### 1. 广播场景性能(C++ 直调 vendor 包,B1 Ascend 950PR,run=10 稳态) **aclnnDiv 典型 case**(input0 [1,96,4,736,544] 连续,input1 展开形广播, FLOAT): | 路径 | 耗时 | |---|---| | master(转连续物化) | 26927us | | 本 PR(内核广播拷贝直通) | 12146us(**2.22 倍提升**) | **四算子泛化 42 case**(每个算子 10 个形态 + 高维补充): | 算子 | 广播场景 | master(us) | 本 PR(us) | 提升 | |---|---|---|---|---| | aclnnDiv | 展开广播大末轴 | 28089 | 12050 | 2.33 倍 | | aclnnDiv | 末轴跳读+广播 | 52176 | 18081 | 2.89 倍 | | aclnnDiv | 外轴跳读+广播 | 44141 | 12407 | 3.56 倍 | | aclnnGreaterEqual | 展开广播大末轴 | 35528 | 21885 | 1.62 倍 | | aclnnGreater | 展开广播大末轴 | 37022 | 35764 | 稳态一致 | | aclnnDiv | 8 维跳读+广播(高维) | 1068641 | 759460 | 1.41 倍 | | aclnnAdds | 展开广播(对照组,未接入 broadcast_util) | 两版一致 | 一致 | 不受影响 | > 注:aclnnGreater 各广播场景稳态耗时两版一致(3%~5% 内)。greater 输出为 > bool(1 字节)且单 float 输入,转连续放大数据量本身较小,豁免收益弱于 > div/greater_equal(双 float 输入、4 字节),属预期行为,无回归。 ### 2. 门限既有收益保留(非广播场景零回归) | 场景 | master(us) | 本 PR(us) | 一致性 | |---|---|---|---| | 转置+广播混合(末轴>8192) | 46445 | 45677 | 门限拦截保留 | | 纯转置大末轴 | 28552 | 28424 | 门限拦截保留 | | 纯末轴跳读大末轴 | 38973 | 38826 | 门限拦截保留 | | 连续输入 / 末轴≤8192 / NLast | 逐 case 一致 | 一致 | 零变化 | ### 3. 顺序无关性 混合输入(末轴跳读在前 + expand 广播在后)实测直通 18081us,广播在前 同为直通,两顺序行为一致(分类循环完整扫描所有输入)。 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [x] 性能优化 - [ ] 新特性 - [ ] 文档更新 - [ ] 其他 See merge request: cann/ops-math!5522 | 1 个月前 | |
feat: CompareAndBitpack 支持 RT2 InferShape Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5680 merge feature/compare-and-bitpack-rt2-infershape into master feat: CompareAndBitpack 支持 RT2 InferShape Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 为 CompareAndBitpack 补充 RT2 InferShape 和 InferDataType 实现,使算子可在 RT2 图编译流程中完成输出 shape 与 dtype 推导。 - 校验输入 x 至少为 1 维、threshold 为标量或未知秩。 - 输出 shape 继承 x,已知末维要求可被 8 整除并缩小为原来的 1/8;未知末维保持未知。 - 输出 dtype 固定推导为 DT_UINT8。 - 对照原 RT1 实现补充单元测试,覆盖正常、动态 shape、非法输入和未知秩场景,保持 RT1/RT2 行为一致。 ## 关联的Issue 无。 ## 测试 - TDD 修改前:新增 RT2 InferShape 用例后,因缺少 RT2 注册,测试执行到首个用例时失败。 - 反向对照:临时移除未知末维处理后,CompareAndBitpackInferShape.PreservesUnknownLastDimension 按预期失败;恢复实现后通过。 - bash build.sh -u --ophost --ops=compare_and_bit_pack:8 个用例全部通过。 - cmake -S . -B build -DENABLE_TEST=TRUE -DASCEND_OP_NAME=compare_and_bit_pack -DOP_HOST_UT=FALSE -DOP_GRAPH_UT=TRUE -DENABLE_UT_EXEC=TRUE && cmake --build build --target math_op_graph_ut -j8:1 个用例通过,graph_plugin_math_obj 编译成功。 - pre-commit run --from-ref ups/master --to-ref HEAD:全部检查通过。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5680 | 28 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
fix(confusion_matrix): 转测验证轮修复——输入校验加固 + golden 按 TTK 三方比对规范收敛 Co-authored-by: SeanDictionary<b24081019@njupt.edu.cn> # message auto-generated for no-merge-commit merge: !6337 merge feat/confusion-matrix into master fix(confusion_matrix): 转测验证轮修复——输入校验加固 + golden 按 TTK 三方比对规范收敛 Created-by: SeanDictionary Commit-by: SeanDictionary Merged-by: cann-robot Description: ## 描述 上一轮合入(!5444,squash 529263d53)后转测验证发现的修复,共 5 个提交: 1. **kernel ResetBins 越界守卫**(956061214): confusion_matrix_simt_not_full_load_ub.h 的 ResetBins 补 blockIdx_ >= resetBinsCoreNum_ 早退,与另两策略对齐,消除核数关系变化时的越界零写风险。 2. **InferShape 输入校验**(956061214):labels/predictions 一维 + shape 一致 + weights shape 一致校验,非法输入报 GRAPH_FAILED;proto 注释同步修正(y 为 2D [nc,nc],dtype 由 dtype/weights 映射决定,原注释继承了 canndev 历史笔误)。 3. **GEIR.02**(b72e7ab57):weights dtype 校验从 InferDataType 移到 tiling CheckDtype——仅非空 weights 校验与输出 dtype 一致,空张量豁免(空 weights 任何 dtype 合法,与 A2 语义一致)。 4. **INFER-EXC-001**(6b5f7f962):tiling CheckDtype 独立校验 labels/predictions 输入 dtype(五类合法集 + 两两一致),堵住非法 dtype 组合静默进内核。 5. **golden 规范化**(0081d4af5):出口零 cast(_compute 已按 TTK 下发的 output_dtypes 决定累加/窄回精度,去除 Promote 下为 no-op 的二次 astype);@staticmethod 加固;修正 _Compose 与模块 docstring 中与代码不符的描述。等价性验证:新旧 golden 全 dtype×weights×两方/三方 20/20 逐位一致。 6. **clang-format**(d628520fe):3 个文件按 CI 同版本 clang-format 18.1.8 重排,纯换行调整无语义变化。 ## 关联的Issue [#3578](https://gitcode.com/cann/ops-math/issues/3578) ## 测试 Ascend950DT_9592 真机(TTK 2.8.0,Rev d628520fe): - **UT**:build.sh -u --ophost --ops=confusion_matrix --soc=ascend950 **20/20 PASS**(tiling 12 含新增 empty_weights_dtype_exempt / weights_dtype_mismatch / input_dtype_mismatch / input_dtype_unsupported;infershape 8 含 shape_mismatch / rank2_rejected / weights_shape_mismatch)。 - **ST 真机**:仓内 12 例(5 f32 + 2 f16 + 5 整数)**12/12 PASS**。 - **GEIR 通路**:55 例**全部通过**——整数 32/32 binary_equal(原判据);浮点 23/23 两方比对 close PASS(三方 cross_check 因当前环境 GPU 竞品端点缺失以两方比对替代,判据声明不变)。 - **golden 等价性**:新旧实现 5 输出 dtype × 有无 weights × 两方/三方 20 组逐位一致;TTK TestSpecManager validate PASS。 ## 文档更新 - README.md 约束说明同步(weights==y dtype 一致性声明)。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6337 | 8 天前 | |
产品名变更 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 | 1 个月前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6424 merge ascend350 into master 适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 11个conversion/math算子新增ascend350计算单元支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3649 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6424 | 3 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !6425 merge fix/math-codecheck-opapi into master style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 变更说明 修复 CodeCheck 静态检查在 math 仓 op_api 层报告的规范问题,仅做等价修改,不改变任何业务逻辑与对外接口(aclnn API 签名/ABI 不变)。 涉及规则与修改: 1. **G.FUN.02(声明与定义参数名/限定不一致)** - math/sqrt/op_api/aclnn_sqrt.h/.cpp:头文件两处声明形参 opExecutor 对齐为 executor,@param 注释同步更新(DFX 宏内部硬编码标识符 executor,故改声明侧而非定义侧,不影响 ABI/调用方);移除 aclnnSqrt/aclnnInplaceSqrt 中 const aclrtStream stream 的多余顶层 const,与头文件声明保持一致。 - math/arg_min/op_api/aclnn_argmin.cpp:aclnnArgMin 定义移除 const aclrtStream stream 的多余 const,与头文件声明一致。 2. **G.INC.12(内部链接函数缺少 static)** - math/greater_equal/op_api/aclnn_ge_scalar.cpp:仅本文件内调用的 aclnnGeScalarCommon 增加 static,限定内部链接。 3. **G.INC.02(冗余 include)** - 删除 cumprod、cosh、sign_bits_pack、polar、grouped_bias_add_grad 五个 op_api 源文件中未使用的 #include "op_api/op_api_def_math.h"。 4. **G.CNS.04(只读指针参数应加 const)** - math/cdist_grad/op_api/aclnn_cdist_backward.cpp:GetOutTensorWithValueZero 形参加 const。 - math/sqrt/op_api/aclnn_sqrt.cpp、math/log/op_api/aclnn_log10.cpp、math/cos/op_api/aclnn_cos.cpp:CheckInplaceDtypeValid 形参加 const。 ## 关联 Issue ## 测试报告 - 编译验证(ascend950): - bash build.sh --soc=ascend950 --ops=sqrt,arg_min,greater_equal,cdist_grad,cos,cosh,cumprod,grouped_bias_add_grad,log,polar,sign_bits_pack -j16:ophost + binary 编译成功。 - bash build.sh --opapi --soc=ascend950 -j16:opapi 库编译成功。 - opapi UT:bash build.sh -u --opapi --soc=ascend950 -j16,均通过。 ## 自测考虑 - [x] 编译通过 - [x] UT 验证通过 - [x] 保持原有逻辑与接口不变 ## 文档 无 See merge request: cann/ops-math!6425 | 5 天前 | |
fix(cumsum): kernel内部设备函数cumsumSimd/cumsumSimdInt添加static修饰 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !6266 merge fix/cumsum-static-func into master fix(cumsum): kernel内部设备函数cumsumSimd/cumsumSimdInt添加static修饰 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> kernel内部设备函数cumsumSimd/cumsumSimdInt添加static修饰 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3622 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6266 | 5 天前 | |
doc Tools扫描错误修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !1899 merge master into master doc Tools扫描错误修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描错误修改 See merge request: cann/ops-math!1899 | 6 个月前 | |
适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6424 merge ascend350 into master 适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 11个conversion/math算子新增ascend350计算单元支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3649 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6424 | 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 | 1 个月前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
fix(dense_bincount): DenseBincount算子检视意见闭环 Co-authored-by: tianyu52<tianyu52@huawei.com> # message auto-generated for no-merge-commit merge: !5977 merge master into master fix(dense_bincount): DenseBincount算子检视意见闭环 Created-by: tianyu52 Commit-by: tianyu52 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> DenseBincount算子加固: 1. dense_bincount_binary.json - 将 binary_output 的固定值从 false 改为 null 2. wxamples中增加校验逻辑 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT/ST ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5977 | 23 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 2 天前 | |
fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5947 merge fix/3292-exector-typos into master fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 ops-math 仓 10 个两段式 aclnn 接口头文件的第二段接口 @param 注释中,参数名 executor 被拼写为 exector(少一个 u),与函数签名不一致。统一修正拼写,仅涉及注释文本,不影响任何接口与逻辑。 ## 关联的Issue 关联Issue #3292 ## 测试 - 纯注释文本修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5947 | 28 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !5676 merge master into master 完善AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack参数校验与 Tiling 处理,优化广播数据复用 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 针对 AdaCast、AddMatMatElements、AsinGrad、Eltwise 和 SignBitsPack,完善可选属性、输入输出类型与形状、系数长度及接口指针校验,修正 SignBitsPack 空 Tensor 初始化及搬运分块与 Tiling 不一致的问题,优化 AddMatMatElements 广播数据复用以减少重复搬运;同时整理 Tiling 常量和 UB 空间计算,补充 AsinGrad 单测、调整 AdaCast golden 实现,更新约束文档并修复代码格式和许可证头问题。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3266 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5676 | 29 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 3 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
[ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !5778 merge dev-v121 into master [ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 描述 conversion 类 7 个算子(batch_to_space_nd、concat、concat_d、concat_v2、depth_to_space、pack、space_to_depth)与 math 类 2 个算子(erfc、rint)新增 ascend960dt / ascend960pr 平台支持,复用 arch35 tiling 框架,主要改动: - 平台注册:9 个算子 CMakeLists.txt 的 COMPUTE_UNIT/SUPPORT_COMPUTE_UNIT 新增 ascend960dt、ascend960pr(TILING_DIR 复用 arch35),op_host/*_def.cpp 新增对应 this->AICore().AddConfig(...) 注册; - 预编译 binary 接入:batch_to_space_nd、concat_d、depth_to_space、pack、space_to_depth、rint 新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/ 下的 *_binary.json 与 *_simplified_key.ini;concat_v2 为 HOSTCPU 算子(依赖 concat),无独立 binary;erfc 的 kernel 源码(arch35/erfc.cpp)通过 add_kernel_sources 的 COMPUTE_UNITS 纳入新平台编译; - concat 的 arch35 tiling/kernel 适配 DAV_9201 架构(仅 9201 生效,不影响既有平台路径): - tiling 侧:DAV_9201 平台 ubFactorDim0 按两倍 BLOCK(64B)对齐修正;新增 dtypeSize 提升优化(末轴字节满足 128/64/32/16B 对齐时提升 dtypeSize,减少搬运次数),并注册 bitwidth=16 系列 tilingKey(12116/12126/21116/21216/30016 等); - kernel 侧:__NPU_ARCH__ == 9201 下 DataCopyPad 使用带 enAtomicSync 参数的接口分支。 ## 关联的Issue #3222 https://gitcode.com/cann/ops-math/issues/3222 ## 测试 平台注册与预编译 binary 接入部分不涉及既有 kernel 逻辑修改;concat 为 DAV_9201 架构适配新增专属分支,既有平台路径不变;可通过 PR 评论 compile 触发 CI 编译流水线验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5778 | 6 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Co-authored-by: tan_xin<tanxin44@huawei.com> # message auto-generated for no-merge-commit merge: !5447 merge master-v121 into master feat: Adds、Expand、BroadcastTo、Tile、GetShape算子新增ascend960dt平台支持 Created-by: tan_xin Commit-by: tan_xin;t00850857 Merged-by: cann-robot Description: ## 描述 为 Adds、Expand、BroadcastTo、Tile、GetShape 五个算子新增 ascend960dt 平台支持,使其可在 ascend960dt(Ascend960DT_968B7)芯片上完成编译与调用。主要改动: ### 算子定义与编译配置 - 各算子 op_host 定义文件(adds_def.cpp、expand_def.cpp、broadcast_to_def.cpp、tile_def.cpp、get_shape_def.cpp)通过 AICore().AddConfig("ascend960dt", ...) 注册平台配置 - 各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 增加 "ascend960dt",tiling 目录沿用 arch35;get_shape 的 kernel 源码 COMPUTE_UNITS 同步增加 ascend960dt - 新增各算子 ascend960dt 平台二进制编译配置 op_host/config/ascend960dt/*_binary.json 与 *_simplified_key.ini(simplified_key_mode=0) - ascendc_config.json 中 Adds、BroadcastTo、Tile 的 compute_units 增加 ascend960dt,并配置对应编译选项 ### 公共构建配置 - 顶层 CMakeLists.txt 的 ASCEND_ALL_COMPUTE_UNIT 增加 ascend960dt - scripts/build.conf.sh 的 SUPPORT_COMPUTE_UNIT_SHORT 增加 ascend960dt - scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 增加 [Ascend960DT]="Ascend960DT_968B7" ### op_api 适配 - expand:aclnn_expand.cpp 的 dataTypeSupportedMap 与 expand.cpp 的 IsAiCoreSupport 增加 NpuArch::DAV_9201 分支,数据类型支持列表沿用 ASCEND910B(FLOAT、FLOAT16、INT32、UINT8、INT8、BOOL、BF16、INT64) - 公共头文件 aclnn_check.h:IsRegBase 的 regbaseArch 集合增加 NpuArch::DAV_9201、NpuArch::DAV_9202;其余为 clang-format 格式整改 ## 关联的Issue - #3561 ## 测试 - 已通过 pre-commit 检查(clang-format 格式、codespell 拼写、文件末尾换行整改,见提交记录) ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5447 | 8 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
sinc等算子冗余workspace改为分配0 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6261 merge workspace into master sinc等算子冗余workspace改为分配0 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sinc等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3611 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 代码整改 See merge request: cann/ops-math!6261 | 6 天前 | |
[fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6194 merge fresnel_sin_quality_hardening into master [fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [fresnel_sin] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 一、变更概述 本 PR 为 fresnel_sin 算子转测准入(ops-admission-scan 白盒)+ 代码检视(ascendc-code-review file-review 全量)双报告问题的整改合入: - **准入扫描(2026-09-23)**:唯一真实 FAIL 为 ascend950 ini [FresnelSin] section 残留(P-E3,已由上游 canndev legacy 下线删除闭环);另一自动化 FAIL(15.5 f_dtype)经人工复核为 README "DOUBLE" 措辞被 dtype 正则误命中的工具误报;另有提示级问题 P-D/P-D2/P-INFO。 - **代码检视(2026-09-23)**:LOG-1 裸 OP_LOGE FAIL 5 处(H1-H5)、SUSPICIOUS 6 项(L1-L6)、设计一致性偏差 5 项(M1-M5)、风格 3 项(S1-S3)、文档格式 3 处(D1-D3)。 修复对象覆盖主线(math/fresnel_sin/,GE 交付主体,TBE 结构)与实验侧(experimental/math/fresnel_sin/,Ascend C l0op + aclnn 两段式)**双实现**:日志结构化、UB 容量校验、TilingData 字段整治、输出舍入模式对齐、大值截断机制显式化(两实现口径一致)等;交付件 DESIGN.md/REQUIREMENTS.md 同步至 v1.1,测试用例补齐空 tensor/边界/压力用例。共 7 个代码 commit(基线 2a12b1423 起)+ 2 个交付件同步 commit(625b165/8a47e70 中本算子部分)。 **适用审阅视角**:主线/实验侧均为 kernel + tiling + host 混合改动;无属性算子(proto/def 无 ATTR),无 TensorList/SIMT/MC2 路径介入。 ## 二、分类修改清单 ### (一)代码(ops-math 仓,主线 math/fresnel_sin + 实验侧 experimental/math/fresnel_sin) | 文件(范围) | 修改内容 | 对应问题 | |---|---|---| | 实验侧 op_host/arch35/fresnel_sin_tiling.cpp | H1/H2 裸 OP_LOGE 改结构化宏(EZ0016/EZ0007);新增 GetTileUbBytes() UB 容量校验(不足报错);删除只写不读字段写入(L5);4 处单行 if 补大括号(S2) | H1/H2、L2、L5、S2 | | 实验侧 op_kernel/arch35/fresnel_sin_tiling_data.h | baseLength/tailLength 由 uint32_t 改 int64_t,防 GM 偏移截断 | L1 | | 实验侧 op_kernel/arch35/fresnel_sin.h | 输出 Cast 由 CAST_NONE 改 CAST_RINT(M1);1e-30f 魔数命名 EPS_GUARD(L3) | M1、L3 | | 实验侧 op_api/aclnn_fresnel_sin.cpp、op_api/fresnel_sin.cpp | 3 处裸 OP_LOGE 改 OP_LOGE_WITH_INVALID_INPUT_DTYPE / OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON(H3/H4/H5) | H3/H4/H5 | | 实验侧 op_api/aclnn_fresnel_sin.h | 头注释空 tensor 措辞明确化(0-8 维任意 shape 含空 tensor) | P-D2 | | 主线 op_kernel/arch35/fresnel_sin.h | 死代码清理(未用常量、被覆盖的 NaN 掩码 Compare,L4);恢复 ASYM_THRESH=36974.0f 并接入 CompareScalar(GE) 显式截断分支(L6);单行 if 补大括号、成员变量分行声明(S1/S3) | L4、L6、S1、S3 | 修复机制说明(L6):主线大值截断由原先 |x|==|x|+1 饱和(≈2^24 起触发)改为显式 |x|≥36974(GE)阈值分支,[36974, 2^24) 区间按 DESIGN §1.3 显式截断为 sign(x)*0.5,±Inf 同落该掩码,与实验侧 maskClamp(Compare(maskClamp, |x|, 36974, GE))口径一致;结果数值等价,两实现机制对齐。 ### (二)资料(operator-artifacts/fresnel_sin 交付件) | 文件 | 修改内容 | 对应问题 | |---|---|---| | DESIGN.md(v1.1) | workspace 非 0(系统 Sin/Cos 临时空间)说明、arch22 未实现状态说明、双实现 TilingKey/TilingData 差异记录、输出 Cast 舍入 CAST_RINT、主线大值截断机制说明 | M3/M4/M5 收口 + L6 机制同步 | | REQUIREMENTS.md(v1.1) | workspaceSize 参数口径修正(GetLibApiWorkSpaceSize,可能非 0;空 tensor 时为 0)、Workspace/资源约束章节同步、GE 图模式静态/动态 shape 支持标记修正;"0-8 维" 空格清理(D1/D2) | M3/M4 + D1/D2 | | DESIGN.md:414 | "248 KB" 改 "248KB"(D3);v1.1 版本历史留痕 | D3 | ### (三)用例(operator-artifacts/fresnel_sin/测试用例) - fresnel_sin_tf_e2e_cases.csv:新增 18 条——rank5-8 各 1、1GiB 压力 fp32/fp16/bf16 各 1、特殊值(±0、NaN、±Inf)三 dtype 各 1、空 tensor 1D(fp16/bf16)与 2D 0×3(fp32/fp16/bf16)共 5、边界值(fp32 max/denorm、fp16 max/min、bf16)3; - test_cases_spec.csv:新增 5 条**空 tensor 边界用例**(1D 空、2D 0×3,fp16/bf16/fp32,带容差列),补齐覆盖度报告指出的空 tensor 专项用例缺口。 ## 三、逐 commit 摘要表 ops-math 分支(基线 2a12b1423 → HEAD,7 个): | # | commit | 标题 | 涉及文件 | 对应问题 | |---|---|---|---|---| | 1 | 32fc3c64c | fix: 实验侧 tiling LOG-1 结构化日志+UB 容量校验+TilingData 字段整治 | 实验侧 tiling.cpp、tiling_data.h | H1/H2、L1、L2、L5 | | 2 | ffcd16efe | fix: 实验侧 kernel 输出 Cast 改 CAST_RINT+命名 1e-30f 魔数 | 实验侧 kernel fresnel_sin.h | M1、L3 | | 3 | 8319a90ed | fix: 清理主线 kernel 死代码 | 主线 kernel fresnel_sin.h | L4 | | 4 | fa23a8441 | docs: 修正 aclnn 头注释空 tensor 措辞 | 实验侧 aclnn_fresnel_sin.h | P-D2 | | 5 | 34e9e4786 | fix: op_api 三处裸 OP_LOGE 改用结构化预定义宏 | 实验侧 aclnn_fresnel_sin.cpp、fresnel_sin.cpp | H3/H4/H5 | | 6 | 84d83c99e | style: 补齐 STYLE-2.4 大括号与 STYLE-2.8 变量分行 | 实验侧 tiling.cpp、主线 kernel fresnel_sin.h | S1/S2/S3 | | 7 | 02039ad1e | fix: 主线显式实现 36974 大值截断阈值(L6) | 主线 kernel fresnel_sin.h | L6 | 交付件同步(operator-artifacts 仓,本算子部分): | # | commit | 标题 | 涉及文件 | 对应问题 | |---|---|---|---|---| | 8 | 625b165 | quality-hardening: 19算子批量修复(本算子部分) | fresnel_sin/DESIGN.md(v1.1)、REQUIREMENTS.md(v1.1)、测试用例/fresnel_sin_tf_e2e_cases.csv(+18)、test_cases_spec.csv(+5) | M3/M4/M5、D1-D3、用例补齐 | | 9 | 8a47e70 | quality-hardening: 第二轮补修(本算子部分) | fresnel_sin/DESIGN.md(区间3 阈值符号 GT→GE、"两实现一致"口径)、REQUIREMENTS.md | L6 交付件口径同步 | 外部闭环:P-E3(ascend950 ini [FresnelSin] 残留)随 canndev 上游 legacy 下线提交(2026-09-18,删除含 FresnelSin 在内 20 个算子的 ascend950 ini 段)删除;已复核当前 ascend950 ini 无该 section。 ## 四、测试与验证 ### 构建(主线/实验侧两套实现均覆盖) - **主线包全量构建**(含 kernel bin 重编):通过(commit 02039ad1e 验证记录); - **实验侧全量构建**:通过(commit 34e9e4786 验证记录,含 opapi 目标日志栈隔离改动); - **代码风格**:clang-format dry-run 校验通过,大括号/分行整改不被格式化工具回退(commit 84d83c99e 验证记录)。 ### 白盒准入复扫(无 NPU 静态证据) - P-E3 修复后准入扫描无残留 FAIL 项(15.5 f_dtype 为工具误报另案,见未完成事项); - 异常三层检测(Tiling/op_api/LLM 审视)与工程规范 6 项(E1-E6)均 PASS; - 用例覆盖度:kernel 侧 95.9%、aclnn 侧 81.2%,均 PASS(≥80%),空 tensor 用例已按此轮改动补齐。 ### UT 与真机 - **UT**:受本地环境限制(ophost UT 进程无法找到算子 impl 注册 "not found FresnelSin",同仓 abs/fresnel_cos 对照也全挂),UT 未能跑通,待环境修复后复跑;本 PR 未改 UT 代码; - **精度/性能**:无 NPU 环境,未新增实测;沿用交付件历史精度/性能报告(operator-artifacts/fresnel_sin/测试报告/,2026-09-15/18,scipy golden 两方/三方)。M1(CAST_RINT)与 L6(显式 36974 阈值)均为机制对齐类修改:前者直接降低 fp16/bf16 舍入误差,后者数值与原饱和路径等价(区间 3 输出恰为 ±0.5 边界值),预期不影响既有精度结论,真机验证随转测执行。 ## 五、未完成事项与限制(审阅须知) ### 三禁区声明(需架构/产品裁决,不在本 PR 范围) 1. **ACLNN 接口交付范围未定**(admission P-D):实验侧手写 aclnn 两段式接口存在但当前 ACLNNTYPE=aclnn_exclude + DISABLE_IN_OPP,全仓无 docs/aclnnFresnelSin.md。若实验侧随交付则需补文档(含错误码表,覆盖 ACLNN_ERR_PARAM_NULLPTR/PARAM_INVALID);此 PR 未动 aclnn 交付配置与文档目录结构。 2. **910B(arch22/DAV_2201)产品支持矛盾**(code-review M2):spec.yaml/REQUIREMENTS/README 声明支持 Ascend910B,实现仅 arch35 且 l0op 强制 DAV_3510,无 op_kernel/arch22 目录;DESIGN v1.1 仅记录了"arch22 未实现"状态说明,spec/需求的声明未改动(删声明或补实现属产品决策)。 3. **主线(GE)与实验侧(Ascend C)双实现并存,交付侧别未收敛**(admission P-INFO + 检视附注 3):两实现算法同源但接口/结构差异大,REG_OP(FresnelSin) 仅主线有;收敛其一属大改动,需架构裁决。DESIGN v1.1 §3.2/§3.3 已记录双实现差异,未做收敛决策。 ### 环境限制 - **无 NPU/TTK**:GEIR TTK 动态 shape 真机测试、异常输入真机实测(admission 标记 UNAVAILABLE)及覆盖度报告残留缺口(DT_INT32 边界 ±2.14748e+09、UB 整除、aclnn 异常用例部分)未补证,待转测拿到 NPU 后执行 run_ttk_geir.sh / run_ttk_exception.sh 并回填测试报告目录。 ### 已知未修低危项 / 工具冲突 - README 约束说明 "不支持DOUBLE(FP64)" 措辞仍会触发扫描器 dtype 正则误报(P-W1,为规避需确认扫描器口径的文档措辞改动);无有意设计类未修项。 以上 5 项未修项的完整条目、决策人与修复条件,见 /home/s00947152/LongTail/guide/未修项明细/fresnel_sin_未修项明细.md。 See merge request: cann/ops-math!6194 | 9 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
feat: 新增mul_addn融合规则MulAddNPass(落位fused_mul_add_n) Co-authored-by: wangxun21<wangxun21@huawei.com> # message auto-generated for no-merge-commit merge: !6353 merge mul_addn_fusion_pass into master feat: 新增mul_addn融合规则MulAddNPass(落位fused_mul_add_n) Created-by: wangxun21 Commit-by: wangxun21 Merged-by: cann-robot Description: ## 描述 将 canndev 旧框架融合规则 MulAddNPass 迁移至 ops-math 新 Pass 框架(REG_FUSION_PASS + ES 接口),落位 math/fused_mul_add_n/(两输入主场景目标算子目录): - **两输入路径**(无平台限制,与旧 pass 一致): Mul(x, 标量或(1,)侧) → AddN 融合为 FusedMulAddN; - **多输入路径**:N × Mul + AddN(N∈(2,16])融合为 MulAddn;两路径共 15 个 pattern; - 保留旧实现全部语义约束:Mul 出度==1 校验、dtype/shape/维度校验、多输入平台门控(按仓内先例 d8370277f 改用 NpuArch 判别,白名单 {DAV_2201},等价于旧实现的 Ascend910B / Ascend910_93); - 全部源/目标节点(Mul/AddN/FusedMulAddN/MulAddn)均以 CompliantNodeBuilder 构建:MulAddn 不使用其生成的 es 接口,pass 不依赖其他算子目录的 proto,单算子构建 --ops=fused_mul_add_n 自包含可编译; - 注册方式 REG_FUSION_PASS(MulAddNPass).Stage(CompatibleInherited),与旧内置 pass 同名顶替;含 CANN 9.0.0 编译期宏隔离 + 运行期弱符号版本守卫。 改动文件(3 个,全部位于 math/fused_mul_add_n/;add_all_modules_sources 自动收集 op_graph 与 UT,无需 CMakeLists 变更): | 文件 | 说明 | |---|---| | op_graph/fusion_pass/mul_addn_fusion_pass.h | pass 类声明(35 行) | | op_graph/fusion_pass/mul_addn_fusion_pass.cpp | pass 实现:15 pattern、两路径分派校验与替换图构建、NpuArch 平台门控、注册 | | tests/ut/op_graph/test_mul_addn_fusion_pass.cpp | UT 13 用例(含 rtGetSocSpec 弱符号 stub,按 ASCEND_NPU_ARCH 注入架构) | ## 关联的Issue 无(canndev 旧框架融合规则迁移开源任务) ## 测试 - UT:bash build.sh --opgraph -u --ops=fused_mul_add_n -j16,**13/13 PASSED**(单算子构建自包含验证);全量 --opgraph 插件编译通过; - 端到端(CANN 9.0.0 + Ascend950PR_9589 实机验证,pass 落位 mul_addn 目录时期):pass 随算子包注册生效,融合改图成功,te_fusedmuladdn kernel 实机 launch,数值 golden 比对 max diff = 0; - 负向对照:卸载算子包后 pass 不注册、不融合,退化为 te_mul + te_addn 双 kernel 执行,数值仍全部正确。 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6353 | 2 天前 | |
适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6424 merge ascend350 into master 适配ascend350:11个conversion/math算子新增ascend350计算单元支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 11个conversion/math算子新增ascend350计算单元支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3649 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6424 | 3 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
fix(get_dynamic_dims): validate input data types Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !5953 merge fix/issue-3274-get-dynamic-dims-dtype-check into master fix(get_dynamic_dims): validate input data types Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: ## 描述 GetDynamicDims根据输出数据类型选择模板类型,并使用该类型读取所有动态输入。原实现未校验各输入与输出的数据类型是否一致,混合数据类型场景可能导致输入数据被错误解释。 本次修改在读取输入数据前校验所有动态输入的数据类型与输出一致;数据类型不一致时返回参数错误。同时补充算子原型和README中的数据类型约束,并增加首输入与输出类型不一致、后续动态输入类型不一致的回归用例。 ## 关联的Issue Fixes #3274 ## 测试 修改前执行: bash bash build.sh -u --opkernel_aicpu --ops=get_dynamic_dims \ --gtest_filter=GetDynamicDimsAicpuTest.* -j16 原有7个用例通过,新增2个混合数据类型用例失败,问题稳定复现。 修改后执行相同命令,9个用例全部通过。 执行以下pre-commit检查,全部通过: bash pre-commit run --files \ math/get_dynamic_dims/README.md \ math/get_dynamic_dims/op_graph/get_dynamic_dims_proto.h \ math/get_dynamic_dims/op_kernel_aicpu/get_dynamic_dims_aicpu.cpp \ math/get_dynamic_dims/tests/ut/op_kernel_aicpu/test_get_dynamic_dims.cpp ## 文档更新 更新math/get_dynamic_dims/README.md和get_dynamic_dims_proto.h,明确所有动态输入的数据类型必须一致,输出数据类型与输入一致。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5953 | 28 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !6425 merge fix/math-codecheck-opapi into master style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 变更说明 修复 CodeCheck 静态检查在 math 仓 op_api 层报告的规范问题,仅做等价修改,不改变任何业务逻辑与对外接口(aclnn API 签名/ABI 不变)。 涉及规则与修改: 1. **G.FUN.02(声明与定义参数名/限定不一致)** - math/sqrt/op_api/aclnn_sqrt.h/.cpp:头文件两处声明形参 opExecutor 对齐为 executor,@param 注释同步更新(DFX 宏内部硬编码标识符 executor,故改声明侧而非定义侧,不影响 ABI/调用方);移除 aclnnSqrt/aclnnInplaceSqrt 中 const aclrtStream stream 的多余顶层 const,与头文件声明保持一致。 - math/arg_min/op_api/aclnn_argmin.cpp:aclnnArgMin 定义移除 const aclrtStream stream 的多余 const,与头文件声明一致。 2. **G.INC.12(内部链接函数缺少 static)** - math/greater_equal/op_api/aclnn_ge_scalar.cpp:仅本文件内调用的 aclnnGeScalarCommon 增加 static,限定内部链接。 3. **G.INC.02(冗余 include)** - 删除 cumprod、cosh、sign_bits_pack、polar、grouped_bias_add_grad 五个 op_api 源文件中未使用的 #include "op_api/op_api_def_math.h"。 4. **G.CNS.04(只读指针参数应加 const)** - math/cdist_grad/op_api/aclnn_cdist_backward.cpp:GetOutTensorWithValueZero 形参加 const。 - math/sqrt/op_api/aclnn_sqrt.cpp、math/log/op_api/aclnn_log10.cpp、math/cos/op_api/aclnn_cos.cpp:CheckInplaceDtypeValid 形参加 const。 ## 关联 Issue ## 测试报告 - 编译验证(ascend950): - bash build.sh --soc=ascend950 --ops=sqrt,arg_min,greater_equal,cdist_grad,cos,cosh,cumprod,grouped_bias_add_grad,log,polar,sign_bits_pack -j16:ophost + binary 编译成功。 - bash build.sh --opapi --soc=ascend950 -j16:opapi 库编译成功。 - opapi UT:bash build.sh -u --opapi --soc=ascend950 -j16,均通过。 ## 自测考虑 - [x] 编译通过 - [x] UT 验证通过 - [x] 保持原有逻辑与接口不变 ## 文档 无 See merge request: cann/ops-math!6425 | 5 天前 | |
产品名变更 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 | 1 个月前 | |
docs: fix HansEncode Ascend 950 support status Co-authored-by: n_nddddd<lanshangwei1@huawei.com> # message auto-generated for no-merge-commit merge: !6250 merge hans-encode-950-doc-support into master docs: fix HansEncode Ascend 950 support status Created-by: n_nddddd Commit-by: n_nddddd Merged-by: cann-robot Description: ## 描述 hans encode 质量加固(资料同步):README 产品支持表补充 950支持 hans encode。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3503 ## 测试 只修改文档,无代码更新 ## 文档更新 更新了以下两个文档: math/hans_encode/README.md math/hans_encode/docs/aclnnHansEncode.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6250 | 10 天前 | |
histogram_fixed_width: 新增ascend960dt/960pr支持 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6204 merge dev_his into master histogram_fixed_width: 新增ascend960dt/960pr支持 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> histogram_fixed_width: 新增ascend960dt/960pr支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3556 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6204 | 7 天前 | |
feat: HistogramV2算子新增Ascend350平台支持 Co-authored-by: wychencc_<wangyuchen53@huawei.com> # message auto-generated for no-merge-commit merge: !6357 merge dvLite into master feat: HistogramV2算子新增Ascend350平台支持 Created-by: wychencc_ Commit-by: wychencc_ Merged-by: cann-robot Description: ## 描述 为 HistogramV2 算子新增 Ascend350 平台支持。ascend350 与 ascend950 完全同构(共用 arch35 tiling 与 kernel 源码),本 PR 为纯注册扩展,不涉及计算逻辑修改: - op_host histogram_v2_def.cpp:AICore 新增 AddConfig("ascend350"),复用 ascend950 同一 config 对象 - op_host config/ascend350:新增 histogram_v2_binary.json,与 ascend950 版一致 - scripts/kernel/binary_config/ascendc_config.json:HistogramV2 条目 compute_units 补登 ascend350,并复制 ascend950 同值 compile_options - HistogramV2 融合 pass 平台白名单补充 "Ascend350" 注:LinSpace、OneHot、FusedMulAddN 算子的 Ascend350 适配已由 PR #6231 合入,本 PR 不重复包含。 ## 关联的Issue #3515 ## 测试 - ascend350 histogram_v2_binary.json 与 ascend950 版逐字节比对(仅 EOF 换行差异) - 按 def.cpp/binary.json/ascendc_config.json 等登记点完成适配自查,与 950 侧登记一一对应 - [ ] 二级冒烟 - [ ] 算子泛化 - [x] 算子 ST 测试 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6357 | 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 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 | 1 个月前 | |
修改aclnnAcosh接口文档以及KlDivV2算子文档 Co-authored-by: xiu_ling_wang<wangxiuling2@h-partners.com> # message auto-generated for no-merge-commit merge: !6506 merge doc-md into master 修改aclnnAcosh接口文档以及KlDivV2算子文档 Created-by: xiu_ling_wang Commit-by: xiu_ling_wang Merged-by: cann-robot Description: ## 描述 修改aclnnAcosh接口文档以及KlDivV2算子文档 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3501 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6506 | 2 天前 | |
产品名变更 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 | 1 个月前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
lin_space,range算子适配Ascend960 Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !6420 merge no_transpose_d into master lin_space,range算子适配Ascend960 Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> lin_space,range算子适配Ascend960 1. opdef增加ascend960dt配置 2. config中增加json文件 3. CMakeLists中新增ascend960dt编译选项 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/6768 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ascend950和ascend960编译验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6420 | 6 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
math仓121算子迁蓝 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !5762 merge master into master math仓121算子迁蓝 Created-by: qq_52874943 Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 math仓部分121算子黄迁蓝,只进行960dt适配,以及算子二进制补充,不动kernel和tiling代码。 ## 关联的Issue 关联Issue[#3650](https://gitcode.com/cann/ops-math/issues/3650) ## 测试 本地已完成新精度对比与性能测试,通过静态检查、蓝区冒烟、算子ST以及算子二级冒烟。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5762 | 3 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
docs: 修正 math 算子 README 文档中的描述与数据类型说明 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6158 merge 3246 into master docs: 修正 math 算子 README 文档中的描述与数据类型说明 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 修正 math 目录下 13 个算子 README.md 文档中的描述问题,提升文档准确性与术语一致性,具体包括: - 数据类型说明修正: abs 输出类型列表去掉重复的 FLOAT16、FLOAT,改为 COMPLEX32、COMPLEX64;assign_sub 修正拼写 BFOAT16 → BFLOAT16。 - 属性名拼写修正:hans_encode 的 reshuff → reshuffle。 - 术语大小写统一:arg_min 的 infershape → InferShape;reduce_all 的 tenor → Tensor。 - 表述/用词修正:add_n 的"主元素相加"→"逐元素相加";add_lora 的"Lora"→"LoRa";cholesky 的"需为"→"须为";cosine_similarity 的"显示指定"→"显式指定";cumsum 的"累计求和"→"累积求和";lgamma 的"输入张量x1"→"输入张量x";mul_addn 表述精简;asinh_grad 的"通过图模式方式调用"→"通过图模式调用"。 ### 改动原因 文档中存在错别字、术语拼写与大小写不统一、数据类型说明错误等问题,影响可读性与准确性。 ### 改动方法 逐文件校对并修正上述 README.md 中的文本与类型说明,仅涉及文档,不改变任何代码逻辑。 ## 关联的Issue #3426 ## 测试 文档变更,无需代码测试。 ## 文档更新 更新 math 目录下以下 13 个 README.md: math/abs、math/add_lora、math/add_n、math/arg_min、math/asinh_grad、math/assign_sub、math/cholesky、math/cosine_similarity、math/cumsum、math/hans_encode、math/lgamma、math/mul_addn、math/reduce_all ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6158 | 13 天前 | |
fix(golden): 规范 AddV2、MulNoNan 和 TensorRedirect 三腿参考 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6247 merge fix/golden-three-leg-contract-20261012 into master fix(golden): 规范 AddV2、MulNoNan 和 TensorRedirect 三腿参考 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修正 AddV2、MulNoNan、TensorRedirect 的 Golden,使其遵循 TTK 三腿比对与 Golden 编写规范。仅修改 3 个 tests/assets/golden.py。 - CPU Promote 不做输入或输出精度转换;AddV2 的 BF16 桥接改为位视图,普通模式及 GPU 标杆的 FP16/BF16 跟随 kernel 在 FP32 计算后窄回。 - MulNoNan kernel/GEIR 的 CPU Golden 使用 TensorFlow 原生浮点 API,int32 使用 TF 乘法与 Select 组合,保留原有溢出和第二输入为零的掩码语义。 - MulNoNan TF E2E 复用 TTK 默认 CPU 原生 TF 通路及框架 Promote,GPU 标杆改为 Torch,并使用 TF API 的 x/y 形参名适配按名绑定。 - 移除三个算子的 TF GPU provider。TensorRedirect 的计算与逐位拷贝逻辑不变,全部 dtype tolerance 和 legacy 注册保留。 - 算子实现、Host、Parser 和 TTK 均无改动。 ## 关联的Issue Closes #3496 https://gitcode.com/cann/ops-math/issues/3496 ## 测试 - Golden CPU 回归 248/248 通过,基线为 f53b52a3e7deaedca104d82c453c99900de60b25。 - 同一固定输入运行主线和整改版,并用独立参考校验整改结果;覆盖全部声明 dtype、Promote FP32/FP64、广播、标量、非连续和空输入、整数溢出、NaN/Inf 与零。 - TensorRedirect 覆盖 11 种 dtype,逐位检查负零、NaN payload 和非规格化数。 - 使用当前工作目录 TTK 的真实 TestSpec loader、参数绑定和 CPU Golden 模块检查注册、完整 dtype tolerance、MulNoNan TF E2E 的普通及 Promote 默认通路。 - pre-commit run --files <本次3个golden.py>、git diff --check 通过。 - Torch GPU 标杆的 Python 组合在 CPU 执行验证;未执行 NPU/远程 GPU、算子性能或算子精度测试。本轮本地 CI 结果见下文。 预期变化:MulNoNan Promote 的 FP64 乘积不再经过 FP32 舍入;TF E2E 普通模式不再无条件升精度。一般浮点算术的 NaN payload 不作为一致性要求,TensorRedirect 仍严格逐位相等。 ## 文档更新 当前工作目录保留整改报告、主线 Golden 快照、可复现脚本和逐项结果;仓库文档未修改。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 输入输出自查 修复 MulNoNan 在标量输入下返回 NumPy scalar 的兼容问题,使用 np.asarray(output.numpy()) 保持原来的零维 ndarray,不转换 dtype 或改变数值。新增 legacy/Spec 的签名、返回容器、输出数量/顺序/shape/dtype、输入不被改写、Promote 元信息及真实 TTK 服务端 CPU 参数绑定检查。默认 TF E2E 标量输出另经真实 TTK 比对器验证兼容。 两仓累计 Golden CPU 自查 **447/447** 通过,本仓 **248/248**。未执行 NPU/远程 GPU、算子性能或算子精度测试。当前受检 HEAD:2ed0535b23f764e6efbae7ded2d6d5513baa33dc。 ## 本地 CI 统一入口 /workspace/CI-skills/ci_local_check.sh 定向检查通过;pre-commit、隔离 oat-py 1.0.3、Ascend 950 与 A2(ascend910b)定向 package/UT 已通过。构建并行度最多 8,使用任务目录内 CANN_Revise 的 0923 Toolkit/ops。 受测 HEAD:2ed0535b23f764e6efbae7ded2d6d5513baa33dc;rebase 主仓 master:f53b52a3e7deaedca104d82c453c99900de60b25;本轮 CI 基线快照:f53b52a3e7deaedca104d82c453c99900de60b25。每仓相对 rebase 基点仅 1 个提交,squash 前后完整 diff 和 tree 一致,7 个 Golden 内容不变。 覆盖边界:下列定向 UT 阶段未执行用例(0 项或仅构建目标):opapi/ascend950、opgraph/ascend950、opapi/ascend910b、opgraph/ascend910b、opkernel/ascend910b。不将这些阶段的构建通过计为用例覆盖。 线上 CI 触发凭据:https://gitcode.com/cann/ops-math/merge_requests/6247#note_193365306。仅记录已触发请求/现有任务,不表示线上 CI 已通过。 See merge request: cann/ops-math!6247 | 10 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
docs: 修复注释与文档不一致(aclnn 示例代码围栏) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6477 merge docs/comment-cleanup-20261019-04 into master docs: 修复注释与文档不一致(aclnn 示例代码围栏) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修复 aclnn 文档末尾未闭合的 Markdown 代码围栏: - math/nan_to_num/docs/aclnnNanToNum&aclnnInplaceNanToNum.md - math/not_equal/docs/aclnnNeScalar&aclnnInplaceNeScalar.md 将 }`` 拆分为 } 与独立一行的关闭围栏。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3665 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - math/nan_to_num/docs/aclnnNanToNum&aclnnInplaceNanToNum.md - math/not_equal/docs/aclnnNeScalar&aclnnInplaceNeScalar.md` ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6477 | 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 | 1 个月前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
产品名变更 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 | 1 个月前 | |
docs: 修复注释与文档不一致(NeTensor 示例围栏与 Concat 标题) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6481 merge docs/comment-cleanup-20261019-08 into master docs: 修复注释与文档不一致(NeTensor 示例围栏与 Concat 标题) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md:关闭代码围栏独立成行。 - experimental/conversion/concat_v2/README.md:标题 Conact -> Concat。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3667 ## 测试 - pre-commit(含 OAT):通过 - Markdown 链接/图片检查:无新增失效项 - Markdown 代码围栏检查:通过 - 全部 26 个分支合并验证:无冲突 ## 文档更新 - experimental/conversion/concat_v2/README.md - math/not_equal/docs/aclnnNeTensor&aclnnInplaceNeTensor.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6481 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
diag等算子冗余workspace改为分配0 Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !6418 merge new_ww into master diag等算子冗余workspace改为分配0 Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> diag等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3678 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码整改 See merge request: cann/ops-math!6418 | 2 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !6425 merge fix/math-codecheck-opapi into master style(math): 修复 op_api 层 CodeCheck 静态检查规范问题 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 变更说明 修复 CodeCheck 静态检查在 math 仓 op_api 层报告的规范问题,仅做等价修改,不改变任何业务逻辑与对外接口(aclnn API 签名/ABI 不变)。 涉及规则与修改: 1. **G.FUN.02(声明与定义参数名/限定不一致)** - math/sqrt/op_api/aclnn_sqrt.h/.cpp:头文件两处声明形参 opExecutor 对齐为 executor,@param 注释同步更新(DFX 宏内部硬编码标识符 executor,故改声明侧而非定义侧,不影响 ABI/调用方);移除 aclnnSqrt/aclnnInplaceSqrt 中 const aclrtStream stream 的多余顶层 const,与头文件声明保持一致。 - math/arg_min/op_api/aclnn_argmin.cpp:aclnnArgMin 定义移除 const aclrtStream stream 的多余 const,与头文件声明一致。 2. **G.INC.12(内部链接函数缺少 static)** - math/greater_equal/op_api/aclnn_ge_scalar.cpp:仅本文件内调用的 aclnnGeScalarCommon 增加 static,限定内部链接。 3. **G.INC.02(冗余 include)** - 删除 cumprod、cosh、sign_bits_pack、polar、grouped_bias_add_grad 五个 op_api 源文件中未使用的 #include "op_api/op_api_def_math.h"。 4. **G.CNS.04(只读指针参数应加 const)** - math/cdist_grad/op_api/aclnn_cdist_backward.cpp:GetOutTensorWithValueZero 形参加 const。 - math/sqrt/op_api/aclnn_sqrt.cpp、math/log/op_api/aclnn_log10.cpp、math/cos/op_api/aclnn_cos.cpp:CheckInplaceDtypeValid 形参加 const。 ## 关联 Issue ## 测试报告 - 编译验证(ascend950): - bash build.sh --soc=ascend950 --ops=sqrt,arg_min,greater_equal,cdist_grad,cos,cosh,cumprod,grouped_bias_add_grad,log,polar,sign_bits_pack -j16:ophost + binary 编译成功。 - bash build.sh --opapi --soc=ascend950 -j16:opapi 库编译成功。 - opapi UT:bash build.sh -u --opapi --soc=ascend950 -j16,均通过。 ## 自测考虑 - [x] 编译通过 - [x] UT 验证通过 - [x] 保持原有逻辑与接口不变 ## 文档 无 See merge request: cann/ops-math!6425 | 5 天前 | |
perf(population_count): 小shape性能优化:核扇出收敛+SWAR寄存器链 Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !6383 merge perf/population-count-small-shape into master perf(population_count): 小shape性能优化:核扇出收敛+SWAR寄存器链 Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 问题单 比率0.544 < 带宽折算(均值)=0.556,15 例小 shape(n=84~152K,int16/uint16)性能均值不过。 ## 根因(实测修正) 1. **主因:小 shape 核数扇出**。旧 tiling 以 32 元素最小块对齐( blockFactor = CeilAlign(CeilDiv(n, coreNum), ubBlockSize)),小 shape 被铺满核(n=3544 → 56 核 × 64 元素)。AIV 块调度成本随核数线性增长(实测 ~7-10ns/核),而 launch-bound 小 kernel 每核计算仅 1 个 VF tile。对照 abs(atvoss 调度器 512 元素对齐,n=3544 仅 7 核)floor 1.50us vs 修复前 2.01us。 2. **次因:SWAR 计算链 UB 驻留形态**(实测稳态差 ~0.1us,方差显著)。 ## 修复内容(3 文件 +100/-57) - **tiling**(population_count_tiling_arch35.cpp):blockFactor 对齐 512 元素(1KB/核,int16),小 shape 收敛至少数核;双 buffer 仅在 loopCount>=2(blockFactor > ubFactorSingle)时启用 - **kernel**(population_count.h):Compute 改为 __VEC_SCOPE__ 寄存器驻留 SWAR 链——DIST_NORM 128 元素/拍打包装载,DIST_PACK_B16 store 取每 16-bit lane 低字节直出 uint8(省去 Cast/0x00FF 掩码/VECCALC tmpBuf) - 入口补 KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_AIV_ONLY)(仓内标准写法) 数值正确性:step3 后 0x0F0F 掩码保留(nibble 残留会污染 bit4,popcount=16 输入出错);step4 后高字节残留由 PACK_B16 低字节选取自然丢弃。 ## 验证(Ascend950PR_9599 / CANN 9.3.0 / ttk v3.0.0 e2e,CI framework-api 同链路) - **15 失败例 CST 均值 0.519 → 0.697(阈值 0.556,余量 +25%),逐例 0.62~0.77 全过线** - 精度 **49/49 逐位一致**(15 失败例 + 26 边界例[标量/空张量/非对齐尾拍/1M/10M × int16+uint16] + 8 极值例[全0/全-1/±32767/65535]) - 大 shape 带宽不回归:10M 例 ~1871 GB/s ≥ 旧版 1779 GB/s - 大 shape 段比值原有 2.3~2.7 优势不变(未改动其执行路径参数) ## 复测注意 - 改 host tiling 后需清理 GE 图编译缓存(kernel_meta/),否则旧 tiling 被缓存冻结 - 自定义包 e2e 首跑含在线编译,判定用 per-call 稳态(min)或缓存预热后重跑 ## 关联的Issue - #3605(https://gitcode.com/cann/ops-math/issues/3605) See merge request: cann/ops-math!6383 | 3 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
[CANNBot]ProdEnvMatA算子支持Ascend950 Co-authored-by: kevin_huang1234<kevin.huangdi@huawei.com> # message auto-generated for no-merge-commit merge: !4875 merge add_prod_env_mat_a into master [CANNBot]ProdEnvMatA算子支持Ascend950 Created-by: zhangdongdong34 Commit-by: kevin_huang1234 Merged-by: cann-robot Description: ## 描述 ProdEnvMatA算子支持Ascend950 ## 关联的issue ## 测试 - 编译打包验证通过(ascend950) - Host UT 11个用例全部通过(6 tiling + 5 infershape) - TTK上板测试精度PASS、内存OOB PASS ## 文档更新 - 新增 README.md - 新增 docs/aclnn 文档(无aclnn接口,has_aclnn=false) - 更新 docs/zh/op_list.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述 ## AI/Agent 生成声明 代码来源: - [ ] 纯人工手写 - [ ] AI 辅助编写 - [x] AI 完全生成 人工审查:已完成 测试验证:已通过 合规检查:已完成 See merge request: cann/ops-math!4875 | 29 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
fix(radix_top_k): 修复 WS 变体 V→MTE3 同步缺失与 CreateVecIndex4TopK 越界,统一跨核前缀和累加为 int64 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6396 merge addut into master fix(radix_top_k): 修复 WS 变体 V→MTE3 同步缺失与 CreateVecIndex4TopK 越界,统一跨核前缀和累加为 int64 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 改动原因 RadixTopK 在 int64 大 shape(sortLen 超 int32 上限)与 WS 变体路径上存在三处缺陷,且 host UT 的 tiling key 期望值只编码 3 位,int64 主路径恒测不到: 1. WS 变体同步缺失: Add 在 V 流水线写 tileTopK,紧接着 MTE3 读同一块 UB;PipeBarrier<PIPE_V> 只保证 V 流水线内部顺序,SToMTE3Sync 只覆盖 S→MTE3,两者都管不到 V→MTE3,MTE3 可能读到 Add 之前的旧值,导致该段 k 配额错乱。同文件 AddTileHist2TileTopKInWs 对同样的 Add→CopyOut 序列用的是 VToMTE3Sync。 2. 索引序列越界:i64 变体的多段 regime 会命中 tileNum_ > MAX_TILE_NUM_IN_UB,此时 CreateVecIndex4TopK 中的无符号相减会下溢成巨大值,再被 tileLen_ 兜住,最终 GetWithOffset(maxIndexLen, tileNumAlign_ * 4) 的偏移会写出 6144 元素 buffer。 3. 跨核前缀和累加溢出:前驱 core 边界 bin 累计元素数总量可达 sortLen > 2^31,UB 变体用 int32 累加(cumSumValuePrev / remainCoreBoundaryNum)存在溢出风险;同时 WS 变体维护了一份只差累加器类型的 ComputeCumSumPrevI64。 4. UT 覆盖缺口:ComputeExpectedTilingKey 只编码 sorted/largest/isLargeShape 3 位,未编码 isInt64Shape(bit3),int64 主路径(sortLen > 2^31)恒测不到。 ### 改动方法 1. op_kernel/radix_top_k_ws.h - HandleLastRoundBoundary 中 Add→CopyTileTopKUb2Ws 的同步由 SToMTE3Sync() 改为 VToMTE3Sync(),与同文件 AddTileHist2TileTopKInWs 口径一致; - CreateVecIndex4TopK 增加前置防御:tileNumAlign_ >= MAX_TILE_NUM_IN_UB 时直接 return 0,下游走「现算索引」分支,与 maxIndexLen==0 的既有兜底行为一致; - 删除 ComputeCumSumPrevI64,改用基类 ComputeCumSumPrev(出参已是 int64),消除 UB/WS 两份仅差累加器类型的实现。 2. op_kernel/radix_top_k_common.h:ComputeCumSumPrev 出参由 int32_t& 改为 int64_t&(每 core 边界 bin 计数 < 2^31,int64 累加对 int32 形状同样安全);IsNaNValue 的 float 位模式读取由指针 reinterpret 改为 union,规避浮点相等/自比较类告警;补充提取相与计数相 NaN 规范化口径不对称的说明。 3. op_kernel/radix_top_k_ub.h:cumSumValuePrev / remainCoreBoundaryNum 改为 int64,回写 tileTopK 时显式 static_cast<int32_t>(per-core 配额 < 该 tile 边界 bin 计数 < 2^31,int32 通道安全)。 4. op_host/radix_top_k_tiling.cpp:新增 static_assert(LARGE_SORT_LEN < INT32_SORT_LEN_MAX),把「isInt64Shape_ 蕴含 isLargeShape_」钉死,避免后续调大 LARGE_SORT_LEN 时 i64 分支被漏掉;needWorkspace / GetWorkspaceSize 两处 || isInt64Shape_ 补充防御性冗余注释。 5. tests/ut/op_host/test_radix_top_k_tiling.cpp:ComputeExpectedTilingKey 补齐第 4 位 isInt64Shape(与 GET_TPL_TILING_KEY(sorted, largest, isLargeShape, isInt64Shape) 一一对应,此前 int64 主路径恒测不到);新增两条用例:i64_shape_tiling_key_bit3(sortLen=2^31 ⇒ bit3+bit2、indices int64、必须申请 workspace)、i64_shape_reject_int32_indices(sortLen > 2^31 且 indices int32 必须 tiling 失败);MakeRadixTopKTilingContext 支持指定输出 indices dtype。 6. math/radix_top_k/README.md:约束说明由「无」改为「本算子为选取类实现,输出为选中元素在排序轴上的索引序,不保证有序」。 7. math/topk/op_api/topk.cpp:补充 int64 大 shape 分支拦截条件的注释(说明放掉 k 比例门限与 MIN_K 门限、且 int64 索引无法通过 GatherElementsV2 补有序性的原因),不改变逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - #3604 https://gitcode.com/cann/ops-math/issues/3604 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 本次提交包含 host UT 变更(math/radix_top_k/tests/ut/op_host/test_radix_top_k_tiling.cpp):修正 tiling key 期望值编码并新增 int64 主路径两条用例;本地未执行,预期由 CI 运行。 - kernel 侧改动(VToMTE3Sync、CreateVecIndex4TopK 防御、int64 累加)建议结合 RadixTopK int64 大 shape 场景回归验证(实施类用例未包含在本次提交内)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 math/radix_top_k/README.md 约束说明(补充输出无序约束);另含 op_host/op_kernel 注释更新,不涉及其他文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6396 | 6 天前 | |
fix(ragged_bin_count): support deterministic counting and preserve GE input shapes Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6428 merge fix/ragged-bin-count-deterministic into master fix(ragged_bin_count): support deterministic counting and preserve GE input shapes Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 RaggedBinCount 的两项问题:Ascend 950 非二值加权计算未响应 ge.deterministic=1,同输入重复输出可能不同;GE 图编译的旧 V1 推导会把 weights 的 rank 改成 values 的 rank,例如合法的 values=[6]、weights=[2,3] 被改为 weights=[2],随后因元素数不匹配而失败。 确定性路径增加 key 8/9:固定线程扫描,或固定分块与固定顺序合并;适用规模使用精确整数 partial/直方图归约,结束后统一舍入。partial workspace 上限 16 MiB、宽输出整数直方图上限 64 MiB,两者不同时使用。默认模式保留既有调度,二值输出沿用原有路径;补充确定性开关、容量和 UB 边界验证。 GE 修复在算子自己的 op_graph 注册 V1 形状推导,只更新输出 shape、dtype 和动态范围,保留所有输入形状;正确读取 int32/int64 size。该部分相对原确定性 PR 仅 3 文件 +257/-0:实现 72 行,新增 14 项真实 GE 注册入口 UT 和 16 条静态 GEIR ST 资产共 185 行。未修改原确定性实现的 kernel、tiling 或 CMake;原草稿 #6454 的修复统一由本 PR 合入。 Host UT 沿用仓库公共构建,四项既有 CheckSupport 测试通过真实 GE Operator 回调验证;CMake 只保留原确定性 UT 所需的 pkg_inc 头文件路径。公共构建文件、golden、精度阈值和算子 README 不改。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3626 https://gitcode.com/cann/ops-math/issues/3641 原始反馈:https://gitcode.com/wangyueting/changwei_sunyibo/issues/5 、https://gitcode.com/wangyueting/changwei_sunyibo/issues/6 。本 PR 的 GE 修复对象是当前仓库的 RaggedBinCount;包内另一注册名 RaggedBincount 的历史一维限制不在本仓实现中,不声称修复该实现或完成 TF→NPU E2E。 ## 测试 最终提交 56110ba62d60e3cc505028bf22c9716bc6e1aa45,官方 master 快照 8ade3796f8fb22de7679569337fcbe6618b2ce32,master 之上一个提交。已备份两个原始 HEAD 及基点,先 squash 并核对同一原基点下完整 binary/mode diff 和 Git tree 均不变,再 rebase。最终整个 RaggedBinCount 子树与三方验证版本 2745680dfb641c370a4d8ba7e2f46bfc291ce469 完全相同;op_host/op_kernel 与原数值回归版本 d6656c088331e5e0db0652e5c5c312daf25e6de8 完全相同。 本轮指定统一入口 950/910b 本地 CI 全部通过,受测 56110ba62d60e3cc505028bf22c9716bc6e1aa45:pre-commit、隔离 oat-py 1.0.3(12 个完整变更文件)、链接/SKIP 检查、双平台定向 package、Host/Graph/API/Kernel 阶段及实际 GE 依赖门禁均 PASS;Host 71 + 32、Graph 15 + 15,共 133 条实际 GTest 记录,API 0 项不计作用例。本轮线上 [run5212](https://gitcode.com/cann/ops-math/actions/runs/da56c01bfb554845a6ab332ef21b5362) 已全部通过,54 个任务节点均 COMPLETED,三路 UT 及全部冒烟完成;[compile 评论](https://gitcode.com/cann/ops-math/merge_requests/6428#note_194316182) 已回查。实际 merge checkout a95a639f3a421c2989e5b9a4fba6138fb2eaf261 的两个父节点分别是上述 master 和本地受测 PR HEAD,三路 UT checkout 均已逐一核对。新增 14 项 GE 注册入口测试在两条相关 UT 路径均实际执行通过,原始日志无 GTest 失败。 - GE 修复反证:父 PR 新构建包的小用例与 91,054,373 元素原尺寸均复现 weights 截断;使用同一正确 OriginShape 构图,新增 14 项 UT 在父版本均失败、修复版均通过。 - GE 修复已完成双平台 UT:950 Host 71/71、Graph 15/15;910b Host 32/32、Graph 15/15。共 133 条通过记录、86 个不同 GTest 名,含新增 14 项。 - GE 修复主要精度:真实 A100 GPU cross_check 三方默认 54/54(原附件 38 条合法形状 + 16 条边界)、确定性 16/16、独立冒烟 2/2。共 72 条比较记录、54 个不同用例名;逐条核对 GPU torch PASS 和 cross_check L1 pass=true。确定性 16 条均实际执行 3 次且 MD5 一致。 - 原附件另两条 size shape=[2^31]/[2^32] 不符合 size=[1] 约束,已以不分配张量的 UT 验证拒绝;原 CSV 未改,未把它们缩小后计作原例通过。 - 确定性数值验收:真实 A100 三方默认/确定性各 100 条,200/200;确定性各 3 次 MD5 一致。本地两条冻结输入各 10 次一致;源码基线相同冻结输入各 3 次不一致的对照保留。静态 GEIR 51/51(接口 11、确定性 ST 36、整数直方图 4)。历史功能回归 3189 条通过记录、1194 个不同用例名,详细口径见本地报告。 - 性能沿用相同计算源码的既有结果:每模式 200/200 满足 folded G/N>=0.1,最低默认 0.180045、确定性 0.102306;GPU 性能为交付冻结基线。 - 既有实际 memcheck/racecheck 共 90 次无 kernel 错误;initcheck 的 SDK SetSysWorkspace PRIVATE 指针读取告警不记 PASS,旧 key3 同位置复现,原日志保留。本次没有重复内存检查、两方精度、动态 GEIR 或未变化计算源码的性能回归。 - CI-skills 的既有 GE 依赖检查修复 [9422a56](https://gitcode.com/raoliang_sac/ci-skills/commit/9422a56ceb604094f2ba0cfdcf32b49549851c0f) 已推送;认可实际公共 Host UT loader 提供的依赖,不要求算子私有链接。旧失败库/修复 loader 的原生 ELF 对照及 18 项相关回归、13 项示例和技能自测已通过。 环境:Ascend950PR_9579,任务内独立 Master/Revise CANN 9.3.0 weekly.20260923.01;TTK 基线 fb6f02f 及已记录的局部框架适配。所有构建 <=8 jobs、TTK 显式 --pc=1。GPU 是仓内 Torch 组合参考,非 TensorFlow 原生 CUDA kernel;未取得原现场 SHA/seed/冻结输入,包日期也不同,结论来自受控对照。额外 relative-only 默认模式诊断的历史失败和已知限制保留在原报告,不替代三方验收。 本地证据:validation/combine_pr6428_20261017/(最终提交与 CI)、validation/ge_shape_fix_20261017/RESULTS.md(GE 反证/三方/UT)、validation/final_regression_20261016/RESULTS.md(确定性完整回归);均位于任务目录 /workspace/changwei-quentions/RaggedBinCount。 ## 文档更新 无。算子 README 保持主线原样,修复与验证说明仅在 PR/Issue 和本地任务记录中更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6428 | 3 天前 | |
lin_space,range算子适配Ascend960 Co-authored-by: taochangmin<taochangmin@huawei.com> # message auto-generated for no-merge-commit merge: !6420 merge no_transpose_d into master lin_space,range算子适配Ascend960 Created-by: taochangmin Commit-by: taochangmin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> lin_space,range算子适配Ascend960 1. opdef增加ascend960dt配置 2. config中增加json文件 3. CMakeLists中新增ascend960dt编译选项 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-nn/issues/6768 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ascend950和ascend960编译验证通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6420 | 6 天前 | |
fix: rm operator list ymal Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !2837 merge br_ci into master fix: rm operator list ymal Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 移除 CI 分组编译的强制校验 2. 清理 CMakeLists 中的调试打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2837 | 4 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 14 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6415 merge issue3557 into master aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6415 | 3 天前 | |
aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6415 merge issue3557 into master aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> aclnnGlobalMaxPool/aclnnGlobalAvaeragePool的aclIntArry统一改为使用executor托管 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6415 | 3 天前 | |
fix: 修复代码规范问题并修正aclnnLog DFX参数归类 Co-authored-by: xiafengkou<luojiangtao4@huawei.com> # message auto-generated for no-merge-commit merge: !5119 merge master into master fix: 修复代码规范问题并修正aclnnLog DFX参数归类 Created-by: xiafengkou Commit-by: xiafengkou Merged-by: cann-robot Description: ## 描述 本 PR 针对 代码规范问题进行修复,共涉及 3 个文件。具体修复内容: - **G.EXP.14(禁用 C 风格强制转换)**: hans_const.h 中 (uint16_t)(pdfValue * PDF_LENGTH) 改为 static_cast<uint16_t>(pdfValue * PDF_LENGTH),消除 C 风格转换告警。 - **DFX 参数归类修正**:aclnn_log.cpp 中 L2_DFX_PHASE_1(aclnnLog, ...) 将输出参数 out 由 DFX_IN 移入 DFX_OUT,使 DFX 日志的输入/输出参数归类正确。 - **G.FUN.02(声明与定义参数名一致)**:reduce_mean_with_count.cpp 中函数参数名 x 与头文件声明统一为 input,并同步更新函数体内的引用。 ## 关联的Issue 无。 ## 测试 均为**非功能性修改**,不改变原有代码逻辑、算子功能与接口调用方式 ## 文档更新 无。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码规范修复 See merge request: cann/ops-math!5119 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
refactor: 继续迁移非 experimental 公共头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge refactor/math-prefix-common-headers-1008 into master refactor: 继续迁移非 experimental 公共头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 继续将 ops-math 的公共 op_api 头文件引用迁移到带 _math 后缀的名称,减少多个算子仓库集成时同名头文件误引用的风险。 本次更新 35 个非 experimental 文件中的 35 处引用: - level2_base.h → level2_base_math.h:11 处。 - level2_base_caculation.h → level2_base_caculation_math.h:1 处。 - op_api_def.h → op_api_def_math.h:23 处。 对涉及文件同步执行仓库 clang-format、尾部空白及 EOF 规范化。此次共 35 个文件,新增 2506 行、删除 2419 行;除头文件引用替换外,其余为格式调整。 sin 因此前发现的 UT 全局平台状态污染继续暂缓;experimental 文件继续分批处理。现有兼容转发头保留。 ## 关联的Issue 延续公共头文件重名问题的分阶段迁移:https://gitcode.com/cann/ops-math/issues/3243 ## 测试 在服务器 192.168.9.234 的 lcl_ops_9.0 容器(CANN 9.0.0 / aarch64)中,以基线 16700ac8d829f8e66180c612f45ed4384b51e2e0 创建独立工作区验证。35 个修改文件的 SHA256 与本地逐一一致。 - git diff --check:通过。 - pre-commit:所有 hook 通过;另显式扫描全部 35 文件的 OAT 检查通过。 - bash build.sh --opapi -j16:全量编译通过,生成 libopapi_math.so。 - 仓库 CI 脚本为涉及的 30 个算子生成 op_api 单测命令,指定 ascend910b 执行:605 个用例全部通过。 - 额外执行 fill_diagonal_v2,flatten,slogdet,svd 的 op_host 验证:容器中 libophost_math_ut.so 加载时缺少 ops::OpAICoreDef::AddConfig(const char*, ops::OpAICoreConfig&) 符号,导致注册失败及 FillDiagonalV2 InferShape 单测段错误。去掉全部 35 文件修改后的干净基线使用相同命令复现相同失败;该失败独立于本次头文件引用替换,op_host 验证尚未通过。 ## 文档更新 不涉及用户文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用重构及格式规范化。 See merge request: cann/ops-math!6220 | 8 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持 Co-authored-by: liaohuming<liaohuming@huawei.com> # message auto-generated for no-merge-commit merge: !5844 merge master into master im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持 Created-by: liaohuming Commit-by: liaohuming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持,使其可在 ascend960dt(Ascend960DT_968B7)芯片上完成编译与调用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3614 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5844 | 6 天前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持 Co-authored-by: liaohuming<liaohuming@huawei.com> # message auto-generated for no-merge-commit merge: !5844 merge master into master im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持 Created-by: liaohuming Commit-by: liaohuming Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 im2col、matrix_diag、roll、grouped_bias_add_grad、reduce_var、reduce_std_v2 六个算子新增 ascend960dt 平台支持,使其可在 ascend960dt(Ascend960DT_968B7)芯片上完成编译与调用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3614 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5844 | 6 天前 | |
fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5947 merge fix/3292-exector-typos into master fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 ops-math 仓 10 个两段式 aclnn 接口头文件的第二段接口 @param 注释中,参数名 executor 被拼写为 exector(少一个 u),与函数签名不一致。统一修正拼写,仅涉及注释文本,不影响任何接口与逻辑。 ## 关联的Issue 关联Issue #3292 ## 测试 - 纯注释文本修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5947 | 28 天前 | |
产品名变更 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 | 1 个月前 | |
[ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Co-authored-by: yangjinwen<yangjinwen2@huawei.com> # message auto-generated for no-merge-commit merge: !5778 merge dev-v121 into master [ascend960dt/ascend960pr] conversion/math类9个算子新增ascend960dt/ascend960pr平台支持 Created-by: yangjinwen Commit-by: yangjinwen Merged-by: cann-robot Description: ## 描述 conversion 类 7 个算子(batch_to_space_nd、concat、concat_d、concat_v2、depth_to_space、pack、space_to_depth)与 math 类 2 个算子(erfc、rint)新增 ascend960dt / ascend960pr 平台支持,复用 arch35 tiling 框架,主要改动: - 平台注册:9 个算子 CMakeLists.txt 的 COMPUTE_UNIT/SUPPORT_COMPUTE_UNIT 新增 ascend960dt、ascend960pr(TILING_DIR 复用 arch35),op_host/*_def.cpp 新增对应 this->AICore().AddConfig(...) 注册; - 预编译 binary 接入:batch_to_space_nd、concat_d、depth_to_space、pack、space_to_depth、rint 新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/ 下的 *_binary.json 与 *_simplified_key.ini;concat_v2 为 HOSTCPU 算子(依赖 concat),无独立 binary;erfc 的 kernel 源码(arch35/erfc.cpp)通过 add_kernel_sources 的 COMPUTE_UNITS 纳入新平台编译; - concat 的 arch35 tiling/kernel 适配 DAV_9201 架构(仅 9201 生效,不影响既有平台路径): - tiling 侧:DAV_9201 平台 ubFactorDim0 按两倍 BLOCK(64B)对齐修正;新增 dtypeSize 提升优化(末轴字节满足 128/64/32/16B 对齐时提升 dtypeSize,减少搬运次数),并注册 bitwidth=16 系列 tilingKey(12116/12126/21116/21216/30016 等); - kernel 侧:__NPU_ARCH__ == 9201 下 DataCopyPad 使用带 enAtomicSync 参数的接口分支。 ## 关联的Issue #3222 https://gitcode.com/cann/ops-math/issues/3222 ## 测试 平台注册与预编译 binary 接入部分不涉及既有 kernel 逻辑修改;concat 为 DAV_9201 架构适配新增专属分支,既有平台路径不变;可通过 PR 评论 compile 触发 CI 编译流水线验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5778 | 6 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
适配ascend350 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6165 merge dvlite into master 适配ascend350 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配ascend350 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3439](https://gitcode.com/cann/ops-math/issues/3439) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6165 | 10 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5105 merge onnx-fix-0826 into master fix: 迁移onnx插件ParseParams API并补充framework层UT用例 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 将 math 仓 4 个 onnx 插件的参数解析从旧 API ParseParamsFn(const Message*, ge::Operator&) 迁移至新 API ParseParamsByOperatorFn(const ge::Operator&, ge::Operator&),并补齐 framework 层 UT 构建体系与用例。 本次修改: 1. **插件 API 迁移**:Cast/NPUDtypeCast(math/cast)、Shape(math/shape)、NPUFormatCast(conversion/npu_format_cast)、NPURotaryMul(common)4 个插件的注册函数切换为 ParseParamsByOperatorFn,头文件依赖收敛为 graph/operator.h + register/register.h;空实现保持签名兼容并显式标记未使用参数,消除 -Wunused-parameter 告警(-Werror 下构建必须)。 2. **framework 层 UT 支持**:cmake/ut.cmake 新增 OP_FRAMEWORK_MODULE_NAME 及 add_framework_ut_modules,cmake/func.cmake 的 add_all_ut_sources 增加 framework 用例收集,tests/ut/op_host/CMakeLists.txt 将 math_op_framework_ut_cases 链接进 math_op_host_ut 并补充 graph_base 依赖(修复缺符号链接失败)。 3. **新增 UT 用例**:为上述 4 个插件补充 tests/ut/framework/test_*_onnx_plugin.cpp 用例(含 Shape 的 dtype=INT64 校验),并通过 common/tests 与各算子 tests/ut 的 CMakeLists 纳入构建。 ## 关联的Issue Issue #2892 ## 测试 1. pre-commit run(变更文件):全部通过,包括 clang-format、codespell 与 OAT 合规检查。 2. 容器内(CANN 9.0.0, Ascend 910B3)增量重建 math_op_host_ut 并运行:1853 tests from 303 test suites,**全部 PASSED**。 3. 新增 4 个 framework 用例(OnnxNpuDtypePluginTest / OnnxShapePluginTest / OnnxNpuFormatCastPluginTest / OnnxNpuRotaryMulPluginTest)均执行通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5105 | 1 个月前 | |
fix: rm operator list ymal Co-authored-by: wangrui<wangrui124@huawei.com> # message auto-generated for no-merge-commit merge: !2837 merge br_ci into master fix: rm operator list ymal Created-by: wangrui_ Commit-by: wangrui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. 移除 CI 分组编译的强制校验 2. 清理 CMakeLists 中的调试打印 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1624 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> NA ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2837 | 4 个月前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
fix(sign_bits_pack): 声明 workspace 槽修复 tiling 指针错位导致的 507035 Co-authored-by: zhoulong50_hw<zhoulong50@huawei.com> # message auto-generated for no-merge-commit merge: !6446 merge sign_bits_pack into master fix(sign_bits_pack): 声明 workspace 槽修复 tiling 指针错位导致的 507035 Created-by: zhoulong50_hw Commit-by: zhoulong50_hw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复杂凑 sign_bits_pack(arch35)host tiling:补上缺失的 workspace 槽声明,使下发实参与 kernel 入口签名对齐,消除运行期 507035(向量核异常)。 **问题(现象与机制)** - 现象:运行 sign_bits_pack(arch35)kernel 用例时稳定报错,rtStreamSynchronize 返回 507035,desc=[vector core exception],扩展信息为 The DDR address of the MTE instruction is out of range。 - 机制:kernel 入口签名为 sign_bits_pack(GM_ADDR x, GM_ADDR y, GM_ADDR workspace, GM_ADDR tiling),共 **4** 个入参(含 workspace)。而 host tiling 从未调用 GetWorkspaceSizes,算子不提供 workspace 参数,运行时实际只下发 **3** 个实参(x、y、tiling)。 - 后果:实参整体错位一格 —— kernel 的 workspace 形参收到的是真正的 tiling 指针,tiling 形参收到一个非法值。框架随后从该非法地址拷贝 tiling data,MTE 访问越界,触发 507035。 **修改**(单文件,+7) 在 math/sign_bits_pack/op_host/arch35/sign_bits_pack_tiling_arch35.cpp 的 TilingFuncSignBitsPack 中,取到输入信息之后、进入后续分支之前,声明 1 个 workspace 槽: cpp size_t* currentWorkspace = context->GetWorkspaceSizes(1); if (currentWorkspace == nullptr) { OP_LOGE(kOpName, "GetWorkspaceSizes returned null"); return ge::GRAPH_FAILED; } currentWorkspace[0] = 0; - **占用 1 个 workspace 槽**:使实参个数与 kernel 签名(4 个)对齐,消除错位。 - **槽位大小置 0**:该算子不需要 workspace 空间,仅需占位。 - **空指针保护**:GetWorkspaceSizes 返回空时记录日志并返回 ge::GRAPH_FAILED。 **兼容性** - 合法输入的计算逻辑、tiling 数值、TilingKey、BlockDim 均不变。 - 与仓库内其余 arch35 算子保持一致(如 abs、acos 等 tiling 均通过 GetWorkspaceSizes 声明 workspace 槽)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3638 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 二级冒烟,泛化用例12条。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> bug修复,无文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6446 | 2 天前 | |
fix(sign_bits_unpack): 支持未知 rank/dim 的 InferShape 推导 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !6450 merge fix-sbu into master fix(sign_bits_unpack): 支持未知 rank/dim 的 InferShape 推导 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 本次改动修复 SignBitsUnpack 算子的 InferShape 推导,使其支持未知 rank 与未知维度(动态 shape)输入。 **改动原因**:原 InferShape 仅支持 1 维且维度已知的输入。当输入为未知 rank 时,实现直接读取 GetDim(0) 并按「x 必须 1 维」校验而返回失败;当输入维度为 -1 时,xShape * 8 会以 -1 参与计算,导致整除校验与输出维度推导错误,算子在动态 shape / GE 图场景下无法完成 shape 推导。 **改动方法**: - 输入为未知 rank 时,将输出 shape 置为未知 rank 并返回成功; - 输入维度为未知值(-1,UNKNOWN_DIM)时,输出 shape 置为 [size, -1] 并返回成功; - 属性读取由 GetAttrPointer 改为 attrs->GetInt; - 将通用 OP_LOGE 替换为结构化错误日志宏(OP_LOGE_WITH_INVALID_ATTR、OP_LOGE_FOR_INVALID_SHAPEDIM、OP_LOGE_FOR_INVALID_SHAPESIZE、OP_LOGE_FOR_INVALID_VALUE),提升报错信息可读性。 涉及文件:math/sign_bits_unpack/op_host/sign_bits_unpack_infershape.cpp ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3640 ## 测试 在 math/sign_bits_unpack/tests/ut/op_host/test_sign_bits_unpack_infershape.cpp 新增 4 个 InferShape UT: - 未知 rank 输入(size=2 / size=1)→ 输出未知 rank; - 未知维度输入(-1,size=2 / size=4)→ 输出 [size, -1]。 原有 1 维推导、空 tensor、size 非法、不可整除、rank 非 1、缺失属性等用例保持通过。 ## 文档更新 本次改动仅涉及 InferShape 推导逻辑与 UT,无 README.md / aclnn 文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6450 | 2 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 6 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
sinc等算子冗余workspace改为分配0 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6261 merge workspace into master sinc等算子冗余workspace改为分配0 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sinc等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3611 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 代码整改 See merge request: cann/ops-math!6261 | 6 天前 | |
refactor: 为公共op_api头文件增加math后缀 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !5839 merge refactor/math-prefix-common-headers into master refactor: 为公共op_api头文件增加math后缀 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 ops-math/common/inc/op_api 中的 level2_base.h、level2_base_caculation.h、op_api_def.h 名称缺少仓库标识。在软件包合并交付或公共 include 目录集成时,存在被其他仓库同名文件覆盖,或因 include 路径顺序产生误引用的风险。 本 MR 参考同目录已有的 op_resource_math.h 命名,为三个公共头文件增加 _math 后缀,并通过兼容转发头分阶段迁移现有引用。 ## 修改内容 - 新增 level2_base_math.h、level2_base_caculation_math.h、op_api_def_math.h,作为带仓库标识的正式实现; - 原 level2_base.h、level2_base_caculation.h、op_api_def.h 保留为轻量兼容转发头,避免未迁移代码立即失效; - 新头文件之间的内部依赖统一使用 _math 后缀路径; - 更新 classify_rule.yaml,让 level2_base_math.h 继承原组件及 UT 覆盖率分类; - 将 89 处旧头文件引用迁移到新名称: - level2_base.h:20 处; - level2_base_caculation.h:9 处; - op_api_def.h:60 处; - 当前 MR 共修改 81 个文件,新增 434 行、删除 384 行。 为减少无关格式变化和后续合并冲突,本次未迁移会触发额外 clang-format、尾部空白或 EOF 修复,或组合触发既有 UT 隔离问题的文件。这些文件将拆分到后续 MR 逐步处理。 ## 剩余迁移 当前仓内仍有 67 处旧引用,分布在 65 个唯一文件中,继续通过兼容转发头工作: - level2_base.h:24 个文件; - level2_base_caculation.h:2 个文件; - op_api_def.h:41 个文件。 待旧引用分批迁移完成后,再结合实际打包和安装规则移除兼容转发头。本 MR 不移除旧头文件,也不声明已完成最终软件包去重。 ## 关联的 Issue 关联并在合入后关闭 #3243: https://gitcode.com/cann/ops-math/issues/3243 ## 测试 已完成: - 对本轮新增的 69 个纯引用替换文件逐行检查,80 组增删均仅修改目标 include,无其他代码或格式变化; - 额外纳入 aclnn_log10.cpp 和 aclnn_logdet.cpp,每个文件最终均为 3 行新增、3 行删除,低于 10 行修改阈值;math/sin/op_api/aclnn_sin.cpp 因聚合 UT 存在平台状态泄漏暂缓迁移; - 在 CANN 9.0.0 容器执行完整 pre-commit,尾部空白、EOF、clang-format、codespell 和 OAT 等检查全部通过; - 在 CANN 9.0.0 容器执行 bash build.sh --opapi -j32,全量构建通过; - 成功生成 build/libopapi_math.so,SHA-256:abaa8f8408979d931a8dad09f8e06875722fc42bbdddc72aaf9f14944bc163ea; - classify_rule.yaml 可正常解析,三个旧文件继续作为兼容转发头使用。 ## 文档更新 不涉及用户文档变更。 ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码重构 See merge request: cann/ops-math!5839 | 14 天前 | |
[sinkhorn] quality-hardening:算子质量加固修复(准入+检视问题整改) Co-authored-by: handsomeRobot_SK<suke13@huawei.com> # message auto-generated for no-merge-commit merge: !6192 merge sinkhorn_quality_hardening into master [sinkhorn] quality-hardening:算子质量加固修复(准入+检视问题整改) Created-by: handsomeRobot_SK Commit-by: handsomeRobot_SK Merged-by: cann-robot Description: # [sinkhorn] quality-hardening:算子质量加固修复(准入+检视问题整改) ## 变更概述 针对 sinkhorn 算子质量加固扫描(准入白盒扫描 + 代码检视)发现的全部可修复问题执行整改:检视 2 项 FAIL(CONV-2 kernel TILING_KEY_IS 硬编码、LOG-1 裸 OP_LOGE)与 5 项 SUSPICIOUS、1 项 STYLE 全部清零;准入唯一实质阻塞项用例覆盖度由 kernel 76.5% 补齐至 100%(kernel/aclnn 双达标);准入 WARN 级 P4/P5 资料口径与迭代上限收口。涉及 ops-math 算子分支 7 个提交与交付件仓(operator-artifacts)2 个提交中本算子部分(新建 测试用例/ 下 4 个用例 CSV、两份设计基准文档回写)。剩余条目为产品声明禁区、环境限制、工具链惯例与有意设计/大改动待定,已挂账未修项明细,不在本 PR 范围内。 ## 分类修改清单 ### 代码(ops-math,math/sinkhorn/) | 文件 | 修改 | |------|------| | op_kernel/sinkhorn.cpp | **CONV-2 TILING_KEY 语义化**:删除 TILING_KEY_IS(0/1/27) 硬编码分支;新增命名语义常量 SINKHORN_FLOAT/FLOAT16/BFLOAT16_TILING_KEY(0/1/27)与模板派发函数 LaunchSinkhorn<float\|half\|bfloat16_t>,编译期 -DTILING_KEY_VAR=<key> 注入,opc 按每个 key 生成独立 kernel 实例(实例后缀 0/1/27 与 opParaSize 不变) | | op_kernel/sinkhorn.h | GEN-1.3 删除 MULTI_CORE_SUM_FOR_D1 宏与 ComputeD1/CopyInD1BlockInWS/SumD1Block/SumD1 声明、6 个未用常量;STYLE-1.5 eps 改名 EPS(:264) | | op_kernel/sinkhorn_update.inc | GEN-1.3 删除旧多核原子方案实现(ComputeD1/CopyInD1BlockInWS/SumD1Block);EPS 引用同步(:199) | | op_kernel/sinkhorn_update_d1.inc | GEN-1.3 删除 SumD1 实现;EPS 引用同步(:21/26) | | op_host/sinkhorn_tiling.cpp | TOP-7 Init 补独立防御校验:常量 IO_DIM/MAX_COST_ROW(10000)/MAX_COST_COL(4096) + 2D/非零/行列上限四路拦截(OP_LOGE_FOR_INVALID_SHAPEDIM/SHAPESIZE→GRAPH_FAILED);GEN-4.2 BATCH_MODE_SCHEDULE=1/WORKSPACE_BLOCK_NUM=1 具名化并注释(:243/:282);SEC-8.4 四处日志行文规范(:99/185/240/290) | | op_api/aclnn_sinkhorn.cpp | LOG-1 三处裸 OP_LOGE 改用 OP_LOGE_FOR_INVALID_VALUE_WITH_REASON/OP_LOGE_FOR_INVALID_VALUE(:63/102/106,补 include "log/log.h");RED-3 int64_t col/row 接收防窄化(:99-100) | ### 资料(源代码仓 + 交付件仓) | 文件 | 修改 | |------|------| | math/sinkhorn/README.md | P1:cost 描述声明"shape 固定为 2 维,行数不超过 10000,列数不超过 4096"(:49,对齐 rank 基线);P4:cost 取值统一"建议"口径并补 exp(cost) 溢出说明(:87);P5:补迭代上限约束(:88,最多 10000 次,达上限未收敛即结束) | | math/sinkhorn/docs/aclnnSinkhorn.md | P4:"需要"改"建议"口径 + exp 溢出说明(:84);P5:约束说明补迭代上限 10000(:169) | | operator-artifacts/Sinkhorn/REQUIREMENTS.md | 设计同步:tilingKey=dataType 编码与命名常量派发、infershape/InferDataType 已落地、EPS/MAX_SINKHORN_ITER 常量、死代码删除后 CPU 顺序部分和方案、P4/P5 口径、950 适配项状态更新 | | operator-artifacts/Sinkhorn/research/cann/code_design.md | 设计同步:上同(:32/117-123/147-149/167 等),消除"tilingKey=1""无 infershape/无 op_graph""ComputeD1/SumD1"三条过时描述 | ### 用例(交付件仓,覆盖度 76.5%→100%) Sinkhorn/测试用例/ 目录**新建 4 个 CSV**(评估器仅检索该目录,原 cases/ 下归档被整目录漏扫): | 文件 | 内容 | |------|------| | ttk_sinkhorn_whitebox_full.csv | 112 条 kernel 白盒全量用例(float32/float16/bfloat16 三 dtype) | | ttk_sinkhorn_whitebox_exception.csv | 7 条负向用例,补齐 D10 异常缺口:bool dtype、rank3 × fp32/fp16/bfloat16、format 异常 × fp32/fp16/bfloat16 | | blackbox_cases.csv | 145 条 aclnn 归档用例迁移入评估器检索路径 | | aclnn_sinkhorn_blackbox_supplement.csv | 25 条补充:特殊值(±0/±inf/NaN)×3、空 tensor ×2、边界 ×4、连续/非连续 ×8、rank3 ×2、format ×3、1GiB/2GiB stress ×3 | 覆盖度复评:kernel 76.5%→**100.0%**,aclnn 由"无归档用例"→**100.0%**。 ## 逐 commit 摘要 | 仓 | 提交 | 摘要 | |----|------|------| | ops-math | d824bfe48 | 修复(F1 CONV-2):kernel 去除 TILING_KEY_IS 宏,改用命名 TilingKey 语义常量 + 模板函数派发 | | ops-math | caebf7561 | 修复(F2 LOG-1):aclnn 参数校验日志改用 OP_LOGE_FOR_* 预定义宏;(S4 RED-3) shape 维度 int64 接收防窄化 | | ops-math | 7da884f9d | 修复(S1 TOP-7):tiling Init 补独立 2D/非零/行列上限校验;(S3 GEN-4.2) SetScheduleMode 与 GetWorkspaceSizes 魔数命名化 | | ops-math | bc5a38e1c | 清理(S2 GEN-1.3):删除旧多核原子方案死代码与 6 个未用常量;(ST1 STYLE-1.5) eps 常量改名 EPS | | ops-math | c45b509f8 | 文档(P1):README 声明 shape 固定 2 维并对齐行列上限,修正用例覆盖 rank 基线 | | ops-math | 54a5de5d0 | 修复(S5 SEC-8.4):tiling 侧 4 处调试日志英文行文语法规范 | | ops-math | 73c9046ba | 文档(P4):cost 取值口径统一为"建议"并补 exp 溢出说明;(P5) 补 MAX_SINKHORN_ITER=10000 迭代上限约束 | | operator-artifacts | 625b165 | sinkhorn 部分:设计基准(REQUIREMENTS.md/code_design.md)三处滞后回写 + 测试用例/ 新建 4 个用例 CSV(覆盖度缺口补齐) | | operator-artifacts | 8a47e70 | sinkhorn 部分:REQUIREMENTS.md/code_design.md 二次同步 P4"建议"口径与 P5 迭代上限表述 | ## 测试与验证 - **kernel 三 dtype 编译(CONV-2 核验)**:asc_opc 在线编译三实例(-DTILING_KEY_VAR 为 0/1/27,soc Ascend950PR_9599,产物 build/binary/ascend950/bin/build_logs/sinkhorn_binary_high_performance.json_0/1/2.log);改造中间态曾报 switch(tiling_data.dataType) 无成员编译错误(08:46 日志),最终提交移除运行时 switch、仅保留编译期命名常量派发(d824bfe48),三实例后缀 0/1/27 与 opParaSize 保持不变,源码已重新同步入 build 树。 - **全仓 ascend950 编译**:-DASCEND_COMPUTE_UNIT=ascend950 -DASCEND_OP_NAME=sinkhorn 构建通过(build-logs/sinkhorn.log)。 - **白盒静态复核**:第二轮补修逐条 grep/读文件复核(8 项已闭环条目对照 + 4 处日志行文 + 资料口径),全部落位(见 hardening-report/第二轮补修复核记录.md)。 - **NPU 三方补测(参考)**:修复前基线构建包在 8×Ascend950PR_9579 / CANN 9.0.0 实测——geir 15/15 PASS;aclnn 12P/1F/2NA(1 FAIL 为 dist(-100,100) 用例输入超出 cost 建议 [0,1] 值域的 NaN/Inf 边界行为,与本 PR P4 新增的 exp 溢出资料口径一致;2 N/A 为负向用例)。修复后 commit 未在实机复测(见未完成事项)。 ## 未完成事项与限制 - **三禁区声明(架构师定,本 PR 不触碰)**: 1. canndev 仓禁改:E3/E4 检查本已 PASS/无残留;旧仓 REG_OP(MhcSinkhorn) 为异义变体(多输出算子),不属于本算子交付范围,未做任何改动; 2. ACLNN 接口禁区:未新增/变更任何 aclnn 接口(aclnnSinkhorn 接口面不变),仅将内部参数校验日志替换为结构化预定义宏; 3. 产品支持口径禁改:设计基准中「Ascend 950PR/950DT 不支持」等产品支持声明未动(与 def/README 已支持现状的矛盾待产品/架构裁决,见未修项明细卡片 1)。 - **无 NPU/TTK**:加固扫描与复核以白盒模式执行(GEIR 测试模式与 TTK 异常证据未执行,异常类证据以三层白盒检测 + LLM A/B 模板替代);覆盖度实机验证与 D8/D9 多核/尾块实跑复算不可执行,修复后 commit 未在实机复测。 - **spec.yaml 缺失**:两个候选交付目录均无 spec.yaml,准入 1.6 交付件一致性比对无法执行(规则内判 N/A),不新建、记录在案。 - **DESIGN.md 缺失**:design-check 以 REQUIREMENTS.md + research/cann/code_design.md 为替代设计基准(总体评级"一致"基于该映射),不新建、记录在案。 - **策略不变项**:P6 def.cpp Format({ND,ND,ND}) 三元组为仓内统一规范(259 个 def 同款),按惯例裁定不采纳;分核 tiling(former/tail 均分 ±1 行 + 窄列 512 行/核)为有意设计,覆盖度评估模型无法公式复算属模型边界。 - 完整未完成条目清单及决策依据见《sinkhorn 未修项明细》(8 条:禁区类 1 / 环境限制类 2 / 工具链与仓内惯例类 2 / 有意设计 1 / 大改动待定 2)。 See merge request: cann/ops-math!6192 | 8 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
sort|sort_with_index|top_k_v2算子适配ascend960dt/ascend960pr Co-authored-by: tujun6<tujun6@huawei.com> # message auto-generated for no-merge-commit merge: !6202 merge add_960_sort into master sort|sort_with_index|top_k_v2算子适配ascend960dt/ascend960pr Created-by: tujun6 Commit-by: tujun6 Merged-by: cann-robot Description: ## 描述 本 PR 为 sort/sort_with_index/top_k_v2 三个算子适配 ascend960dt/ascend960pr 平台,使其能够在这两个平台上编译和运行。主要改动: - **算子定义注册**:在 math/sort/op_host/sort_def.cpp、math/sort_with_index/op_host/sort_with_index_def.cpp、math/top_k_v2/op_host/top_k_v2_def.cpp 中为 ascend960dt/ascend960pr 增加 AICore 配置(复用 ascend950 的 aicoreConfig) - **编译入口**:三个算子的 CMakeLists.txt 中 SUPPORT_COMPUTE_UNIT / SUPPORT_TILING_DIR 增加 ascend960dt、ascend960pr(tiling 目录 arch35) - **二进制 kernel 配置**:新增 op_host/config/ascend960dt|ascend960pr 下的 *_binary.json 与 *_simplified_key.ini - **二进制编译注册**:scripts/kernel/binary_config/ascendc_config.json 中扩展 Sort/SortWithIndex/TopKV2 的 compute_units 至 ascend960dt/ascend960pr,并补充对应编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3587 ## 测试 - 本地 pre-commit 全量检查通过(trailing-whitespace、end-of-file-fixer、check-json、clang-format、codespell 等全部 hook) - OAT 合规扫描通过(oat-py 1.0.3,PR 全部 19 个文件,License 头与文件类型违规均为 0) - 二进制 kernel 编译与算子精度验证依赖 CI 流水线及 ascend960 平台环境 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6202 | 7 天前 | |
sinc等算子冗余workspace改为分配0 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !6261 merge workspace into master sinc等算子冗余workspace改为分配0 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> sinc等算子冗余workspace改为分配0 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3611 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 代码整改 See merge request: cann/ops-math!6261 | 6 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 12 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
fix(square_sum_all): compensate final partial reduction Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6386 merge fix/square-sum-all-merge-precision into master fix(square_sum_all): compensate final partial reduction Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 修复 SquareSumAll Ascend 950 FP32 大归约在末级 partial 合并时的精度超差。冻结输入(251300672 元素,seed 43)原输出为 8376.875,FP64 golden 为 8376.874228193426,A100 FP32 dot 为 8376.8740234375;原 cross_check L1 RMSE 比 3.76939797,超过阈值 1.5。 实际导出的 1728 个 NPU partial 的 FP64 和为 8376.8740940094,定位误差发生在末级合并。为 group 累加和 64-lane 水平归约加入 TwoSum 残差补偿,最终输出修正为 8376.8740234375。非有限主和清零补偿,避免 Inf-Inf 污染溢出结果。保留上游 FMA、Tiling、workspace 和 key 0 路径。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3596 ## 测试 - Ascend 950 定向发布包构建和部署成功;有效构建并行度不超过 8。 - 当前任务独立 Master/Revise CANN,包版本 9.3.0~weekly.20260923.01;TTK 固定 e3fb50a977f89da24084e344c073d34834e659e3,所有执行显式 --pc=1。 - 发布 binary:59/59 用例、118/118 输出通过原 cross_check L1;全部 BINARY_MATCH,内存检查全部通过。包含 4 个冻结输入、51 个新增用例及 4 个 NCHW/NHWC 用例,覆盖归约边界、尾块、partial 封顶和 NaN/Inf/上溢/次正规等。 - 共同 55 例基线为 52 PASS、3 FAIL,修复版全部通过。另两个修复用例为随机 n=8192/seed112、n=221185/seed119 的第二路输出,固定输入和回归脚本保存在本地验证目录。 - GEIR 冻结 seed42/43/44/45 的八个输出通过原 L1 审核;真实 A100 输出及原 FP64 golden、精度容差均未修改。 - 同 TTK --run=10 --warmup=true 计时:key 1 耗时比中位数 1.00378,最大 1.02435;原失败输入 1256.009→1258.137 μs(+0.17%)。未重跑历史 200 例完整 GPU 带宽折算性能验收。 - pre-commit(clang-format、Ruff、codespell、OAT 等)、git diff --check 和 Python 语法检查通过。本地 CI 统一入口已通过(受测 SHA c292bc18bb1d3a811a57ec4c54c256dabdb46c8d,主线 6fe9cdd5900a6c7c31a73042f6c2be9241c20aef):pre-commit、独立 OAT、Ascend 950/A2 定向构建入口通过。算子只交付 Ascend 950,kernel UT 目标无实际用例,不将空目标记作数值验证;此前 59 例精度结果单独记录。线上 CI 状态另行跟踪。 ## 文档更新 无。本 PR 只修改 kernel 头文件;复现脚本与验证说明保存在本地,不纳入 PR。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6386 | 7 天前 | |
增加reduce模板算子v121配置 Co-authored-by: Sunee<sunyi35@huawei.com> # message auto-generated for no-merge-commit merge: !6243 merge v121 into master 增加reduce模板算子v121配置 Created-by: sunzhongwen1 Commit-by: Sunee Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 给bias_add_grad、diag_part、dot、kl_div_v2、reduce_all、reduce_any、reduce_log_sum_exp、reduce_max、reduce_mean、reduce_min、reduce_prod、reduce_sum、square_sum_v1算子增加v121/122配置 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6243 | 7 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5947 merge fix/3292-exector-typos into master fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 ops-math 仓 10 个两段式 aclnn 接口头文件的第二段接口 @param 注释中,参数名 executor 被拼写为 exector(少一个 u),与函数签名不一致。统一修正拼写,仅涉及注释文本,不影响任何接口与逻辑。 ## 关联的Issue 关联Issue #3292 ## 测试 - 纯注释文本修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5947 | 28 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 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 | 1 个月前 | |
refactor: 继续迁移非 experimental 公共头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge refactor/math-prefix-common-headers-1008 into master refactor: 继续迁移非 experimental 公共头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 继续将 ops-math 的公共 op_api 头文件引用迁移到带 _math 后缀的名称,减少多个算子仓库集成时同名头文件误引用的风险。 本次更新 35 个非 experimental 文件中的 35 处引用: - level2_base.h → level2_base_math.h:11 处。 - level2_base_caculation.h → level2_base_caculation_math.h:1 处。 - op_api_def.h → op_api_def_math.h:23 处。 对涉及文件同步执行仓库 clang-format、尾部空白及 EOF 规范化。此次共 35 个文件,新增 2506 行、删除 2419 行;除头文件引用替换外,其余为格式调整。 sin 因此前发现的 UT 全局平台状态污染继续暂缓;experimental 文件继续分批处理。现有兼容转发头保留。 ## 关联的Issue 延续公共头文件重名问题的分阶段迁移:https://gitcode.com/cann/ops-math/issues/3243 ## 测试 在服务器 192.168.9.234 的 lcl_ops_9.0 容器(CANN 9.0.0 / aarch64)中,以基线 16700ac8d829f8e66180c612f45ed4384b51e2e0 创建独立工作区验证。35 个修改文件的 SHA256 与本地逐一一致。 - git diff --check:通过。 - pre-commit:所有 hook 通过;另显式扫描全部 35 文件的 OAT 检查通过。 - bash build.sh --opapi -j16:全量编译通过,生成 libopapi_math.so。 - 仓库 CI 脚本为涉及的 30 个算子生成 op_api 单测命令,指定 ascend910b 执行:605 个用例全部通过。 - 额外执行 fill_diagonal_v2,flatten,slogdet,svd 的 op_host 验证:容器中 libophost_math_ut.so 加载时缺少 ops::OpAICoreDef::AddConfig(const char*, ops::OpAICoreConfig&) 符号,导致注册失败及 FillDiagonalV2 InferShape 单测段错误。去掉全部 35 文件修改后的干净基线使用相同命令复现相同失败;该失败独立于本次头文件引用替换,op_host 验证尚未通过。 ## 文档更新 不涉及用户文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用重构及格式规范化。 See merge request: cann/ops-math!6220 | 8 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 3 天前 | |
TensorEqual & RandomUniformV2 supprot Ascend960dt/Ascend960pr Co-authored-by: magicjason0007<wangdongxu20@huawei.com> # message auto-generated for no-merge-commit merge: !6401 merge master into master TensorEqual & RandomUniformV2 supprot Ascend960dt/Ascend960pr Created-by: magicjason0007 Commit-by: magicjason0007 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 将 tensor_equal、random_uniform_v2 两个算子扩展适配 ascend960dt / ascend960pr芯片 具体改动: 1. SoC 支持扩展(tensor_equal、random_uniform_v2): - 算子 CMakeLists.txt:SUPPORT_COMPUTE_UNIT 追加 ascend960dt、ascend960pr(置于末尾),SUPPORT_TILING_DIR 对应追加,两个新平台仍复用 arch35 tiling 目录; - op_host/*_def.cpp:AddConfig 追加 ascend960dt/ascend960pr; - op_host/config/:新增 ascend960dt/、ascend960pr/ 配置目录(binary.json、simplified_key.ini与 ascend950 一致); - scripts/kernel/binary_config/ascendc_config.json:TensorEqual 条目 compute_units 追加ascend960dt/960pr 及对应 compile_options。 - 2. tensor_equal tiling 分核适配(op_host/arch35/tensor_equal_tiling_arch35.h/.cpp):新增 IsDv121() 架构判断接口,121 平台(DAV9201/DAV9202,即 ascend960dt/960pr)单核最小处理粒度由 2048调整为 256,通过 NpuArch 架构判断隔离,不影响 ascend950/ascend350 原有分核逻辑。 3. aclnn 校验:无需改动,仓内 aclnn_check.h 的 IsRegBase 已覆盖 DAV_9201/9202,CheckSocVersionGe910B 基于 NpuArch 判断(未使用 SocVersion 范围判断),天然支持 960 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3607 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证和二级冒烟均已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:算子新芯片平台(ascend960dt/ascend960pr)适配扩展 See merge request: cann/ops-math!6401 | 3 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
产品名变更 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 | 1 个月前 | |
产品名变更 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 | 1 个月前 | |
[Fix] 修复 TopKV2 Host InferShape 的 k 范围校验和错误码 Co-authored-by: KaranocaVe<karanocave@qq.com> # message auto-generated for no-merge-commit merge: !4987 merge fix/2026-08-23-ops-math-topkv2-invalid-k-infershape-01 into master [Fix] 修复 TopKV2 Host InferShape 的 k 范围校验和错误码 Created-by: KaranocaVe Commit-by: KaranocaVe Merged-by: cann-robot Description: ## 修复摘要 修复 TopKV2 Host InferShape 对动态输入 k 缺少范围校验的问题。此前 k < 0 或 k 大于排序轴长度时,形状推导仍返回成功并把非法值写入输出 shape;同时,负责 公共推导的 helper 使用 bool 返回类型,不能准确传递 GRAPH_FAILED。 现在将 helper 返回类型改为 graphStatus,对负 k 返回 GRAPH_FAILED,并在排序轴 长度已知时拒绝 k > axis_size,使 Host 形状推导与 TopKV2 约束及 AICPU 参数校验 保持一致。 ## 变更范围 - math/top_k_v2/op_host/top_k_v2_infershape.cpp:增加 k 非负校验和已知排序轴 长度的上界校验,并修正 helper 返回类型以保留标准错误码。 - math/top_k_v2/tests/ut/op_host/test_top_k_v2_infershape.cpp:增加 k 等于轴长 的合法边界对照,并覆盖 k=axis_size+1、k=-1 两个非法方向。 - 评审补充修复(当前 head c1ec6444d406e7572f26a9091ce05b1d08732a93):补全 dim < -rank 的非法负轴校验,避免归一化后使用负下标读取排序轴长度;同时增加 rank=2, dim=-3 返回 GRAPH_FAILED 的回归用例。 - 兼容性:合法 k、合法负轴和未知轴长度的动态 shape 推导保持原有行为;仅提前拒绝 明确非法参数,不涉及 ABI、kernel 或公开接口。 ## 测试结果 - 在固定 commit 0a2ce5b57caec6068d9e5658b740c2d41482aa15 的 Host UT 配置下,执行 cmake --build <build-dir> --target math_op_host_ut -- -j2,退出码为 0,完整 TopKV2 Host UT 共 12/12 通过。 - 执行 <build-dir>/tests/ut/op_host/math_op_host_ut --gtest_filter='TopKV2InferShape.*',退出码为 0,定向回归 4/4 通过: k=32 返回 GRAPH_SUCCESS,k=33 和 k=-1 返回 GRAPH_FAILED。 - 当前 head 已包含 dim=-3 的负轴越界回归用例,且该 head 的 GitCode CI 状态已回查为 通过。 - 验证环境 Toolkit/OPP 为 CANN 9.1.0,目标源码属于后续开发线;本次结论限定为 Host ## 关联的 Issue - https://gitcode.com/cann/ops-math/issues/2814 ## Patch 来源 - 初始基线 commit:0a2ce5b57caec6068d9e5658b740c2d41482aa15 - 初始 Patch SHA-256:bc407fd5d64ab0bff69c95f7e3d3b6834d2cf7d557f4516decd6b5882e6b6151 - 评审补充修复 commit:c1ec6444d406e7572f26a9091ce05b1d08732a93 See merge request: cann/ops-math!4987 | 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 | 1 个月前 | |
fix(radix_top_k): 修复 WS 变体 V→MTE3 同步缺失与 CreateVecIndex4TopK 越界,统一跨核前缀和累加为 int64 Co-authored-by: Nice_try<zhangzhiwei108@huawei.com> # message auto-generated for no-merge-commit merge: !6396 merge addut into master fix(radix_top_k): 修复 WS 变体 V→MTE3 同步缺失与 CreateVecIndex4TopK 越界,统一跨核前缀和累加为 int64 Created-by: Nice_try Commit-by: Nice_try Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 改动原因 RadixTopK 在 int64 大 shape(sortLen 超 int32 上限)与 WS 变体路径上存在三处缺陷,且 host UT 的 tiling key 期望值只编码 3 位,int64 主路径恒测不到: 1. WS 变体同步缺失: Add 在 V 流水线写 tileTopK,紧接着 MTE3 读同一块 UB;PipeBarrier<PIPE_V> 只保证 V 流水线内部顺序,SToMTE3Sync 只覆盖 S→MTE3,两者都管不到 V→MTE3,MTE3 可能读到 Add 之前的旧值,导致该段 k 配额错乱。同文件 AddTileHist2TileTopKInWs 对同样的 Add→CopyOut 序列用的是 VToMTE3Sync。 2. 索引序列越界:i64 变体的多段 regime 会命中 tileNum_ > MAX_TILE_NUM_IN_UB,此时 CreateVecIndex4TopK 中的无符号相减会下溢成巨大值,再被 tileLen_ 兜住,最终 GetWithOffset(maxIndexLen, tileNumAlign_ * 4) 的偏移会写出 6144 元素 buffer。 3. 跨核前缀和累加溢出:前驱 core 边界 bin 累计元素数总量可达 sortLen > 2^31,UB 变体用 int32 累加(cumSumValuePrev / remainCoreBoundaryNum)存在溢出风险;同时 WS 变体维护了一份只差累加器类型的 ComputeCumSumPrevI64。 4. UT 覆盖缺口:ComputeExpectedTilingKey 只编码 sorted/largest/isLargeShape 3 位,未编码 isInt64Shape(bit3),int64 主路径(sortLen > 2^31)恒测不到。 ### 改动方法 1. op_kernel/radix_top_k_ws.h - HandleLastRoundBoundary 中 Add→CopyTileTopKUb2Ws 的同步由 SToMTE3Sync() 改为 VToMTE3Sync(),与同文件 AddTileHist2TileTopKInWs 口径一致; - CreateVecIndex4TopK 增加前置防御:tileNumAlign_ >= MAX_TILE_NUM_IN_UB 时直接 return 0,下游走「现算索引」分支,与 maxIndexLen==0 的既有兜底行为一致; - 删除 ComputeCumSumPrevI64,改用基类 ComputeCumSumPrev(出参已是 int64),消除 UB/WS 两份仅差累加器类型的实现。 2. op_kernel/radix_top_k_common.h:ComputeCumSumPrev 出参由 int32_t& 改为 int64_t&(每 core 边界 bin 计数 < 2^31,int64 累加对 int32 形状同样安全);IsNaNValue 的 float 位模式读取由指针 reinterpret 改为 union,规避浮点相等/自比较类告警;补充提取相与计数相 NaN 规范化口径不对称的说明。 3. op_kernel/radix_top_k_ub.h:cumSumValuePrev / remainCoreBoundaryNum 改为 int64,回写 tileTopK 时显式 static_cast<int32_t>(per-core 配额 < 该 tile 边界 bin 计数 < 2^31,int32 通道安全)。 4. op_host/radix_top_k_tiling.cpp:新增 static_assert(LARGE_SORT_LEN < INT32_SORT_LEN_MAX),把「isInt64Shape_ 蕴含 isLargeShape_」钉死,避免后续调大 LARGE_SORT_LEN 时 i64 分支被漏掉;needWorkspace / GetWorkspaceSize 两处 || isInt64Shape_ 补充防御性冗余注释。 5. tests/ut/op_host/test_radix_top_k_tiling.cpp:ComputeExpectedTilingKey 补齐第 4 位 isInt64Shape(与 GET_TPL_TILING_KEY(sorted, largest, isLargeShape, isInt64Shape) 一一对应,此前 int64 主路径恒测不到);新增两条用例:i64_shape_tiling_key_bit3(sortLen=2^31 ⇒ bit3+bit2、indices int64、必须申请 workspace)、i64_shape_reject_int32_indices(sortLen > 2^31 且 indices int32 必须 tiling 失败);MakeRadixTopKTilingContext 支持指定输出 indices dtype。 6. math/radix_top_k/README.md:约束说明由「无」改为「本算子为选取类实现,输出为选中元素在排序轴上的索引序,不保证有序」。 7. math/topk/op_api/topk.cpp:补充 int64 大 shape 分支拦截条件的注释(说明放掉 k 比例门限与 MIN_K 门限、且 int64 索引无法通过 GatherElementsV2 补有序性的原因),不改变逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> - #3604 https://gitcode.com/cann/ops-math/issues/3604 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 本次提交包含 host UT 变更(math/radix_top_k/tests/ut/op_host/test_radix_top_k_tiling.cpp):修正 tiling key 期望值编码并新增 int64 主路径两条用例;本地未执行,预期由 CI 运行。 - kernel 侧改动(VToMTE3Sync、CreateVecIndex4TopK 防御、int64 累加)建议结合 RadixTopK int64 大 shape 场景回归验证(实施类用例未包含在本次提交内)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新 math/radix_top_k/README.md 约束说明(补充输出无序约束);另含 op_host/op_kernel 注释更新,不涉及其他文档。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6396 | 6 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
IsClose等15个算子新增支持 ascend960dt Co-authored-by: TH<taohai2@huawei.com> # message auto-generated for no-merge-commit merge: !6079 merge backBlue into master IsClose等15个算子新增支持 ascend960dt Created-by: TH_HW Commit-by: TH Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次改动为 math 仓 15 个算子新增 Ascend960DT( NpuArch::DAV_9201)平台支持,使这些算子可在 Ascend960DT 上完成注册、编译与运行。 适配算子:is_close、is_neg_inf、masked_scale、neg、reciprocal、round、rsqrt、rsqrt_grad、sign、sin、sqrt、sqrt_grad、square、tanh、trunc。 具体改动: - 算子注册:在各算子 op_host/*_def.cpp 中新增 this->AICore().AddConfig("ascend960dt", aicoreConfig),完成 Ascend960DT 计算单元注册。 - 编译单元:在各算子 CMakeLists.txt 的 SUPPORT_COMPUTE_UNIT 中加入 ascend960dt,并按原有平台(arch22/arch35)在 SUPPORT_TILING_DIR 中补入对应的 arch35 tiling 目录。 - 二进制配置:新增 op_host/config/ascend960dt/<op>_binary.json,覆盖各算子的 dtype/shape 组合(如 float16/bfloat16/float32/int32/int8/uint8 等);新增 <op>_simplified_key.ini 指定 --simplified_key_mode。 - 内核编译配置:在 scripts/kernel/binary_config/ascendc_config.json 中为上述算子的 compute_units 与 compile_options 增加 ascend960dt。 - 平台映射:在 scripts/kernel/binary_script/build_env.sh 的 SOC_MAP 中新增 [Ascend960DT]="Ascend960DT_968B7"。 - 算子校验:math/sign/op_api/aclnn_sign.cpp 的 dtype 校验新增 NpuArch::DAV_9201 分支,使 bf16 支持在 Ascend960DT 生效。 - 用例:补充 sin、sqrt 的 arch35 tiling UT(新增小 shape、大 shape、3D、非支持 dtype 等正向/异常用例);sqrt 用例同时做格式化整改。 - 顺带统一部分 CMakeLists.txt 的许可头注释格式(add_n、complex_abs、cast、is_inf、log1p、tanh 等),并修正 neg 的 ascend950 simplified_key.ini 末尾换行。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - 编译验证:执行 math 仓编包,确认 15 个算子在 Ascend960DT 下均能正常注册与编译,生成对应 kernel 二进制。 - 二进制/交付件验证:确认各算子 config/ascend960dt 下的 *_binary.json 与 *_simplified_key.ini 生效,ascendc_config.json 中已包含 ascend960dt 编译单元。 - 单元测试:执行 sin、sqrt 的 arch35 tiling UT,覆盖 fp16/bf16/fp32、小/大 shape、3D 及非支持 dtype 场景,结果符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6079 | 2 天前 | |
test: 18 算子 golden 新增 TestSpec 双注册与 third_party Co-authored-by: Xbying<2119046648@qq.com> # message auto-generated for no-merge-commit merge: !5789 merge 14 into master test: 18 算子 golden 新增 TestSpec 双注册与 third_party Created-by: 2301_81474000 Commit-by: Xbying Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 16 个算子 golden 新增 __spec__(保留旧 __golden__,单一代码源双入口):Pad、PadV2、PadV3、MirrorPad、CircularPadGrad、PadV3GradReplication、DepthToSpace、SpaceToDepth、BatchToSpaceND、MatrixSetDiagV2、Sinc、TruncateDiv、TruncateMod、Erfc、Expand、Tile/TileD - 新建 2 个 golden:ReflectionPad3dGrad、Rint - 全部补 third_party 竞品实现(F.pad / aten backward / np.pad / torch.tile / torch.round 等),视图类输出加 .contiguous() - 顺带修复 4 处原 golden 缺陷(depth_to_space 死链与未定义名、pad_v2 0 维标量越界、pad_v3_grad_replication 部分维 pad、ruff E712/F841) - 全部经 TTK loader 双入口解析与 third_party↔golden 数值互验(BatchToSpaceND 因 golden 依赖 TF 仅做解析验证) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3226 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5789 | 10 天前 | |
test: 18 算子 golden 新增 TestSpec 双注册与 third_party Co-authored-by: Xbying<2119046648@qq.com> # message auto-generated for no-merge-commit merge: !5789 merge 14 into master test: 18 算子 golden 新增 TestSpec 双注册与 third_party Created-by: 2301_81474000 Commit-by: Xbying Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> - 16 个算子 golden 新增 __spec__(保留旧 __golden__,单一代码源双入口):Pad、PadV2、PadV3、MirrorPad、CircularPadGrad、PadV3GradReplication、DepthToSpace、SpaceToDepth、BatchToSpaceND、MatrixSetDiagV2、Sinc、TruncateDiv、TruncateMod、Erfc、Expand、Tile/TileD - 新建 2 个 golden:ReflectionPad3dGrad、Rint - 全部补 third_party 竞品实现(F.pad / aten backward / np.pad / torch.tile / torch.round 等),视图类输出加 .contiguous() - 顺带修复 4 处原 golden 缺陷(depth_to_space 死链与未定义名、pad_v2 0 维标量越界、pad_v3_grad_replication 部分维 pad、ruff E712/F841) - 全部经 TTK loader 双入口解析与 third_party↔golden 数值互验(BatchToSpaceND 因 golden 依赖 TF 仅做解析验证) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3226 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5789 | 10 天前 | |
产品名变更 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 | 1 个月前 | |
根据markdownlint规范修正md写作问题和link失效 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !6398 merge master into master 根据markdownlint规范修正md写作问题和link失效 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 根据markdownlint规范修正md写作问题和link失效 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2272](https://gitcode.com/cann/ops-math/issues/2272) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 所有md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6398 | 7 天前 | |
refactor: 继续迁移非 experimental 公共头文件引用 Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !6220 merge refactor/math-prefix-common-headers-1008 into master refactor: 继续迁移非 experimental 公共头文件引用 Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 继续将 ops-math 的公共 op_api 头文件引用迁移到带 _math 后缀的名称,减少多个算子仓库集成时同名头文件误引用的风险。 本次更新 35 个非 experimental 文件中的 35 处引用: - level2_base.h → level2_base_math.h:11 处。 - level2_base_caculation.h → level2_base_caculation_math.h:1 处。 - op_api_def.h → op_api_def_math.h:23 处。 对涉及文件同步执行仓库 clang-format、尾部空白及 EOF 规范化。此次共 35 个文件,新增 2506 行、删除 2419 行;除头文件引用替换外,其余为格式调整。 sin 因此前发现的 UT 全局平台状态污染继续暂缓;experimental 文件继续分批处理。现有兼容转发头保留。 ## 关联的Issue 延续公共头文件重名问题的分阶段迁移:https://gitcode.com/cann/ops-math/issues/3243 ## 测试 在服务器 192.168.9.234 的 lcl_ops_9.0 容器(CANN 9.0.0 / aarch64)中,以基线 16700ac8d829f8e66180c612f45ed4384b51e2e0 创建独立工作区验证。35 个修改文件的 SHA256 与本地逐一一致。 - git diff --check:通过。 - pre-commit:所有 hook 通过;另显式扫描全部 35 文件的 OAT 检查通过。 - bash build.sh --opapi -j16:全量编译通过,生成 libopapi_math.so。 - 仓库 CI 脚本为涉及的 30 个算子生成 op_api 单测命令,指定 ascend910b 执行:605 个用例全部通过。 - 额外执行 fill_diagonal_v2,flatten,slogdet,svd 的 op_host 验证:容器中 libophost_math_ut.so 加载时缺少 ops::OpAICoreDef::AddConfig(const char*, ops::OpAICoreConfig&) 符号,导致注册失败及 FillDiagonalV2 InferShape 单测段错误。去掉全部 35 文件修改后的干净基线使用相同命令复现相同失败;该失败独立于本次头文件引用替换,op_host 验证尚未通过。 ## 文档更新 不涉及用户文档更新。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:公共头文件引用重构及格式规范化。 See merge request: cann/ops-math!6220 | 8 天前 | |
feat: masked_select_v3/zeros_like/ones_like/zero_op 支持 Ascend960 Co-authored-by: zhu-xun00613388<zhuxun7@huawei.com> # message auto-generated for no-merge-commit merge: !6264 merge v121_master into master feat: masked_select_v3/zeros_like/ones_like/zero_op 支持 Ascend960 Created-by: zhu-xun Commit-by: zhu-xun00613388 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> feat: masked_select_v3/zeros_like/ones_like/zero_op 支持 Ascend960 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6264 | 5 天前 | |
产品名变更 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 | 1 个月前 | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 天前 | ||
| 8 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 10 天前 | ||
| 2 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 29 天前 | ||
| 2 天前 | ||
| 10 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 8 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 29 天前 | ||
| 3 天前 | ||
| 13 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 8 天前 | ||
| 12 天前 | ||
| 8 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 13 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 12 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 5 天前 | ||
| 5 天前 | ||
| 6 个月前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 12 天前 | ||
| 23 天前 | ||
| 2 天前 | ||
| 28 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 29 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 8 天前 | ||
| 12 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 6 天前 | ||
| 28 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 7 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 13 天前 | ||
| 10 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 7 天前 | ||
| 5 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 3 天前 | ||
| 6 天前 | ||
| 4 个月前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 14 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 8 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 10 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 天前 | ||
| 6 天前 | ||
| 14 天前 | ||
| 8 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 6 天前 | ||
| 12 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 3 天前 | ||
| 28 天前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 7 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 7 天前 | ||
| 2 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 1 个月前 | ||
| 7 天前 | ||
| 8 天前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 9 个月前 |