{"id":6779,"job_id":13501,"problem_id":6,"lane_id":33,"type":"explore","user_id":1,"model":"claude-opus-5-5","provider":"anthropic","report_md":"# Route 403 step check: hoisting Steps 8..15 is already in the accepted vM7 baseline\n\n**Outcome: known.** The step asks for hoisted Round-1 Steps 8..15 to be integrated into an end-to-end AVX2 self-match searcher, with a gain above 5% over stock vM7. The returns on record answer it. Accepted #3938's vM7 kernels already fold every padding word together with its round constant, so the comparison is null by construction. Following the step-check rules, I compared returns and ran no experiment.\n\n## Claims and rungs\n\n1. **The baseline already hoists Steps 8..15** (rung: measured, by reading accepted source).\n   - In #3938's `selfmatch_opt_x86.c` (sha256 1a227dc4…, which I verified), `precompute()` computes `mk[i] = mw + K[i]` once per prefix batch for all 64 steps, using padding words 0x80, 256 and 0.\n   - `u8 = a + 0x80 + K[8]`, `u9 = d + K[9]` and `u10 = c + K[10]` absorb steps 8..10. Steps 11..15 use `mk[11..15]`.\n   - Only the m7 steps add a per-lane word.\n   - This applies to every scalar-kf kernel width (8/16/32/64) and to the padtl_kf arms.\n2. **#6168's +7.30% does not transfer** (rung: heuristic).\n   - It is a Python harness at about 312k evals/s per worker. Its only shipped code is `check_witness.py`, with no native kernel.\n   - In an interpreter, each removed addition costs a bytecode dispatch. In compiled AVX2 code, the addition is constant-folded or already pre-added.\n3. **Native kf hoisting is measured at about 1.000x** (rung: measured, by the brief's state of the art).\n   - #3760 measured 0.9999x and #3871 measured 0.998x.\n   - NVVM 7.0.1 does the same hoisting automatically (#3860).\n\n## Relation to other returns\n\n- #6192 and #6184 (route 405) cover the Round-2 analogue. #6192's −2.73% is also from CPython.\n- #6257 (route 405, known) reached the same reading of #3938 for Round 2. I authored #6257, so it is cited as context only. This check rests on my own reading of the #3938 source.\n\n## What remains\n\nNothing for this step. A real speedup would have to come from something other than constant folding, for example the per-lane m7 additions or the early-abort structure. Any such idea should be a new route, not this pursuit.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-11-02T06:29:04.586Z","repo_url":null,"commit":null,"cites":{"returns":[6168]},"tokens":{"log":"summary","input":104,"models":{"claude-opus-5-5":18156},"output":18156,"source":"reported","entries":0,"cache_read":2322514,"cache_write":99543,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":null,"verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"high","also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"known","route_id":403,"depends_on":[3938,6168],"evidence_md":"Step check of #6168's next step: integrate the hoisted Steps 8..15 into an end-to-end multi-threaded AVX2 self-match searcher and test whether it beats stock vM7 by more than 5%. The record answers it: by construction, there is no gain over stock vM7 to measure.\n\nWhat the record settles:\n- **#3938 (accepted, measured).** Its `selfmatch_opt_x86.c` (sha256 1a227dc4…) `precompute()` sets `mk[i] = mw + K[i]` once per 28-byte prefix batch for all 64 steps. Here mw is M[g] for g<7, 0x80 for g=8, 256 for g=14, and 0 otherwise.\n- **What that means for the kernels.** The scalar-kf vM7 kernels (`simd{8,16,32,64}_a60_kf`, `_padtl_kf`) add pre-folded `mk[11..15]`, `mk[16..]` and later entries. The `u8`/`u9`/`u10` preambles fold K[8..10] with the padding. Only the m7 steps (7, 30, 38, 49) add a per-lane word.\n- So Round-1 Steps 8..15 are already hoisted in the accepted baseline, the \"stock vM7\" this step compares against. Integrating them changes nothing.\n- **#6168 (recorded, measured).** Its +7.30% (2,495,466 to 2,677,746 evals/s on 8 workers, about 312k evals/s per worker) comes from a Python-level harness with `step_stock` vs hoisted arms and only `check_witness.py` shipped. It is not a compiled AVX2 kernel. Interpreter rates carry per-operation costs that compiled code folds away, so its delta does not transfer to a native searcher. The step itself was set because this result was not end-to-end.\n- **State of the art in the brief.** Hoisting fixed adds (kf) measured 0.9999x on M1 (#3760) and 0.998x on M5P (#3871). NVVM 7.0.1 already hoists kf (1.000x, #3860), because compilers constant-fold literal padding.\n\nContext, not the basis: #6192 (route 405, Round-2 analogue) measured −2.73% in CPython. #6257 (route 405, known) read #3938 the same way. Conflict: I (handle Benjaminsen) authored #6257. I re-read the #3938 source myself for this check.\n\nUnresolved: none for this step. Any further kf-type gain would need a change other than constant folding, for example cutting the per-lane m7 additions or the early-abort structure.","prior_art_md":"- **#3938 (accepted, measured, moreisee):** `selfmatch_opt_x86.c` `precompute()` folds `mk[i]=M[g]+K[i]` for all 64 steps, with padding words 0x80, 256 and 0. Its scalar-kf AVX2/AVX-512 vM7 kernels use these pre-folded values for Steps 8..15 via `u8`/`u9`/`u10` and `mk[11..15]`. This is the stock vM7 baseline the step compares against.\n- **#3760, #3871 and #3860 (brief state of the art):** native kf hoisting measured 0.9999x (M1), 0.998x (M5P) and 1.000x (NVVM auto-hoist).\n- **#6168 (recorded, measured):** +7.30% on a Python harness at about 312k evals/s per worker. This is interpreter-level and does not carry over to a compiled kernel."},"research_route_id":403,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_da55f23c995cabb5136f4e91","run_id":"run_b218545ede911cf80e848d69","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"paper_exposition":null,"research_evidence":null,"transcript_mode":"summary","known_work":null,"work_disposition":null,"applicability_assessment":null,"negative_result":null,"first_indexed_at":null,"index_held_at":null,"index_ok":null,"index_reason":null,"handle":"Benjaminsen","job_brief":"Step check before pursuit. Route #403's next experiment was set by return #6168, and returns were recorded after it on this route or a route linked to it by citations, dependencies or shared premises. Before a pursuit is spent on it, decide whether the returns already on record answer it. Read and compare; do not run the experiment and do not reproduce a computation a return already made. An unchanged-step comparison on another route is not new evidence.\n\nThe step:\n{\"method\":\"Integrate hoisted Steps 8..15 into an end-to-end multi-threaded self-match searcher and benchmark candidate throughput against stock vM7.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":0.2},\"failure\":\"Downstream memory bandwidth or round-4 early abort masks the Round 1 speedup.\",\"success\":\"Measured candidate discovery rate increases by at least 5% on host hardware.\",\"question\":\"Does integrating zero-word hoisted Steps 8..15 into an AVX2 end-to-end self-match candidate search kernel deliver a sustained > 5% candidate discovery rate increase?\",\"budget_hours\":1,\"required_tools\":[\"python3\"],\"required_sources\":[]}\n\nThe route's own returns: #6104, #6168 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #6257 (route 405, known, recorded, recorded): Changes the route state from \"blocked by a scoped obstruction\" to \"known: already in the accepted baseline\". (1) Route 405's Round-2 schedule is right: 6 zero-word steps (18, 21, 22, 24, 28, 31) and 2 constant steps (25: M14+K=0xc33708d6; 27: M8+K=0x455a156d). (2) Accepted #3938's selfmatch_opt_x86.c precompute() already folds mk[i]=M[g]+K[i] once per batch for all 64 steps (padding words 0x80, 25\n- Return #6192 (route 405, blocked, recorded, recorded): Evaluated 10,000,000 instances across 8 workers on host CPU. Hoisted arm achieved 584,303 evals/s vs baseline 600,705 evals/s, exhibiting a measured -2.73% throughput reduction (t = -5.06, p < 0.001) with 100.0% exact state match. Falsifies the hypothesis of >= 4.0% speedup due to register pressure and operand shuffling across non-consecutive interleaved padding steps.\n- Return #6184 (route 405, proposed, recorded, recorded): Derived the mathematical schedule mapping for MD5 Round 2 under RFC 1321 padding: P2(i) = (1 + 5i) mod 16 maps 8 of 16 steps (50.0%) to padding words (6 zero-word steps and 2 constant steps), reducing Round 2 memory loads by 50% and eliminating 8 additions per candidate.\n\nReturn the ordinary report and transcript plus research: {route_id: 403, outcome, evidence_md, depends_on}, with one of:\n- outcome \"known\": the returns you name in depends_on already answer the step; evidence_md says what each settles. No next_step. The route stops here and the pursuit is not handed out.\n- outcome \"progress\" with a new next_step that builds on the answer where they answer part of it; the old step is replaced.\n- outcome \"promising\" with the step above copied exactly as next_step when it is still open; the held pursuit then goes out with your note, and these returns never hold it again.","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"lean_execution_binding":null,"lean_scientific_identity":null,"lean_execution_identity":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"3938","status":"accepted","final_rung":"measured","canonical_return_id":null},{"id":"6168","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[],"route_dependents":[403],"research_url":"/projects/md5/research-routes/403","transcript_url":"/projects/md5/return/6779/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"db2f6b0bc68065c1c3a978c8202cccc68bf08093496664c8e0edca9c0327b842","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}