| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
update new license header | 4 个月前 | |
update new license header | 4 个月前 | |
update new license header | 4 个月前 | |
update new license header | 4 个月前 | |
test: add optimized_transducer accuracy gates Co-authored-by: Markkk<wangzonghan@tiankuan.net> # message auto-generated for no-merge-commit merge: !35 merge test/optimized-transducer-accuracy-gates-rerun into master test: add optimized_transducer accuracy gates Created-by: Markkk Commit-by: Markkk Merged-by: cann-robot Description: ## 变更内容 - 将测试设备、B/T/U/V、随机种子、预热次数和 loss/grad 误差阈值改为命令行参数。 - 默认使用 B=2, T=10, U=5, V=32 的小规模用例,不再启动即执行多个极端 shape。 - 检查 CPU reference 和 NPU 输出的 shape、NaN 与 Inf。 - 按 float32 默认阈值 1e-4 检查 loss 和 grad 的最大绝对误差,超阈值时抛出异常并返回非零状态。 - 删除将 NPU grad 与 CPU log_softmax 直接比较的无效指标。 - 仅对 NPU 调用执行 warmup,正式计时和精度对比各执行一次。 ## 问题背景 原脚本只打印误差,结果不一致时仍会以成功状态退出,无法作为自动化测试门禁。同时脚本会无条件运行多个超大用例,其中最大 logits shape 包含 474,723,680,256 个 float32 元素,仅 logits 理论容量约为 1.73 TiB,容易在进入有效验证前触发 OOM。 本 PR 只改进 Python 精度测试入口,不修改算子实现、接口或性能结论。它与 #28 的 C++ ACLNN 示例编译修复职责不同。 ## 验证 - Python 源码编译语法检查:通过 - 默认参数检查:通过 - mock 精度门禁:正常结果通过 - mock 失败路径:loss/grad shape 不一致、CPU NaN、NPU Inf、loss 超阈值、grad 超阈值均按预期失败 - 极端硬编码 shape 和无效 log_softmax 指标扫描:无残留 - git diff --check:通过 - 变更范围检查:仅修改 optimized_transducer/pybind/test.py - 敏感信息扫描:无命中 ## 未验证项 - 当前环境未安装 PyTorch、torchaudio、torch_npu、CANN 或 NPU,未执行真实 CPU reference 与 NPU 算子对比。 - 默认 1e-4 阈值沿用仓库 README 的 float32 精度口径,仍需在目标 NPU 环境确认。 See merge request: cann/elec-ops-inspection!35 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 1 个月前 |