| Files | Last commit | Last update |
|---|---|---|
[inv] 算子质量加固修复 + 平台适配 Co-authored-by: JasonZhang88<jason.zhangshen@huawei.com> # message auto-generated for no-merge-commit merge: !6567 merge master_new into master [inv] 算子质量加固修复 + 平台适配 Created-by: JasonZhang88 Commit-by: JasonZhang88 Merged-by: cann-robot Description: # [inv] 算子质量加固修复 + 平台适配 ## 描述 依据 Inv 算子六轮全量验证(静态检查 + ST 用例生成/评审/自验证 + 上板 TTK)发现的问题进行整改,并新增芯片平台支持。 本 PR 仅涉及 math/inv/ 目录(15 文件,+646/-152),不影响其他算子。 ## 变更概述 ### 1. P1 精度缺陷修复 **bf16 次正规输入倒数返回 inf**(op_kernel/arch35/inv.h) fp16/bf16 分支的 Div 未带 config,默认 INTRINSIC 算法对 fp32 次正规操作数执行 flush-to-zero,导致合法输入(bf16 最大次正规数 1.166e-38)的倒数结果错误地返回 inf 而非有限值 8.574e37。修复为与 float32 分支统一使用 DivConfig{PRECISION_0ULP_FTZ_FALSE}。 真机复现 FAIL(matched_ratio=0.0) → 修复后 PASS(1.0),整批 L0 零回归。 ### 2. 功能补齐 | 功能 | 文件 | 说明 | |---|---|---| | InferShape 推导 | op_host/inv_infershape.cpp(新增) | 注册 IMPL_OP_INFERSHAPE(Inv).InferShape(InferShape4Inv),复用仓内公共 InferShape4Elewise | | Tiling rank 上界 | op_host/arch35/inv_tiling_arch35.cpp | kMaxRank=8,rank>8 以 EZ0012 结构化诊断码显式拒绝 | | InferShape rank 上界 | op_host/inv_infershape.cpp | 与 Tiling 门对称,rank>8 拒绝(EZ0012) | | ascend350 适配 | CMakeLists.txt + inv_def.cpp | SUPPORT_COMPUTE_UNIT 增加 ascend350,AddConfig("ascend350"),tiling 复用 arch35 | ### 3. Golden 测试资产 新增 tests/assets/golden.py(206 行): - 注册 inv(Kernel/GEIR)+ tf.raw_ops.Inv(TF E2E,对齐插件 OriginOpType) - 参考计算全部由 torch 承担:float 用 torch.reciprocal 直接竞品,int32 三值映射用 torch.where 组合 - NumPy 仅做数据桥接;bfloat16 经 uint16 位视图往返(位级一致,含次正规数) - 延迟导入 torch(_ensure_torch()),纯 TF NPU 环境可加载注册 - 容差按 README 声明:FLOAT 1e-4 / FLOAT16 1e-3 / BFLOAT16 4e-3 / INT32 binary_equal ### 4. 注册面与资料修复 - proto 注释维度 1D~8D → 0D~8D (rank-0 tensor supported)(inv_proto.h:24) - INPUT/OUTPUT TensorType 保持原始声明不变(8 种/4 种) - README:调用表三列化(补"样例代码"列)、参数名 self/out → x/y(对齐 IR 端口)、补动态 shape/rank(-1/-2)声明 ### 5. 样例修复 | 修复 | 说明 | |---|---| | 输入缓冲区泄漏 | Tensor::SetData + DeleteFunc 移交所有权 | | 提前返回未清理 | 两条路径补 GEFinalize() | | AddGraph 返回值 | if (ret != SUCCESS) + 资源清理 | | 宏节点名截短 | "placeholder" + std::to_string(intputIndex) | | WriteDataToFile | 返回值检查 | ### 6. 注释修正 TilingKey/D_T_SELF/DTYPE_SELF 陈旧描述统一修正为 MODE 恒 0 + DTYPE_X 编译期分派(4 处源码 + 20 处 UT 注释)。 ## 关联 Issue https://gitcode.com/cann/ops-math/issues/3696 ## 测试 - **op_host UT**:46/46 通过(含新增 InferShape 8 例 + Tiling rank 拒绝 2 例) - **GEIR 样例真机**:execute samples success(ascend950) - **上板精度**:Kernel 480/494 PASS + GEIR 40/40 PASS(连续四轮零精度失败;14 例 rank-0 失败为 CANN DFX 环境缺陷,BIN 模式 100% 通过,非算子问题) - **bf16 次正规回归**:真机复现 FAIL → 修复后 PASS,整批 L0 零回归 - **README 冻结校验器**:validate_operator_readme.py --mode full PASSED ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6567 | 18 days ago | |
[inv] 算子质量加固修复 + 平台适配 Co-authored-by: JasonZhang88<jason.zhangshen@huawei.com> # message auto-generated for no-merge-commit merge: !6567 merge master_new into master [inv] 算子质量加固修复 + 平台适配 Created-by: JasonZhang88 Commit-by: JasonZhang88 Merged-by: cann-robot Description: # [inv] 算子质量加固修复 + 平台适配 ## 描述 依据 Inv 算子六轮全量验证(静态检查 + ST 用例生成/评审/自验证 + 上板 TTK)发现的问题进行整改,并新增芯片平台支持。 本 PR 仅涉及 math/inv/ 目录(15 文件,+646/-152),不影响其他算子。 ## 变更概述 ### 1. P1 精度缺陷修复 **bf16 次正规输入倒数返回 inf**(op_kernel/arch35/inv.h) fp16/bf16 分支的 Div 未带 config,默认 INTRINSIC 算法对 fp32 次正规操作数执行 flush-to-zero,导致合法输入(bf16 最大次正规数 1.166e-38)的倒数结果错误地返回 inf 而非有限值 8.574e37。修复为与 float32 分支统一使用 DivConfig{PRECISION_0ULP_FTZ_FALSE}。 真机复现 FAIL(matched_ratio=0.0) → 修复后 PASS(1.0),整批 L0 零回归。 ### 2. 功能补齐 | 功能 | 文件 | 说明 | |---|---|---| | InferShape 推导 | op_host/inv_infershape.cpp(新增) | 注册 IMPL_OP_INFERSHAPE(Inv).InferShape(InferShape4Inv),复用仓内公共 InferShape4Elewise | | Tiling rank 上界 | op_host/arch35/inv_tiling_arch35.cpp | kMaxRank=8,rank>8 以 EZ0012 结构化诊断码显式拒绝 | | InferShape rank 上界 | op_host/inv_infershape.cpp | 与 Tiling 门对称,rank>8 拒绝(EZ0012) | | ascend350 适配 | CMakeLists.txt + inv_def.cpp | SUPPORT_COMPUTE_UNIT 增加 ascend350,AddConfig("ascend350"),tiling 复用 arch35 | ### 3. Golden 测试资产 新增 tests/assets/golden.py(206 行): - 注册 inv(Kernel/GEIR)+ tf.raw_ops.Inv(TF E2E,对齐插件 OriginOpType) - 参考计算全部由 torch 承担:float 用 torch.reciprocal 直接竞品,int32 三值映射用 torch.where 组合 - NumPy 仅做数据桥接;bfloat16 经 uint16 位视图往返(位级一致,含次正规数) - 延迟导入 torch(_ensure_torch()),纯 TF NPU 环境可加载注册 - 容差按 README 声明:FLOAT 1e-4 / FLOAT16 1e-3 / BFLOAT16 4e-3 / INT32 binary_equal ### 4. 注册面与资料修复 - proto 注释维度 1D~8D → 0D~8D (rank-0 tensor supported)(inv_proto.h:24) - INPUT/OUTPUT TensorType 保持原始声明不变(8 种/4 种) - README:调用表三列化(补"样例代码"列)、参数名 self/out → x/y(对齐 IR 端口)、补动态 shape/rank(-1/-2)声明 ### 5. 样例修复 | 修复 | 说明 | |---|---| | 输入缓冲区泄漏 | Tensor::SetData + DeleteFunc 移交所有权 | | 提前返回未清理 | 两条路径补 GEFinalize() | | AddGraph 返回值 | if (ret != SUCCESS) + 资源清理 | | 宏节点名截短 | "placeholder" + std::to_string(intputIndex) | | WriteDataToFile | 返回值检查 | ### 6. 注释修正 TilingKey/D_T_SELF/DTYPE_SELF 陈旧描述统一修正为 MODE 恒 0 + DTYPE_X 编译期分派(4 处源码 + 20 处 UT 注释)。 ## 关联 Issue https://gitcode.com/cann/ops-math/issues/3696 ## 测试 - **op_host UT**:46/46 通过(含新增 InferShape 8 例 + Tiling rank 拒绝 2 例) - **GEIR 样例真机**:execute samples success(ascend950) - **上板精度**:Kernel 480/494 PASS + GEIR 40/40 PASS(连续四轮零精度失败;14 例 rank-0 失败为 CANN DFX 环境缺陷,BIN 模式 100% 通过,非算子问题) - **bf16 次正规回归**:真机复现 FAIL → 修复后 PASS,整批 L0 零回归 - **README 冻结校验器**:validate_operator_readme.py --mode full PASSED ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6567 | 18 days ago | |
[inv] 算子质量加固修复 + 平台适配 Co-authored-by: JasonZhang88<jason.zhangshen@huawei.com> # message auto-generated for no-merge-commit merge: !6567 merge master_new into master [inv] 算子质量加固修复 + 平台适配 Created-by: JasonZhang88 Commit-by: JasonZhang88 Merged-by: cann-robot Description: # [inv] 算子质量加固修复 + 平台适配 ## 描述 依据 Inv 算子六轮全量验证(静态检查 + ST 用例生成/评审/自验证 + 上板 TTK)发现的问题进行整改,并新增芯片平台支持。 本 PR 仅涉及 math/inv/ 目录(15 文件,+646/-152),不影响其他算子。 ## 变更概述 ### 1. P1 精度缺陷修复 **bf16 次正规输入倒数返回 inf**(op_kernel/arch35/inv.h) fp16/bf16 分支的 Div 未带 config,默认 INTRINSIC 算法对 fp32 次正规操作数执行 flush-to-zero,导致合法输入(bf16 最大次正规数 1.166e-38)的倒数结果错误地返回 inf 而非有限值 8.574e37。修复为与 float32 分支统一使用 DivConfig{PRECISION_0ULP_FTZ_FALSE}。 真机复现 FAIL(matched_ratio=0.0) → 修复后 PASS(1.0),整批 L0 零回归。 ### 2. 功能补齐 | 功能 | 文件 | 说明 | |---|---|---| | InferShape 推导 | op_host/inv_infershape.cpp(新增) | 注册 IMPL_OP_INFERSHAPE(Inv).InferShape(InferShape4Inv),复用仓内公共 InferShape4Elewise | | Tiling rank 上界 | op_host/arch35/inv_tiling_arch35.cpp | kMaxRank=8,rank>8 以 EZ0012 结构化诊断码显式拒绝 | | InferShape rank 上界 | op_host/inv_infershape.cpp | 与 Tiling 门对称,rank>8 拒绝(EZ0012) | | ascend350 适配 | CMakeLists.txt + inv_def.cpp | SUPPORT_COMPUTE_UNIT 增加 ascend350,AddConfig("ascend350"),tiling 复用 arch35 | ### 3. Golden 测试资产 新增 tests/assets/golden.py(206 行): - 注册 inv(Kernel/GEIR)+ tf.raw_ops.Inv(TF E2E,对齐插件 OriginOpType) - 参考计算全部由 torch 承担:float 用 torch.reciprocal 直接竞品,int32 三值映射用 torch.where 组合 - NumPy 仅做数据桥接;bfloat16 经 uint16 位视图往返(位级一致,含次正规数) - 延迟导入 torch(_ensure_torch()),纯 TF NPU 环境可加载注册 - 容差按 README 声明:FLOAT 1e-4 / FLOAT16 1e-3 / BFLOAT16 4e-3 / INT32 binary_equal ### 4. 注册面与资料修复 - proto 注释维度 1D~8D → 0D~8D (rank-0 tensor supported)(inv_proto.h:24) - INPUT/OUTPUT TensorType 保持原始声明不变(8 种/4 种) - README:调用表三列化(补"样例代码"列)、参数名 self/out → x/y(对齐 IR 端口)、补动态 shape/rank(-1/-2)声明 ### 5. 样例修复 | 修复 | 说明 | |---|---| | 输入缓冲区泄漏 | Tensor::SetData + DeleteFunc 移交所有权 | | 提前返回未清理 | 两条路径补 GEFinalize() | | AddGraph 返回值 | if (ret != SUCCESS) + 资源清理 | | 宏节点名截短 | "placeholder" + std::to_string(intputIndex) | | WriteDataToFile | 返回值检查 | ### 6. 注释修正 TilingKey/D_T_SELF/DTYPE_SELF 陈旧描述统一修正为 MODE 恒 0 + DTYPE_X 编译期分派(4 处源码 + 20 处 UT 注释)。 ## 关联 Issue https://gitcode.com/cann/ops-math/issues/3696 ## 测试 - **op_host UT**:46/46 通过(含新增 InferShape 8 例 + Tiling rank 拒绝 2 例) - **GEIR 样例真机**:execute samples success(ascend950) - **上板精度**:Kernel 480/494 PASS + GEIR 40/40 PASS(连续四轮零精度失败;14 例 rank-0 失败为 CANN DFX 环境缺陷,BIN 模式 100% 通过,非算子问题) - **bf16 次正规回归**:真机复现 FAIL → 修复后 PASS,整批 L0 零回归 - **README 冻结校验器**:validate_operator_readme.py --mode full PASSED ## 类型标签 - [x] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!6567 | 18 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 18 days ago | ||
| 18 days ago | ||
| 18 days ago |