| Files | Last commit | Last update |
|---|---|---|
fix(matrix_diag_part): host/tiling validation and docs fixes from operator validation Co-authored-by: wuchengwen_oh<wuchengwen4@huawei.com> # message auto-generated for no-merge-commit merge: !7140 merge fix/matrix-diag-part-validation into master fix(matrix_diag_part): host/tiling validation and docs fixes from operator validation Created-by: wuchengwen_oh Commit-by: wuchengwen_oh Merged-by: cann-robot Description: ## 概要 修复 AscendC 算子校验工作流在 MatrixDiagPart(arch35 / ascend950)上发现的问题。仅修改 conversion/matrix_diag_part 下已有文件,无新增文件。 关联 Issue:https://gitcode.com/cann/ops-math/issues/4638 ### InferShape - 在 rank<2 之外增加 rank>8 拒绝(使用 MATRIX_DIAG_PART_MIN_RANK / MATRIX_DIAG_PART_MAX_RANK 具名常量)。 - 保留未知秩(-2)透传,以及未知维(-1)按 x.shape[:-2] + [min(M, N)] 传播。 ### Tiling - 使用原始存储 shape 报告调用方真实 rank,不再被 EnsureNotScalar 归一化掩盖。 - 逐维拒绝未解析/负维度(覆盖 [-1,-1,3,4] 这类乘积为正的情况)。 - 拒绝负的 GetShapeSize(),并在乘法前对 M*n、batchTotal*d 做 int64 溢出保护。 - 对 n+1(inputRowStride)做溢出保护;{0, INT64_MAX} 零元素空 tensor 合法,stride 写 0(kernel 空输出提前返回)。 - 校验声明输出形状:rank = 输入 rank-1、batch 维一致(未知维跳过)、对角线长度 = min(M, N)。 - CheckDtype 保留输入 dtype 白名单,并拒绝已解析且与输入不一致的输出 dtype(DT_UNDEFINED 放行)。 - 将原长校验函数拆分为 CheckRank / CheckDimsConcrete / ComputeElementCounts / ValidateOutputShape。 ### 文档 / 示例 - README 增加动态形状输出传播说明,调用方式改为“GE图模式”。 - 新增英文 README(README_en.md),与中文 README 同步(产品支持、参数、约束、动态形状、GE图模式)。 - GE 示例按 dtype 填充(float16/bfloat16/double/int32/int8/uint8,未知 dtype 失败),补齐 GetDataTypeSize,校验 fwrite,支持 DEVICE_ID,正常路径释放缓冲区并 delete session。 ### 测试 - Tiling UT:rank0、rank>8、未知秩、{0, INT64_MAX} 空 tensor、输出 dtype 不一致(bf16/bool)、DT_UNDEFINED、输出 shape rank/对角线不一致、负/双负 batch 维、M*n 溢出。 - InferShape UT:rank0、rank>8、未知秩、动态/未知维。 - tests/assets/golden.py 重写为 TestSpec(Kernel + TF E2E、注册 TF E2E api_name、全 dtype binary_equal、声明 third_party、不做设备固定)。 ### 未包含 - ND 格式强校验(暂缓)。 See merge request: cann/ops-math!7140 | 2 days ago | |
fix(matrix_diag_part): host/tiling validation and docs fixes from operator validation Co-authored-by: wuchengwen_oh<wuchengwen4@huawei.com> # message auto-generated for no-merge-commit merge: !7140 merge fix/matrix-diag-part-validation into master fix(matrix_diag_part): host/tiling validation and docs fixes from operator validation Created-by: wuchengwen_oh Commit-by: wuchengwen_oh Merged-by: cann-robot Description: ## 概要 修复 AscendC 算子校验工作流在 MatrixDiagPart(arch35 / ascend950)上发现的问题。仅修改 conversion/matrix_diag_part 下已有文件,无新增文件。 关联 Issue:https://gitcode.com/cann/ops-math/issues/4638 ### InferShape - 在 rank<2 之外增加 rank>8 拒绝(使用 MATRIX_DIAG_PART_MIN_RANK / MATRIX_DIAG_PART_MAX_RANK 具名常量)。 - 保留未知秩(-2)透传,以及未知维(-1)按 x.shape[:-2] + [min(M, N)] 传播。 ### Tiling - 使用原始存储 shape 报告调用方真实 rank,不再被 EnsureNotScalar 归一化掩盖。 - 逐维拒绝未解析/负维度(覆盖 [-1,-1,3,4] 这类乘积为正的情况)。 - 拒绝负的 GetShapeSize(),并在乘法前对 M*n、batchTotal*d 做 int64 溢出保护。 - 对 n+1(inputRowStride)做溢出保护;{0, INT64_MAX} 零元素空 tensor 合法,stride 写 0(kernel 空输出提前返回)。 - 校验声明输出形状:rank = 输入 rank-1、batch 维一致(未知维跳过)、对角线长度 = min(M, N)。 - CheckDtype 保留输入 dtype 白名单,并拒绝已解析且与输入不一致的输出 dtype(DT_UNDEFINED 放行)。 - 将原长校验函数拆分为 CheckRank / CheckDimsConcrete / ComputeElementCounts / ValidateOutputShape。 ### 文档 / 示例 - README 增加动态形状输出传播说明,调用方式改为“GE图模式”。 - 新增英文 README(README_en.md),与中文 README 同步(产品支持、参数、约束、动态形状、GE图模式)。 - GE 示例按 dtype 填充(float16/bfloat16/double/int32/int8/uint8,未知 dtype 失败),补齐 GetDataTypeSize,校验 fwrite,支持 DEVICE_ID,正常路径释放缓冲区并 delete session。 ### 测试 - Tiling UT:rank0、rank>8、未知秩、{0, INT64_MAX} 空 tensor、输出 dtype 不一致(bf16/bool)、DT_UNDEFINED、输出 shape rank/对角线不一致、负/双负 batch 维、M*n 溢出。 - InferShape UT:rank0、rank>8、未知秩、动态/未知维。 - tests/assets/golden.py 重写为 TestSpec(Kernel + TF E2E、注册 TF E2E api_name、全 dtype binary_equal、声明 third_party、不做设备固定)。 ### 未包含 - ND 格式强校验(暂缓)。 See merge request: cann/ops-math!7140 | 2 days ago |