| Files | Last commit | Last update |
|---|---|---|
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 13 days ago | |
Bincount示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Co-authored-by: zhouqilong<zhouqilong2@huawei.com> # message auto-generated for no-merge-commit merge: !4657 merge raii-bincount into master Bincount示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 Created-by: zhou-qilong Commit-by: zhouqilong Merged-by: cann-robot Description: ## 描述 将 math/bincount/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finite、math/is_inf 示例风格保持一致。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2654 ## 测试 未在 Ascend 环境实际编译运行;改动结构与已合并的 is_inf(PR #4531)一致。 ## 文档更新 无。 ## 类型标签 - [x] 其他,请描述:示例代码改造(C++ RAII资源管理) See merge request: cann/ops-math!4657 | 2 months ago | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 3 months ago | |
some aclnn add format warning Co-authored-by: chenxingyu18<chenxingyu18@huawei.com> # message auto-generated for no-merge-commit merge: !1524 merge master into master some aclnn add format warning Created-by: chenxingyu18 Commit-by: chenxingyu18 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> acos/add/asin/asinh/atan/atanh/bincount/cos/ger/sin/sinh/tan/tanh等接口增加资料中不支持的数据格式输入时的warning日志 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/894 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 通过功能测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1524 | 8 months ago | |
bincount算子增加输入限制 Co-authored-by: wkx12138<weikaixuan@h-partners.com> # message auto-generated for no-merge-commit merge: !5952 merge bincount into master bincount算子增加输入限制 Created-by: wkx12138 Commit-by: wkx12138 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Bincount算子资料中缺少输入数据范围的约束导致构造用例不适用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3298 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 按照限制可成功构造用例,用例本地验证pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5952 | 1 month ago | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 25 days ago | |
fix(docs): 修正 bincount/angle_v2/top_k_v2 中 ouput 拼写(应为 output) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5948 merge fix/3293-output-typos into master fix(docs): 修正 bincount/angle_v2/top_k_v2 中 ouput 拼写(应为 output) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 bincount 两个 kernel 文件注释(3 处)、angle_v2 tiling 注释(7 处同型)及 top_k_v2 未使用参数名 ouputLastDimValue 中,output 均被拼写为 ouput。统一修正,仅涉及注释与未使用参数名,不影响任何逻辑。 ## 关联的Issue 关联Issue #3293(注:issue 中抽样 2 处,angle_v2 实际含 7 处同型注释,已一并修复,全仓该模式已清零) ## 测试 - 纯注释文本与未使用参数名修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5948 | 1 month ago | |
add aclnn golden Co-authored-by: gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !4593 merge 20260812 into master add aclnn golden Created-by: gcw_CRjbEjwl Commit-by: gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子增加aclnn的golden注册函数,由冒烟流水调用,跑新版ttk用例。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地完成验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-math!4593 | 2 months ago | |
feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Co-authored-by: caorenlei<caorenlei@huawei.com> # message auto-generated for no-merge-commit merge: !6388 merge 1010 into master feat: bincount/adjacent_difference 新增 ascend960dt/ascend960pr 注册级支持 Created-by: caorenlei Commit-by: caorenlei Merged-by: cann-robot Description: ## 描述 bincount、adjacent_difference 两算子新增 ascend960dt/ascend960pr 平台注册级支持(v121 适配)。 ### 改动原因 Ascend960 系列平台上线,算子需同步支持 ascend960dt/ascend960pr 计算单元;适配增量同步自内部仓 cann_out 分支,在 OSS master 基线上叠加。 ### 改动方法(注册级适配,kernel/tiling/aclnn 零改动) 1. **def.cpp 注册**(2 文件):bincount_def.cpp、adjacent_difference_def.cpp 在既有 AddConfig("ascend950"/"ascend350") 后追加 AddConfig("ascend960dt", aicoreConfig) 与 AddConfig("ascend960pr", aicoreConfig),复用同一 aicoreConfig,保留 ascend350 注册不删 2. **config 配置**(8 个新增文件):新增 op_host/config/ascend960dt/、op_host/config/ascend960pr/(2 算子 × 2 芯片 × binary.json + simplified_key.ini),内容与既有 ascend950 配置逐字节一致 3. **CMakeLists**(2 文件):SUPPORT_COMPUTE_UNIT 追加 "ascend960dt" "ascend960pr",SUPPORT_TILING_DIR 等量追加 "arch35"(tiling 复用 arch35) 4. **ascendc_config.json**:Bincount、AdjacentDifference 条目 compute_units 追加 "ascend960dt",compile_options 镜像 ascend950(-mllvm -cce-aicore-dcci-before-kernel-end=false) 5. **.pre-commit-config.yaml**:codespell 忽略列表追加 build-in(config 镜像中 ascend950 既有注释拼写,内容须与 950 逐字节一致不可修改) ## 关联的Issue - #3598 ## 测试 1. **ascend950 编译出包**:bash build.sh --pkg --soc=ascend950 --ops=bincount,adjacent_difference -j8 通过;包内 950 内核齐全(23 个 .o),aic-ascend960dt-ops-info.json 含 Bincount、AdjacentDifference 注册(960 注册生效核验) 2. **950 kernel 零影响硬证据**:适配前后两次编译,23 个 ascend950 kernel .o SHA256 逐字节一致(bit 级不变) 3. **ttk 精度回归 386/386 全 PASS**(Ascend950PR_9579,release 模式,seed=123): - bincount(kernel 级)192/192、adjacent_difference(kernel 级)81/81、aclnnBincount(API 级)113/113 - 正控 PASS / 负控 FAIL,判定链路自证有效 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6388 | 25 days ago | |
bincount算子增加输入限制 Co-authored-by: wkx12138<weikaixuan@h-partners.com> # message auto-generated for no-merge-commit merge: !5952 merge bincount into master bincount算子增加输入限制 Created-by: wkx12138 Commit-by: wkx12138 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Bincount算子资料中缺少输入数据范围的约束导致构造用例不适用。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3298 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 按照限制可成功构造用例,用例本地验证pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5952 | 1 month ago |
Bincount
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算非负整数数组中每个数的频率。minlength为输出tensor的最小size;当weights为空指针时,self中的self[i]每出现一次,则其频率加1,当weights不为空时,self[i]每出现一次,其频率加weights[i],最后存放到out的self[i]+1位置上;因此out大小为(self的最大值+1)与minlength中的最大值。
-
计算公式:
如果n是self在位置i上的值,如果指定了weights,则
out[selfi]=out[selfi]+weightsiout[self_i] = out[self_i] + weights_i out[selfi]=out[selfi]+weightsi
否则:
out[selfi]=out[selfi]+1out[self_i] = out[self_i] + 1 out[selfi]=out[selfi]+1
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| array | 输入 | 输入tensor,公式中的self_i。 | INT32 | ND |
| size | 输入 | 指定输出tensor最小长度。 | INT32 | ND |
| weights | 输入 | 输入tensor的权重,公式中的weights_i。 | FLOAT | ND |
| bins | 输出 | 输出tensor,公式中的out_i。 | FLOAT | ND |
约束说明
- 输入size的值必须大于或等于输入array的最大值+1
- 输出bins的长度与size的值必须相等
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_bincount | 通过aclnnBincount接口方式调用Bincount算子。 |