| Files | Last commit | Last update |
|---|---|---|
新增fillv2算子 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !5326 merge fillv2 into master 新增fillv2算子 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 FillV2 算子(对标 PyTorch full / new_full):根据输入 dims 指定的目标形状,使用标量属性 value 填充生成输出张量 y,计算公式 y_i = value。 主要改动: - **算子原型与注册**(op_graph/fill_v2_proto.h、op_host/fill_v2_def.cpp):REG_OP(FillV2),输入 dims 支持 INT16/INT32/INT64,输出 y 支持 FLOAT16/FLOAT/DOUBLE/INT8/INT16/INT32/INT64,属性 value 为 Float 标量;为 ascend950 配置 AICore 动态编译与动态 shape 能力。 - **形状推导**(op_host/fill_v2_infershape.cpp):dims 为常量时按 int16/int32/int64 读取实际值逐维构造输出 shape;非常量时以 -1/-2 占位未知维度,并通过 InputsDataDependency 声明对 dims 的数据依赖。 - **Host 侧 tiling**(op_host/arch35/fill_v2_tiling_arch35.cpp/.h):校验 dims 必须为 1D 且维度数不超过 8(MAX_DIM_NUM),校验输出 dtype;将 float 型 value 按输出 dtype 转换后写入 FillV2TilingData;按 dtype 选择 tiling key 并申请 workspace。 - **Kernel 侧实现**(op_kernel/fill_v2_apt.cpp、arch35/fill_v2_dag.h、arch35/fill_v2_tiling_key.h 等):模板 kernel fill_v2<schMode, dType>,对 7 种输出 dtype 分别实例化,复用 ElementwiseSch16B 调度,FillV2DAG 以 Vec::Duplicate + Vec::CopyOut 完成填充。 - **二进制配置**(config/ascend950/fill_v2_binary.json、fill_v2_simplified_key.ini):3 种 dims dtype × 7 种输出 dtype 共 21 种组合的简化 key 与二进制映射。 - **GE IR 调用示例**(examples/test_geir_fill_v2.cpp):通过算子 IR 构图调用 FillV2 并落盘输入输出。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #3220 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - **UT**: - 形状推导(tests/ut/op_host/test_fill_v2_infershape.cpp):覆盖 int16/int32/int64 三种 dims dtype 的常量 shape 推导及 1D 场景; - tiling(tests/ut/op_host/arch35/test_fill_v2_tiling.cpp):覆盖 7 种输出 dtype 及非法 dtype 报错场景。 - **ST**(tests/st/arch35/ttk_kernel_fill_v2_st.csv):5 条用例,覆盖 int16/int32/int64 输入与 float16/float32/double/int32/int64 输出、1~8 维 shape;golden 由 tests/assets/golden.py 生成。 - CI 流水线已通过(ci-pipeline-passed)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 conversion/fill_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用样例。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5326 | 1 month ago | |
docs: 修复注释与文档不一致(fill_diagonal_v2、fill_v2、fills 等 文件注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6599 merge docs/comment-cleanup-20261022-04 into master docs: 修复注释与文档不一致(fill_diagonal_v2、fill_v2、fills 等 文件注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正以下文件的注释与实际代码不一致问题: - conversion/fill_diagonal_v2/tests/ut/op_host/test_fill_diagonal_v2_infershape.cpp:\file 注释由 test_fill_diagonal_v2_proto.cpp 修正为 test_fill_diagonal_v2_infershape.cpp。 - conversion/fill_diagonal_v2/tests/ut/op_kernel/test_fill_diagonal_v2_tiling.h:#endif 尾注释由 _FAST_OP_TEST_FILL_DIAGONAL_TILING_H_ 修正为实际保护宏 _FAST_OP_TEST_FILL_DIAGONAL_V2_TILING_H_。 - conversion/fill_v2/op_graph/fill_v2_proto.h:#endif 尾注释由 OP_PROTO_FILL_V2_H_ 修正为实际保护宏 FILL_V2_PROTO_H_。 - conversion/fills/tests/ut/op_host/test_fills_infershape.cpp:\file 注释由 test_fills_proto.cpp 修正为 test_fills_infershape.cpp。 - conversion/identity_n/op_graph/identity_n_proto.h:#endif 尾注释由 SHAPE_N_PROTO_H_ 修正为实际保护宏 IDENTITY_N_PROTO_H_。 此外,按仓库 pre-commit 要求,对被修改文件应用了文件末尾换行/空白/clang-format 修复(仅格式调整,不涉及业务逻辑、接口行为或配置默认值)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3821 ## 测试 - [x] 本地完整 pre-commit(含 clang-format、EOF/空白、OAT)通过 - [x] git diff --check(CRLF-aware)通过 - [ ] 编译/UT 未运行:本次为注释与格式调整,无代码逻辑变化 ## 文档更新 无独立文档文件更新;本次修正源文件注释,并同步仓库要求的格式问题。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## 待确认项 无。 See merge request: cann/ops-math!6599 | 20 days ago | |
fillv2增加Ascend960适配 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6535 merge fillv2_Ascend960 into master fillv2增加Ascend960适配 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fillv2增加Ascend960适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6535 | 22 days ago | |
新增fillv2算子 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !5326 merge fillv2 into master 新增fillv2算子 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 FillV2 算子(对标 PyTorch full / new_full):根据输入 dims 指定的目标形状,使用标量属性 value 填充生成输出张量 y,计算公式 y_i = value。 主要改动: - **算子原型与注册**(op_graph/fill_v2_proto.h、op_host/fill_v2_def.cpp):REG_OP(FillV2),输入 dims 支持 INT16/INT32/INT64,输出 y 支持 FLOAT16/FLOAT/DOUBLE/INT8/INT16/INT32/INT64,属性 value 为 Float 标量;为 ascend950 配置 AICore 动态编译与动态 shape 能力。 - **形状推导**(op_host/fill_v2_infershape.cpp):dims 为常量时按 int16/int32/int64 读取实际值逐维构造输出 shape;非常量时以 -1/-2 占位未知维度,并通过 InputsDataDependency 声明对 dims 的数据依赖。 - **Host 侧 tiling**(op_host/arch35/fill_v2_tiling_arch35.cpp/.h):校验 dims 必须为 1D 且维度数不超过 8(MAX_DIM_NUM),校验输出 dtype;将 float 型 value 按输出 dtype 转换后写入 FillV2TilingData;按 dtype 选择 tiling key 并申请 workspace。 - **Kernel 侧实现**(op_kernel/fill_v2_apt.cpp、arch35/fill_v2_dag.h、arch35/fill_v2_tiling_key.h 等):模板 kernel fill_v2<schMode, dType>,对 7 种输出 dtype 分别实例化,复用 ElementwiseSch16B 调度,FillV2DAG 以 Vec::Duplicate + Vec::CopyOut 完成填充。 - **二进制配置**(config/ascend950/fill_v2_binary.json、fill_v2_simplified_key.ini):3 种 dims dtype × 7 种输出 dtype 共 21 种组合的简化 key 与二进制映射。 - **GE IR 调用示例**(examples/test_geir_fill_v2.cpp):通过算子 IR 构图调用 FillV2 并落盘输入输出。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> #3220 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - **UT**: - 形状推导(tests/ut/op_host/test_fill_v2_infershape.cpp):覆盖 int16/int32/int64 三种 dims dtype 的常量 shape 推导及 1D 场景; - tiling(tests/ut/op_host/arch35/test_fill_v2_tiling.cpp):覆盖 7 种输出 dtype 及非法 dtype 报错场景。 - **ST**(tests/st/arch35/ttk_kernel_fill_v2_st.csv):5 条用例,覆盖 int16/int32/int64 输入与 float16/float32/double/int32/int64 输出、1~8 维 shape;golden 由 tests/assets/golden.py 生成。 - CI 流水线已通过(ci-pipeline-passed)。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - 新增 conversion/fill_v2/README.md:产品支持情况、功能说明、参数说明、约束说明与调用样例。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5326 | 1 month ago | |
修改fillv2的inferdtype,与A2A3统一 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6049 merge fillv2changeinferdtype into master 修改fillv2的inferdtype,与A2A3统一 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 由于inferdtype无法推导,目前实现会导致geir通路失败。现与A2、A3对齐,inferdtype强制输出类型推导为float32。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6049 | 1 month ago | |
fillv2增加Ascend960适配 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6535 merge fillv2_Ascend960 into master fillv2增加Ascend960适配 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> fillv2增加Ascend960适配 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6535 | 22 days ago | |
修改fillv2的inferdtype,与A2A3统一 Co-authored-by: sunzhongwen1<sunzhongwen1@huawei.com> # message auto-generated for no-merge-commit merge: !6049 merge fillv2changeinferdtype into master 修改fillv2的inferdtype,与A2A3统一 Created-by: sunzhongwen1 Commit-by: sunzhongwen1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 由于inferdtype无法推导,目前实现会导致geir通路失败。现与A2、A3对齐,inferdtype强制输出类型推导为float32。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6049 | 1 month ago |
FillV2
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:根据dims指定的shape,创建一个用value填充的输出张量y。
-
计算公式:
yi=valuey_i=value yi=value
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| dims | 输入 | 1D张量,表示输出y的shape,维度数不超过8。 | INT16、INT32、INT64 | ND |
| value | 输入属性 | 待填充值,公式中的value。 | FLOAT | - |
| y | 输出 | 待进行计算的出参,公式中的y_i。 | FLOAT | ND |
约束说明
- 输入dims必须是1D张量,维度数不超过8。
- 输入dims的维度值不能超过dims自身数据类型的表示范围:超出时数值按该类型回绕,回绕为负数会被tiling校验拦截报错,不会以错误shape执行;回绕后仍为非负时无法检测,将按回绕后的值执行。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_fill_v2 | 通过算子IR构图方式调用FillV2算子。 |