| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 天前 | |
[feat] 迁移开源TF插件--conversion: dynamic_partition, matrix_diag, matrix_diag_part, matrix_set_diag, matrix_set_diag_v2 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !5571 merge tf_plugin/conversion-group1 into master [feat] 迁移开源TF插件--conversion: dynamic_partition, matrix_diag, matrix_diag_part, matrix_set_diag, matrix_set_diag_v2 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 迁移开源TF插件--conversion: dynamic_partition, matrix_diag, matrix_diag_part, matrix_set_diag, matrix_set_diag_v2 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3168 ## 测试 二级冒烟 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5571 | 1 个月前 | |
matrix_diag_part算子添加隔离宏 Co-authored-by: 张煜炜<zhangyuwei31@huawei.com> # message auto-generated for no-merge-commit merge: !4578 merge matrix_reg_op_modify into master matrix_diag_part算子添加隔离宏 Created-by: surezz Commit-by: 张煜炜 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> matrix_diag_part算子添加隔离宏,防止原型重复定义 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2595 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> david冒烟、二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4578 | 2 个月前 | |
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 天前 | |
长尾算子MatrixDiagPart新增950实现 Co-authored-by: surezz<zhangyuwei31@huawei.com> # message auto-generated for no-merge-commit merge: !4156 merge MatrixDiagPart into master 长尾算子MatrixDiagPart新增950实现 Created-by: surezz Commit-by: surezz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MatrixDiagPart算子新增950实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2384 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 411条门槛用例、xrun geir -s、-d通路测试、xrun tensorflow通路测试,david冒烟、二级冒烟已过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增MatrixDiagPart算子README文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4156 | 3 个月前 | |
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 天前 | |
长尾算子MatrixDiagPart新增950实现 Co-authored-by: surezz<zhangyuwei31@huawei.com> # message auto-generated for no-merge-commit merge: !4156 merge MatrixDiagPart into master 长尾算子MatrixDiagPart新增950实现 Created-by: surezz Commit-by: surezz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MatrixDiagPart算子新增950实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/2384 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 411条门槛用例、xrun geir -s、-d通路测试、xrun tensorflow通路测试,david冒烟、二级冒烟已过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增MatrixDiagPart算子README文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4156 | 3 个月前 | |
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 天前 | |
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 天前 |
MatrixDiagPart
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
功能说明
- 算子功能:返回输入矩阵的最内层矩阵的主对角线(k=0)。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待计算主对角线的入参,最后两个维度为矩阵维度。 | float16、float32、int32、int8、uint8 | ND |
| y | 输出 | 主对角线结果,与x同dtype。 | float16、float32、int32、int8、uint8 | ND |
约束说明
- 输入x的维度数需大于等于2且小于等于8,最后两个维度表示矩阵。
- 输出y的维度数比输入x少1,形状为x.shape[:-2]+[min(M, N)]。
- 支持的数据类型:float16、float32、int32、int8、uint8。
- 数据格式仅支持ND。
- 仅支持连续输入,不支持非连续输入。
- 支持空tensor(M=0或N=0时,输出为空tensor)。
- 该算子为MatrixDiagPart V1版本,仅提取主对角线(k=0)。
- 支持动态形状:输出形状为x.shape[:-2]+[min(M, N)];输入存在未知维或未知秩时,输出对应维/秩保持未知。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| GE图模式 | test_geir_matrix_diag_part | 通过算子IR构图方式调用MatrixDiagPart算子,参见算子调用完成编译和验证。 |