| Files | Last commit | Last update |
|---|---|---|
fix: reject non-finite engram gate eps and clamp values Co-authored-by: grandocean<173787247@qq.com> # message auto-generated for no-merge-commit merge: !30 merge fix/engram-gate-finite-check into master fix: reject non-finite engram gate eps and clamp values Created-by: grandocean Commit-by: grandocean Merged-by: cann-robot Description: ### AI 参与 - [x] 是:DeepSeek Harness(deepseek-flash) - Prompt 上下文:在无 NPU 环境中审查 CANN 仓库中的可复现问题,排除已有报告后提交独立修复。 ### 问题与修复 engram_gate.py::_check_real 只与零比较,NaN 与 ±Inf 因此通过校验,并经 float(...) 进入 get_engram_gate_fwd_kernel 的编译期特化参数(eps 在 vsqrt 前加到方差上,clamp_value 是 vsqrt 内的下界)。 补上 math.isfinite 判断,写法与仓内 5 个同类 helper(engram_sinkhorn.py 与 mhc/ 下四处) 一致 —— 是向同类对齐,不是引入新规则。 ### 验证 新增 tests/test_engram_gate.py。该测试只调用参数校验,不启动 kernel,因此不需要 NPU: 去掉修复跑测试 → 6 failed, 3 passed ← 测试确实抓得住这个 bug 带上修复跑测试 → 9 passed 本机环境:RTX 5080,无昇腾 NPU;PYTHONPATH 指向本仓 src/ 与主仓 tilelang。 覆盖范围:NaN / ±Inf 在 positive 为 True / False 时均拒绝;正常值仍接受; 原有的 > 0 与 >= 0 边界检查未被破坏;非实数仍抛 TypeError。 ### 说明 该仓的校验位于 require_ascend() 之后,所以在无 NPU 的机器上无法通过公共入口触发; 上述验证是直接调用该 helper 完成的,细节见 #5。 Closes #5 See merge request: cann/ops-tilelang!30 | 13 days ago |