docs(perception): record rendezvous worker proof
This commit is contained in:
@@ -9,9 +9,11 @@ Worker: RTX 4090, 24564 MiB, NVIDIA driver 610.47.
|
||||
находятся ниже. Последнее дополнение — 2026-09-02 00:41 МСК: семь bounded
|
||||
latency runs; shared-budget CPU overlap дважды дал 128/128 без drops,
|
||||
но p99 194.25–198.22 ms не проходит исходные 125 ms. Последнее дополнение —
|
||||
2026-09-02 01:22–01:33 МСК: три Worker-повтора после исправления preroll,
|
||||
каждый 127/128 с одним `handoff-overflow`; p95 120.84–127.18 ms,
|
||||
p99 135.46–143.22 ms. Это не product cutover и не самостоятельный образ.
|
||||
2026-09-02 01:22–01:33 МСК: три Worker-повтора после исправления preroll
|
||||
выявили по одному `handoff-overflow`. В 01:43–01:50 МСК handoff исправлен
|
||||
без расширения очереди; два следующих повтора дали 128/128, 0 drops,
|
||||
p95 128.75/122.69 ms и p99 151.67/157.10 ms. Это не product cutover,
|
||||
не самостоятельный образ и пока не latency qualification.
|
||||
|
||||
## Решение и сделанный объём
|
||||
|
||||
@@ -644,3 +646,68 @@ HTTP 404 restart loop: running, restart count 4 на контрольном сн
|
||||
Этап 1 остаётся частичным: следующий runtime increment должен устранить
|
||||
`handoff-overflow` без замедления source clock или неявного расширения
|
||||
очереди, оформить layered output freshness и повторить zero-drop/p95+p99 gate.
|
||||
|
||||
## Direct rendezvous handoff — 2026-09-02 01:43–01:50 МСК
|
||||
|
||||
`handoff-overflow` оказался не обязательной перегрузкой модели. GPU stage
|
||||
всегда резервировал buffered output slot после compute, даже когда
|
||||
chronological CPU consumer уже блокировался в `take()` и мог принять результат
|
||||
немедленно. На несколько инструкций такой результат считался третьим pending
|
||||
кадром и выталкивал свежий ingress.
|
||||
|
||||
Source commit `294585936fabcfdbd4f0f2513b33984d3523ee7d` вводит synchronous
|
||||
rendezvous только для уже ожидающего consumer. Если consumer занят, completed
|
||||
result по-прежнему резервирует слот в общей очереди и подчиняется прежнему
|
||||
лимиту. Capacity=2, byte limit=16 MiB, source clock=1×, latest/drop semantics,
|
||||
последовательный DDRNet→RF-DETR GPU schedule и chronological CPU graph не
|
||||
ослаблены. Добавлены счётчики direct/buffered handoff.
|
||||
|
||||
| Run | Результаты / drops | Direct / buffered | Peak pending / bytes | Mean | p95 | p99 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| `rendezvous-overlap-128-b` | 128/128, 0 | 128 / 0 | 1 / 5,202,376 | 85.48 ms | 128.75 ms | 151.67 ms |
|
||||
| `rendezvous-overlap-128-c` | 128/128, 0 | 127 / 1 | 1 / 5,202,376 | 81.32 ms | 122.69 ms | 157.10 ms |
|
||||
|
||||
В обоих отчётах unaccounted=0, residual bytes/completed=0, release-lag и
|
||||
backlog-growth gates PASS. Run C отдельно проходит p95, но оба прогона
|
||||
проваливают p99; `worker_p95_p99_125ms=false` и
|
||||
`profile_realtime_qualified=false`. Устранение drop не выдаётся за устранение
|
||||
DDRNet/CPU tail. Sampled VRAM = 1,929–1,936 MiB, mean GPU utilization
|
||||
35.88–39.65%, max 75–76%.
|
||||
|
||||
Оба повтора выдали ровно 76 fresh и 52 unavailable сцены, по 15 stale scenes;
|
||||
commands_enabled=0 и actuation_allowed=0. Между B и C совпали 128/128:
|
||||
sequence, segmentation SHA, proposals, lineage, sensor binding, availability,
|
||||
observations, tracks, threats, non-timing TGS, costmap states/material,
|
||||
stale flags и policy actions. То есть scheduler fix не изменил вычислительный
|
||||
результат и вернул пропущенный кадр.
|
||||
|
||||
Первый setup launch `rendezvous-overlap-128-a` исключён из performance:
|
||||
при обновлении probe-каталога был механически пропущен pinned
|
||||
`run_goose_vegetation_benchmark.py`; DDR preflight завершился до model load и
|
||||
до release источника. Runner восстановлен из прежнего evidence с тем же SHA-256
|
||||
`b18ad60f277eea69a240a28f290611b94627fb9707faf1bb3e6e22102dad67c1`.
|
||||
|
||||
Проверки: 109 focused realtime/pilot/existing-live tests PASS, Ruff PASS,
|
||||
`git diff --check` PASS. Raw evidence и точные команды:
|
||||
`.runtime/perception-handoff-worker-20260902T0143MSK/manifest.json`;
|
||||
копия на Worker:
|
||||
`D:/NDC_MISSIONCORE/runtime/experiments/perception-handoff-worker-20260902T0143MSK`.
|
||||
Manifest SHA-256:
|
||||
`d68af383c42eb3686ef199afeebd4625f27d573b77109e7e8ff8c85e811a9003`.
|
||||
|
||||
| Артефакт | SHA-256 |
|
||||
| --- | --- |
|
||||
| probe-code-rendezvous.tar.gz | `27428eef631c94f32b4524201167c0d76651411c135d7a0a7540f4d89e315ada` |
|
||||
| failed A report | `8128585ed445af6ddd7aeeb967966616d2e98433c3ba6867b9763851d434b1ce` |
|
||||
| B report / scenes | `e031aada84c5fb535f768bcffd63754441a3291eb0d54049827dc6086d1f984e` / `9c1e4241bb8d8f66b9f225f75ce6a3d27b1b28ecc723d62b9d19daf54aa5f783` |
|
||||
| C report / scenes | `adaab02960155671c0248ba146929a5c75cdcc22346af0492092e27f554de77c` / `aeeda0a5b7fcbc521fe6b784818c602d60c9123a7a4eeb11889a4854f4b5f0be` |
|
||||
|
||||
После проб active pilot containers=0; Triton healthy/ready=200, два Observatory
|
||||
agent running, canonical Mac 8000=200, Mac 8765 закрыт. Legacy perception
|
||||
Worker возвращён в существовавшую HTTP 404 restart-loop конфигурацию.
|
||||
Ollama/Frigate остаются exited/restart=no. Deployment и product cutover не
|
||||
выполнялись.
|
||||
|
||||
**Следующий открытый риск этапа 1:** output-level layered freshness и latency
|
||||
tail. Direct handoff можно переносить в общий runtime; p99 требует отдельного
|
||||
профилирования DDRNet/CPU sections и затем повторного whole-path gate.
|
||||
|
||||
Reference in New Issue
Block a user