64 lines
3.8 KiB
Markdown
64 lines
3.8 KiB
Markdown
# DGR-036 evidence — dense fixture and real-model range parity
|
|
|
|
**Status:** incomplete; `prd.json` remains authoritative and keeps `DGR-036.passes` as `false`.
|
|
|
|
## Deterministic fixture proof implemented
|
|
|
|
`tests/test_native_shard_worker.py` now contains `test_two_disjoint_fake_worker_processes_preserve_prefill_and_decode_seam`. It starts two separate DGR-033 `shard_worker` OS processes, opens disjoint requested ranges `[0, 16)` and `[16, 32)`, forwards the first worker's actual protobuf output to the second, and checks one prefill plus 32 sequential decode positions. The test tops up the worker's 16-credit flow-control window before decode positions 16 and 32, so all 32 positions are exercised.
|
|
|
|
This is deliberately **fixture evidence only**. The worker's `FakeShardEngine` validates a bundle and echoes its bytes; it has no dense graph, logits, sampler, or GGUF load. The assertions prove the two-process protocol/lifecycle seam and that bytes survive a disjoint-range handoff. They do not claim numerical model or greedy-token parity.
|
|
|
|
## Real-model lane: blocked honestly
|
|
|
|
DGR-037, which is still `passes: false`, is the story that binds llama.cpp to the standalone worker. The live DGR-033 worker remains the fake CRC/echo fixture, and no `ShardEngine` implementation can load/run a GGUF range. DGR-034 proves tensor ownership and memory reporting, while DGR-035 proves the Python boundary contract; neither supplies a real ranged execution engine. Therefore there is no truthful way to run a small dense GGUF whole-model versus two-range prefill comparison or to compare 32 greedy generated tokens yet.
|
|
|
|
The real-model proof must be run after DGR-037 with an exact small dense GGUF, the pinned llama.cpp/runtime identity, two loaded worker ranges, and a raw report containing artifact and split hashes, backend/driver/hardware/network, prefill tolerance, all 32 token IDs, and raw metrics. It must remain opt-in, use mounted-drive artifact storage, and never download an artifact under `/home`.
|
|
|
|
## Commands and results
|
|
|
|
```bash
|
|
TESTPY=/home/popov/.hermes/hermes-agent/venv/bin/python
|
|
PYTHONPATH=packages/node:packages/tracker "$TESTPY" -m pytest -q tests/test_dense_range_boundary.py tests/test_architecture_boundary.py tests/test_shard_engine.py tests/test_fake_shard_engine.py
|
|
```
|
|
|
|
```text
|
|
37 passed in 0.18s
|
|
```
|
|
|
|
```bash
|
|
"$TESTPY" -m ruff check tests/test_native_shard_worker.py
|
|
PYTHONPATH=packages/node "$TESTPY" -m compileall -q packages tests
|
|
git diff --check
|
|
python3 scripts/ralph_prd_schema.py validate .scratch/distributed-gguf-runtime/prd.json
|
|
```
|
|
|
|
```text
|
|
All checks passed!
|
|
OK: 55 stories validated.
|
|
```
|
|
|
|
Attempted two-process fixture command:
|
|
|
|
```bash
|
|
PYTHONPATH=packages/node:packages/tracker "$TESTPY" -m pytest -q tests/test_native_shard_worker.py -k two_disjoint_fake_worker_processes_preserve_prefill_and_decode_seam
|
|
```
|
|
|
|
```text
|
|
FAILED: PermissionError: [Errno 1] Operation not permitted at socket.socket(AF_INET, SOCK_STREAM)
|
|
```
|
|
|
|
This is the workspace sandbox's known localhost-socket restriction, before any worker is spawned; it is not a test assertion failure. Run that exact command on a host that permits loopback sockets after building `build/native/shard_worker`.
|
|
|
|
## Changed files
|
|
|
|
- `tests/test_native_shard_worker.py`
|
|
- `.scratch/distributed-gguf-runtime/evidence/DGR-036/README.md`
|
|
- `.scratch/distributed-gguf-runtime/evidence/DGR-036/BLOCKED.md`
|
|
- `.ralph-tui/progress.md`
|
|
|
|
## Dependency handoff
|
|
|
|
- DGR-033 supplies the process, lifecycle, generated gRPC surface, fake engine, and bounded-flow-control behaviour used by the deterministic test.
|
|
- DGR-035 supplies the strict dense residual boundary and tail-only output contract. DGR-037 must preserve that contract when it replaces the echo fake with a real engine.
|
|
- Once DGR-037 is complete, return here to run the opt-in numerical lane. Do not turn this fixture test into a claim that a real GGUF can execute ranges.
|