| Files | Last commit | Last update |
|---|---|---|
feat: 补充53个算子的golden函数与arch35测试用例 Co-authored-by: yefeicoding<yefei25@huawei.com> # message auto-generated for no-merge-commit merge: !3568 merge upload into master feat: 补充53个算子的golden函数与arch35测试用例 Created-by: yefeicoding Commit-by: yefeicoding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1961 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充用例 See merge request: cann/ops-math!3568 | 4 months ago | |
perf(reduce_var): AR 两趟 VF 分档优化,group 计数改为 kernel 侧计算 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !6210 merge perf-reduce-var-twopass-v3 into master perf(reduce_var): AR 两趟 VF 分档优化,group 计数改为 kernel 侧计算 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 本次改动包含四部分: 1. 精简 tilingdata 并将 group 计数计算下移到 kernel - 删除 ReduceVarTilingData::reduceCntEachGroupR[MAX_CORE_COUNT] 与 MAX_CORE_COUNT(结构体 1376B → 352B); - tiling 侧删除 SetReduceCntEachGroupR/ComputeInnerUbRCnt 及相关成员; - kernel 侧新增 CalcInnerUbRCnt()/CalcGroupReduceCnt() 闭式公式:Init() 中计算当前核所在 group 的 groupReduceCnt_,phase2 按需计算每个 group 的真实规约 R 元素数,不再依赖 tilingdata 中的逐 group 数组。 2. 优化 AR 两趟 VF 实现 - VFMeanVarTwoPassAR 改为三段分档:RNum <= VL 保持原 LessVL;VL < RNum <= 2VL 新增 LessTwoVL(纯寄存器、无 LocalMemBar);RNum > 2VL 新增 Common(quotient 对半生成 partial,每个 scope 仅一次 LocalMemBar 后折半,var 用 DIST_BRC_B32 广播 mean); - 修复新增分支中 var 项多乘一次 varScale 的问题。 3. 代码规整与 VF 规则对齐 - Common 尾块循环(tailFloor + tailCeil-tailFloor)合并为单循环,用 UpdateMask 自更新计数,末次自动收窄为余数掩码; - VF 内所有 for 循环统一从 0 开始,满足 regbase VF 编程硬约束。 4. scratch 独立化 - VFMeanVarTwoPassAR/Common 增加 partBufLocal 参数:partBuf 独占 AR 两趟路径下空闲的 welford 缓存 tMeanTensor_,meanBuf 独占 dichotomyAddLocal,消除共享缓冲容量叠加的顾虑,并补充前置条件与容量上界注释。 ## 关联的Issue Closes #3468 https://gitcode.com/cann/ops-math/issues/3468 ## 测试 - ascend950 编译通过:bash build.sh --pkg --ops=reduce_var --soc=ascend950 -j32; - op_host UT:bash build.sh -u --ophost --soc=ascend950 --ops=reduce_var --gtest_filter='ReduceVar*',2 用例 PASS; - ttk kernel 精度验证(-c=true -b=release -d=false --plugin .../tests/assets,运行加载 vendors/custom_math 安装包): - 新增/变更用例共 39 条,覆盖 twopass 三个分支(R=32/64/65/100/128/129/200/3000,fp16/bf16/fp32)与 group 场景(AR/ARA/ARAR,groupR=4/5/9/10/11/55/56,innerUbRCnt=1/8); - 分组复跑全部通过:边界小 shape 13/13、大 shape 批次 10/10、fp16 批次 14/14、group 专项 7/7、Common 专项 13/13; - Common 尾块循环合并版本较拆分版本实测(seed 42、run=5、两次):bf16 (8192,256) 约 -19%、fp16 (362,512) 约 -6%~-8%,其余在 ±2% 内,无回退;scratch 独立化后性能持平。 ## 文档更新 无。 ## 类型标签 - [x] 性能优化 See merge request: cann/ops-math!6210 | 1 month ago | |
fix(reduce_var,reduce_std_v2): 修正 TilingParse 判空日志并去重重复轴 Co-authored-by: andong_hw<andong2@huawei.com> # message auto-generated for no-merge-commit merge: !7120 merge fix/remove-null-context-log into master fix(reduce_var,reduce_std_v2): 修正 TilingParse 判空日志并去重重复轴 Created-by: andong_hw Commit-by: andong_hw Merged-by: cann-robot Description: ## 描述 1. TilingParse 的 context 判空仍保留 OP_CHECK_IF,仅将日志参数中的 context->GetNodeName() 替换为固定算子名,并输出 context is null,避免 context 为空时发生空指针解引用。此处不是改为普通 if,也没有删除判空日志。 2. 公共 tiling 未对重复 dim 去重,dim=[1,1] 会让 N 重复累乘,导致 mean/var 结果错误。在 MakeWrapDim 中增加 std::unique,并在计算 N 前先调用 MakeWrapDim。 ## 关联的Issue Closes #4537 ## 修改内容 - math/reduce_var/op_host/arch35/reduce_var_tiling.cpp - 判空日志保留 OP_CHECK_IF,日志固定算子名为 ReduceVar,日志内容为 context is null - MakeWrapDim 排序后去重 - ReduceVarGetInputParams 提前调用 MakeWrapDim,保证 ReduceVarCalcInput 使用去重后的 axes - math/reduce_std_v2/op_host/arch35/reduce_std_v2_tiling_arch35.cpp - 判空日志保留 OP_CHECK_IF,日志固定算子名为 ReduceStdV2,日志内容为 context is null - math/reduce_var/tests/ut/op_host/arch35/test_var_tiling.cpp - 新增重复 dim 的 tiling UT ## 验证 - bash build.sh --opkernel --soc=ascend950 --ops=reduce_var,reduce_std_v2 -j16 编译通过 - bash build.sh -u --ophost --soc=ascend950 --ops=reduce_var --gtest_filter='ReduceVarTiling*' -j16 通过 See merge request: cann/ops-math!7120 | 9 days ago | |
增加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 | 10 months ago |