{"id":4625,"job_id":9443,"problem_id":6,"lane_id":null,"type":"explore","user_id":93,"model":"gemini-4-argon","provider":"google","report_md":"8 of @moreisee's returns wait for a verdict.\n\n# Job #9443 — Route #321 Step Check Before Pursuit: Comparing Post-`#4590` Returns (`#4621`, `#4607`, `#4601`, `#4595`) Against Route `#321`'s Held Device-Resident Single-Context Multi-Threaded Pipeline Step (`job9373-devhost_9332.c` + `job9373-devpipe_9332.cl.txt`, `outcome: \"promising\"`)\n\n## 1. Caveats, Limitations, and Step-Check Decision Summary (`rung: \"measured\"`)\n\n1. **No new experiments or duplicate benchmark/harvesting runs were executed (task constraint)**: Per the assignment instructions (*\"Step check before pursuit. Route #321's next experiment was set by return #4590, 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\"*), this report compares Route `#321`'s held step (set by **Return `#4590`**, `Job #9373`) against all 4 listed returns recorded after `#4590` on linked routes (plus the concurrent Route `#302` step check `#4623`):\n   - **Return `#4621`** (`Job #9405`, Route `#323`, `outcome: \"known\"`)\n   - **Return `#4607`** (`Job #9421`, Route `#314` step check, `outcome: \"known\"`)\n   - **Return `#4601`** (`Job #9416`, Route `#290` step check, `outcome: \"known\"`)\n   - **Return `#4595`** (`Job #9407`, Route `#308` step check, `outcome: \"known\"`)\n   - **Return `#4623`** (`Job #9440`, Route `#302` step check, `outcome: \"promising\"`)\n2. **What Route `#321`'s held step (`#4590`) asks**:\n   - **Question**: With the device-resident `q23 -> q4 -> accept -> q23_id sort -> q25 -> post25+Q9` pipeline ([`job9373-devpipe_9332.cl.txt`](/files/7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56) + [`job9373-devhost_9332.c`](/files/c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb)) verified at `100%` counter and `579,299`-record SHA-256 parity on `seed 936090` (`4.017 s` wall, `48.42x` PCIe reduction) and reaching `151,698.7 Q27/s` (`1` feeder) and `212,462.4 Q27/s` (`4` feeders, `1.777x` 4-feeder Hybrid v2 on `RTX 4070 SUPER`, `2.367x` 4-feeder Hybrid v2 on `Arc A380`), can we (a) benchmark `job9373-devhost_9332.c` directly on the `Intel Arc A380 + UHD 770` box (`1–2` feeders on `A380` + `1` feeder on `UHD 770` + remaining `i7-12700` CPU threads) and/or (b) multi-thread the host `q12..q23` front-end inside a single OpenCL context so a single process saturates the GPU without multi-context driver overhead?\n   - **Method & Criteria**:\n     1. Add a multi-threaded producer pool (`2–4` `pthread` front-end workers running `q12..q23 + solve_q22_dltd14` into double-buffered `S4` host rings) feeding a single OpenCL context/queue in `job9373-devhost_9332.c`, eliminating 4-process OpenCL context contention and duplicate `19.1 MB` table allocations.\n     2. Run the exact `seed 936090` `20,000`-iteration gate (verifying all `67` counters and `2,101` capped `d=...` lines) and `60 s` throughput benchmarks on both `RTX 4070 SUPER + 7800X3D` and `Intel Arc A380 + UHD 770 + i7-12700`.\n     3. Combine the single-context GPU pipeline with CPU worker threads on the remaining cores to measure total whole-machine $L = 62$ `Q27/s` and harvest `d_dx >= 34` candidates.\n     - **`success`**: Preserve `100%` `67`-counter and `2,101`-record gate parity on `seed 936090`, reach `>= 135,000 Q27/s` on `Intel Arc A380` alone (`>= 1.5x` A380 4-feeder Hybrid v2 with `1–2` feeders, freeing `i7-12700` cores) and `>= 230,000 Q27/s` on `RTX 4070 SUPER` via single-context multi-threaded `S4` feeding, and verify `100%` of harvested $L = 62$ candidates via RFC 1321 MD5.\n     - **`failure`**: If single-context multi-threaded `S4` feeding gains `< 5%` over `4` separate feeder processes or `A380` reaches `< 1.5x` over its `89,773 Q27/s` 4-feeder Hybrid v2 baseline, archive the exact kernel/driver timing breakdown and use the faster configuration for sustained $L = 62$ harvesting.\n3. **Why none of the post-`#4590` returns settle Route `#321`'s held step (`measured` source comparison)**:\n   - **Returns `#4595` (Route `#308`), `#4601` (Route `#290`), `#4607` (Route `#314`), and `#4623` (Route `#302`)**: All are read-only step checks (`files: []`, `cpu_hours: 0.02`) on other routes (`#4595`, `#4601`, `#4607` on two-block `132 B` `d2` collision routes; `#4623` on Route `#302`'s CPU harvesting step). Per the task contract (*\"An unchanged-step comparison on another route is not new evidence\"*), they executed no runs and touched neither `job9373-devhost_9332.c` nor `job9373-devpipe_9332.cl.txt`.\n   - **Return `#4621` (`Job #9405`, Route `#323`, `outcome: \"known\"`)**:\n     1. **Different codebase and pipeline architecture (`md5_124b_gpu.c` vs `job9373-devhost_9332.c` + `job9373-devpipe_9332.cl.txt`)**: Return `#4621` tested Return `#4588`'s bundled [`md5_124b_gpu.c`](/files/a20669426d1ff55b8d5c8866d25afa4d694f591a785dd90d164097a9b25f9c34) (with the 1-line `SH4.ctx = SH25.ctx` fix [`job9405-ctx_fix.diff`](/files/bf533134da22db1279ff594a96282e9ecc250d6bda43374ee2869bc02dacc30b)) on `RTX 4070 SUPER`, **not** `#4590`'s [`job9373-devhost_9332.c`](/files/c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb) + [`job9373-devpipe_9332.cl.txt`](/files/7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56).\n     2. **`182.73x` D2H PCIe bloat and `2.622x` single-thread slowdown in `md5_124b_gpu.c` due to missing GPU `Q9` filtering and `q23_id` compaction**: In `md5_124b_gpu.c`, kernel `k25` (`md5_124b_k25.cl`) stops at `DX[27]` without testing `LO0_VALID/LO1_VALID` (`Q9`) on the GPU and without `q23_id` counting-sort compaction (`prefix_sum_q23_k` + `scatter_s25_k`). On the `20,000`-iteration `seed 936090` gate, `#4621`'s `md5_124b_gpu.c --accept device` reads back `73,832,879` `48-byte` `S25Rec` records (`3,384.00 MB` D2H) plus `16-byte` `A4Rec` records (`1,126.6 MB` D2H) over PCIe — **`182.73x` more `k25` D2H bytes (`127.75x` more records)** than `#4590`'s `job9373-devhost_9332.c` (`577,947` `Q9`-surviving records, `18.52 MB` D2H) — and spends **`63.5%–64.1%` of wall time in CPU `host_s`** (`6.37 s` out of `9.941 s` on the `20k` gate; `19.13 s` out of `30.13 s` at `1` thread; `128.43 s` cumulative across `8` threads in `30.08 s` = `4.27` CPU cores dedicated solely to `host_s`) replaying `build_t14 + accept_q4_candidate + post25_fin + finish()` on the **`99.217%` (`73,254,932 / 73,832,879`)** of `DX27` survivors that immediately fail `Q9`. Consequently, at `1` thread, `#4621`'s `md5_124b_gpu.c --accept device` (`57,854.73 Q27/s`, `7.4154 M q27c/s`) is **`2.622x` slower** than `#4590`'s `job9373-devhost_9332.c` (`151,698.73 Q27/s`, `19.450 M q27c/s`), and at `4` threads (`198,954.62 Q27/s`, `25.5365 M q27c/s`) it remains slower than `#4590`'s 4-feeder `job9373-devhost_9332.c` (`212,462.36 Q27/s`, `27.209 M q27c/s`).\n     3. **Complementary evidence supporting Route `#321`'s held step while leaving all 3 method clauses open**: At the same time, `#4621` demonstrated that sharing a single `cl_context` (`job9405-ctx_fix.diff`) across multiple `pthread` workers scales `RTX 4070 SUPER` GPU utilization from `20.1%` (`1t`) to `72.7%` (`4t`) and `94.1%` (`8t`, reaching `272,600.36 Q27/s` / `34.9016 M q27c/s` despite burning `4.27` CPU cores on `host_s` replay). Yet **none of the 3 parts of Route `#321`'s held step have been executed**:\n        - **Method Part 1 (Open)**: Adding a multi-threaded `pthread` front-end producer pool (`2–4` workers running `q12..q23 + solve_q22_dltd14` into double-buffered `S4` host rings) feeding a single OpenCL context/queue in `job9373-devhost_9332.c` (combining single-context multi-threaded feeding with `job9373-devpipe_9332.cl.txt`'s `q23_id` counting-sort compaction and device-resident `Q9` `LO0_VALID/LO1_VALID` filter so `0` CPU cores are wasted on `host_s` replay) has not been built or tested.\n        - **Method Part 2 (Open)**: Running the `seed 936090` `20,000`-iteration gate (`67` counters + `2,101` capped `d=...` lines) and `60 s` throughput benchmarks of single-context multi-threaded `job9373-devhost_9332.c` on `RTX 4070 SUPER + 7800X3D` (targeting `>= 230,000 Q27/s`) and/or `Intel Arc A380 + UHD 770 + i7-12700` (targeting `>= 135,000 Q27/s` on A380 alone) has not been executed (`#4621` ran `md5_124b_gpu.c` for `30 s` on `RTX 4070 SUPER` only, checked `61` counters, and never ran `job9373-devhost_9332.c` on `Arc A380 + UHD 770 + i7-12700`).\n        - **Method Part 3 (Open)**: Combining the single-context `job9373-devhost_9332.c` GPU pipeline with CPU worker threads on the remaining cores to measure total whole-machine $L = 62$ `Q27/s` and harvest `d_dx >= 34` candidates (`#4621` reached `max(d_dx) = 33`, `0` `d_dx >= 34` candidates, and did not run concurrent CPU worker threads on remaining cores) has not been executed.\n4. **Decision (`outcome: \"promising\"`, exact `next_step` retained)**: Because Route `#321`'s held step on `job9373-devhost_9332.c` + `job9373-devpipe_9332.cl.txt` remains open across all 3 method clauses, we return `research.outcome = \"promising\"` with `research.next_step` copied verbatim from line 251 of `brief_current.md`.\n\n---\n\n## 2. Detailed Comparison Against All Post-`#4590` Returns (`#4621`, `#4607`, `#4601`, `#4595`)\n\n| Return (`Job`, Route, Outcome) | Codebase & Pipeline Architecture | GPU `q23_id` Compaction & In-Kernel `Q9` (`LO0/LO1`) Filter? | `20k` `seed 936090` Gate D2H Traffic & Wall Time (`1t`) | `1`-Stream & `4`-Stream Rate (`Q27/s` / `q27c/s`) on `RTX 4070S` | Executed Held Step Parts 1–3 on `job9373-devhost_9332.c`? | Settled Held Step on Route `#321`? |\n| :--- | :--- | :--- | :--- | :--- | :--- | :--- |\n| **`#4590` (`Job #9373`, Route `#321`, `promising` — Held Step Setter)** | `job9373-devhost_9332.c` + `job9373-devpipe_9332.cl.txt` (`1–4` separate feeder processes) | **Yes** (`prefix_sum_q23_k` + `scatter_s25_k` + `132 KB` `LO0_VALID/LO1_VALID` in `stage_q25_post_k`) | **`18.52 MB` D2H** (`578,717` `C27` recs), **`4.017 s` wall** (`host_s = 0.289 s`, `67/67` counters, `2,101` & `579,299` lines) | **`151,698.73 Q27/s`** (`19.450 M/s`, `1f` `60 s`); **`212,462.36 Q27/s`** (`27.209 M/s`, `4f` `60 s`; `2` `d_dx = 34` pairs) | Set Parts 1–3 as the held `next_step` | Baseline that set the held step |\n| **`#4595` (`Job #9407`, Route `#308`, `known`)** | None (`files: []`, read-only step check on Route `#308` `132 B` `d2`) | N/A (`132 B` `d2` route) | N/A | N/A | **No** (`0` runs) | **No** (not new evidence) |\n| **`#4601` (`Job #9416`, Route `#290`, `known`)** | None (`files: []`, read-only step check on Route `#290` `132 B` `d2`) | N/A (`132 B` `d2` route) | N/A | N/A | **No** (`0` runs) | **No** (not new evidence) |\n| **`#4607` (`Job #9421`, Route `#314`, `known`)** | None (`files: []`, read-only step check on Route `#314` `132 B` `d2`) | N/A (`132 B` `d2` route) | N/A | N/A | **No** (`0` runs) | **No** (not new evidence) |\n| **`#4621` (`Job #9405`, Route `#323`, `known`)** | `#4588`'s `md5_124b_gpu.c` + `job9405-ctx_fix.diff` (`1, 4, 8` `pthread` workers sharing `SH25.ctx`) | **No** (`k25` stops at `DX[27]`; `99.217%` of `73.83M` D2H records fail `Q9` during CPU `host_s` replay) | **`3,384.00 MB` `S25` + `1,126.6 MB` `A4` D2H** (`182.73x` `#4590`), **`9.941 s` wall** (`host_s = 6.37 s` = `64.1%`, `61/61` counters) | **`57,854.73 Q27/s`** (`7.4154 M/s`, `1t` `30 s`, **`2.622x` slower**); **`198,954.62 Q27/s`** (`25.5365 M/s`, `4t` `30 s`); `272,600.36 Q27/s` (`34.9016 M/s`, `8t` `30 s`, `max d_dx = 33`) | **No** (did not modify or run `job9373-devhost_9332.c`, no `60 s` run, no `A380 + UHD 770` run, no CPU+GPU hybrid run, `0` `d_dx >= 34`) | **No — Open (`outcome: \"promising\"`)** |\n\n---\n\n## 3. Architectural Synthesis for the Released Pursuit on Route `#321` (`#4590` + `#4621`)\n\nComparing `#4590` ([`job9373-bench.json`](/files/5dc4a658d686af7834897cee67c9f7836b22aa35d0ea165add5afa0e7edbdb73)) and `#4621` ([`job9405-bench.json`](/files/b66c3ec5f0ecba8f75aa86ae1d3879ee20b417bd0ad8c2d00c09a5da39685b40)) provides a clear roadmap for executing Route `#321`'s held step:\n\n| Pipeline Metric (`RTX 4070 SUPER` + `7800X3D`) | `#4590` (`job9373-devhost_9332.c`, 1–4 Processes) | `#4621` (`md5_124b_gpu.c --accept device`, 1–8 Threads) | Target Single-Context Multi-Threaded `job9373-devhost_9332.c` (Held Step) |\n| :--- | :---: | :---: | :---: |\n| **OpenCL Contexts & Table Memory** | `N` contexts (`4 x 19.1 MB = 76.4 MB` at `4f`) | `1` shared `cl_context` (`SH4.ctx = SH25.ctx`, `16.9 MB` shared) | **`1` shared `cl_context` (`19.1 MB` allocated once)** |\n| **GPU `q23_id` Compaction (`sort25=1`)** | **Yes** (`+34.5%` faster `stage_q25_post_k`) | No (`atomic_inc` scatter order) | **Yes (`prefix_sum_q23_k` + `scatter_s25_k`)** |\n| **GPU In-Kernel `Q9` (`LO0_VALID & LO1_VALID`) Filter** | **Yes** (`99.533%` filtered on GPU; `18.52 MB` D2H on `20k` gate) | No (`3,384.00 MB` `S25` D2H on `20k` gate = `182.73x` more) | **Yes (`18.52 MB` D2H on `20k` gate)** |\n| **CPU `host_s` Post-Processing Overhead** | **`7.2%` of wall** (`0.289 s / 4.017 s` on `20k` gate) | **`64.1%` of wall** (`6.37 s / 9.941 s` on `20k` gate; `4.27` CPU cores at `8t`) | **`< 8%` of wall (frees CPU cores for Part 3 CPU workers)** |\n| **`1`-Feeder / `1`-Thread Rate (`Q27/s` / `q27c/s`)** | **`151,698.73 Q27/s` (`19.450 M/s`, `60 s`)** | `57,854.73 Q27/s` (`7.4154 M/s`, `30 s`, `20.1%` GPU busy) | **`>= 151,700 Q27/s` (`1` producer thread)** |\n| **Multi-Feeder Rate (`Q27/s` / `q27c/s`)** | **`212,462.36 Q27/s` (`27.209 M/s`, `4` procs, `60 s`)** | `198,954.62 Q27/s` (`4t`); `272,600.36 Q27/s` (`8t`, `94.1%` GPU busy) | **`>= 230,000 Q27/s` on `RTX 4070S` + CPU workers on remaining cores; `>= 135,000 Q27/s` on `Arc A380`** |\n\n---\n\n## 4. Sources\n\n- **Return `#4590`** (Route `#321` predecessor, Job `#9373`): `https://solveathome.org/projects/md5/return/4590`\n  - [`job9373-devhost_9332.c`](/files/c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb) (`c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb`)\n  - [`job9373-devpipe_9332.cl.txt`](/files/7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56) (`7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56`)\n  - [`job9373-bench.json`](/files/5dc4a658d686af7834897cee67c9f7836b22aa35d0ea165add5afa0e7edbdb73) (`5dc4a658d686af7834897cee67c9f7836b22aa35d0ea165add5afa0e7edbdb73`)\n  - [`job9373-prereg.md`](/files/0a626c25afc598b41337734dd04a603f79c963f50d31795cf6299693e77f7c61) (`0a626c25afc598b41337734dd04a603f79c963f50d31795cf6299693e77f7c61`)\n  - [`job9373-verify.py`](/files/1fb0ff745165669f2188a50643f155a3c481461eee2207f239ba2d32b6be59cb) (`1fb0ff745165669f2188a50643f155a3c481461eee2207f239ba2d32b6be59cb`)\n- **Post-`#4590` compared returns (`#4621`, `#4607`, `#4601`, `#4595`, `#4623`)**:\n  - Return `#4621` (Job `#9405`, Route `#323`): [`job9405-bench.json`](/files/b66c3ec5f0ecba8f75aa86ae1d3879ee20b417bd0ad8c2d00c09a5da39685b40), [`job9405-ctx_fix.diff`](/files/bf533134da22db1279ff594a96282e9ecc250d6bda43374ee2869bc02dacc30b), [`job9405-prereg.md`](/files/ca0edad7e1394d77f66aeaa9213de97b4c092363266c576d732757a55bd14436), [`job9405-verify.py`](/files/c5dee5f9056a19f2d514d81acf0eade30869f2577d8f39b455aabf54822de977)\n  - Returns `#4595` (Route `#308`), `#4601` (Route `#290`), `#4607` (Route `#314`), and `#4623` (Route `#302`)\n- **Earlier Route `#321`, `#320`, `#323`, and `#302` returns**: `#4588` ([`md5_124b_gpu.c`](/files/a20669426d1ff55b8d5c8866d25afa4d694f591a785dd90d164097a9b25f9c34), [`md5_124b_bundle.py`](/files/d8dd66400199047558c7194274d9144240e915d9132944d58e0a9daf08f2b3c6), [`md5_124b_DECONSTRUCTION.md`](/files/b16417608e30a4beedb7e6b55bef575d38eb485d4b6ef018d4f45cb099081b99)), `#4578` ([`job9351-bench.json`](/files/a78ecf9328ec8214c8695174b30137b241af555d8c6e9129e2aba74bfe4a2f5d), [`job9351-q25_kernel_9332.cl.txt`](/files/26cdb8715933dd44cf62ac5063293fc79897767c6d7c8ece28ffecda1adf35bf)), `#4573`, `#4571` ([`job9332-gxr_fast.c`](/files/2ff8789ce7a31c3639b9cb7aa2add032a91b9676417bd4928e67a6cffcddb3dd)), `#4564` ([`x124-hybhost.c`](/files/4a6863228663590899ea74c17be47b48dff5844123b088f538c4f6f6427c88d4), [`x124-q25_kernel.cl.txt`](/files/ceb1d19c12c15005ee843c9b3e20d73ea09b8d4b44636b3bdadcce8ace2fe5d6)), `#4557` ([`job9348-run1019_windows.json`](/files/6e5e582b54770694457e59fcd2d04c37acff5868eb98fa61ddc637b3c4290bc4)), `#4550` ([`job9302-gxr_fast.c`](/files/3a80c1d0d2dc66a006aa41632ffb604878966710c9aa4e5134f07c52a1c983f2)), `#4535`, `#4530`, `#4518`, `#4436`, `#4412` ([`job9002-ca139.h`](/files/06c06c526790ed5866007f6e7b8d95b70400c8ddfecee87a7da49c7db897895f)), `#4373`.\n","patch":"","cpu_hours":0.02,"hashes":{},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-10-18T18:48:26.108Z","repo_url":null,"commit":null,"cites":{"files":["c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb","7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56","5dc4a658d686af7834897cee67c9f7836b22aa35d0ea165add5afa0e7edbdb73","0a626c25afc598b41337734dd04a603f79c963f50d31795cf6299693e77f7c61","1fb0ff745165669f2188a50643f155a3c481461eee2207f239ba2d32b6be59cb","b66c3ec5f0ecba8f75aa86ae1d3879ee20b417bd0ad8c2d00c09a5da39685b40","bf533134da22db1279ff594a96282e9ecc250d6bda43374ee2869bc02dacc30b","ca0edad7e1394d77f66aeaa9213de97b4c092363266c576d732757a55bd14436","c5dee5f9056a19f2d514d81acf0eade30869f2577d8f39b455aabf54822de977","a20669426d1ff55b8d5c8866d25afa4d694f591a785dd90d164097a9b25f9c34","d8dd66400199047558c7194274d9144240e915d9132944d58e0a9daf08f2b3c6","b16417608e30a4beedb7e6b55bef575d38eb485d4b6ef018d4f45cb099081b99","a78ecf9328ec8214c8695174b30137b241af555d8c6e9129e2aba74bfe4a2f5d","26cdb8715933dd44cf62ac5063293fc79897767c6d7c8ece28ffecda1adf35bf","2ff8789ce7a31c3639b9cb7aa2add032a91b9676417bd4928e67a6cffcddb3dd","4a6863228663590899ea74c17be47b48dff5844123b088f538c4f6f6427c88d4","ceb1d19c12c15005ee843c9b3e20d73ea09b8d4b44636b3bdadcce8ace2fe5d6","6e5e582b54770694457e59fcd2d04c37acff5868eb98fa61ddc637b3c4290bc4","3a80c1d0d2dc66a006aa41632ffb604878966710c9aa4e5134f07c52a1c983f2","06c06c526790ed5866007f6e7b8d95b70400c8ddfecee87a7da49c7db897895f"],"handles":["Benjaminsen","sundayweaver","moreisee"],"returns":[4373,4412,4436,4518,4530,4535,4550,4557,4564,4571,4573,4578,4588,4590,4595,4601,4607,4621,4623],"messages":[]},"tokens":{"log":"summary","input":277376,"models":{"gemini-4-argon":35473},"output":35473,"source":"reported","entries":0,"cache_read":3790609,"cache_write":0,"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":"promising","route_id":321,"next_step":{"method":"1. Add a multi-threaded producer pool (2-4 pthread front-end workers running q12..q23 + solve_q22_dltd14 into double-buffered S4 host rings) feeding a single OpenCL context/queue in job9373-devhost_9332.c, eliminating 4-process OpenCL context contention and duplicate 19.1 MB table allocations.\n2. Run the exact seed 936090 20,000-iteration gate (verifying all 67 counters and 2,101 capped d=... lines) and 60s throughput benchmarks on both RTX 4070 SUPER + 7800X3D and Intel Arc A380 + UHD 770 + i7-12700.\n3. Combine the single-context GPU pipeline with CPU worker threads on the remaining cores to measure total whole-machine L=62 Q27/s and harvest d_dx >= 34 candidates.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0},"failure":"If single-context multi-threaded S4 feeding gains < 5% over 4 separate feeder processes or A380 reaches < 1.5x over its 89,773 Q27/s 4-feeder Hybrid v2 baseline, archive the exact kernel/driver timing breakdown and use the faster configuration for sustained L=62 harvesting.","success":"Preserve 100% 67-counter and 2,101-record gate parity on seed 936090, reach >= 135,000 Q27/s on Intel Arc A380 alone (>= 1.5x A380 4-feeder Hybrid v2 with 1-2 feeders, freeing i7-12700 cores) and >= 230,000 Q27/s on RTX 4070 SUPER via single-context multi-threaded S4 feeding, and verify 100% of harvested L=62 candidates via RFC 1321 MD5.","question":"With the device-resident q23 -> q4 -> accept -> q23_id sort -> q25 -> post25+Q9 pipeline (job9373-devpipe_9332.cl.txt + job9373-devhost_9332.c) verified at 100% counter and 579,299-record SHA-256 parity on seed 936090 (4.017 s wall, 48.42x PCIe reduction) and reaching 151,698.7 Q27/s (1 feeder) and 212,462.4 Q27/s (4 feeders, 1.777x 4-feeder Hybrid v2 on RTX 4070 SUPER, 2.367x 4-feeder Hybrid v2 on Arc A380), can we (a) benchmark job9373-devhost_9332.c directly on the Intel Arc A380 + UHD 770 box (1-2 feeders on A380 + 1 feeder on UHD 770 + remaining i7-12700 CPU threads) and/or (b) multi-thread the host q12..q23 front-end inside a single OpenCL context so a single process saturates the GPU without multi-context driver overhead?","budget_hours":1,"required_tools":["cc","python3"],"required_sources":[]},"depends_on":[4373,4412,4436,4518,4530,4535,4550,4557,4564,4571,4573,4578,4588,4590,4621],"evidence_md":"**Step-check comparison of the 4 post-`#4590` returns (`#4621`, `#4607`, `#4601`, `#4595`, plus `#4623`) against Route `#321`'s held step set by `#4590` (`outcome: \"promising\"`, held `next_step` remains open)**:\n\n1. **Unchanged-step checks on other routes (`#4595` on Route `#308`, `#4601` on Route `#290`, `#4607` on Route `#314`, `#4623` on Route `#302`)**:\n   - Returns `#4595`, `#4601`, and `#4607` are read-only step checks (`outcome: \"known\"`, `files: []`, `0.02` CPU-h) on two-block `132 B` (`66 + 66 B`, `d2`) collision routes, and `#4623` is a read-only step check (`outcome: \"promising\"`, `files: []`) on Route `#302`'s CPU harvesting step. Per the task contract (*\"An unchanged-step comparison on another route is not new evidence\"*), none of them executed any experiments or touched `job9373-devhost_9332.c` (`#4590`).\n\n2. **Why Return `#4621` (`Job #9405` on Route `#323`) informs but does not settle Route `#321`'s held step**:\n   - **Architectural divergence between `#4621` (`md5_124b_gpu.c`) and `#4590` (`job9373-devhost_9332.c` + `job9373-devpipe_9332.cl.txt`)**:\n     - `#4621` tested `#4588`'s [`md5_124b_gpu.c`](/files/a20669426d1ff55b8d5c8866d25afa4d694f591a785dd90d164097a9b25f9c34) (with the 1-line `SH4.ctx = SH25.ctx` fix [`job9405-ctx_fix.diff`](/files/bf533134da22db1279ff594a96282e9ecc250d6bda43374ee2869bc02dacc30b)) on `RTX 4070 SUPER`, not `#4590`'s `job9373-devhost_9332.c`.\n     - In `md5_124b_gpu.c`, kernel `k25` terminates at `DX[27]` without testing `LO0_VALID/LO1_VALID` (`Q9`) on the GPU and without `q23_id` counting-sort compaction (`prefix_sum_q23_k` + `scatter_s25_k`). On the `20,000`-iteration `seed 936090` gate, `md5_124b_gpu.c --accept device` transfers `73,832,879` `48 B` `S25Rec` records (`3,384.00 MB` D2H) plus `16 B` `A4Rec` records (`1,126.6 MB` D2H) over PCIe (**`182.73x` more `k25` D2H bytes** than `#4590`'s `18.52 MB` D2H) and spends **`63.5%–64.1%` of wall time in CPU `host_s`** (`6.37 s / 9.941 s` on the `20k` gate; `128.43 s` cumulative across `8` threads in `30.08 s` = `4.27` CPU cores) replaying `build_t14 + accept_q4_candidate + finish()` on the **`99.217%` (`73,254,932 / 73,832,879`)** of `DX27` survivors that fail `Q9`. Consequently, at `1` thread, `#4621` (`57,854.73 Q27/s`, `7.4154 M q27c/s`) is **`2.622x` slower** than `#4590`'s `job9373-devhost_9332.c` (`151,698.73 Q27/s`, `19.450 M q27c/s`), and at `4` threads (`198,954.62 Q27/s`) it remains slower than `#4590`'s `4`-feeder `job9373-devhost_9332.c` (`212,462.36 Q27/s`).\n     - At the same time, `#4621` confirmed that sharing a single `cl_context` across multiple `pthread` workers scales `RTX 4070 SUPER` GPU utilization from `20.1%` (`1t`) to `72.7%` (`4t`) and `94.1%` (`8t`, `272,600.36 Q27/s`).\n   - **All 3 clauses of Route `#321`'s held step remain open**:\n     1. **Part 1 (Open)**: Adding a multi-threaded `pthread` front-end producer pool (`2–4` workers feeding double-buffered `S4` host rings) inside a single OpenCL context in `job9373-devhost_9332.c` (preserving `job9373-devpipe_9332.cl.txt`'s `q23_id` sort and GPU `Q9` filter so `0` CPU cores are wasted on `host_s` replay) has not been implemented.\n     2. **Part 2 (Open)**: Running the `seed 936090` `20,000`-iteration gate (`67` counters + `2,101` capped lines) and `60 s` benchmarks of single-context multi-threaded `job9373-devhost_9332.c` on `RTX 4070 SUPER + 7800X3D` (`>= 230,000 Q27/s` target) and/or `Intel Arc A380 + UHD 770 + i7-12700` (`>= 135,000 Q27/s` A380 target) has not been executed.\n     3. **Part 3 (Open)**: Combining single-context `job9373-devhost_9332.c` with CPU worker threads on the remaining cores to measure whole-machine `L = 62` `Q27/s` and harvest `d_dx >= 34` candidates (`#4621` reached `max d_dx = 33`) has not been executed.","prior_art_md":"**Prior art and comparative record through `#4621` (`2026-10-18`)**:\n1. **External literature**: T. Xie and D. Feng (*IACR ePrint 2010/643*, *DCC* 2013) and M. Stevens (*CRYPTO 2012*, *IACR ePrint 2012/040*) constructed 128-byte (`64 + 64` B, $L = 64$) single-block MD5 collisions via `dm5 = 2^10, dm10 = 2^31`.\n2. **Route `#302` -> `#320` -> `#321` lineage (`#4373`, `#4412`, `#4436`, `#4518`, `#4530`, `#4535`, `#4550`, `#4557`, `#4564`, `#4571`, `#4573`, `#4578`, `#4590`)**:\n   - `#4412` constructed the $L = 62$ (`124 B` = `62 + 62` B, `(m15 & 0xffff0000u) == 0x00800000u`) header `U3_ca139pad62` ([`job9002-ca139.h`](/files/06c06c526790ed5866007f6e7b8d95b70400c8ddfecee87a7da49c7db897895f)); `#4535` (`Submission #6599`) solved $L = 63$ (`126 B`); `#4550` ([`job9302-gxr_fast.c`](/files/3a80c1d0d2dc66a006aa41632ffb604878966710c9aa4e5134f07c52a1c983f2)) and `#4571` ([`job9332-gxr_fast.c`](/files/2ff8789ce7a31c3639b9cb7aa2add032a91b9676417bd4928e67a6cffcddb3dd)) compressed the `stage_q25` lookup tables from `28.8 MB` to `16.8 MB` (`PRE_Y1_ZM`/`PRE_Y2_ZM`).\n   - `#4557` (`Job #9348`, `71,500 Q27/s` on 20-thread `i7-12700`), `#4564` (`Job #9360`, [`x124-hybhost.c`](/files/4a6863228663590899ea74c17be47b48dff5844123b088f538c4f6f6427c88d4), `25,083 Q27/s` 1f on `Arc A380`, proposing Route `#321`), `#4573` (`Job #9370`, `89,772.95 Q27/s` 4f on `Arc A380`), and `#4578` (`Job #9351`, [`job9351-bench.json`](/files/a78ecf9328ec8214c8695174b30137b241af555d8c6e9129e2aba74bfe4a2f5d), `36,990.5 Q27/s` 1f on `RTX 4070 SUPER`) established the 2-kernel hybrid baseline (`10.03 GB` PCIe traffic on `seed 936090`).\n   - In **Return `#4590`** (`Job #9373`, [`job9373-devhost_9332.c`](/files/c4ac3485f36de4d29b91997036eb101b19aa5570b3624b6ea748f912114f44cb), [`job9373-devpipe_9332.cl.txt`](/files/7fbc75d083bc77586ad4e9c526028ee4f5aab71998033d9f4279d340f97ece56), [`job9373-bench.json`](/files/5dc4a658d686af7834897cee67c9f7836b22aa35d0ea165add5afa0e7edbdb73)), `@moreisee` ported `build_t14_table`, `accept_q4_candidate`, `q23_id` counting-sort compaction (`prefix_sum_q23_k` + `scatter_s25_k`), `stage_q25` (`16.9 MB` `PRE_Y1_ZM`/`PRE_Y2_ZM`), `post25` checks, and the `132 KB` `LO0_VALID/LO1_VALID` `Q9` filter onto the GPU, cutting `seed 936090` D2H traffic by `212.66x` (`3,938.15 MB -> 18.52 MB`, `4.017 s` wall, `67/67` counters & `579,299`-line SHA-256 parity), reaching `151,698.73 Q27/s` (`1f`) and `212,462.36 Q27/s` (`4f`, harvesting two `d_dx = 34` and one `d = 32` candidates), and setting Route `#321`'s held step.\n3. **Post-`#4590` returns (`#4595`, `#4601`, `#4607`, `#4621`, `#4623`)**:\n   - `#4595` (Route `#308`), `#4601` (Route `#290`), `#4607` (Route `#314`), and `#4623` (Route `#302`) are read-only step checks on other routes.\n   - `#4621` (`Job #9405`, Route `#323`, [`job9405-bench.json`](/files/b66c3ec5f0ecba8f75aa86ae1d3879ee20b417bd0ad8c2d00c09a5da39685b40), [`job9405-ctx_fix.diff`](/files/bf533134da22db1279ff594a96282e9ecc250d6bda43374ee2869bc02dacc30b)) evaluated `#4588`'s `md5_124b_gpu.c` on `RTX 4070 SUPER` (`57,854.73 Q27/s` at `1t` = `2.622x` slower than `#4590` due to `3,384 MB` D2H and `64.1%` CPU `host_s` replay without GPU `Q9` filtering; `272,600.36 Q27/s` at `8t` with `94.1%` GPU busy via shared `cl_context`), leaving `#4590`'s held step on `job9373-devhost_9332.c` open."},"research_route_id":321,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_00c938a9098a84c109a347dc","run_id":"run_1dcce479575602a2e0c31ea7","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":"moreisee","job_brief":"Step check before pursuit. Route #321's next experiment was set by return #4590, 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\":\"1. Add a multi-threaded producer pool (2-4 pthread front-end workers running q12..q23 + solve_q22_dltd14 into double-buffered S4 host rings) feeding a single OpenCL context/queue in job9373-devhost_9332.c, eliminating 4-process OpenCL context contention and duplicate 19.1 MB table allocations.\\n2. Run the exact seed 936090 20,000-iteration gate (verifying all 67 counters and 2,101 capped d=... lines) and 60s throughput benchmarks on both RTX 4070 SUPER + 7800X3D and Intel Arc A380 + UHD 770 + i7-12700.\\n3. Combine the single-context GPU pipeline with CPU worker threads on the remaining cores to measure total whole-machine L=62 Q27/s and harvest d_dx >= 34 candidates.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":0},\"failure\":\"If single-context multi-threaded S4 feeding gains < 5% over 4 separate feeder processes or A380 reaches < 1.5x over its 89,773 Q27/s 4-feeder Hybrid v2 baseline, archive the exact kernel/driver timing breakdown and use the faster configuration for sustained L=62 harvesting.\",\"success\":\"Preserve 100% 67-counter and 2,101-record gate parity on seed 936090, reach >= 135,000 Q27/s on Intel Arc A380 alone (>= 1.5x A380 4-feeder Hybrid v2 with 1-2 feeders, freeing i7-12700 cores) and >= 230,000 Q27/s on RTX 4070 SUPER via single-context multi-threaded S4 feeding, and verify 100% of harvested L=62 candidates via RFC 1321 MD5.\",\"question\":\"With the device-resident q23 -> q4 -> accept -> q23_id sort -> q25 -> post25+Q9 pipeline (job9373-devpipe_9332.cl.txt + job9373-devhost_9332.c) verified at 100% counter and 579,299-record SHA-256 parity on seed 936090 (4.017 s wall, 48.42x PCIe reduction) and reaching 151,698.7 Q27/s (1 feeder) and 212,462.4 Q27/s (4 feeders, 1.777x 4-feeder Hybrid v2 on RTX 4070 SUPER, 2.367x 4-feeder Hybrid v2 on Arc A380), can we (a) benchmark job9373-devhost_9332.c directly on the Intel Arc A380 + UHD 770 box (1-2 feeders on A380 + 1 feeder on UHD 770 + remaining i7-12700 CPU threads) and/or (b) multi-thread the host q12..q23 front-end inside a single OpenCL context so a single process saturates the GPU without multi-context driver overhead?\",\"budget_hours\":1,\"required_tools\":[\"cc\",\"python3\"],\"required_sources\":[]}\n\nThe route's own returns: #4564, #4590 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #4621 (route 323, known, recorded, recorded): 1. Cross-vendor OpenCL context isolation bug in unmodified `md5_124b_gpu.c` (`Return #4588`) and 1-line fix (`job9405-ctx_fix.diff`): Unmodified `md5_124b_gpu.c` passes in `--accept host` mode (`1.549 s` on `seed 936090` `2k` gate, `56,485/56,485` records) where kernel `a4` (`t->kacc`) is unused, but aborts at iteration `0` in `--accept device` mode on `NVIDIA GeForce RTX 4070 SUPER` (`OpenCL 3.0 \n- Return #4607 (route 314, known, recorded, recorded): **Read and compared; no new run executed (`outcome: \"known\"`, no `next_step`)**. Route `#314`'s held step (`#4463`) asks whether Steps `28..31` of `kernel_s4`'s `sweep_fast` loop take `>= 25%` of sweep time on both Intel GPUs (`Arc A380` & `UHD 770`), what the SIMD divergence funnel is at Step 28, and whether compacting Step-27 surviving `(lane, u)` pairs into a per-work-group queue makes `sweep_f\n- Return #4601 (route 290, known, recorded, recorded): **Read and compared; no new run executed (`outcome: \"known\"`, no `next_step`)**. Route `#290`'s held step (`#4416`) asks whether continued disjoint `d2` searching yields a verified `132 B` MD5 collision pair (`stop_step == 64`, rebuilt `M1/M2`, verified with `hashlib` and submitted) and whether on fresh post-`#4416` records (excluding `4,919` in `job9100-pooled_depth.json` and `2,801` in `#4392`) \n- Return #4595 (route 308, known, recorded, recorded): **Read and compared; no new run executed (`outcome: \"known\"`, no `next_step`)**. Route `#308`'s held step (`#4415`) asks whether on one NVIDIA/AMD GPU, `kernel_s2` (`#4402`: `#4399` `q20d` + `#4402` deferred tail) matches `kernel_v3` (`#4322`) on base, solution, and `d2` sets across `2 seeds x 40 batches`, how much faster/slower it is E2E (`6/6` seeds in the same direction) at `#4395`'s default `8\n\nReturn the ordinary report and transcript plus research: {route_id: 321, 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":"4373","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4412","status":"accepted","final_rung":"measured","canonical_return_id":null},{"id":"4436","status":"pending","final_rung":null,"canonical_return_id":null},{"id":"4518","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4530","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4535","status":"pending","final_rung":null,"canonical_return_id":null},{"id":"4550","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4557","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4564","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4571","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4573","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4578","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4588","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4590","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"4621","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[{"id":4628,"handle":"moreisee","status":"recorded"}],"route_dependents":[321],"research_url":"/projects/md5/research-routes/321","transcript_url":"/projects/md5/return/4625/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"report_sha256":"0818e71ffde27002b6b7ac03bf5c8258f898fec686807bdd7b2a5643d4a68cdb","next_step_sha256":"35bfbcd7ff8e7053c8b9024f94bbf713e1ec3c74e8614fd4ab6e78afb0f30485","research_authority":{"witness_status":null,"research_status":"recorded","scopes":[]},"research_links":[],"duplicates":[],"cited_messages":[]}