| Files | Last commit | Last update |
|---|---|---|
[CANNBot]修复Ndtri完善边界处理、形状推导和 GEIR 样例 Co-authored-by: u010470851<shangguanqinnan@huawei.com> # message auto-generated for no-merge-commit merge: !6799 merge fix/ndtri-subnormal-infershape into master [CANNBot]修复Ndtri完善边界处理、形状推导和 GEIR 样例 Created-by: u010470851 Commit-by: u010470851 Merged-by: cann-robot Description: ## 描述 Ndtri 的 FP32/BF16 次正规数结果与边界验收参考不一致,缺少显式 InferShape 注册;tiling 还会错误接受未解析的负维度和元素数乘积溢出的形状。GEIR 样例忽略 dtype 参数、固定生成 FP32 数据,且部分失败路径没有正确检查返回值或释放资源。 - 在特殊值判断前按整数位模式将 FP32/BF16 正、负次正规数转为带符号零,复用零输入返回 -inf 的处理;FP16 跳过该步骤。 - 补充逐元素 InferShape 注册,保持输入输出形状一致,覆盖空张量、动态维度和动态 rank。 - tiling 在计算切分参数前拒绝负维度及元素总数溢出;保留空张量和最多 8 维的合法输入。 - 保留两份 GEIR 样例的原宏、函数、固定形状和值,仅修复 dtype 参数解析、输入编码/输出解码、AddGraph 和文件写入错误检查、临时输入缓冲及 Session 释放。 FP16 转换使用样例内的位级实现,与公共 graph 构建脚本兼容,无需额外链接 ACL 转换库。 ## 关联的Issue 关联的Issue https://gitcode.com/cann/ops-math/issues/4584 ## 测试 环境:950。 - 原始完整尺寸 GEIR 边界用例 8/8 通过;对应 release kernel 8 例也通过。NPU 输出重新采集,CPU/GPU 参考复用此前实测的完整 dump,已校验完整输入 SHA256 一致,按原三方判据比较。 - 普通输入覆盖三种 dtype,元素数 65、65536、1048576;两实现、两轮共 36 次三方精度验证均通过,同组输出逐字节一致。未修改 Golden、原始用例或验收容差。 - 标准命令 bash build.sh --run_example ndtri graph --soc=ascend950 原样通过,两份 GEIR 样例均编译和运行成功;未修改公共构建脚本或增加链接参数。 - 两份 GEIR 样例的 FP32、FP16、BF16 共 6/6 通过;固定形状 (4, 2)、全 0.5 输入及原输出文件名保持不变,核对输入/输出字节数、类型、数值和打印结果。 - 非零输入类型校验 3/3 通过:本地验证副本使用 0.25,核对三种 dtype 的输入编码、结果文件和打印解码;提交样例保持原输入。 - FP16 位级转换对照 Python struct 验证,覆盖全部 65536 种 FP16 位模式、最近偶数舍入边界、随机 FP32 输入和溢出边界;有符号零、次正规数、Inf/NaN 语义均正确。 - 错误路径 7/7 通过:两份样例的非法 dtype、AddGraph 失败、输入 SetData 失败、输入/输出文件打开失败、缓冲写入失败。正常路径及 AddGraph/文件错误路径核对 Session 在 GEFinalize 前释放,输入创建失败时核对 GEFinalize 被调用。 - Host UT 22/22 通过。新增回归先复现了原实现错误接受 3 组负维度形状及 2 组乘积溢出形状,修复后均按预期拒绝;同时回归 8 维合法边界、9 维拒绝及原有测试。 - 当前验证包的真实 GEIR 探针 8/8 通过:8 维、动态维度和动态 rank 正常执行;9 维、INT32/DOUBLE、缺输入按预期拒绝;7 维 NCHW 描述经图通路接受并得到正确结果。 次正规数修复阶段的同包 kernel 性能对照:每次预热 1 次、采样 4 次;普通输入交换顺序测两轮,合并 8 个样本取中位数。原 8 条边界用例耗时增加 0.81%–1.58%(基线精度失败,修复后通过)。普通输入 1048576 元素的结果: | 数据类型 | 修改前(us) | 修改后(us) | 耗时变化 | | --- | ---: | ---: | ---: | | FP32 | 36.3825 | 36.7345 | +0.97% | | BF16 | 35.6410 | 36.2540 | +1.72% | | FP16 | 35.7595 | 35.6255 | -0.37% | 小尺寸微秒级耗时存在轮间波动,未作统计显著性判断。 ## 文档更新 README 补充次正规数边界行为、FP16 计算说明、维数及运行时形状约束,并规范调用表。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6799 | 5 days ago | |
fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Co-authored-by: babeiee<125106023003@njust.edu.cn> # message auto-generated for no-merge-commit merge: !4549 merge fix/def-driven-dtype-and-infer-approximateequal into master fix: def-driven dtype + InferDataType分离 for ApproximateEqual/Inv/Ndtri Created-by: babeiee Commit-by: babeiee Merged-by: cann-robot Description: ## 描述 approximate_equal inv ndtri 算子共性问题修改 ## 关联的issue []https://gitcode.com/cann/ops-math/issues/2660 ## 测试 ## 文档更新 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-math!4549 | 2 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 5 days ago | ||
| 2 months ago |