| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
增加is_close算子下一代实现 Co-authored-by: ly_cann_coder<liyao152@huawei.com> # message auto-generated for no-merge-commit merge: !590 merge dev into master 增加is_close算子下一代实现 Created-by: ly_cann_coder Commit-by: ly_cann_coder Merged-by: cann-robot Description: ## 描述 is_close算子下一代实现,该算子返回一个带有布尔元素的新张量,判断给定的self和other是否彼此接近,如果值接近,则返回True,否则返回False。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/ops-math/issues/384 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!590 | 7 个月前 | |
math仓算子代码整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !881 merge math_op_back_1 into master math仓算子代码整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 math仓算子代码整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!881 | 7 个月前 | |
refactor: 重构ClipByValue算子arch35 tiling代码 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !3169 merge master into master refactor: 重构ClipByValue算子arch35 tiling代码 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 重构ClipByValue算子arch35架构下的tiling代码,涵盖clip_by_value_single_dim_tiling、clip_by_value_tiling、clip_by_value_ub_broadcast_tiling及clip_by_value_v2_tiling四个模块。 ### 改动原因 1. 原代码使用 reinterpret_cast获取CompileInfo,存在类型安全隐患 2. 部分参数命名不一致(如dtypeX与xDtype混用) 3. 超大函数(如GetShapeAttrsInfo、DoOpTiling、DoBroadcastTiling)职责过多,可读性和可维护性差 4. 存在魔法数字(如128、256、512),缺少语义化常量 5. 部分成员变量未初始化 ### 改动方法 1. **消除reinterpret_cast**:统一使用模板方法context_->GetCompileInfo<ClipByValueCompileInfo>()替代原始指针转换 2. **统一参数命名**:将dtypeX/dtypeY统一为xDtype/yDtype 3. **拆分超大函数**: - GetShapeAttrsInfo() → CheckDtypesAndGetSize() + DoDimensionCollapse() + DetermineSigDimMode() - DoOpTiling() → CalcInitialUbParams() + CalcBlockParams() + AdjustForLowUtilization() - DoBroadcastTiling() → FindComputeParams() + CalcUbSplitParams() + CalcUbTailParams() + CalcBlockSplitParams() - 提取CopyAndSetDimsStrides()方法 4. **引入命名常量**:CACHELINE_SIZE、OUTPUT_INDEX、BUFFER_DIVISOR_BITS16/32/64、UB_BROADCAST_TILE_COUNT、UB_BROADCAST_TILE_SIZE等替代魔法数字 5. **成员变量初始化**:coreNum、ubSize、opKey、blockNum等添加默认值{0} 6. **类型修正**:coreNum从uint32_t改为int64_t以匹配上游接口 7. **增强安全检查**:新增dTypeSize == 0、curProduct == 0、blockFormer == 0等零值保护 ## 关联的Issue - #1917 ## 测试 待补充 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构 See merge request: cann/ops-math!3169 | 2 个月前 | |
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 | 8 个月前 | |
Math仓算子新增Golden文件,方便算子质量看护和精度测试。 Co-authored-by: moonw0lf<duanlian11@h-partners.com> # message auto-generated for no-merge-commit merge: !1782 merge dl_ttk_to_math into master Math仓算子新增Golden文件,方便算子质量看护和精度测试。 Created-by: moonw0lf Commit-by: moonw0lf Merged-by: cann-robot Description: ## 描述 Math仓算子新增Golden文件,方便算子质量看护和精度测试。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/1040 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1782 | 5 个月前 | |
适配PG short_soc_version Co-authored-by: xufeng12121<1074805447@qq.com> # message auto-generated for no-merge-commit merge: !2804 merge mc62 into master 适配PG short_soc_version Created-by: xufeng12121 Commit-by: xufeng12121 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子适配PG特性,将math仓 mc62cm12a/MC62CM12A 改成 mc62/MC62 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1732 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2804 | 3 个月前 | |
aidd_docs_fix Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !2239 merge masteraidddocsfix into master aidd_docs_fix Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复aidd扫描文档中的错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#1263](https://gitcode.com/cann/ops-math/issues/1263) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及代码修改,只更新文档 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 大部分文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2239 | 4 个月前 |
ClipByValue
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能: 将输入的所有元素限制在[clipValueMin,clipValueMax]范围内,若元素大于clipValueMax则限制为clipValueMax,若元素小于clipValueMin则限制为clipValueMin,否则等于元素本身。
- 计算公式:
yi=max(min(xi,max_valuei),min_valuei){y}_{i} = max(min({{x}_{i}},{max\_value}_{i}),{min\_value}_{i}) yi=max(min(xi,max_valuei),min_valuei)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入张量。 | INT8、INT16、INT32、INT64、UINT8、UINT16、 FLOAT16、FLOAT、DOUBLE、BOOL、BFLOAT16、COMPLEX32、COMPLEX64、COMPLEX128 |
ND |
| clip_value_min | 输入 | 限制元素范围的最小值。 | 同输入张量x | ND |
| clip_value_max | 输入 | 限制元素范围的最大值。 | 同输入张量x | ND |
| y | 输出 | 将输入张量x裁剪后的输出张量。 | 同输入张量x | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_clip_by_value | 通过算子IR构图方式调用clip_by_value算子。 |