| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs目录基本概念md文件名改为英文 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !4182 merge master into master docs目录基本概念md文件名改为英文 Created-by: gitcode-chenjiao Commit-by: chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2283](https://gitcode.com/cann/ops-math/issues/2283) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4182 | 23 天前 | |
abs等算子A5实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !495 merge develop into master abs等算子A5实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 新增以下算子的A5实现 |序号| 算子 | 功能 | |--|--|--| |1| abs | 为输入张量的每一个元素取绝对值 | |2| add | 对输入完成相加操作 | |3| addcdiv | 张量运算函数,用于执行乘除加组合操作,将张量除法(带缩放)+ 张量加法合并为单个操作 | |4| addcmul | 张量运算函数,用于执行乘除加组合操作,将张量乘法(带缩放)+ 张量加法合并为单个操作 | |5| axpy | 源操作数中每个元素与标量求积后和目的操作数中的对应元素相加 | |6| bincount | 计算非负整数数组中每个数的频率 | |7| ceil | 返回输入tensor中每个元素向上取整的结果 | |8| clip_by_value_v2 | 将输入的所有元素限制在一定范围内 | |9| concat | 用于沿指定维度将多个输入 Tensor 进行拼接,输出包含所有输入数据按顺序拼接后的 Tensor | |10| concat_v2 | 用于沿指定维度将多个输入 Tensor 进行拼接,输出包含所有输入数据按顺序拼接后的 Tensor | |11| equal | 计算两个Tensor是否有相同的大小和元素,返回一个Bool类型 | |12|exp|返回一个新的张量,该张量的每个元素都是输入张量对应元素的指数| |13| fill | 对张量进行填充操作,支持非连续的Tensor操作 | |14| floor | 返回输入Tensor中每个元素向下取整,并将结果回填到输入Tensor中 | |15| floor_div | 完成除法计算,对余数向下取整 | |16| floor_mod | 用于计算两个数的模 | |17| is_neg_inf | 判断输入张量的元素是否为负无穷 | |18| is_pos_inf | 判断输入张量的元素是否为正无穷 | |19| less | 判断输入self中的每个元素是否小于输入other的值,返回一个Bool类型的Tensor | |20| less_equal | 判断输入self中的元素值是否小于等于other的值,并将self的每个元素的值与other值的比较结果写入out中 | |21| logical_and | 对两个输入张量的对应元素执行「与逻辑」判断,输出布尔型张量(True/False) | |22| log | 对输入张量x的元素,逐元素进行对数计算,并将结果保存到输出张量y中 | |23| not_equal | 逐元素比较两个输入张量是否不相等 | |24| ones_like | 返回形状和类型相同的张量,所有元素都设置为1 | |25|sign|对输入的tensor逐元素进行Sign符号函数的运算并输出结果tensor| |26| sqrt | 完成非负数平方根计算,负数情况返回nan | |27| sqrt_grad | 完成梯度平方根计算 | |28| square | 为输入张量的每一个元素计算平方值 | |29| squared_difference | 为第一个输入张量减去第二个输入张量,并计算其平方值 | |30| tanh | 激活函数,返回与输入tensor shape相同的tensor,对输入tensor进行elementwise的计算 | |31| tril | 将输入的self张量的最后二维(按shape从左向右数)沿对角线的右上部分置零 | |32| triu | 将输入的self张量的最后二维(按shape从左向右数)沿对角线的左下部分置零 | |33| zeros_like | 将张量填充为全零 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!495 | 7 个月前 | |
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 | 5 个月前 | |
Modify the array description of bincount Co-authored-by: zhaopei16<zhaopei16@huawei.com> # message auto-generated for no-merge-commit merge: !1172 merge master into master Modify the array description of bincount Created-by: zhaopei16 Commit-by: zhaopei16 Merged-by: cann-robot Description: ## 描述 修改了Bincount原型的描述 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/676 ## 测试 NA ## 文档更新 NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ x] 其他,请描述:修改原型的描述 See merge request: cann/ops-math!1172 | 6 个月前 | |
修复bincount算子部分用例场景timeout问题 Co-authored-by: zhengyuchuan2024<zhengyuchuan1@huawei.com> # message auto-generated for no-merge-commit merge: !3310 merge bincout_timeout into master 修复bincount算子部分用例场景timeout问题 Created-by: zhengyuchuan2024 Commit-by: zhengyuchuan2024 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复bincount算子部分用例场景timeout问题,修改对应场景调用的模板分支 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2088 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟和ST泛化通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3310 | 1 个月前 | |
fix(bincount): correct UB offset in weighted BATCH_LOAD path Co-authored-by: huang-qiang<huangqiang3@huawei.com> # message auto-generated for no-merge-commit merge: !3111 merge fix/bincount-batchload-weighted-ub-oob into master fix(bincount): correct UB offset in weighted BATCH_LOAD path Created-by: huang-qiang Commit-by: huang-qiang Merged-by: cann-robot Description: ## 描述 修复 Bincount 算子(arch35 / A5)带权 BATCH_LOAD 路径的 UB 写越界缺陷。 op_kernel/arch35/bincount_simt_not_full_load_ub.h 中 UbSimtComputeWithWeightLoop 的原子累加使用了**全局 bin 下标 arrayValue** 去寻址 per-UB-tile 的局部缓冲 yLocalAddr,而正确做法应使用 **tile 内偏移 arrayOffset**(= arrayValue - currentLoopMinAddr)。 当 ubLoop >= 1(输出 bins 跨多个 UB 分片)时,arrayValue 超出当前分片长度 availableUbSize,导致写穿 UB 缓冲区,触发 AICORE vector core exception (device error type 3 / 507035)。无权重版本 UbSimtComputeLoop 本就正确使用 arrayOffset,本次改动将带权版本与其对齐。 改动(1 行): diff int64_t arrayOffset = arrayValue - currentLoopMinAddr; - asc_atomic_add(yLocalAddr + arrayValue, weightGmAddr[arrayAicoreOffset + index]); + asc_atomic_add(yLocalAddr + arrayOffset, weightGmAddr[arrayAicoreOffset + index]); 触发条件(GM_ATOMIC_ADD_FACTOR=100):有 weights、(array+weights) > bins/100 (选中 SCH_ID_SIMT_BATCH_LOAD)、且 bins 跨多个 UB 分片。与 int32 越界无关 (tiling/kernel 索引均为 int64),小规模即可复现。 ## 关联的Issue <!-- 暂无,如需请补充 Issue / 问题单号 --> ## 测试 基于 ops-test-kit(TTK)在 A5 / arch35(Ascend950PR)上做了 Kernel 模式在线编译验证: - bincount_w_batchload_oob(array=1M, minlength=2M, fp32 weights,tiling key 0x10001 = BATCH_LOAD 带权路径): - 修复前:vector core exception,NO_OUTPUT,STATUS FAIL; - 修复后:**STATUS PASS,golden 100%**(DYN/CST 均通过),vector core exception 消失。 - bincount_w_fullload_ctrl(小 bins → FULL_LOAD 单分片,对照):修复前后均 PASS。 - 另用 torch.bincount(CPU 标杆)E2E 对比脚本复现同一现象。 (注:本环境 cgroup 单进程内存上限 32GB,2^31 超大规格用例 bincount_w_giant_spec 因 host 造数据 OOM 无法跑完,但其与上述用例为完全相同代码路径,修复对其同样有效。) ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3111 | 2 个月前 | |
补充算子st用例 Co-authored-by: gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !3513 merge 0624 into master 补充算子st用例 Created-by: gcw_CRjbEjwl Commit-by: gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1、新增算子st用例 2、修复bincout的标杆函数 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地使用ttk测试,用例通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-math!3513 | 1 个月前 | |
Arch编码更新 Co-authored-by: liulinxiang<liulinxiang1@huawei.com> # message auto-generated for no-merge-commit merge: !992 merge master1 into master Arch编码更新 Created-by: liulinxiang Commit-by: liulinxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!992 | 6 个月前 | |
doc Tools扫描错误修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !1899 merge master into master doc Tools扫描错误修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描错误修改 See merge request: cann/ops-math!1899 | 4 个月前 |
Bincount
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/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 |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_bincount | 通过aclnnBincount接口方式调用Bincount算子。 |