| Files | Last commit | Last update |
|---|---|---|
docs(conversion): 补充 masked_fill 接口 8 维上限约束并补齐 INT16 披露 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !7204 merge fix into master docs(conversion): 补充 masked_fill 接口 8 维上限约束并补齐 INT16 披露 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 补充 masked_fill 系列接口文档的维度上限约束,并补齐英文文档与中文文档的数据类型披露差异。 **改动原因**:实现侧对 selfRef/mask 有 8 维硬性上限( conversion/masked_fill/op_host/op_api/aclnn_masked_fill_tensor.cpp 中 const int MAX_DIM = 8,并通过 OP_CHECK_MAX_DIM(..., 8, ...) 对 selfRef/mask 做硬性检查),但文档维度(shape)列未披露该上限,用户按文档构造输入时会在边界被拒且无资料依据可查(见关联 Issue)。 **改动方法**(涉及 conversion/masked_fill/docs/ 下 4 个文档,中英文同步): - selfRef、mask 的维度(shape)规格由 -(未披露)改为 0-8,与实现约束对齐; - 错误码表 161002(ACLNN_ERR_PARAM_INVALID)新增条目「selfRef或mask的维度超过8维」,Tensor 版 rowspan 4→5、Scalar 版 3→4; - 英文文档数据类型列补齐 INT16(中文文档已有、英文此前缺失),并新增 npu 约束块:A3/A2/训练系列产品 selfRef 不支持 INT16; - 英文 Tensor 版错误码表补「The dimension of value is not 0.」条目。 ## 关联的Issue - #4578 ## 测试 - 纯文档变更,不涉及代码逻辑,无需二级冒烟/算子泛化测试; - 已人工核对文档维度上限、错误码条目与实现侧 MAX_DIM = 8 / OP_CHECK_MAX_DIM 检查逻辑一致,中英文披露一致。 ## 文档更新 - conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor.md - conversion/masked_fill/docs/aclnnInplaceMaskedFillTensor_en.md - conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar.md - conversion/masked_fill/docs/aclnnInplaceMaskedFillScalar_en.md ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7204 | 2 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 | |
docs(masked_fill): 修正 API 注释中 selfRef 支持的数据类型 Co-authored-by: Hana77<wangtianqi27@huawei.com> # message auto-generated for no-merge-commit merge: !7010 merge mm into master docs(masked_fill): 修正 API 注释中 selfRef 支持的数据类型 Created-by: Hana77 Commit-by: Hana77 Merged-by: cann-robot Description: ## 描述 修正 masked_fill 算子 API 头文件注释与实现不一致的问题: conversion/masked_fill/op_api/aclnn_masked_fill_scalar.h 与 conversion/masked_fill/op_api/aclnn_masked_fill_tensor.h 中 selfRef 参数注释原声称支持 BOOL、UINT8、INT8、INT16、INT32、INT64、FLOAT、FLOAT16、BFLOAT16、DOUBLE、COMPLEX64、COMPLEX128;但算子实现(op_host/config/ 下各 SoC 配置)实际仅支持 BOOL、INT8、INT16、INT32、INT64、FLOAT、FLOAT16、BFLOAT16。本次将注释修正为与实现一致,避免误导用户传入不支持的数据类型。 同时: - 按 clang-format 规范调整 aclnnInplaceMaskedFillTensorGetWorkspaceSize、aclnnInplaceMaskedFillTensor 函数声明的换行格式 - 补齐两个头文件缺失的文件末尾换行符 ## 关联的Issue - #4418 ## 测试 仅注释与格式修正,不涉及代码逻辑变更,不影响算子行为。已比对 op_host/config/ 下 masked_fill 各 SoC 配置,确认注释所列数据类型与实现一致。 ## 文档更新 更新了 conversion/masked_fill/op_api/aclnn_masked_fill_scalar.h、conversion/masked_fill/op_api/aclnn_masked_fill_tensor.h 中的接口注释。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7010 | 9 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 | 22 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 | 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 | |
test: 同步 Math BRC 零 workspace 的 Host UT 期望值 Co-authored-by: zhang-song-rui<zhangsongrui@h-partners.com> # message auto-generated for no-merge-commit merge: !6242 merge fix/ascend950-vector-workspace into master test: 同步 Math BRC 零 workspace 的 Host UT 期望值 Created-by: zhang-song-rui Commit-by: zhang-song-rui Merged-by: cann-robot Description: ## 修改内容 仅同步公共 BroadcastBaseTiling(BRC)workspace 清零所影响的 Host UT:把成功 BRC 用例的 workspace 期望由 16777216(16 MiB)改为 0。 共修改 38 个已有 UT 文件,228 行增加、228 行删除,全部为上述 workspace 字面值替换。无生产代码、kernel、CMake、公共 UT 框架、依赖版本或失败用例修改;分支保持一次提交。 ## Major 意见核对与处理 opbase #1007 在 BroadcastBaseTiling::DoTiling 公共成功出口写入 DEFAULT_TILING_WORKSPACE_SIZE=0,默认 kernel type 同样受影响,并非可排除条件。结合本地 opbase 与当前 ops-math 源码,逐项处理如下: | 算子 | 本 PR 处理 | 保留原期望的依据 | | --- | --- | --- | | AddV2 | 生产文件及 UT 均保持主线原样 | BRC 返回后 SetWorkspace 显式按 CompileInfo/平台信息重新申请 workspace,最终结果仍为 16 MiB;不能仅改 UT 为 0。 | | LeftShift | 8 个成功用例改为 0 | 另 1 个失败用例的占位期望不参与 workspace 检查,保持原样。 | | RightShift | 10 个成功用例改为 0 | 另 2 个失败用例同上,保持原样。 | | MaximumGrad | 7 个成功 BRC 用例改为 0 | 另 4 个空张量用例走 HandleEmptyTensor 独立分支,仍显式申请系统 workspace,保留 16 MiB。 | | MinimumGrad | 7 个成功 BRC 用例改为 0 | 同上,另 4 个空张量独立分支保留 16 MiB。 | | MaskedFill | 7 个成功 BRC 用例改为 0 | 无遗漏。 | | TruncateDiv | 6 个成功 BRC 用例改为 0 | 原有两个 0 是失败用例,不是非 BRC 成功路径;保持原样。 | 全仓扫描发现的另外三组遗漏也已补齐:FusedMulAdd(10 处)、FusedMulAddAdd(10 处)、MulNoNan(11 处)。上述新增补齐共 9 个文件、76 处。其余原有 UT 中仅属于失败用例的 8 处占位值修改也已撤回,避免无关修改。 ## 本地验证(2026-11-05) 最终提交: ae55efaba。 环境:aarch64、GNU 9.4.0、CANN 9.2.0(用户目录安装)、目标 ascend950。使用仓库默认固定 opbase 8e8cf1b60b28bc1f8aaa1652fe054ac7e35d5852,未叠加本地 opbase 补丁。 - 最终 UT-only 版本已重新编译、最终链接并运行 math_op_host_ut:**548/548 测试通过,78 个测试套件,构建退出码 0**。范围包括全部 38 个变更算子,以及保持原样的 AddV2,共 39 个算子;保留 16 MiB 的 AddV2/梯度空张量用例也实际通过。 - 逐字节检查全部 38 个变更文件,仅存在 {16777216} → {0} 的替换;失败用例无差异,AddV2 无差异。 - 按原有 CRLF 换行格式执行差异空白检查,通过。 - 扫描仓库 50 个直接 BRC Host 消费算子,核对剩余 16 MiB 用例及上述独立分支。 最终复测日志:/tmp/pr6242-ut-only-final.log。日志含复用构建目录产生的 gcov profile 时间戳提示;测试和构建均成功,本次不提供覆盖率结论。Host UT 不替代设备 kernel 精度、性能或越界验证;本轮未执行设备测试。 ## 关联 PR - [opbase #1007](https://gitcode.com/cann/opbase/pull/1007):已合入的公共 BRC workspace 清理。 - [ops-math #6711](https://gitcode.com/cann/ops-math/pull/6711):已合入独立实现路径清理及其 4 个 UT 文件。已同步包含该修改的主线,上述 10 个文件不在本 PR 差异中。 See merge request: cann/ops-math!6242 | 6 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 | 21 days ago | |
docs: add English translations for markdown files Co-authored-by: jenny_xiang<jenny.xiang@huawei.com> # message auto-generated for no-merge-commit merge: !7113 merge docs/add-english-translations into master docs: add English translations for markdown files Created-by: jenny_xiang Commit-by: jenny_xiang Merged-by: cann-robot Description: ## 描述 新增仓库Markdown文档英文译稿(第二批,共409个文件):第一批(已合入)之外的其余全部译稿,覆盖conversion、examples、ge、math、random各类算子README译稿,以及CHANGELOG_en.md、.gitcode PR模板英文版等。 本批内全部仓内链接均指向master已有文件(含第一批已合入的21+2篇译稿),合入后本仓432篇英文文档全部就位,链接完整生效。 本批同时包含4篇基于最新源文档的增量更新(math/ada_cast、math/prod_force_se_a、math/sinkhorn、math/xlogy,对应上游近期文档变更)。 ## 关联的Issue 无 ## 测试 文档类变更,无需算子测试;已通过链接有效性校验(本批全部相对链接仅指向master已有文件,无指向本PR外未提交文件的链接),并完成逐篇翻译规范自查与语义校对(含支持状态表、限定词、术语、数值符号核对)。 ## 文档更新 新增409个英文译稿文件(*_en.md / .en-US.md),不修改任何现有文件。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!7113 | 6 days ago |
MaskedFill
English | 简体中文
Product Support Status
| Product | Supported |
|---|---|
| Ascend 950PR&950DT products | √ |
| Atlas A3 products | √ |
| Atlas A2 products | √ |
| Atlas 200I/500 A2 inference products | √ |
| Atlas inference products | √ |
| Atlas training products | √ |
Function Description
-
Operator function: fills the elements at the positions where mask is
Truein the input Tensorxwith specified values.maskmust have the same shape asxor be broadcastable. -
Computation formula:
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
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input | Input x in the formula. | FLOAT32, FLOAT16, BFLOAT16, INT8, INT16, INT32, INT64, BOOL | ND |
| mask | Input | Input mask in the formula. | BOOL | ND |
| value | Input | Input value in the formula. | FLOAT32, FLOAT16, BFLOAT16, INT8, INT16, INT32, INT64, BOOL | ND |
| y | Output | Output y in the formula. | FLOAT32, FLOAT16, BFLOAT16, INT8, INT16, INT32, INT64, BOOL | ND |
- Atlas training products, Atlas inference products, and Atlas 200I/500 A2 inference products: BFLOAT16 is not supported.
- Only Ascend 950PR&950DT products support INT16 and INT64.
Constraint Description
- The dtype of value must be the same as that of x.
- x and mask must satisfy the broadcasting relationship.
- The shape of y can be obtained by broadcasting x, mask, and value together.
Invocation Description
| Invocation Method | Sample Code | Description |
|---|---|---|
| aclnn API | test_aclnn_inplace_masked_fill_scalar | Invokes the MaskedFill operator through the aclnnInplaceMaskedFillScalar API. |