docs(perception): record preroll worker pilot
This commit is contained in:
@@ -8,8 +8,10 @@ Worker: RTX 4090, 24564 MiB, NVIDIA driver 610.47.
|
||||
Подробности и evidence нового experiment `perception-joint-pilot-20260901T2040Z`
|
||||
находятся ниже. Последнее дополнение — 2026-09-02 00:41 МСК: семь bounded
|
||||
latency runs; shared-budget CPU overlap дважды дал 128/128 без drops,
|
||||
но p99 194.25–198.22 ms не проходит исходные 125 ms. Подробности — в последнем
|
||||
разделе. Это не product cutover и не самостоятельный образ.
|
||||
но 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 и не самостоятельный образ.
|
||||
|
||||
## Решение и сделанный объём
|
||||
|
||||
@@ -557,3 +559,88 @@ Python-кода PASS. Full backend/frontend suite и production build не вы
|
||||
новых визуальных или продуктовых runtime изменений в этом шаге нет.
|
||||
На Mac только небольшие fixtures и metadata audit, без моделей/load tests.
|
||||
Worker-сервисы не останавливались; canonical local 8000 сохранён.
|
||||
|
||||
## Bounded Worker-пилот исправленного preroll — 2026-09-02 01:22–01:33 МСК
|
||||
|
||||
Source commit `fd8313899b16b16a578529909b5b3c2ac5a03c0b` проверен на том же
|
||||
RTX 4090 Worker и том же 128-frame source window. Полный граф не урезался:
|
||||
DDRNet → RF-DETR исполнялись последовательно на GPU; online geometry/distance,
|
||||
temporal/motion, TGS/costmap и policy-shadow рассчитывались текущим запуском.
|
||||
Источник шёл 1×, очередь оставалась bounded двумя pending camera frames,
|
||||
EoMT и другие профили не запускались. Внешняя сеть приложение↔Worker не входила
|
||||
в измерение; source уже находился на Worker.
|
||||
|
||||
| Run | Результаты / 128 | Drop | Mean | p95 | p99 | Queue wait p95 / p99 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| `preroll-overlap-128-a` | 127 | seq 84, `handoff-overflow` | 79.05 ms | 127.18 ms | 143.22 ms | 44.41 / 60.90 ms |
|
||||
| `preroll-overlap-128-b` | 127 | seq 38, `handoff-overflow` | 83.01 ms | 125.19 ms | 138.02 ms | 48.17 / 60.80 ms |
|
||||
| `preroll-overlap-128-c` | 127 | seq 38, `handoff-overflow` | 75.41 ms | 120.84 ms | 135.46 ms | 33.13 / 56.33 ms |
|
||||
|
||||
Во всех трёх отчётах released=128, completed=127, dropped=1, unaccounted=0.
|
||||
Run C проходит p95 125 ms отдельно, но проваливает p99 и zero-drop; ни один
|
||||
прогон не проходит совокупный gate. Нельзя выбирать лучший percentile и
|
||||
скрывать потерянный кадр. Первый ошибочный shell launch с дублированной Python
|
||||
entrypoint был отклонён argparse до старта runtime/model и исключён из измерений.
|
||||
|
||||
### Проверка исправления и functional parity
|
||||
|
||||
Sequence 0 теперь `available=true`, `surface_state=valid`: pose age
|
||||
25.267 ms, current point ages 19.571–89.667 ms, skew 64.400 ms. Текущая пара
|
||||
содержит два increments / 4,787 points. Ещё три increments / 7,207 points
|
||||
сохраняют исходные timestamps как `history_only`; TGS на первом кадре реально
|
||||
получил 9,096 прошедших rolling/filter points. Получены 13 observations,
|
||||
4 tracks и 13 threats; commands/actuation остаются false.
|
||||
|
||||
В B/C fresh current pair есть у 76 из 127 выданных сцен; пропущенный seq 38
|
||||
сам был unavailable. В A fresh 75/127, потому что пропущенный seq 84 был fresh.
|
||||
В полном 128-frame admission остаются 76 current pairs и 52 unavailable.
|
||||
Причины по всем released кадрам сохранены без retimestamping: 39 `pose-too-old`,
|
||||
43 `point-increment-unavailable`, по 4 `point-pose-skew` и
|
||||
`newest-points-too-old`; множества причин пересекаются. Stale publication
|
||||
наблюдалась у 13–15 выданных сцен, но commands_enabled=0 и actuation_allowed=0
|
||||
во всех трёх запусках.
|
||||
|
||||
Сравнение B с прежним `overlap-shared-repeat-128` на 127 общих sequences:
|
||||
segmentation SHA и RF-DETR proposals совпали 127/127; camera/pose lineage —
|
||||
127/127; point lineage и availability — 126/127, единственное целевое отличие
|
||||
на seq 0. Из-за нового первого geometry frame stateful результаты ожидаемо
|
||||
расходятся: observations равны 121/127, tracks 113/127, threats 97/127,
|
||||
non-timing TGS/costmap states 124/127. Это влияние исправленного входного
|
||||
состояния, а не изменение model weights или preprocessing.
|
||||
|
||||
Sampled profile VRAM = 1,931–1,937 MiB. GPU utilization mean по прогонам
|
||||
25.85–33.69%, max 55–85%; это снова опровергает трактовку «GPU <5%» и не
|
||||
указывает на исчерпание 24 GiB. Cgroup memory peak не превысил 6,358.07 MiB.
|
||||
Полная запись не читалась до EOF: camera arrivals=128, pose=131, points=124;
|
||||
инкрементально прочитано 241 из 4,598 pose rows, 229 из 4,570 point packets и
|
||||
545,590 из 10,751,258 XYZ rows. Preroll history = 7,207 points.
|
||||
|
||||
### Evidence и состояние после пилота
|
||||
|
||||
Полные reports/scenes/logs и точные команды сохранены локально в
|
||||
`.runtime/perception-preroll-worker-20260902T0122MSK/` и на Worker в
|
||||
`D:/NDC_MISSIONCORE/runtime/experiments/perception-preroll-worker-20260902T0122MSK`.
|
||||
Manifest SHA-256:
|
||||
`1b233cca8d295e89c633e642e90cf161b0a0c6d7f9411df3443e45221dd107e6`.
|
||||
|
||||
| Артефакт | SHA-256 |
|
||||
| --- | --- |
|
||||
| probe-code-fd83138.tar.gz | `00d7fc58f1dd91703446c6ab966722cc642fac4def54e024d32fcab36452b993` |
|
||||
| A report / scenes | `5eab9cef90b6393698946ca3641e77661950022def5775c30a5f1c654403d3e2` / `91b97b0cc93dc14626bae0f979bcd7e874bf6fbb39d0006fc8c75bb15d0e2f67` |
|
||||
| B report / scenes | `dc65ef4bdcf45d64ac496c22cfe2af6a4aef4da6e8aa614a4499bfe36bcaaf47` / `da0f7fa187afabb721d0e5f4852b09b37a7c73b054d294a309bae171349f80aa` |
|
||||
| C report / scenes | `6fbc337c03cfb45febfb75a25cce486c6bfd7b47cebededae28c50552133dee7` / `ece32a799cbb2c8374d1c57aaf34fd041e881884777569513d60835e866a671c` |
|
||||
|
||||
После чистого окна `ndc-mission-core-triton`, legacy perception Worker,
|
||||
installed LAB agent и M49 agent возвращены в исходное состояние. Triton
|
||||
healthy/ready=200, оба agent running, canonical Mac 8000=200, Mac 8765
|
||||
не слушает. Legacy perception Worker возобновил существовавшийся до пробы
|
||||
HTTP 404 restart loop: running, restart count 4 на контрольном снимке; пилот
|
||||
его не использовал и это не объявляется healthy-восстановлением.
|
||||
`sentinel-ollama` и `sentinel-frigate` остаются exited/restart=no по решению
|
||||
владельца. Product defaults, registry, frontend/backend path и standalone image
|
||||
не переключались; deployment не выполнялся.
|
||||
|
||||
**Вердикт:** preroll bug функционально закрыт и full-graph эффект измерен.
|
||||
Этап 1 остаётся частичным: следующий runtime increment должен устранить
|
||||
`handoff-overflow` без замедления source clock или неявного расширения
|
||||
очереди, оформить layered output freshness и повторить zero-drop/p95+p99 gate.
|
||||
|
||||
Reference in New Issue
Block a user