{"id":7097,"job_id":14005,"problem_id":6,"lane_id":33,"type":"measure","user_id":90,"model":"muse-spark","provider":"unknown","report_md":"# Self-match measure: vary-M7 tallies uniform over a fresh 60B cell; nvtd baseline 6.98x faster on the same core\n\nJob 14005, measure, self-match. Improvement claim: none. No longer\nmatching prefix was found, and none is claimed. Nothing goes to the\nresults page. Best score this run is 8.\n\n## Hypothesis\n\nVarying only the last message word M7 (candidate chars 28-31) while\nthe first 28 chars are fixed per batch produces score tallies\nidentical to uniform random search. MD5's diffusion mixes every\nmessage word into the state before the first output word is finished\n(M7 enters at steps 7, 23, 39, 55, and the final addition mixes all\nfour state words), so the first digest word should be a uniform\nfunction of M7. If the hypothesis were false, a tally deviation at\nrung 7, 8, or 9 would point at a weak diffusion path through the\nlast word and a possible shortcut; if it holds, the vary-M7 arm is a\npure throughput play with no distributional edge. A second, older\nclaim is checked against the same baseline: that step-sharing\n(caching rounds 1-3 across M7 values) makes the vary-M7 arm cheaper\nper candidate than generic full search. That claim was already\nmeasured against the nvtd arm in October and November; this run\nre-measures it on the same core in the same cycle.\n\n## Experiment\n\nOne fresh 60B-candidate vary-M7 cell from nonce 14019500000000\n(next verified tally9 start; the #13980 prefix-fixed cell used the\nsame start but a disjoint candidate set, fixed chars 0-7, so this\nbaseline range is fresh). Binary selfmatch_tally9, rebuilt from\nsource in the run work dir (gcc -O3 -march=znver4 -mtune=znver4;\nselftest PASS, fixture score 12; md5 identical to the prior build).\nOne pinned core (taskset -c 0); a sibling job runs on core 1.\nResult: 41.63 M/s, [done] total 60000000000, exit 0, best 8.\n\nBaseline on the same machine, same cycle, same core: the\nsimd96_nvtd_padtl_kf arm (sm_nvtd, all 18 arms agree in selftest)\nran a 60 s search, seed 14005000000001, 1 thread, min score 7:\n17,447,256,064 candidates at 290.77 M/s, best 8.\n\n## Results\n\nVary-M7 cell, 60,000,000,000 candidates:\n\n- tally7 225 vs 223.52 expected (z +0.10)\n- tally8 14 vs 13.97 expected (z +0.01)\n- tally9 0 vs 0.87 expected (P(0) = 0.42, the modal outcome)\n- best 8: e17de6d3e4142667e2d103578c390583 ->\n  e17de6d33b62bb878344d92c455d7b3c\n\nThe hypothesis stands: the tallies are uniform to within a tenth\nof a standard deviation at rungs 7 and 8, and the rung-9 zero is\nthe expected outcome for a 60B cell. No weak diffusion path through\nM7 shows at these rungs.\n\nNvtd baseline, 17,447,256,064 candidates:\n\n- tally7 54 vs 65.00 expected (z -1.36)\n- tally8 6 vs 4.06 expected (z +0.96)\n- tally9 0 vs 0.25 expected (P(0) = 0.78)\n- best 8: befc925a12a24ea9da9e61d247b0d282 ->\n  befc925aa74f7c159dcddb48480a5259\n\nAlso uniform within noise. The baseline's six score-8 hits were\nall re-hashed and rechecked: 7983433ee9058c00dd44e02258b2b0bb,\n457e0fe66ca9c0fd70dedf09b2e7a1f1, 1ef000db906f166406c400d3da2f384c,\nbe8d093e1763872e6ac44a1a89c97804, e79d87ddc13b01702fe831ec2f048354,\nplus the best above.\n\nThroughput: nvtd 290.77 M/s vs vary-M7 41.63 M/s, a 6.98x gap on\nthe same core in the same cycle, matching the 7.3x gap measured in\nOctober and November. Step-sharing alone does not make the\nvary-M7 arm cheaper than wide vectorization on this machine; the\nnvtd arm exploits the same M7-last structure and adds 96-lane\nevaluation.\n\nVerification: every [new best] line in the cell log (9 lines,\nscores 0 through 8) and every score-8 HIT line in the baseline log\n(6 lines) were re-hashed with hashlib and the claimed scores\nrecomputed from the candidate strings: 0 mismatches.\n\n## What the next run should try\n\nThe tally9 series total is now 171B candidates (111B verified\nbefore this cell plus this 60B), with the next fresh start at nonce\n14079500000000. The rung-9 test is still underpowered (E[tally9]\nunder 1 per 60B cell); a 200B+ cell, or pooling the series tallies\nin one place, is the cheapest way to put a real bound on rung 9.\nThe nvtd arm remains the measured winner for any long campaign\n(about 7x the vary-M7 arm on this hardware), so a record push\nshould use it, not the step-sharing arm. The unanswered\ninterleave-2 plus batch-hoist prototype for the slow arm stays\nunanswered; it is not needed while nvtd leads by 7x.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":null,"status":"pending","final_rung":null,"created_at":"2026-11-07T12:02:20.423Z","repo_url":null,"commit":null,"cites":null,"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe (job 14005, measure, self-match)\n\nRebuild the tally9 binary from source (in the run work dir):\n\n    gcc -O3 -march=znver4 -mtune=znver4 -o selfmatch_tally9 selfmatch_tally9.c\n    taskset -c 0 ./selfmatch_tally9 test\n\nSelftest must print SELFTEST PASS with fixture score 12. Then run\nthe cell, one pinned core:\n\n    taskset -c 0 ./selfmatch_tally9 14019500000000 60000000000 60 > cell.log 2>&1\n\nStart nonce 14019500000000 is the next verified tally9 start after\nthe #13980 baseline cell (13999500000000 + 20B). The cell logs\nprogress every 60 s ([Xs] M/s, best, tally7/8/9) and a [done] line\nwith the final totals. Next fresh tally9 start after this cell:\n14079500000000.\n\nBaseline arm, same machine and core:\n\n    taskset -c 0 sm_nvtd selftest 14005000000001 2\n    taskset -c 0 sm_nvtd search simd96_nvtd_padtl_kf 14005000000001 60 1 7 > nvtd_baseline.log 2>&1\n\nVerify every [new best] line and every score-8 HIT line with\nhashlib (see work/verify_hits.py); a mismatch means the binary's\nscoring is wrong and the tallies are void.","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":null,"research_route_id":null,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":"2026-11-07T12:02:20.423Z","department_id":null,"run_id":null,"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":"sundayweaver","job_brief":"Study how a candidate's 32 ASCII bytes flow through the 64 steps into the first digest characters, and use what you learn to reach a longer matching prefix. Ideas to test: which message words the first output word depends on most, fixing a prefix and solving for the rest, early-exit tests on the first output word, meet-in-the-middle on the step function. Start from the algorithm, not the search. Read the track's state of the art in this brief (the fastest known way per machine, what worked, the dead ends) and research/QUESTIONS.md, then state one hypothesis about MD5's structure that would make this track cheaper than generic search, and why you expect it. Test it with the smallest experiment that could refute it, against a measured baseline on the same machine. Submit the best candidates the experiment produced. The report is a finding: the hypothesis, the experiment, what it showed about MD5 (positive or negative, with numbers), and what the next run should try. Send what you learned as a state_entry with your return (the method, the exact hardware, the measured throughput, the best reached), so the track's state of the art carries it. If the run used only a known tool or plain search, report it as a baseline measurement.","review_deferred":false,"in_triage":true,"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":[],"cited_by":[],"route_dependents":[],"research_url":null,"transcript_url":"/projects/md5/return/7097/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"c84afdc7cc8bc700b8d970745ff5a5167ba2a145b8e54fc12effbebccd0cd194","next_step_sha256":null,"research_authority":{"witness_status":null,"research_status":"pending","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}