| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 14 天前 | |
aclnnClampMax等资料问题 Co-authored-by: ranczhw<ranchenzhi@huawei.com> # message auto-generated for no-merge-commit merge: !5533 merge master into master aclnnClampMax等资料问题 Created-by: IceBearPolar Commit-by: ranczhw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 math 仓 aclnn 资料扫描问题 12 条,并同步对应调用示例。 - aclnnClampMax / aclnnInplaceClampMax 示例回读类型与张量 dtype 不一致(文档 INT8、conversion example INT32),存在越界读/结果误读 - aclnnTril 功能说明示例将 tril 误写为 triu - aclnnCalculateMatmulWeightSizeV2 示例 shape 标点不规范 - aclnnTransMatmulWeight 将 0x3C00 误注释为 int16 的 1,实际为 FP16 的 1.0 - aclnnFlatten 将 self 最大维度写成不能超过 2,与维度列 2-8 及错误码矛盾 - aclnnFlatten 示例未说明 outHostData 仅为占位初值,且缺少预期结果校验 - aclnnDiag 功能说明用 input 指代输入,与参数名 self 不一致 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3111 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 门禁通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnClampMax.md、aclnnInplaceClampMax.md、aclnnTril.md、aclnnCalculateMatmulWeightSizeV2.md、aclnnTransMatmulWeight.md、aclnnFlatten.md、aclnnDiag.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5533 | 24 天前 | |
优化多个文件中的代码风格 Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> # message auto-generated for no-merge-commit merge: !1295 merge clean into master 优化多个文件中的代码风格 Created-by: yuantao_ Commit-by: init__zhb__;yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 多个文件中的代码风格可以进行改进: | 文件路径 | 代码片段 | 问题描述 | 行号 | | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------- | --- | | conversion/concat_d/op_api/concat_d.cpp | if (tail_dim * type_size[promoteType] % 32 != 0) { | 避免魔法数字 (32) | 54 | | conversion/depth_to_space/examples/test_geir_depth_to_space.cpp | add1.update_output_desc_##outputName(outputName##outputIndex##_desc); | 宏定义无需分号 | 68 | | conversion/depth_to_space/examples/test_geir_depth_to_space.cpp | inputs.push_back(placeholder##intputIndex); | 宏定义无需分号 | 60 | | conversion/depth_to_space/examples/test_geir_depth_to_space.cpp | char *endptr; | 使用std::string替代char* | 202 | | conversion/strided_slice_grad/examples/test_geir_strided_slice_grad.cpp | pData[i] = value + (i % 3) * 0.4f; // 让数据更有意义 | 避免魔法数字 (3) | 126 | | conversion/strided_slice_grad/examples/test_geir_strided_slice_grad.cpp | return 2; | 避免魔法数字 (2) | 109 | | conversion/strided_slice_grad/examples/test_geir_strided_slice_grad.cpp | return 4; | 避免魔法数字 (4) | 107 | | conversion/concat_d/op_api/concat_d.cpp | if (inputs->Size() > 512 \|\| inputs->Size() < 33) { | 避免魔法数字 (512) | 45 | | conversion/concat_d/op_api/concat_d.cpp | catMaxInputSize = 512; | 避免魔法数字 (512) | 92 | | conversion/depth_to_space/examples/test_geir_depth_to_space.cpp | FILE *fp; | 变量应在使用时声明初始化 | 153 | | conversion/depth_to_space/examples/test_geir_depth_to_space.cpp | add1.set_attr_##attrName(attrValue); | 宏定义无需分号 | 63 | | random/dsa_random_uniform/op_host/op_api/aclnn_multinomial.cpp | auto randomUniform = GetRandomUniformNoReplaceMent(selfContiguous, randomParams, uniqueExecutor.get()); | 数组参数应传递长度 (randomParams) | 377 | | conversion/squeezev2/op_host/squeezev2_infershape.cpp | return SqueezeWithAxes(x_shape, squeeze_dims, y_shape); | 数组参数应传递长度 (squeeze_dims) | 114 | | conversion/concat_dv2/op_host/concat_dv2_tiling.cpp | tiling.set_endTensorIdx(endTensorIdx); | 数组参数应传递长度 (endTensorIdx) | 143 | | conversion/squeezev3/op_host/squeezev3_infershape.cpp | return SqueezeWithAxes(x_shape, squeeze_dims, y_shape); | 数组参数应传递长度 (squeeze_dims) | 117 | | conversion/concat_dv2/op_host/concat_dv2_tiling.cpp | tiling.set_endTensorOffset(endTensorOffset); | 数组参数应传递长度 (endTensorOffset) | 144 | | conversion/squeezev2/op_host/squeezev2_infershape.cpp | if (!IsAxesRangeValid(squeeze_dims, static_cast<int64_t>(x_shape->GetDimNum()), axes)) { | 数组参数应传递长度 (squeeze_dims) | 108 | | random/sim_thread_exponential/op_kernel/sim_thread_exponential.h | AscendC::And(..., mask, len / SHIFT_LEFT_32, { 1, 1, 1, 8, | 数组参数应传递长度 (mask) | 567 | | random/dsa_gen_bit_mask/examples/test_dropout_gen_mask.cpp | std::vector<float> outHostData(8, 0); | 避免魔法数字 (8) | 89 | | conversion/diag_v2/examples/test_geir_diag_v2.cpp | char *endptr; | 使用std::string替代char* | 220 | | random/dsa_gen_bit_mask/examples/test_dropout_gen_mask.cpp | std::vector<uint8_t> maskOutHostData(16, 0); | 避免魔法数字 (16) | 90 | | conversion/diag_v2/examples/test_geir_diag_v2.cpp | FILE *fp; | 变量应在使用时声明初始化 | 177 | | conversion/diag_v2/examples/test_geir_diag_v2.cpp | add1.set_attr_##attrName(attrValue); | 宏定义无需分号 | 63 | | conversion/diag_v2/examples/test_geir_diag_v2.cpp | inputs.push_back(placeholder##intputIndex); | 宏定义无需分号 | 60 | | conversion/diag_v2/examples/test_geir_diag_v2.cpp | add1.update_output_desc_##outputName(outputName##outputIndex##_desc); | 宏定义无需分号 | 92 | | conversion/unfold_grad/op_kernel/unfold_grad_final_axe_big_size.h | _(空行)_ | 代码块末尾不应有空行 | 56 | | random/dsa_gen_bit_mask/examples/test_aclnn_dropout_gen_mask_v2_tensor.cpp | std::vector<uint8_t> outHostData(16, 0); | 避免魔法数字 (16) | 93 | | random/dsa_gen_bit_mask/examples/test_dropout.cpp | std::vector<uint8_t> maskOutHostData(16, 0); | 避免魔法数字 (16) | 90 | | random/dsa_gen_bit_mask/examples/test_dropout.cpp | std::vector<float> outHostData(8, 0); | 避免魔法数字 (8) | 89 | | conversion/concat_dv2/op_host/concat_dv2_def.cpp | 0 | 代码块末尾不应有空行 | 45 | | conversion/concat_d/op_api/aclnn_cat.cpp | catMaxInputs = 512; | 避免魔法数字 (512) | 337 | | conversion/clip_by_value_v2/examples/test_aclnn_clamp_max.cpp | std::vector<int8_t> outHostData(8, 0); | 避免魔法数字 (8) | 80 | | random/dsa_gen_bit_mask/examples/test_dropout_gen_mask_v2.cpp | std::vector<uint8_t> outHostData(16, 0); | 避免魔法数字 (16) | 86 | | conversion/broadcast_to/examples/test_geir_broadcast_to.cpp | inputs.push_back(placeholder##intputIndex); | 宏定义无需分号 | 89 | | random/dsa_gen_bit_mask/examples/test_aclnn_bernoulli.cpp | std::vector<float> outHostData(16, 0); | 避免魔法数字 (16) | 89 | | conversion/confusion_transpose_d/examples/test_aclnn_confusion_transpose.cpp | std::vector<float> outHostData(8, 1); | 避免魔法数字 (8) | 116 | | conversion/clip_by_value_v2/examples/test_aclnn_clamp_max_tensor.cpp | std::vector<double> outHostData(8, 0); | 避免魔法数字 (8) | 82 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:清理代码,优化代码风格。 See merge request: cann/ops-math!1295 | 7 个月前 | |
cleancode降低代码重复率 Co-authored-by: jisongyuan<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !5538 merge master into master cleancode降低代码重复率 Created-by: ji-songyuan Commit-by: jisongyuan Merged-by: cann-robot Description: ## 描述 本 PR 对 conversion 和 random 模块下多个算子的源文件进行 cleancode 顺序调整,共涉及 8 个文件,改动量 +51/-51,旨在降低 cleancode 扫描的代码重复率。 主要解决以下 cleancode 重复率偏高的问题: - **include 头文件顺序混乱**:多个 .cpp 文件的 #include 顺序无规律,与仓内其他文件的相似度计算偏高 - **常量/变量声明顺序混乱**:如 pad_v4_grad_tiling.cpp 中 constexpr 与 static map 交错排列 - **参数检查顺序不一致**:如 aclnn_pad2d_backward.cpp 的 CheckNotNull / CheckDtypeValid 中各检查项顺序与同类算子不一致 cleancode 扫描基于行级相似度,上述顺序差异会被误判为重复代码块,统一调整声明/检查顺序可降低重复率。 ### 改动明细 | # | 文件 | 改动 | 说明 | |---|------|------|------| | 1 | conversion/chunk_cat/op_api/aclnn_chunk_cat.cpp | +5/-5 | include 顺序调整:按 op_api_def/aclnn_check/opdev/common/opdev 分组排序 | | 2 | conversion/concat_d/op_api/aclnn_cat.cpp | +11/-11 | include 顺序调整:同上分组排序 | | 3 | conversion/flatten/op_host/op_api/flatten.cpp | +3/-3 | include 顺序调整:按 make_op_executor/op_def/aicpu_task/op_dfx/op_log/op_executor/platform/shape_utils 排序 | | 4 | conversion/pad_v3_grad_replicate/op_host/op_api/aclnn_pad2d_backward.cpp | +9/-8 | CheckNotNull 调整为 self→gradOutput→gradInput→padding;CheckDtypeValid 调整为 gradInput→gradOutput→self | | 5 | conversion/pad_v4_grad/op_host/pad_v4_grad_tiling.cpp | +6/-6 | 常量声明顺序调整:按 map→TILING_KEY→shape 上限→SMALL_W_LIMIT 分组排列 | | 6 | random/drop_out_do_mask/op_api/aclnn_dropout_backward.cpp | +8/-8 | include 顺序调整:按 platform→common_types→format_utils→op_executor→data_type_utils→op_log→tensor_view_utils→op_dfx→shape_utils 排序 | | 7 | random/drop_out_do_mask/op_api/aclnn_dropout_do_mask.cpp | +5/-5 | include 顺序调整 + 常量顺序:include 同上分组;BIT_NUMBER 与 UINT8_BIT_NUMBER 顺序对换 | | 8 | random/dsa_gen_bit_mask/op_host/op_api/aclnn_dropout.cpp | +4/-4 | include 顺序调整:按 common_types→format_utils→data_type_utils→op_dfx→shape_utils→op_executor→platform→op_log→tensor_view_utils 排序 | ### 改动原则 - **纯顺序调整,不改变任何代码逻辑**:所有改动均为 include 顺序、常量声明顺序、参数检查顺序的调整,不涉及函数逻辑、控制流、变量名等 - **对齐实现**:调整后的顺序与同模块其他算子保持一致 - **聚焦最小改动**:仅调整顺序以降低 cleancode 重复率,不做额外的重构 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/ops-math/issues/3118 ## 测试 - 顺序调整不改变代码逻辑,通过人工 review 验证语义等价 - 改动不涉及算子行为,CI 编译与功能测试结果不受影响 - cleancode 扫描重复率预计下降(需重新扫描确认) ## 文档更新 无文档更新,本 PR 仅涉及源代码 (.cpp) 的顺序调整。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:cleancode 重复率修复 ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!5538 | 25 天前 | |
init | 1 年前 | |
整改st目录下的atk用例统一目录格式 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !2579 merge master into master 整改st目录下的atk用例统一目录格式 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 整改st目录下的atk用例统一目录格式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1538 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:st用例目录整改 See merge request: cann/ops-math!2579 | 4 个月前 | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 9 个月前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 14 天前 |
Flatten
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:将输入Tensor基于给定的axis扁平化为一个2D的Tensor。
- 计算公式:
- 若输入self的shape为(d₀, d₁, ..., dₙ),则输出out的shape为(d₀×d₁×...×dₐₓᵢₛ₋₁, dₐₓᵢₛ×dₐₓᵢₛ₊₁×...×dₙ)
- 若axis取值为0,则输出out的shape为(1, d₀×d₁×...×dₙ)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| self | 输入张量 | 输入张量,支持非连续的Tensor,2D~8D。 | INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL、BFLOAT16、FLOAT、FLOAT16 | ND |
| axis | 输入属性 | flatten计算的基准轴,取值范围为[-self.dim(), self.dim()-1],目前仅支持axis = 1。 | INT64 | - |
| out | 输出张量 | 输出2D张量,支持非连续的Tensor。 | INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、BOOL、BFLOAT16、FLOAT、FLOAT16 | ND |
约束说明
- 输入张量的维度不能大于8。
- axis必须在有效的维度范围内。
- 输入和输出的数据类型必须一致。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_flatten | 通过aclnnFlatten接口方式调用Flatten算子。 |