развёртка ёмкости до 100 тыс. клеток и замер вывода на GPU
This commit is contained in:
parent
6685673bdb
commit
c895a72d9c
1 changed files with 51 additions and 0 deletions
|
|
@ -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, отдельная модель на каждую складку. Без этого
|
||||
сквозные цифры были бы ложными: считывание увидело бы проверяемый бэг ровно
|
||||
так же, как память тоннеля, обученная на всём подряд.
|
||||
|
|
|
|||
Loading…
Reference in a new issue