Repository navigation
Conversation
IR precision now uses ordinary final outputs. Keep missing comparisons in the planned counts and count frontend operators only after successful parsing and IR verification, including backend probe graphs. Preserve the original operator table labels and note, QEMU comparison scope, model calculations and accuracy thresholds. Add focused regression tests for missing results and parse failures. Validation: 78 summary tests and 182 probe tests passed; 54 summary tests passed again after restoring the original labels. Existing CI reports render with unchanged IR and QEMU precision values.
jizhenjun
added a commit
that referenced
this pull request
Oct 13, 2026
* feat(w2): validate full Qwen3 frontend and runtime contracts * fix(w2): clean up owned gates on acceptance cancellation * docs: standardize deployment reproduction on Linux * docs: align shared setup guide with Linux reproduction * fix(w2): backport compact probe summaries to acceptance CI * docs: disambiguate the kernel architecture guide * docs: make architecture command examples valid Bash * ci: consolidate PR validation and summaries into one workflow * ci: limit the W2 summary to operators, precision and timing The W2 Actions page mixed four per-job report dumps with step outcomes and scope disclaimers, and still could not answer the three questions it exists for. Answer them in one place and send the rest to the step log. * The four per-job summarize steps print to stdout again; the Actions page is written once, by the w2-acceptance job. Reporting still never changes a probe's exit code. * scripts/summarize_w2_ci.py renders three tables from the six probe reports: which operators each layer supports and which were exercised this run, the worst recorded deviation from ORT and NumPy per chain, and the seconds each chain took plus a total. A missing or malformed report stays explicit and never reads as a pass; the script always exits 0. * The operator lists and the two new files are read with ast, so the job needs no dependencies beyond the standard library and probes.numeric_summary. * scripts/ci_scopes.json routes a PR that only touches the new script through the LLM checks. Co-Authored-By: Claude Code <noreply@anthropic.com> * reports: drop the redundant word from the comparison status column The status column already says whether the comparisons passed, so "门槛通过(2/2)" spent a word twice. Say "通过(2/2)" and "未通过(…)" instead. The empty case stays "未测(0 条比较)". This table is shared with the W3 summary and the HTML reports, so their wording follows. Co-Authored-By: Claude Code <noreply@anthropic.com> * ci: say how each W2 precision row was produced The table said "IR vs ORT" and "QEMU vs NumPy" without saying what those four are, which left the page readable only to whoever wrote it. Add one line each: ORT runs the official CPU kernels on the same ONNX model; IR is our frontend's IR executed by the IR interpreter on the host; QEMU is the same graph compiled to an RV64 ELF and run in emulation; NumPy is the hand-written formula that only the operator probe has; the qwen3-small row takes the final checkpoint named logits. Co-Authored-By: Claude Code <noreply@anthropic.com> * ci: fold the Linux reproduction check into the unconditional test job The Documentation checks job and the docs scope behind it were redundant. Its `check_linux_repro_docs.py --check-bash` step ran the same command that llm-deploy already ran, and its pytest step was already covered by the `pytest tests/` run in the test job. The check now lives in the test job, which has no path filter, so it runs on every push and pull request instead of only when the docs scope was selected. That removes the need for the scope entirely. - delete .github/workflows/linux-reproduction-docs.yml and the docs job - drop the duplicated docs:linux-reproduction step from llm-deploy - select only the llm and w4 scopes, and summarize only jobs that exist Verified with tests/test_ci_routing.py, tests/test_ci_workflows.py, tests/test_linux_repro_docs.py, tests/test_w2_actions_summary.py, tests/test_w2_acceptance_summary.py, tests/test_numeric_summary.py and tests/test_compare_peephole.py (253 passed). Co-Authored-By: Claude Code <noreply@anthropic.com> * ci: drop the hand-written kernel row from the W2 operator table W2 never executes scratchv/backend/kernels, so a row that lists those files and then says "not executed" only invites the reader to look for them. The table now answers for the two layers W2 actually covers. - remove the kernels row and the now-unused KERNEL_BODIES / kernel_bodies() - pin the removal in the operator test instead of asserting the row's text Co-Authored-By: Claude Code <noreply@anthropic.com> * ci: drop the test job's step summary The block restated the step's own outcome, which the run page already shows, and pointed at an artifact that is listed in the run anyway. The JUnit XML and the text log are still produced and uploaded. - delete the "Summarize Topic 04 PassManager results" step and the step id it was the only reader of - pin the job's silence in test_ci_workflows.py Co-Authored-By: Claude Code <noreply@anthropic.com> * ci: move the W1 deliverable table from the summary into the step log The table restated five step outcomes the run page already shows per step, under a job named "W1 + W2" while it only covered W1. The block now prints into the step log, which is where the W2 gate summaries already go. - drop the last >> "$GITHUB_STEP_SUMMARY" from the W1 + W2 job - pin the job's silence, leaving full-model validation as the only writer Co-Authored-By: Claude Code <noreply@anthropic.com> * fix(ci): correct W2 summary results and operator coverage (#107) IR precision now uses ordinary final outputs. Keep missing comparisons in the planned counts and count frontend operators only after successful parsing and IR verification, including backend probe graphs. Preserve the original operator table labels and note, QEMU comparison scope, model calculations and accuracy thresholds. Add focused regression tests for missing results and parse failures. Validation: 78 summary tests and 182 probe tests passed; 54 summary tests passed again after restoring the original labels. Existing CI reports render with unchanged IR and QEMU precision values. --------- Co-authored-by: yuki-328 <yukidrop328@gmail.com> Co-authored-by: jizhenjun <25874228+jizhenjun@users.noreply.github.com> Co-authored-by: Claude Code <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
基于 #106 修复三处 Summary 问题:IR 精度改为读取正常运行的最终输出,避免被诊断版本的结果遮住;缺失或未完成的测试保留在统计中,防止误显示全部通过;算子统计只计入确认解析成功的记录,并补记基础测试中的 Div、Sub。保留原有算子表名称、注释和 QEMU 对比范围,不改变模型计算及误差要求。
本 PR 目标分支为
ci/w2-summary,包含 1 个修复提交、12 个源码及测试文件,合并后会更新 #106。本地预览、输出文件和模型文件未提交。验证:
main的 PR,本 PR 不会自动触发;维护者合入后,PR106 更新时再运行远端 CI。