| Files | Last commit | Last update |
|---|---|---|
docs: masked_fill算子文档新增INT16/INT64数据类型支持及芯片差异约束 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6562 merge 1020 into master docs: masked_fill算子文档新增INT16/INT64数据类型支持及芯片差异约束 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 为 masked_fill 算子说明文档新增 INT16、INT64 数据类型支持说明,并补充对应的芯片差异约束。 ### 改动原因 masked_fill 算子在部分芯片上扩展支持 INT16/INT64 数据类型,同步更新算子文档,使文档与实际支持情况保持一致。 ### 改动方法 - conversion/masked_fill/README.md:x、value、y 参数支持的数据类型新增 INT16、INT64;新增“仅 Ascend 950PR&950DT 系列产品支持 INT16、INT64”的产品约束;约束更新为“value 的 dtype 与 x 必须一致”,并删除“value 的数据类型能够转换为 x 的数据类型”条目 - conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar.md:selfRef、value 数据类型列表新增 INT16;新增芯片差异说明——Atlas A3 系列、Atlas A2 系列、Atlas 推理系列、Atlas 训练系列产品的 selfRef 数据类型不支持 INT16 - conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor.md:selfRef、value 数据类型列表新增 INT16;新增芯片差异说明——Atlas A3 系列、Atlas A2 系列、Atlas 训练系列产品的 selfRef 数据类型不支持 INT16 ## 关联的Issue #3773 ## 测试 纯文档变更,不涉及代码逻辑修改,无需测试。 ## 文档更新 - 更新 conversion/masked_fill/README.md - 更新 conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar.md - 更新 conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6562 | 22 days ago | |
masked_fill等算子下一代实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !519 merge local into master masked_fill等算子下一代实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 新增以下算子的下一代实现: | 序号 | 名称 | 功能 | |--|--|--| |1| add_n | 将多个输入tensor相加 | |2|axpy_v2|执行标量乘向量加向量的操作| |3|lerp|根据给定的权重,在起始和结束Tensor之间进行线性插值,返回插值后的Tensor| |4|logical_or|完成给定输入张量元素的逻辑或运算| |5|masked_fill|将输入Tensor x中mask位置为True的元素填充指定的值| |6|sub|完成减法计算,被减数按alpha进行缩放| |7|addr|求一维向量vec1和vec2的外积得到一个二维矩阵,并将外积结果矩阵乘一个系数后和自身乘系数相加后输出| |8|square_sum_v1|用于计算输入张量的平方和| |9|is_nan|判断张量中哪些元素是nan| |10|assign_add|完成在原有tensor上的加法操作| |11|assign_sub|完成在原有tensor上的减法操作| |12|invert|按位取反| ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!519 | 10 months ago | |
feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6258 merge maskedfill into master feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 MaskedFill 算子新增 INT16 数据类型支持(ascend950 平台)。 改动原因:MaskedFill 目前支持 BFLOAT16/FLOAT16/FLOAT32/INT64/INT32/INT8/BOOL,缺少 INT16 类型,无法覆盖 INT16 输入下的掩码填充需求。 改动方法: - 算子原型与定义(masked_fill_proto.h、masked_fill_def.cpp):x、value、y 数据类型列表新增 DT_INT16; - Tiling(masked_fill_tiling_arch35.cpp):HandleDataTypes 新增 DT_INT16 分支,复用 BroadcastBaseTiling<MaskedFill<int16_t>>,并同步更新报错信息中的类型列表; - 二进制配置(ascend950/masked_fill_binary.json):新增 MaskedFill_INT16 配置; - aclnn 接口(aclnn_masked_fill_scalar.cpp、aclnn_masked_fill_tensor.cpp):DTYPE_SUPPORT_LIST 增加 DT_INT16,并增加芯片校验(非 RegBase 平台拦截 INT16);masked_fill.cpp 的 RegBase AICore 支持列表新增 DT_INT16。 ## 关联的Issue - #3592 ## 测试 - 新增 op_host tiling UT:test_masked_fill_tiling.cpp 增加 masked_fill_test_6,覆盖 INT16 输入(shape {16},预期 tilingKey=8)。 - 二级冒烟、泛化测试 ## 文档更新 - 无 ## 类型标签 - [x] 新特性 See merge request: cann/ops-math!6258 | 23 days ago | |
feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6258 merge maskedfill into master feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 MaskedFill 算子新增 INT16 数据类型支持(ascend950 平台)。 改动原因:MaskedFill 目前支持 BFLOAT16/FLOAT16/FLOAT32/INT64/INT32/INT8/BOOL,缺少 INT16 类型,无法覆盖 INT16 输入下的掩码填充需求。 改动方法: - 算子原型与定义(masked_fill_proto.h、masked_fill_def.cpp):x、value、y 数据类型列表新增 DT_INT16; - Tiling(masked_fill_tiling_arch35.cpp):HandleDataTypes 新增 DT_INT16 分支,复用 BroadcastBaseTiling<MaskedFill<int16_t>>,并同步更新报错信息中的类型列表; - 二进制配置(ascend950/masked_fill_binary.json):新增 MaskedFill_INT16 配置; - aclnn 接口(aclnn_masked_fill_scalar.cpp、aclnn_masked_fill_tensor.cpp):DTYPE_SUPPORT_LIST 增加 DT_INT16,并增加芯片校验(非 RegBase 平台拦截 INT16);masked_fill.cpp 的 RegBase AICore 支持列表新增 DT_INT16。 ## 关联的Issue - #3592 ## 测试 - 新增 op_host tiling UT:test_masked_fill_tiling.cpp 增加 masked_fill_test_6,覆盖 INT16 输入(shape {16},预期 tilingKey=8)。 - 二级冒烟、泛化测试 ## 文档更新 - 无 ## 类型标签 - [x] 新特性 See merge request: cann/ops-math!6258 | 23 days ago | |
feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6258 merge maskedfill into master feat: MaskedFill 算子新增 INT16 数据类型支持(ascend950) Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 MaskedFill 算子新增 INT16 数据类型支持(ascend950 平台)。 改动原因:MaskedFill 目前支持 BFLOAT16/FLOAT16/FLOAT32/INT64/INT32/INT8/BOOL,缺少 INT16 类型,无法覆盖 INT16 输入下的掩码填充需求。 改动方法: - 算子原型与定义(masked_fill_proto.h、masked_fill_def.cpp):x、value、y 数据类型列表新增 DT_INT16; - Tiling(masked_fill_tiling_arch35.cpp):HandleDataTypes 新增 DT_INT16 分支,复用 BroadcastBaseTiling<MaskedFill<int16_t>>,并同步更新报错信息中的类型列表; - 二进制配置(ascend950/masked_fill_binary.json):新增 MaskedFill_INT16 配置; - aclnn 接口(aclnn_masked_fill_scalar.cpp、aclnn_masked_fill_tensor.cpp):DTYPE_SUPPORT_LIST 增加 DT_INT16,并增加芯片校验(非 RegBase 平台拦截 INT16);masked_fill.cpp 的 RegBase AICore 支持列表新增 DT_INT16。 ## 关联的Issue - #3592 ## 测试 - 新增 op_host tiling UT:test_masked_fill_tiling.cpp 增加 masked_fill_test_6,覆盖 INT16 输入(shape {16},预期 tilingKey=8)。 - 二级冒烟、泛化测试 ## 文档更新 - 无 ## 类型标签 - [x] 新特性 See merge request: cann/ops-math!6258 | 23 days ago | |
masked_fill等算子下一代实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !519 merge local into master masked_fill等算子下一代实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 新增以下算子的下一代实现: | 序号 | 名称 | 功能 | |--|--|--| |1| add_n | 将多个输入tensor相加 | |2|axpy_v2|执行标量乘向量加向量的操作| |3|lerp|根据给定的权重,在起始和结束Tensor之间进行线性插值,返回插值后的Tensor| |4|logical_or|完成给定输入张量元素的逻辑或运算| |5|masked_fill|将输入Tensor x中mask位置为True的元素填充指定的值| |6|sub|完成减法计算,被减数按alpha进行缩放| |7|addr|求一维向量vec1和vec2的外积得到一个二维矩阵,并将外积结果矩阵乘一个系数后和自身乘系数相加后输出| |8|square_sum_v1|用于计算输入张量的平方和| |9|is_nan|判断张量中哪些元素是nan| |10|assign_add|完成在原有tensor上的加法操作| |11|assign_sub|完成在原有tensor上的减法操作| |12|invert|按位取反| ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!519 | 10 months ago | |
test: masked_fill golden迁移至__spec__测试规范格式,覆盖kernel/aclnn/e2e流程 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6618 merge maskedfill into master test: masked_fill golden迁移至__spec__测试规范格式,覆盖kernel/aclnn/e2e流程 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 masked_fill 算子 golden 整改:将 conversion/masked_fill/tests/assets/golden.py 从旧 __golden__ 字典格式迁移为 __spec__ 类测试规范格式,golden 覆盖从单一 kernel 流程扩展至 5 条流程: - masked_fill → MaskedFillTestSpec(kernel/geir 流程,numpy 输入输出,保留原 bfloat16→float32 转换逻辑) - aclnnInplaceMaskedFillScalar → AclnnInplaceMaskedFillScalarTestSpec(aclnn 流程,CPU torch.Tensor,inplace 返回) - aclnnInplaceMaskedFillTensor → AclnnInplaceMaskedFillTensorTestSpec(aclnn 流程) - torch.masked_fill → TorchMaskedFillTestSpec(e2e 流程) - torch.Tensor.masked_fill_ → TorchMaskedFillInplaceTestSpec(e2e 流程) 其他关键改动: - 新增统一 _MF_TOLERANCE 精度标准:float16/float32/bfloat16 使用 cross_check,bool/int8/int16/int32/int64 使用 binary_equal - 新增各流程 third_party torch 适配;kernel 流程 value 为 1 维单元素/0 维 tensor(def.cpp 契约),公开接口 torch.masked_fill 拒收 1 维 value,适配器先 .item() 转标量再调用(自动走 masked_fill.Scalar 重载) ## 关联的Issue - #3834 ## 测试 - golden 仅作为测试资产基准实现,不涉及算子 host/kernel 代码改动;验证各流程 golden 输出与原实现一致、third_party 对接调用正常。 ## 文档更新 - 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:golden 测试资产整改(迁移至 __spec__ 规范格式) See merge request: cann/ops-math!6618 | 20 days ago | |
feat: 新增 ascend960pr/ascend960dt 平台算子适配(14 个算子) Co-authored-by: esok11<yangsifa@huawei.com> # message auto-generated for no-merge-commit merge: !6157 merge f1008 into master feat: 新增 ascend960pr/ascend960dt 平台算子适配(14 个算子) Created-by: esok11 Commit-by: esok11 Merged-by: cann-robot Description: ## 描述 为 ascend960pr / ascend960dt 两个新增芯片形态适配算子,覆盖 conversion 与 math 目录下共 14 个算子;同时修正 addr 的 dtype 支持列表判断逻辑,并对个别文件做版权头/格式整理。 ### 改动原因 ascend960pr / ascend960dt 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 this->AICore().AddConfig("ascend960pr", ...) 与 AddConfig("ascend960dt", ...) - conversion:assign、dynamic_partition、masked_fill、mem_set、tensor_move、tril、triu - math:addr、asin、eye、mod、sinc、truncate_div、truncate_mod 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNIT 中追加 ascend960pr、ascend960dt,并在 SUPPORT_TILING_DIR / TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35) 3. **二进制配置**:为每个算子新增 op_host/config/ascend960pr/ 与 op_host/config/ascend960dt/ 目录,包含 <op>_binary.json 与 <op>_simplified_key.ini 4. **addr dtype 判断修正**(math/addr/op_api/aclnn_addr.cpp):GetDtypeSupportList() 的判断由区间判断 >= ASCEND910B && <= ASCEND910E 改为显式判断 == ASCEND910B || == ASCEND910_93 || IsRegBase(),使 reg-base 平台复用 910B dtype 支持列表 5. **格式整理**:conversion/mem_set_v2/op_host/mem_set_v2_def.cpp、math/adds/op_host/adds_def.cpp、math/adds/CMakeLists.txt 仅做版权头/空行/行尾换行等整理 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3440 ## 测试 本 PR 未包含测试代码改动;适配涉及算子信息库、编译配置与二进制配置,需在 ascend960pr / ascend960dt 平台补充二级冒烟与算子泛化验证。 ## 文档更新 无。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6157 | 1 month ago | |
docs: masked_fill算子文档新增INT16/INT64数据类型支持及芯片差异约束 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !6562 merge 1020 into master docs: masked_fill算子文档新增INT16/INT64数据类型支持及芯片差异约束 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 为 masked_fill 算子说明文档新增 INT16、INT64 数据类型支持说明,并补充对应的芯片差异约束。 ### 改动原因 masked_fill 算子在部分芯片上扩展支持 INT16/INT64 数据类型,同步更新算子文档,使文档与实际支持情况保持一致。 ### 改动方法 - conversion/masked_fill/README.md:x、value、y 参数支持的数据类型新增 INT16、INT64;新增“仅 Ascend 950PR&950DT 系列产品支持 INT16、INT64”的产品约束;约束更新为“value 的 dtype 与 x 必须一致”,并删除“value 的数据类型能够转换为 x 的数据类型”条目 - conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar.md:selfRef、value 数据类型列表新增 INT16;新增芯片差异说明——Atlas A3 系列、Atlas A2 系列、Atlas 推理系列、Atlas 训练系列产品的 selfRef 数据类型不支持 INT16 - conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor.md:selfRef、value 数据类型列表新增 INT16;新增芯片差异说明——Atlas A3 系列、Atlas A2 系列、Atlas 训练系列产品的 selfRef 数据类型不支持 INT16 ## 关联的Issue #3773 ## 测试 纯文档变更,不涉及代码逻辑修改,无需测试。 ## 文档更新 - 更新 conversion/masked_fill/README.md - 更新 conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar.md - 更新 conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6562 | 22 days ago |
MaskedFill
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:将输入Tensor
x中mask位置为True的元素填充指定的值。mask必须与x的shape相同或可广播。 -
计算公式:
yi={xi, maski=Falsevaluei, maski=Truey_i = \begin{cases} x_i, \, \, mask_i=False\\ value_i, \, \, mask_i=True\\ \end{cases} yi={xi,maski=Falsevaluei,maski=True
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 公式中的输入x。 | FLOAT32、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、BOOL | ND |
| mask | 输入 | 公式中的输入mask。 | BOOL | ND |
| value | 输入 | 公式中的输入value。 | FLOAT32、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、BOOL | ND |
| y | 输出 | 公式中的输出y。 | FLOAT32、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、BOOL | ND |
- Atlas训练系列产品、Atlas推理系列产品、Atlas 200I/500 A2推理产品:不支持BFLOAT16。
- 仅Ascend 950PR&950DT系列产品支持INT16、INT64。
约束说明
- value的dtype与x必须一致。
- x和mask需要满足广播关系。
- y的shape可以由x、mask、value共同广播。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_inplace_masked_fill_scalar | 通过aclnnInplaceMaskedFillScalar接口方式调用MaskedFill算子。 |