| Files | Last commit | Last update |
|---|---|---|
fix(add_v2,tensor_redirect,mul_no_nan): 修复推导校验并规范测试参考 Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !6947 merge fix/add-v2-tensor-redirect-validation-20261031 into master fix(add_v2,tensor_redirect,mul_no_nan): 修复推导校验并规范测试参考 Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 统一修复AddV2、TensorRedirect和MulNoNan的推导/参数校验,完善GEIR示例、测试参考及仓内小型ST。共27个变更文件、1个提交, experimental相对目标主线无改动。 - AddV2/TensorRedirect:修复合法rank0标量storage []/[1]等价表示被Tiling误拒绝的问题,保留非法shape/dtype校验,补InferShape rank8上限并透传首报诊断。TensorRedirect尾核仅计算实际分支长度,避免无用满块乘积溢出。 - 两份GEIR示例核对真实输出、修正节点名及Session所有权,完善失败诊断;对应Host/CPU Kernel UT保留。 - 完整引入[原PR !6971](https://gitcode.com/cann/ops-math/pull/6971)的MulNoNan提交6f1e0471275f6f1f7d08232dd823636b4a1a5279,8个文件内容与源提交逐字节一致:InferShape独立检查两个输入的rank上限,InferDataType检查四种合法dtype及同类型关系;保留广播、标量、动态shape/rank和空Tensor语义,新增负向UT。 - MulNoNan golden使用Torch完成物理dtype舍入,TensorFlow TestSpec增加FP64组合数学参考,覆盖TF CPU不支持的合法六维广播及CANN原有INT32输入域;示例支持--device-id=N,新增8条小shape仓内ST。 - 仓内ST合计4份CSV、24条,三个算子各8条。不同表头分开,相同表头在所属算子内合并;最大单Tensor约112KiB,未把GiB压力shape放入默认ST。外部测例仓库未改。 原AddV2/TensorRedirect的19个文件保持原内容,MulNoNan的8个文件完整导入,无冲突。AddV2看板中旧A2实验材料继续按来源分类,不混作A5修复;MulNoNan保留原A2/A3产品支持,不新增平台适配。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/4378 - https://gitcode.com/cann/ops-math/issues/4387 ## 测试 先cherry-pick源提交,再squash为1提交;同一原始基点的完整binary diff及Git tree均不变。随后一次rebase到当次从官方主仓获取的master 58e411acd306ae5d391301bf2e21d25d1bf4fae5,27个文件内容均保持,相关算子/公共依赖无主线增量。最终受测提交为af1eeea72c5c773ed3fb136d9ea75d3228b9d90d。 | 验证 | 本轮结果 | |---|---| | 指定本地CI | /workspace/CI-skills/ci_local_check.sh完整通过;A5 ascend950,并发2;27文件pre-commit、隔离OAT、链接/SKIP契约及golden语法检查PASS | | 构建/UT | 三份GEIR示例syntax-only、三算子定向包及package/Host loader GE依赖检查PASS;Host UT 151/151、Graph UT 6/6、TensorRedirect CPU Kernel UT 2/2。API阶段0例,不计实际UT通过 | | 运行包来源 | 安装本轮CI生成的标准.run,177个payload文件SHA256全部一致,含17个预编译对象及三个算子注册信息;未使用旧包冒充本轮构建 | | 组合仓内ST | 三算子24/24 binary Kernel通过,全部BINARY_MATCH;MulNoNan另8/8 static Kernel及8/8 GEIR数值通过,共40次执行 | | 原修复证据 | AddV2/TensorRedirect前期128条NPU正向、两份C++示例实机完整输出/文件失败路径分别保留,不与本轮执行次数直接累加;MulNoNan原PR更广的历史验证在源PR记录,本轮不冒称重跑 | 实机Ascend950PR_9579/device0,使用当前任务独立CANN_Revise 9.3.0和干净的任务TTK 5a7337679b3a4a1cf8a1346392adc9a65cfd378f;每次TTK显式--pc=1,golden来自各算子代码仓。 本地缺GPU/XPU端点,命令显式--compare binary比较导入后的CPU golden;有限值按binary_equal核对,TTK对双方NaN位置一致的元素判相等,不宣称NaN payload逐位一致或默认GPU cross_check已通过。GEIR是数值验证,不当作独立运行时rank元数据dump或全部清理故障路径验证。本轮仅A5实机/CI,源PR已有其他产品证据不作为本轮新增测试。MulNoNan直接Kernel 0D在线编译问题、性能、完整L0/L1及全部资源故障均不在此次合并的通过结论中。已向同一受测SHA提交[compile触发线上CI](https://gitcode.com/cann/ops-math/merge_requests/6947#note_197811371);[线上流水线](https://gitcode.com/CANN/ops-math/actions/runs/42aadc4ec89646c2888de81d318470cb)已启动,结果待出,不由本地通过推断。 ## 文档更新 - AddV2/TensorRedirect继续保留所有原产品能力,按用户指引保留格式整改和删除冗余范围声明;没有重新添加当前源码/实测平台范围提示。 - MulNoNan README完整保留源PR内容:全局rank8及动态rank运行时上限表述、产品差异列表和必要设备选择参数;保留原A2/A3支持,不因内部TestSpec增加用户接口声明。 - 组合提交的来源、测试范围及限制写入本PR与任务独立验证记录。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:合并MulNoNan测试参考/负向UT及小型ST See merge request: cann/ops-math!6947 | 9 days ago | |
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 | 30 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 9 days ago | ||
| 30 days ago |