| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat:add dawse operate Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !3432 merge mhf_ascendc_dawsn into master feat:add dawse operate Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 描述 A5新增Dawsn算子,算子竞品为Tensorflow,仅涉及GEIR通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 TTK、冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3432 | 2 个月前 | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 1 个月前 | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 14 天前 | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 14 天前 | |
【dawsn】修复Seg2分段被Seg3掩码覆盖导致错误公式及inf输出、空tensor越界挂死问题 Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !5514 merge fix-dawsn-seg2-reselect-and-empty-guard into master 【dawsn】修复Seg2分段被Seg3掩码覆盖导致错误公式及inf输出、空tensor越界挂死问题 Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 问题背景 TTK cross_check L1 三方精度测试(NPU vs fp64 golden vs GPU/TF,A100)发现 Dawsn kernel 两个真实缺陷: ### 缺陷1:Seg2 分段被 Seg3 掩码覆盖(精度缺陷) - 分段掩码 maskSeg2 = (|x| < 6.25) 与 maskSeg3 = (|x| <= 1e9) **非互斥**,[3.25, 6.25) 带通道同时命中两者 - 级联 Select 顺序为 Seg1→Seg2→Seg3→Seg4→Seg1重选:Seg2 带先写入正确的 BN/BD 结果,随后被 Seg3 的 CN/CD Select **覆盖为错误公式值** - 严重后果:CN/CD 多项式在 x≈±4.209431 处存在几乎重合的根(z 根相差 8 位有效数字),fp32 Horner 下分母 CD 舍入到 0 → **该点输出 inf** - 原作者已通过末尾 Seg1 重选补偿 Seg1 带被覆盖的问题,但**遗漏了 Seg2 的重选**(本修复对称补上) ### 缺陷2:空 tensor 越界挂死(稳定性缺陷) - blockLength_ == 0(空 tensor)时 Process() 无保护:CopyIn(0, ubLength_) 越界读 + CopyOut(-1, ubLength_) **负偏移写**,导致设备 AIC 100% 挂死 ## 修复方案 1. **Seg2 重选**(7 行):仿照既有 Seg1 补偿模式,在 Seg3 Select 后重算 Seg2 公式(BN/BD Horner + SEG23_FORMULA)并用 maskSeg2 重选,使 [3.25, 6.25) 通道的最终写入者为正确公式。修复后各带"最后写入者":Seg1 带由 Seg1 重选(AN/AD)、Seg2 带由 Seg2 重选(BN/BD)、Seg3 带由 Seg3(CN/CD)、Seg4 带由 Seg4(0.5/|x|),全带正确 2. **空 tensor 保护**(5 行):Process() 入口 blockLength_ <= 0 早退 ## 验证(TTK cross_check L1,seed=42,三方口径) | 通路 | 用例 | 修复前 | 修复后 | |------|------|--------|--------| | kernel cross_check | L1_211 / L1_222 | FAIL(inf 各 1 个,mare 80663/55874) | **PASS**(mare 1.21/1.14,阈值 10) | | GEIR isclose | L1_211 / L1_222 | 99.9994% | **100.0%** | - 定向缺陷探针:inf 0 个(原 9 个);原触发点 ±4.209431 输出 ±0.1224674(rel~4e-8);[3.25,6.25) 段 max rel 3.6e-7(修复前 3.03% 元素超 1e-4) - 同输入逐位重放:13.68% 元素变化 **100% 落在 [3.25, 6.25)**,带外逐位不变——影响范围精确受控 - 一致性核验:修复后 kernel vs golden(TF fp64)54 个 Cephes 系数 fp64 下逐位相同(0 ulp),全段 0 ulp - 全量 388 例:kernel 通路 375 PASS + 13 例 mega 用例(≥3.5GB)因远端 GPU 服务器 300s 传输 deadline 不可行(环境限制,NPU 侧本身正常),**精度失败 0** ## 变更范围 仅 1 个文件:math/dawsn/op_kernel/arch35/dawsn_kernel.h(+14 行,0 删除),对其他算子零影响。 See merge request: cann/ops-math!5514 | 12 天前 | |
feat:add dawse operate Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !3432 merge mhf_ascendc_dawsn into master feat:add dawse operate Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 描述 A5新增Dawsn算子,算子竞品为Tensorflow,仅涉及GEIR通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 TTK、冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3432 | 2 个月前 | |
feat:add dawse operate Co-authored-by: Miao_Haifeng<miaohaifeng@huawei.com> # message auto-generated for no-merge-commit merge: !3432 merge mhf_ascendc_dawsn into master feat:add dawse operate Created-by: Almost_CANN Commit-by: Miao_Haifeng Merged-by: cann-robot Description: ## 描述 A5新增Dawsn算子,算子竞品为Tensorflow,仅涉及GEIR通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 TTK、冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3432 | 2 个月前 | |
产品名变更 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 | 1 天前 |
Dawsn
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算Dawson积分 F(x) = exp(-x^2) * integral_0^x exp(t^2) dt。
-
计算公式:
F(x)=e−x2∫0xet2dtF(x) = e^{-x^{2}} \int_{0}^{x} e^{t^{2}} \mathrm{d}t F(x)=e−x2∫0xet2dt
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行Dawson积分计算的入参,公式中的x。 | BFLOAT16、FLOAT16、FLOAT | ND |
| y | 输出 | Dawson积分计算的出参,公式中的F(x)。 | BFLOAT16、FLOAT16、FLOAT | ND |
约束说明
- 不支持DOUBLE(FP64)数据类型。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_dawsn | 通过图模式调用Dawsn算子。 |