| Files | Last commit | Last update |
|---|---|---|
docs: 修复注释与文档不一致(batch_to_space_nd、broadcast_to、chunk_cat 文件注释) Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !6596 merge docs/comment-cleanup-20261022-01 into master docs: 修复注释与文档不一致(batch_to_space_nd、broadcast_to、chunk_cat 文件注释) Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 修正以下文件的注释与实际代码不一致问题,仅修改注释,不涉及业务逻辑、接口行为或配置默认值。 - conversion/batch_to_space_nd/op_kernel/arch35/batch_to_space_nd_large_c.h:\file 注释由 batch_to_space_largec.h 修正为 batch_to_space_nd_large_c.h。 - conversion/batch_to_space_nd/op_kernel/arch35/batch_to_space_nd_small_c.h:\file 注释由 batch_to_space_smallc.h 修正为 batch_to_space_nd_small_c.h。 - conversion/broadcast_to/examples/test_geir_broadcast_to.cpp:\file 注释由 test_geir_add.cpp 修正为 test_geir_broadcast_to.cpp。 - conversion/chunk_cat/op_api/aclnn_chunk_cat.cpp:\file 注释由 aclnn_cat.cpp 修正为 aclnn_chunk_cat.cpp。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3816 ## 测试 - [x] git diff --check(CRLF-aware)通过 - [x] 本地 OAT 合规检查通过(含本 PR 文件的 203 文件批次) - [x] git clang-format --diff 对本次修改行无建议 - [x] Markdown 链接/锚点/围栏检查通过(本 PR 不涉及 Markdown) - [ ] 编译/UT 未运行:仅注释变更,无代码逻辑变化 ## 文档更新 无独立文档文件更新;本次仅修正上述源文件的注释。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## 待确认项 无。 See merge request: cann/ops-math!6596 | 19 days ago | |
迁移开源TF插件--conversion Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4310 merge transfer-conversion into master 迁移开源TF插件--conversion Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4310 | 2 months ago | |
feat: BroadcastTo算子新增ascend960平台支持及HIFLOAT4数据类型 Co-authored-by: tan_xin<tanxin44@huawei.com> # message auto-generated for no-merge-commit merge: !6365 merge master-v121 into master feat: BroadcastTo算子新增ascend960平台支持及HIFLOAT4数据类型 Created-by: tan_xin Commit-by: tan_xin Merged-by: cann-robot Description: ## 描述 BroadcastTo 算子新增 ascend960 平台支持,并扩展 FP4/HIFLOAT4 数据类型支持。具体改动如下: - conversion/broadcast_to/CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend960 编译单元。 - op_host/broadcast_to_def.cpp:为 ascend960 注册 AICore 配置;xDType 新增 DT_FLOAT4_E2M1、DT_FLOAT4_E1M2、DT_HIFLOAT4、DT_HIFLOAT4_SCALE。 - op_api/broadcast_to.cpp:新增 ASCEND960dt_AICORE_DTYPE_SUPPORT_LIST(含 FP4 类型),并针对 DAV_9201/DAV_9202(ascend960dt)架构进行数据类型校验。 - op_graph/broadcast_to_proto.h:x/y 输入输出类型注册新增 DT_FLOAT4_E2M1、DT_FLOAT4_E1M2、DT_HIFLOAT4、DT_HIFLOAT4_SCALE。 - op_host/arch35/broadcast_to_tiling_base.cpp/h:FP4 输入时校验最后一维为偶数,并将最后一维除以 2;FP4 的 dtypeSize 按 DT_INT8 计算。 - op_host/config/ascend960dt/broadcast_to_binary.json:新增 4bit hifloat4 的 int32/int64 bin 配置。 - 新增 op_host/config/ascend960pr/broadcast_to_binary.json 与 broadcast_to_simplified_key.ini:ascend960平台二进制配置。 - README.md:更新支持的数据类型说明。 - math/tile/op_host/tile_infershape.cpp:修复 multiples 索引错误(multiples_data[i] → multiples_data[multiples_index])。 ## 关联的Issue - #3766 ## 测试 已通过算子泛化及冒烟验证(由 CI 覆盖)。 ## 文档更新 - conversion/broadcast_to/README.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6365 | 20 days ago | |
feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Co-authored-by: yangjinhan<yangjinhan@huawei.com> # message auto-generated for no-merge-commit merge: !6644 merge feat/register-infer-datatype into master feat(infershape): 补齐 12 个算子 op_graph InferDataType 注册 Created-by: Ruyue1550 Commit-by: yangjinhan Merged-by: cann-robot Description: ## 描述 按 RT1.0 到 RT2.0 推导框架迁移方案第 1 步(补齐缺失的 InferDataType 注册,零行为变更)要求,为 12 个缺失 InferDataType 注册的算子新增 op_graph/*_graph_infer.cpp 注册文件。本次变更只新增文件、不修改任何存量代码,共 12 个文件、240 行。 ### 改动点 | # | 算子 | 新增文件 | 注册方式 | |---|------|---------|---------| | 1 | Pad | conversion/pad/op_graph/pad_graph_infer.cpp | InferDataTypeOutputSameAsInput | | 2 | PadV2 | conversion/pad_v2/op_graph/pad_v2_graph_infer.cpp | 同上 | | 3 | PadV3 | conversion/pad_v3/op_graph/pad_v3_graph_infer.cpp | 同上 | | 4 | PadV3Grad | conversion/pad_v3_grad/op_graph/pad_v3_grad_graph_infer.cpp | 同上 | | 5 | MirrorPad | conversion/mirror_pad/op_graph/mirror_pad_graph_infer.cpp | 同上 | | 6 | BroadcastTo | conversion/broadcast_to/op_graph/broadcast_to_graph_infer.cpp | 同上 | | 7 | Transpose | conversion/transpose/op_graph/transpose_graph_infer.cpp | 同上 | | 8 | Rint | math/rint/op_graph/rint_graph_infer.cpp | 同上 | | 9 | TruncateDiv | math/truncate_div/op_graph/truncate_div_graph_infer.cpp | 同上 | | 10 | Expand | math/expand/op_graph/expand_graph_infer.cpp | 同上 | | 11 | GetShape | math/get_shape/op_graph/get_shape_graph_infer.cpp | 专门推导,输出固定 INT32 | | 12 | HistogramFixedWidth | math/histogram_fixed_width/op_graph/histogram_fixed_width_graph_infer.cpp | 专门推导,输出固定 INT32 | ### 改动原因 1. 背景:RT2.0 V2 路径的 dtype 推导在未注册 InferDataType 时依赖 IR(proto/def 的 TensorType)符号映射兜底。以显式注册替代隐式兜底,使推导逻辑代码自明、不依赖 IR 声明的隐式行为,并为后续推导框架切换就位 op_graph 注册设施。 2. dtype 语义逐算子以 RT1.0 SetDataType 为基线核对(迁移原则:非算子语义变更): - 上述 #1-#10 共 10 个算子的 canndev RT1.0 实现均为 SetDataType(input_dtype)(取输入 x 的类型,const/非 const/未知 rank 各分支一致),输出 dtype 跟随输入,故注册仓内公共推导函数 InferDataTypeOutputSameAsInput,与本仓已有 Tile/Erfc/TruncateMod 注册同构; - GetShape、HistogramFixedWidth 的 RT1.0 实现硬编码 SetDataType(DT_INT32),输出为形状值/直方图计数,与输入 dtype 无关,故注册输出固定 INT32 的专门推导,与两者 proto/def 中 OUTPUT(y, TensorType({DT_INT32})) 声明一致。 3. 零行为变更:注册结果与 IR 符号推导兜底结果一致,不改变任何现网推导行为。 4. 构建零改动:op_graph/*.cpp 由 CMake GLOB_RECURSE 自动收集(cmake/func.cmake),无需修改 CMakeLists。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4099 ## 测试 - 本地无 CANN 构建环境,未执行编译与 UT,请通过门禁验证(评论 compile 触发 CI) - 已完成静态核对:13 个注册的 dtype 语义与 canndev RT1.0 SetDataType 逐分支一致、与各算子 proto/def 输出声明一致、与本仓已有同款注册(tile/erfc/truncate_mod/circular_pad)代码风格一致 - UT dtype 断言用例(断言注册结果=兜底结果)可随检视意见补充 ## 文档更新 无需更新文档(纯推导注册代码,无接口与行为变化) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6644 | 14 days ago | |
feat(5162):sqrt\maximum\minimum\tile\exp\reciprocal\neg\logical_not算子适配5162A Co-authored-by: pcmbyn<liuhaiyang42@huawei.com> # message auto-generated for no-merge-commit merge: !6473 merge adapt-5162a-batch2 into master feat(5162):sqrt\maximum\minimum\tile\exp\reciprocal\neg\logical_not算子适配5162A Created-by: pcmbyn Commit-by: pcmbyn Merged-by: cann-robot Description: ## 描述 sqrt\maximum\minimum\tile\exp\reciprocal\neg\logical_not八算子适配 Ascend5162A,复用 arch35 同源目录追加式完成,共 22 个文件(9 def + 9 CMakeLists + reciprocal kernel 1 + neg/exp/tile op_api 3 格式重排)。 - **统一注册**: *_def.cpp 各追加 1 行 AddConfig("ascend5162a", aicoreConfig)——共享 950 的 config 对象,dtype 注册面与 950 完全一致;CMakeLists.txt 追加 ascend5162a / arch35 - **reciprocal kernel**:删除冗余 include "atvoss/reduce/reduce_sch.h"(本算子仅用 ElementwiseSch、全文零 reduce 引用;该头传递引入的 reduce_operator.h 中 CeilDivision 缺 __simd_callee__ 属性,dav-516 上编译报错) - **neg/exp/tile op_api**:仅 clang-format 重排(历史代码规范格式化残留,功能零差异) - **broadcast_to 依赖注册**:tile 的 tiling 复用 broadcast_to 的 tiling 基类(TileCompileInfo = BroadcastToCompileInfo,CMakeLists DEPENDENCIES broadcast_to),不注册 broadcast_to 会导致 5162a 的 libophost_math.so 未定义符号、整库加载失败——随本 MR 补齐注册,kernel 侧无改动 - **其余零改动**:sqrt/maximum/minimum/exp/neg/logical_not 的 kernel 与全部 tiling 零修改 ## 关联的Issue [[Requirement|需求建议]: sqrt\maximum\minimum\tile\exp\reciprocal\neg\logical_not算子适配5162](https://gitcode.com/cann/ops-math/issues/3656) ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6473 | 6 days ago | |
fix(broadcast_to,pad_v3): TILING_KEY_IS 内联函数补充 static 关键字 Co-authored-by: guyunlong1<guyunlong1@huawei.com> # message auto-generated for no-merge-commit merge: !6308 merge fix/issue-3548-tiling-key-inline-static-20261013-143632-P0800 into master fix(broadcast_to,pad_v3): TILING_KEY_IS 内联函数补充 static 关键字 Created-by: guyunlong1 Commit-by: guyunlong1 Merged-by: cann-robot Description: ## 描述 kernel 编码中,使用 TILING_KEY_IS 宏的内联函数依赖编译单元内的 tiling key 状态,缺少 static(内部链接)时,-g -O0 场景下可能进入错误的内联函数实现,导致精度问题。 本 PR 为以下两处使用 TILING_KEY_IS 宏的内联函数声明添加 static 关键字: 1. conversion/broadcast_to/op_kernel/arch35/broadcast_to.h:broadcast_to_impl 由 __aicore__ void inline 改为 static __aicore__ inline 2. conversion/pad_v3/op_kernel/arch35/pad_slice.h:RunPadSliceProcess 由 __aicore__ inline 改为 static __aicore__ inline 经扫描,#if TILING_KEY_VAR 形态当前全仓无命中;broadcast_to、pad_v3 两个算子目录内无其他同类遗漏。 ## 关联的Issue Closes https://gitcode.com/cann/ops-math/issues/3548 ## 测试 - bash build.sh --opkernel --soc=ascend950 --ops=broadcast_to,pad_v3 编译通过(Build binary success),BroadcastTo、PadV3 内核正常生成。 - 纯函数声明添加 static 关键字,不改变函数实现与调用方式,算子功能与精度不受影响。 ## 文档更新 - 无 ## 类型标签 - [x] Bug修复 See merge request: cann/ops-math!6308 | 27 days ago | |
[BugFix] 拦截BroadcastTo非法负维 Co-authored-by: zhouyuanhang30083383<zhouyuanhang4@h-partners.com> # message auto-generated for no-merge-commit merge: !6856 merge fix/le-scalar-out-dtype-and-broadcast-to-neg-dim into master [BugFix] 拦截BroadcastTo非法负维 Created-by: m0_55003149 Commit-by: zhouyuanhang30083383 Merged-by: cann-robot Description: ## 描述 修正 BroadcastTo 对目标 shape 中非法负值的处理: - 在 _shape_values 属性路径和常量 shape Tensor 路径中统一校验目标维度; - 允许 -1、0 和正数,拒绝小于 -1 的维度; - 保留现有广播规则、空 Tensor 和动态 shape 行为; - 补充 infershape UT 覆盖 INT32/INT64 的非法负维。 本 PR 不再包含 LeScalar/#3880 的修改。 ## 关联的 Issue [Fixes #3852](https://gitcode.com/cann/ops-math/issues/3852) ## 测试 - git diff --check 通过; - 新增 BroadcastTo infershape UT 覆盖 -2 等非法负维。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6856 | 11 days ago | |
[feat]新增适配 5162A 的conversion类算子 Co-authored-by: DF_weiming<zhangyiheng21@huawei.com> # message auto-generated for no-merge-commit merge: !6384 merge master into master [feat]新增适配 5162A 的conversion类算子 Created-by: DF_weiming Commit-by: DF_weiming Merged-by: cann-robot Description: ## 描述 本 PR 为 5162A(ascend5162a)平台新增 conversion类算子的适配。包含算子的入口注册,此外由于 5162A 不支持 SIMT 硬件,也需要在 kernel/tiling 侧通过:编译期宏 __CCE_AICORE_SUPPORT_SIMT__ 和 host 侧运行期判断 Ops::Math::OpTiling::IsSimtSupported(...) 隔离原 SIMT分支 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3593 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6384 | 7 days ago | |
modify aclnn_sinc errorcode and BroadcastTo README Co-authored-by: t00850857<tanxin44@huawei.com> # message auto-generated for no-merge-commit merge: !6159 merge master-sinc into master modify aclnn_sinc errorcode and BroadcastTo README Created-by: tan_xin Commit-by: t00850857 Merged-by: cann-robot Description: ## 描述 本PR为两处文档修改,不涉及代码逻辑: ### 1. 修改 aclnn_sinc.cpp错误码 - **错误码/返回码说明整改**:统一规范 aclnnStatus 返回状态码说明,正确引用 [aclnn返回码] 上下文文档(aclnn_return_code.md),覆盖 aclnnSincGetWorkspaceSize / aclnnSinc / aclnnInplaceSincGetWorkspaceSize / aclnnInplaceSinc 全部两段式接口 ### 2. 修改 BroadcastTo README(支持的数据类型与算子定义对齐) conversion/broadcast_to/README.md - x 支持的数据类型与 op_host/broadcast_to_def.cpp 中 xDType 注册列表对齐: - 删除 def 中**未注册**的类型:DOUBLE、UINT16、UINT64、COMPLEX32、COMPLEX64、COMPLEX128、QINT8、QUINT8、QINT16、QUINT16、QINT32、STRING - 保留 def 实际注册的 13 种:INT8、INT16、INT32、INT64、UINT8、UINT32、FLOAT16、BF16、FLOAT、BOOL、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN ## 关联的Issue (https://gitcode.com/cann/ops-math/issues/3359) ## 测试 - 纯文档变更,不涉及代码逻辑,无需新增测试用例 - 已自查文档内相对路径链接可达(两段式接口/非连续Tensor/数据格式/数据类型推导/aclnn返回码等上下文文档) - markdownlint 通过 ## 文档更新 - [x] conversion/broadcast_to/README.md ## 类型标签 - [x] 文档更新 See merge request: cann/ops-math!6159 | 1 month 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 |
BroadcastTo
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: broadcasts the input tensor to the specified shape. If the input tensor has the shape (1, 4) and the specified shape is (2, 4), the output is a tensor with the shape (2, 4).
Parameter Description
| Parameter Name | Input/Output/Attribute | Description | Data Type | Data Format |
|---|---|---|---|---|
| x | Input tensor | Tensor to be broadcast. | INT8, INT16, INT32, INT64, UINT8, UINT32, FLOAT16, BF16, FLOAT, BOOL, HIFLOAT8, FLOAT8_E5M2, FLOAT8_E4M3FN | ND |
| shape | Input tensor | Shape of x after broadcasting. | INT64, INT32 | - |
| y | Output | The number of dimensions does not exceed 8, the shape is determined by the shape input, and the dtype must be the same as x. | Same as x | ND |
Constraint Description
None
Invocation Description
| Invocation Method | Sample Code | Description |
|---|---|---|
| Graph-mode invocation | test_geir_broadcast_to | Invokes the broadcast_to operator by building a graph through the operator IR. |