| 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 | |
修改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的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 |