| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 2 个月前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 8 天前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 8 天前 | |
fix: 修复init_embedding_hash_table tiling UT文件名不匹配glob导致用例未执行 Co-authored-by: iuyi<202313350054@nuist.edu.cn> # message auto-generated for no-merge-commit merge: !10618 merge fix/init-embedding-hash-table-tiling-ut into master fix: 修复init_embedding_hash_table tiling UT文件名不匹配glob导致用例未执行 Created-by: iuyi Commit-by: iuyi Merged-by: cann-robot Description: ## 描述 op_host tiling UT 源文件收集规则为 test_*_tiling.cpp(cmake/ut.cmake), test_init_embedding_hash_table_tiling_arch35.cpp 不匹配该模式, 导致该算子 tiling 用例从未被编译执行。arch35 目录本身已区分架构, 文件名无需 _arch35 后缀,按目录内通用命名规范重命名为 test_init_embedding_hash_table_tiling.cpp,使用例纳入 nn_op_tiling_ut_cases_obj 并随 nn_op_host_ut 执行。 ## 关联的Issue 关联 #5981(hash目录3个算子tiling UT文件名不匹配glob规则导致用例从未被执行,本PR为按算子拆分的3个修复之一) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10618 | 10 天前 | |
bn_infer等26个算子新增ascend350平台支持 Co-authored-by: Developer user<zhuzixian1@h-partners.com> # message auto-generated for no-merge-commit merge: !10255 merge ascend350_adapt_w2 into master bn_infer等26个算子新增ascend350平台支持 Created-by: zhuzixian-lr Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 26个算子新增ascend350平台支持:foreach_mul_scalar、foreach_sqrt、foreach_addcmul_scalar、foreach_div_scalar_list、foreach_lerp_scalar、foreach_norm、bn_infer、apply_adagrad_d、apply_gradient_descent、apply_adam、apply_adam_w_v2、embedding_hash_table_apply_adam_w、embedding_hash_table_export、embedding_hash_table_import、embedding_hash_table_lookup_or_insert、init_embedding_hash_table、binary_cross_entropy、sigmoid_cross_entropy_with_logits_v2、binary_cross_entropy_grad、l2_loss、nll_loss、nll_loss_grad、sparse_softmax_cross_entropy_with_logits、softmax_cross_entropy_with_logits、swiglu_group_quant、swi_glu。 修改模式(350与ascend950完全同配,两者同为 DAV_3510,走同一代码分支): - op_host/<op>_def.cpp:追加 AddConfig("ascend350"),复用 ascend950 同一 config 对象(regbase 形态含 foreach 系/bn_infer/apply_adam_w_v2/swi_glu 等) - CMakeLists:SUPPORT_COMPUTE_UNIT/SUPPORT_TILING_DIR(或 COMPUTE_UNITS 形态)增加 ascend350/arch35(bn_infer 为 op_host/CMakeLists 特殊形态,对标 bn_training_reduce 先例) - op_host/config/ascend350/:拷贝 ascend950 的 <op>_binary.json - scripts/kernel/binary_config/ascendc_config.json:仅对 json 中已有条目的算子修改(foreach 系 6 个 + SwiGlu 共 7 条 compute_units 加 ascend350,compile_options 与 ascend950 逐项相同);原无条目的算子不新增登记,避免影响默认编译选项行为 - nll_loss_grad 的 CMakeLists.txt 版权头规范化(OAT 合规检查要求) ## 测试 A5(Ascend950PR)环境实测: - bash build.sh --pkg --soc=ascend350 --ops=<op> --vendor_name=customize -j4 编译验证:26/26 算子通过(产物 .o、run 包产出、json 选项注入均验证;softmax_cross_entropy_with_logits 用 --soc=ascend950 对照编译确认两侧产物同构) - pre-commit 全部检查通过(按文件运行,含 clang-format/codespell/OAT 合规) ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5780 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 ## SocVersion 判断合规化 - 规则:不允许 SocVersion 区间判断隐式覆盖芯片,950/350 需显式 IsRegBase() 判断,不再依赖枚举顺序副作用 - 本 MR 涉及 1 处(sigmoid_cross_entropy_with_logits_v2 的 binary_cross_entropy_with_logits),已完成修改 - 改法:保留原 [ASCEND910B, ASCEND910E] 区间(覆盖 910B/910C/910E),或逻辑增加 IsRegbase()(显式覆盖 regbase 芯片,与 upstream !10101 已合入的 Ops::NN::AclnnUtil::IsRegbase() 同形态) - 行为零变化:950 原区间命中(true)→现 IsRegbase()(true);350 原被区间覆盖(true)→现 IsRegbase()(true);910B/C/E 走原区间不变 - 分支已 rebase 至最新 upstream master ## 四件套完整性检视修复 - 全量检视发现 17 个算子的 ascendc_config.json 登记缺失(摸底时带下划线 grep 未命中全驼峰条目名,误记为 950 无条目) - 涉及:loss 7(BinaryCrossEntropy/Grad、L2Loss、NLLLoss/Grad、SigmoidCrossEntropyWithLogitsV2、SparseSoftmaxCrossEntropyWithLogits)、hash 5(EmbeddingHashTableApplyAdamW/Export/Import/LookupOrInsert、InitEmbeddingHashTable)、optim 4(ApplyAdagradD、ApplyAdam、ApplyAdamWV2、ApplyGradientDescent)、activation 1(SoftmaxCrossEntropyWithLogits) - 修复:对标各自 ascend950 条目补登 ascend350(compute_units 追加 + compile_options 照抄),def/CMake/config 三件原已齐备 - 其余 84 算子四件套核查全绿或形态与 950 一致(详见任务侧检视报告) ## 补充算子 - foreach_add_scalar:清单补充登记,四件套补齐(def AddConfig ascend350 与 950 同 regbaseCfg 对象、op_kernel CMake COMPUTE_UNITS、config/ascend350/binary.json、ascendc_config.json 条目对标 950 追加 + compile_options 照抄),与同族 foreach_addcmul_scalar 等先例形态一致 ## 算子目录内融合规则适配 - 全量排查两波 84 算子目录 op_graph 层:仓内融合 pass 共 2 个、graph_infer 12 个、graph_plugin 1 个 - 🔴 修复 1 处:layer_norm/op_graph/fusion_pass/layer_norm_remove_broadcast_fusion_pass.cpp:102 support_soc 集合 {"Ascend950","MC62"} 增加 Ascend350(原 350 跳过融合与 950 分叉);ops-transformer 的 apply_rotary_pos_emb_tensormove_pass 无平台门控天然放行 See merge request: cann/ops-nn!10255 | 8 天前 | |
fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Co-authored-by: xieshengwei1024<xieshengwei3@huawei.com> # message auto-generated for no-merge-commit merge: !7076 merge master into master fix schedule mode & embeddingHash Doc & groupNormSilu codecheck Created-by: xieshengwei1024 Commit-by: xieshengwei1024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1.系列SyncAll算子添加scheduleMode 2.embeddingHash算子文档错误修改 3.groupNormSilu修改超大圈复杂度问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联issue3858 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 已进行本地编译测试、ut测试及上板aclnn测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了embeddingHash系列算子的readme文档 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!7076 | 2 个月前 |
InitEmbeddingHashTable
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | ✗ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | ✗ |
| Atlas 200I/500 A2 推理产品 | ✗ |
| Atlas 推理系列产品 | ✗ |
| Atlas 训练系列产品 | ✗ |
功能说明
- 算子功能:初始化hash表。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| table_handle | 输入 | 输入hash表handle句柄,里面包含了hash表的表头地址等。 | INT64 | ND |
| sampled_values | 输入 | 外部生成随机数,用于填充value值,initializer_mode为random时生效。 | FLOAT | ND |
| bucket_size | 输入属性 | hash表桶数量。 | INT64 | ND |
| embedding_dim | 输入属性 | hash表桶深度。 | INT64 | ND |
| initializer_mode | 输入属性 | 控制初始化的hash表中填充的默认值,random填充sampled_values里面的值,const填充constant_value属性值。 | STRING | ND |
| constant_value | 输入属性 | hash表的初始填充值,initializer_mode为const时生效。 | FLOAT | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 无 | 无 | 无 |