| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 规范化 math仓部分算子代码格式 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6203 merge ccc_1010 into master refactor: 规范化 math仓部分算子代码格式 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次改动对 math/ 目录下 9 个算子(Equal、FloorDiv、Greater、GreaterEqual、Less、LessEqual、Maximum、Minimum、NotEqual)进行代码格式规范化,不涉及任何功能变更。 ### 改动原因 统一代码风格,符合 clang-format 规范,提升可读性与可维护性。 ### 改动方法 1. 按 clang-format 规范统一缩进、换行与对齐; 2. 补充缺失的文件末尾换行符; 3. 清理尾随空格与多余空行; 4. 修复配置文件注释拼写错误(build-in → built-in); 5. 统一 Python 测试脚本 docstring 风格(''' → """)。 ## 关联的Issue - #3467 ## 测试 本次改动仅涉及代码格式调整,无功能变更,不涉及二级冒烟、算子泛化等验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式规范化(重构) See merge request: cann/ops-math!6203 | 1 个月前 | |
test: 同步 Math BRC 零 workspace 的 Host UT 期望值 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !6242 merge fix/ascend950-vector-workspace into master test: 同步 Math BRC 零 workspace 的 Host UT 期望值 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 修改内容 仅同步公共 BroadcastBaseTiling(BRC)workspace 清零所影响的 Host UT:把成功 BRC 用例的 workspace 期望由 16777216(16 MiB)改为 0。 共修改 38 个已有 UT 文件,228 行增加、228 行删除,全部为上述 workspace 字面值替换。无生产代码、kernel、CMake、公共 UT 框架、依赖版本或失败用例修改;分支保持一次提交。 ## Major 意见核对与处理 opbase #1007 在 BroadcastBaseTiling::DoTiling 公共成功出口写入 DEFAULT_TILING_WORKSPACE_SIZE=0,默认 kernel type 同样受影响,并非可排除条件。结合本地 opbase 与当前 ops-math 源码,逐项处理如下: | 算子 | 本 PR 处理 | 保留原期望的依据 | | --- | --- | --- | | AddV2 | 生产文件及 UT 均保持主线原样 | BRC 返回后 SetWorkspace 显式按 CompileInfo/平台信息重新申请 workspace,最终结果仍为 16 MiB;不能仅改 UT 为 0。 | | LeftShift | 8 个成功用例改为 0 | 另 1 个失败用例的占位期望不参与 workspace 检查,保持原样。 | | RightShift | 10 个成功用例改为 0 | 另 2 个失败用例同上,保持原样。 | | MaximumGrad | 7 个成功 BRC 用例改为 0 | 另 4 个空张量用例走 HandleEmptyTensor 独立分支,仍显式申请系统 workspace,保留 16 MiB。 | | MinimumGrad | 7 个成功 BRC 用例改为 0 | 同上,另 4 个空张量独立分支保留 16 MiB。 | | MaskedFill | 7 个成功 BRC 用例改为 0 | 无遗漏。 | | TruncateDiv | 6 个成功 BRC 用例改为 0 | 原有两个 0 是失败用例,不是非 BRC 成功路径;保持原样。 | 全仓扫描发现的另外三组遗漏也已补齐:FusedMulAdd(10 处)、FusedMulAddAdd(10 处)、MulNoNan(11 处)。上述新增补齐共 9 个文件、76 处。其余原有 UT 中仅属于失败用例的 8 处占位值修改也已撤回,避免无关修改。 ## 本地验证(2026-11-05) 最终提交: ae55efaba。 环境:aarch64、GNU 9.4.0、CANN 9.2.0(用户目录安装)、目标 ascend950。使用仓库默认固定 opbase 8e8cf1b60b28bc1f8aaa1652fe054ac7e35d5852,未叠加本地 opbase 补丁。 - 最终 UT-only 版本已重新编译、最终链接并运行 math_op_host_ut:**548/548 测试通过,78 个测试套件,构建退出码 0**。范围包括全部 38 个变更算子,以及保持原样的 AddV2,共 39 个算子;保留 16 MiB 的 AddV2/梯度空张量用例也实际通过。 - 逐字节检查全部 38 个变更文件,仅存在 {16777216} → {0} 的替换;失败用例无差异,AddV2 无差异。 - 按原有 CRLF 换行格式执行差异空白检查,通过。 - 扫描仓库 50 个直接 BRC Host 消费算子,核对剩余 16 MiB 用例及上述独立分支。 最终复测日志:/tmp/pr6242-ut-only-final.log。日志含复用构建目录产生的 gcov profile 时间戳提示;测试和构建均成功,本次不提供覆盖率结论。Host UT 不替代设备 kernel 精度、性能或越界验证;本轮未执行设备测试。 ## 关联 PR - [opbase #1007](https://gitcode.com/cann/opbase/pull/1007):已合入的公共 BRC workspace 清理。 - [ops-math #6711](https://gitcode.com/cann/ops-math/pull/6711):已合入独立实现路径清理及其 4 个 UT 文件。已同步包含该修改的主线,上述 10 个文件不在本 PR 差异中。 See merge request: cann/ops-math!6242 | 10 天前 | |
Greater AICPU kernel 内存优化 Co-authored-by: Ding_Jing<dingjing19@huawei.com> # message auto-generated for no-merge-commit merge: !5364 merge fix/greater-aicpu-memory into master Greater AICPU kernel 内存优化 Created-by: Ding_Jing Commit-by: Ding_Jing Merged-by: cann-robot Description: ## 描述 Greater AICPU 原实现使用 Eigen Tensor 广播表达式,会产生额外临时缓冲并实例化大量 rank/dtype 模板。本 PR 改为固定长度的栈上 stride-0 广播计划和条带循环,直接写入 bool 输出。 ### 修改内容 - 同 shape、双向标量、普通广播及可折叠高 rank 统一走条带比较,不再物化 Eigen 中间结果。 - 在数据访问前校验输出元素数、空输出、负维度和广播结果乘积溢出;非法 shape 返回参数错误且不写输出。 - 合法非负索引使用 uint64_t,保留生产 -ftrapv。 - 增加负维度、输出大小不匹配、乘积溢出和输出哨兵 UT,并补齐既有用例未检查的后半输出。 - CodeCheck huge_method[C++] 告警通过缩短已有 helper 名处理:ValidateNonEmptyBcastResult 改为 ValidateBcastSize,canndev GreaterCompute() NBNC 由 51 降为 50;控制流和计算表达式不变。 ### 内存变化 完整 187 档中没有任何一档辅助堆峰值上升,调用后残留均为 0 B。当前实现常规 rank 1–8 为 376–464 B,双标量为 352 B,可折叠 rank 9 为 816 B。同一广播家族的输出规模从 1,536 增长到 61,440,000 时,改后辅助堆峰值保持 416 B;对应改前峰值为 25,112–61,976 B。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3024 ## 测试 | 测试项 | 结果 | | --- | --- | | 真实 AICPU UT,-O0/-O2 -ftrapv | 37/37、37/37 通过 | | 仓库原生 Greater AICPU UT | 37/37 通过 | | 常规值与特殊值精度、输出 guard | 187/187、187/187 通过 | | 破坏参考值反向检查 | 187/187 检出 | | 辅助堆 | 187/187 无上升,残留均为 0 B | | 完整性能矩阵 | 187/187 PASS,speedup=改前/改后 为 1.0794–4.1704 | | 31 轮定向 A/B 与基线 A/A | 3/3 PASS;最接近边界档的 speedup 校正下界为 1.0702 | | clang-format、pre-commit、CodeCheck、服务端 CI | 通过 | | 历史上板证据 | v6 候选 6/6 场景输出和 AICPU 路由通过;非当前 head 重测,不参与当前性能、内存和精度结论 | ### 逐档内存与性能(187 档) 表中 speedup=改前耗时/改后耗时,大于 1 表示改后更快。187 档全部明确通过;逐档表只保留内存和性能验收所需字段。 #### 逐 shape 与输出规模(22 档) | case | dtype | 元素数 | 改前堆 B | 改后堆 B | 降幅 | 改前 ns | 改后 ns | speedup | | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | small | double | 64 | 1,416 | 376 | 73.45% | 4,085 | 3,215 | 1.2706 | | sweep1536 | double | 1,536 | 25,112 | 416 | 98.34% | 12,675 | 5,870 | 2.1593 | | sweep15360 | double | 15,360 | 61,976 | 416 | 99.33% | 74,710.5 | 22,110.5 | 3.3790 | | sweep153600 | double | 153,600 | 33,304 | 416 | 98.75% | 743,087.5 | 230,627 | 3.2220 | | sweep1536000 | double | 1,536,000 | 33,304 | 416 | 98.75% | 7,743,609 | 2,750,813 | 2.8150 | | sweep15360000 | double | 15,360,000 | 33,304 | 416 | 98.75% | 81,914,275 | 41,072,477.5 | 1.9944 | | sweep61440000 | double | 61,440,000 | 33,304 | 416 | 98.75% | 330,234,243 | 165,018,039 | 2.0012 | | rank1 | double | 2,097,152 | 33,256 | 376 | 98.87% | 9,926,450.5 | 2,380,234.5 | 4.1704 | | rank2 | double | 2,097,152 | 33,256 | 400 | 98.80% | 10,016,434.5 | 3,017,051 | 3.3199 | | rank3 | double | 2,097,152 | 33,304 | 416 | 98.75% | 10,116,236 | 3,280,273.5 | 3.0840 | | rank4 | double | 2,097,152 | 33,304 | 416 | 98.75% | 10,216,484.5 | 3,288,993.5 | 3.1063 | | rank5 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,438,319.5 | 3,442,230 | 3.0324 | | rank6 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,213,337.5 | 3,285,658.5 | 3.1085 | | rank7 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,592,018 | 3,729,893 | 2.8398 | | rank8 | double | 1,048,576 | 33,400 | 464 | 98.61% | 5,056,120.5 | 1,573,621 | 3.2130 | | xscalar | double | 4,816,896 | 33,264 | 416 | 98.75% | 23,976,141.5 | 9,235,659 | 2.5960 | | yscalar | double | 4,816,896 | 33,264 | 416 | 98.75% | 23,923,015.5 | 9,451,916.5 | 2.5310 | | large | double | 38,535,168 | 33,304 | 416 | 98.75% | 207,510,581.5 | 99,584,351 | 2.0838 | | xscalar | float | 4,816,896 | 33,264 | 416 | 98.75% | 20,200,602.5 | 6,397,550 | 3.1576 | | yscalar | float | 4,816,896 | 33,264 | 416 | 98.75% | 20,372,294 | 6,277,868.5 | 3.2451 | | large | float | 38,535,168 | 33,304 | 416 | 98.75% | 177,683,098.5 | 84,410,232 | 2.1050 | | small | float | 64 | 904 | 376 | 58.41% | 4,050 | 3,205 | 1.2637 | #### 11 dtype × 4 shape(44 档) | case | dtype | 元素数 | 改前堆 B | 改后堆 B | 降幅 | 改前 ns | 改后 ns | speedup | | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | small | float16 | 64 | 648 | 376 | 41.98% | 4,020 | 3,305 | 1.2163 | | same | float16 | 4,816,896 | 33,208 | 416 | 98.75% | 20,791,697 | 13,736,184 | 1.5136 | | outer | float16 | 4,816,896 | 33,304 | 416 | 98.75% | 20,608,364.5 | 13,076,213.5 | 1.5760 | | inner | float16 | 4,816,896 | 33,304 | 416 | 98.75% | 89,486,627.5 | 27,968,184 | 3.1996 | | small | float | 64 | 904 | 376 | 58.41% | 4,100 | 3,210 | 1.2773 | | same | float | 4,816,896 | 33,208 | 416 | 98.75% | 21,987,221 | 9,882,961.5 | 2.2248 | | outer | float | 4,816,896 | 33,304 | 416 | 98.75% | 20,630,852 | 7,524,227 | 2.7419 | | inner | float | 4,816,896 | 33,304 | 416 | 98.75% | 84,735,251 | 25,040,879.5 | 3.3839 | | small | double | 64 | 1,416 | 376 | 73.45% | 4,095 | 3,220 | 1.2717 | | same | double | 4,816,896 | 33,208 | 416 | 98.75% | 25,242,786 | 12,864,865.5 | 1.9621 | | outer | double | 4,816,896 | 33,304 | 416 | 98.75% | 25,476,421.5 | 11,286,744.5 | 2.2572 | | inner | double | 4,816,896 | 33,304 | 416 | 98.75% | 106,179,849 | 26,465,351 | 4.0120 | | small | int8 | 64 | 520 | 376 | 27.69% | 4,085 | 3,200 | 1.2766 | | same | int8 | 4,816,896 | 33,208 | 416 | 98.75% | 17,897,798 | 4,791,738.5 | 3.7351 | | outer | int8 | 4,816,896 | 33,304 | 416 | 98.75% | 5,621,702 | 4,883,730 | 1.1511 | | inner | int8 | 4,816,896 | 33,304 | 416 | 98.75% | 71,912,144.5 | 25,131,276 | 2.8615 | | small | int16 | 64 | 648 | 376 | 41.98% | 4,050 | 3,210 | 1.2617 | | same | int16 | 4,816,896 | 33,208 | 416 | 98.75% | 18,820,809.5 | 7,454,666 | 2.5247 | | outer | int16 | 4,816,896 | 33,304 | 416 | 98.75% | 18,696,920 | 6,506,041 | 2.8738 | | inner | int16 | 4,816,896 | 33,304 | 416 | 98.75% | 79,975,075.5 | 24,235,670 | 3.2999 | | small | int32 | 64 | 904 | 376 | 58.41% | 4,040 | 3,210 | 1.2586 | | same | int32 | 4,816,896 | 33,208 | 416 | 98.75% | 21,831,952 | 10,742,992.5 | 2.0322 | | outer | int32 | 4,816,896 | 33,304 | 416 | 98.75% | 20,578,174.5 | 7,480,287 | 2.7510 | | inner | int32 | 4,816,896 | 33,304 | 416 | 98.75% | 86,402,362.5 | 24,881,924 | 3.4725 | | small | int64 | 64 | 1,416 | 376 | 73.45% | 4,155 | 3,220 | 1.2904 | | same | int64 | 4,816,896 | 33,208 | 416 | 98.75% | 25,232,712.5 | 12,414,831.5 | 2.0325 | | outer | int64 | 4,816,896 | 33,304 | 416 | 98.75% | 25,074,675 | 11,000,614.5 | 2.2794 | | inner | int64 | 4,816,896 | 33,304 | 416 | 98.75% | 106,001,023 | 26,417,768.5 | 4.0125 | | small | uint8 | 64 | 520 | 376 | 27.69% | 4,020 | 3,190 | 1.2602 | | same | uint8 | 4,816,896 | 33,208 | 416 | 98.75% | 17,851,950.5 | 5,471,011.5 | 3.2630 | | outer | uint8 | 4,816,896 | 33,304 | 416 | 98.75% | 5,739,069 | 4,999,798 | 1.1479 | | inner | uint8 | 4,816,896 | 33,304 | 416 | 98.75% | 71,831,799 | 25,065,006.5 | 2.8658 | | small | uint16 | 64 | 648 | 376 | 41.98% | 4,095 | 3,220 | 1.2717 | | same | uint16 | 4,816,896 | 33,208 | 416 | 98.75% | 18,678,319 | 7,555,697.5 | 2.4721 | | outer | uint16 | 4,816,896 | 33,304 | 416 | 98.75% | 18,596,043 | 6,349,029.5 | 2.9290 | | inner | uint16 | 4,816,896 | 33,304 | 416 | 98.75% | 78,960,769.5 | 24,240,418.5 | 3.2574 | | small | uint32 | 64 | 904 | 376 | 58.41% | 4,035 | 3,205 | 1.2590 | | same | uint32 | 4,816,896 | 33,208 | 416 | 98.75% | 21,799,641.5 | 10,911,036 | 1.9979 | | outer | uint32 | 4,816,896 | 33,304 | 416 | 98.75% | 20,597,103.5 | 7,327,155 | 2.8111 | | inner | uint32 | 4,816,896 | 33,304 | 416 | 98.75% | 86,393,881.5 | 24,895,675 | 3.4702 | | small | uint64 | 64 | 1,416 | 376 | 73.45% | 4,140 | 3,205 | 1.2917 | | same | uint64 | 4,816,896 | 33,208 | 416 | 98.75% | 25,262,852 | 12,621,062 | 2.0016 | | outer | uint64 | 4,816,896 | 33,304 | 416 | 98.75% | 25,109,645.5 | 10,894,885.5 | 2.3047 | | inner | uint64 | 4,816,896 | 33,304 | 416 | 98.75% | 105,890,322 | 26,490,314.5 | 3.9973 | #### rank 1–8 × 11 dtype(88 档) | case | dtype | 元素数 | 改前堆 B | 改后堆 B | 降幅 | 改前 ns | 改后 ns | speedup | | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | rank1 | float16 | 2,097,152 | 33,256 | 376 | 98.87% | 10,161,139 | 4,018,056 | 2.5289 | | rank2 | float16 | 2,097,152 | 33,256 | 400 | 98.80% | 8,731,424.5 | 5,418,765 | 1.6113 | | rank3 | float16 | 2,097,152 | 33,304 | 416 | 98.75% | 8,778,495 | 5,516,465.5 | 1.5913 | | rank4 | float16 | 2,097,152 | 33,304 | 416 | 98.75% | 8,783,470.5 | 5,557,606.5 | 1.5804 | | rank5 | float16 | 2,097,152 | 33,400 | 464 | 98.61% | 8,823,664 | 5,556,041 | 1.5881 | | rank6 | float16 | 2,097,152 | 33,400 | 464 | 98.61% | 8,778,824.5 | 5,547,096.5 | 1.5826 | | rank7 | float16 | 2,097,152 | 33,400 | 464 | 98.61% | 8,858,770.5 | 5,583,231.5 | 1.5867 | | rank8 | float16 | 1,048,576 | 33,400 | 464 | 98.61% | 4,357,628 | 2,782,968 | 1.5658 | | rank1 | float | 2,097,152 | 33,256 | 376 | 98.87% | 8,571,807 | 2,390,739.5 | 3.5854 | | rank2 | float | 2,097,152 | 33,256 | 400 | 98.80% | 8,715,703.5 | 2,688,992.5 | 3.2413 | | rank3 | float | 2,097,152 | 33,304 | 416 | 98.75% | 8,693,812.5 | 2,776,888.5 | 3.1308 | | rank4 | float | 2,097,152 | 33,304 | 416 | 98.75% | 8,679,648.5 | 2,794,678 | 3.1058 | | rank5 | float | 2,097,152 | 33,400 | 464 | 98.61% | 8,703,546.5 | 2,812,248.5 | 3.0949 | | rank6 | float | 2,097,152 | 33,400 | 464 | 98.61% | 8,686,547 | 2,841,009 | 3.0576 | | rank7 | float | 2,097,152 | 33,400 | 464 | 98.61% | 8,880,154.5 | 2,821,259 | 3.1476 | | rank8 | float | 1,048,576 | 33,400 | 464 | 98.61% | 4,373,304 | 1,384,794 | 3.1581 | | rank1 | double | 2,097,152 | 33,256 | 376 | 98.87% | 9,826,210.5 | 2,439,850 | 4.0274 | | rank2 | double | 2,097,152 | 33,256 | 400 | 98.80% | 9,992,914.5 | 3,094,041.5 | 3.2297 | | rank3 | double | 2,097,152 | 33,304 | 416 | 98.75% | 10,077,503 | 3,416,804 | 2.9494 | | rank4 | double | 2,097,152 | 33,304 | 416 | 98.75% | 10,086,401.5 | 3,377,984.5 | 2.9859 | | rank5 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,264,135.5 | 3,462,005.5 | 2.9648 | | rank6 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,067,067 | 3,334,028.5 | 3.0195 | | rank7 | double | 2,097,152 | 33,400 | 464 | 98.61% | 10,344,478 | 3,600,976.5 | 2.8727 | | rank8 | double | 1,048,576 | 33,400 | 464 | 98.61% | 5,085,496.5 | 1,591,371 | 3.1957 | | rank1 | int8 | 2,097,152 | 33,256 | 376 | 98.87% | 7,679,998.5 | 1,966,089.5 | 3.9062 | | rank2 | int8 | 2,097,152 | 33,256 | 400 | 98.80% | 2,434,094.5 | 2,106,456.5 | 1.1555 | | rank3 | int8 | 2,097,152 | 33,304 | 416 | 98.75% | 2,404,954 | 2,106,736 | 1.1416 | | rank4 | int8 | 2,097,152 | 33,304 | See merge request: cann/ops-math!5364 | 1 个月前 | |
refactor: 规范化 math仓部分算子代码格式 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6203 merge ccc_1010 into master refactor: 规范化 math仓部分算子代码格式 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次改动对 math/ 目录下 9 个算子(Equal、FloorDiv、Greater、GreaterEqual、Less、LessEqual、Maximum、Minimum、NotEqual)进行代码格式规范化,不涉及任何功能变更。 ### 改动原因 统一代码风格,符合 clang-format 规范,提升可读性与可维护性。 ### 改动方法 1. 按 clang-format 规范统一缩进、换行与对齐; 2. 补充缺失的文件末尾换行符; 3. 清理尾随空格与多余空行; 4. 修复配置文件注释拼写错误(build-in → built-in); 5. 统一 Python 测试脚本 docstring 风格(''' → """)。 ## 关联的Issue - #3467 ## 测试 本次改动仅涉及代码格式调整,无功能变更,不涉及二级冒烟、算子泛化等验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式规范化(重构) See merge request: cann/ops-math!6203 | 1 个月前 |