From c895a72d9ced3da61b96abb48cc66c180b378bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=BB=20=D0=9E=D0=BC=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D1=87=D0=BA=D0=BE?= Date: Wed, 23 Sep 2026 17:03:37 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=B2=D1=91=D1=80=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=91=D0=BC=D0=BA=D0=BE=D1=81=D1=82=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BE=20100=20=D1=82=D1=8B=D1=81.=20=D0=BA=D0=BB=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=BA=20=D0=B8=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=80=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0=20GPU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/EXPERIMENTS.md | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/EXPERIMENTS.md b/docs/EXPERIMENTS.md index 85ceaed..f877962 100644 --- a/docs/EXPERIMENTS.md +++ b/docs/EXPERIMENTS.md @@ -368,6 +368,40 @@ numba являются ламина и оценка движения — вме * Реалистичная планка для предмета размером с человека на прямом участке — **около 200 м**, и путь к ней измерен выше: накопление плюс карта. +### 7.4. Стоит ли переносить вывод на GPU + +На машине проверки RTX 4070 Ti Super, драйвер 580.173.02 (CUDA до 13.0), toolkit 12.9. +Рассогласование toolkit колёсам PyTorch не мешает — они несут свой CUDA runtime, — так +что технически перенос возможен. Вопрос в том, что он даёт. Время кадра по стадиям, один +процесс, свободная машина, 390 кадров трёх записей: + +| стадия | мс | доля | +|---|---:|---:| +| lobula — кластеризация с учётом глубины | 15.3 | 35 % | +| ego — собственное движение | 6.4 | 15 % | +| lamina — центр-окружение на трёх масштабах | 6.0 | 14 % | +| retina — проекция облака на решётку | 5.3 | 12 % | +| corridor — ось пути | 4.5 | 10 % | +| stabilize | 4.0 | 9 % | +| память тоннеля, веерное тело, считывание MBON, треки, решение | 1.9 | 4 % | +| **всего, медиана / p95** | **43.1 / 49.0** | из 100 | + +Под видеокарту годится только ламина — это фильтры по сетке 128 × 600. Остальные 80 % +времени — связные компоненты и подгонка геометрии к сотням точек: нерегулярная работа с +ветвлениями, которую GPU не ускоряет, а копирование туда-обратно только замедлит. + +Ламину на CUDA проверили на 49 реальных кадрах (реализация сокомандника, +`F.avg_pool2d` вместо `uniform_filter`): 5.8 мс на процессоре, **2.9 мс** на RTX 5070 Ti +с копированием образа на карту и результата обратно. Совпадение не побитовое: ON-канал +расходится на 1·10⁻⁵, а в 60 пикселях из 3.76 млн (0.0016 %) выбирается другой масштаб — +при равных откликах решает порядок суммирования. + +Итог: перенос сэкономил бы около 3 мс из 43 при бюджете 100, а взамен потребовал бы +другого контейнера (наш собран на `ros:humble-ros-base-jammy`, без CUDA), установленного +у жюри nvidia-container-toolkit и запуска с `--gpus all`. Отказ любого из трёх звеньев — +это не медленный кадр, а не запустившееся решение. **Вывод остаётся на CPU**, видеокарта +— для обучения. + --- ## 8. Что не сработало @@ -1104,6 +1138,23 @@ reflectivity. Ламбертова модель описывала физику 20 000 клеток дают ту же AUC (0.9859 и 0.9850 против 0.9860), а в худшем кадре стоят 2.8 и 7.3 мс вместо 1.5 — платить не за что. +Позднее развёртку продолжили до 100 000 клеток на полной выборке (214 958 +кандидатов), leave-one-bag-out: + +| клеток | AUC | обстановки при 95 % предметов | +|---|---:|---:| +| **4 000** | **0.9829** | **9.89 %** | +| 20 000 | 0.9815 | 10.85 % | +| 50 000 | 0.9794 | 11.73 % | +| 100 000 | 0.9791 | 11.79 % | + +Больше клеток — **хуже**, и монотонно. Активных после торможения APL всегда сто, +поэтому с ростом популяции каждая клетка становится специфичнее, и код превращается +в справочник по обучающим записям, который на невиданной записи обобщает хуже. Узкое +место не в ёмкости, а во входе: бустинг по тем же 23 признакам даёт 0.9927, то есть +запас есть, но лежит в признаках. Для сравнения, у мухи около двух тысяч клеток +Кеньона на полушарие. + Проверка — leave-one-bag-out, отдельная модель на каждую складку. Без этого сквозные цифры были бы ложными: считывание увидело бы проверяемый бэг ровно так же, как память тоннеля, обученная на всём подряд.