Динамическая адаптация вычислений

В версии Chloros 1.1.0 реализованы интеллектуальное определение аппаратного обеспечения и автоматический выбор стратегии обработки. Механизм обработки адаптируется к вашему оборудованию — от Jetson Nano до рабочей станции с несколькими графическими процессорами — без какой-либо ручной настройки.


Как это работает

При запуске Chloros автоматически анализирует вашу систему:

  1. Определяет операционную систему — Windows или Linux

  2. Определяет ядра ЦП и общий объем ОЗУ

3.Обнаруживает наличие графического процессора — поддержку NVIDIA CUDA, объем видеопамяти, модель 4. Определяет модель Jetson (если применимо) — через /proc/device-tree/model 5. Проверяет датчики температуры (Jetson) — для обработки с учетом температурных условий 6. Выбирает оптимальную стратегию вычислений — на основе всего обнаруженного оборудования 7. Автоматически настраивает количество рабочих процессов, тип конвейера и распределение памятиРезультат кэшируется, чтобы последующие запуски начинались быстрее. Если оборудование изменяется (например, добавляется графический процессор), Chloros выполняет повторное профилирование при следующем запуске.***

Стратегии вычислений

Chloros выбирает одну из трех стратегий вычислений в зависимости от вашего оборудования:

Стратегия
Требуется ли GPU
Рабочие процессы
Конвейер
Для чего лучше всего подходит

GPU_PARALLEL

Да (12 ГБ+ VRAM или 16 ГБ+ общей памяти)

3–4

fused_gpu

Настольные графические процессоры с 12 ГБ+, Jetson Orin NX 16 ГБ, AGX Orin

GPU_SINGLE

Да (< 12 ГБ видеопамяти)

1–3

tiled_gpu

Графические процессоры начального уровня, Jetson Nano, Orin Nano

CPU_PARALLEL

Нет

ядра — 1

cpu_fallback

Системы без графического процессора NVIDIA

Типы конвейеров

  • fused_gpu — Полный путь обработки на графическом процессоре. Все операции дебайеризации, коррекции и индексации выполняются на графическом процессоре за один объединенный проход. Максимальная пропускная способность, но требуется больше видеопамяти.

  • tiled_gpu — Конфигурация графического процессора с эффективным использованием памяти. Обрабатывает изображения по частям, чтобы они помещались в ограниченную память графического процессора. Меньшая пропускная способность, но работает на устройствах с ограниченной памятью.

  • cpu_fallback — Обработка только на CPU с использованием многопоточного параллелизма. Используется, когда GPU NVIDIA недоступен.***

Поведение в зависимости от платформы

Платформа
Стратегия
Рабочие процессы
Конвейер
Примечания

Jetson Nano 8GB

GPU_SINGLE

1

tiled_gpu (последовательный)

Режим с эффективным использованием памяти, обрабатывает по одному изображению за раз

Jetson Orin NX 16 ГБ

GPU_PARALLEL

3

fused_gpu (параллельный)

Рекомендуемое пограничное устройство — настоящая параллельная обработка на GPU

Jetson AGX Orin 64 ГБ

GPU_PARALLEL

4

fused_gpu (параллельный)

Максимальная производительность на периферии

Настольный компьютер с 8 ГБ GPU

GPU_SINGLE

3

tiled_gpu

Хорошая производительность настольного компьютера с эффективным использованием памяти

Настольный компьютер с графическим процессором 12 ГБ+

GPU_PARALLEL

3–4

fused_gpu

Оптимальная производительность на настольном компьютере

Система только с ЦП

CPU_PARALLEL

ядер — 1

cpu_fallback

ГП не требуется, используется ThreadPool

circle-info

Объединенная память Jetson: устройства Jetson совместно используют память GPU и CPU. Jetson Orin NX 16 ГБ сообщает о ~15,3 ГБ VRAM, но это та же физическая RAM, которую используют ОС и процессы CPU. Chloros учитывает это при установке пороговых значений выделения памяти.


Динамическое распределение памяти GPU

Chloros использует 4-потоковый конвейер обработки:

  • Поток 1 (Обнаружение) — Загрузка изображения, анализ EXIF, обнаружение объекта

  • Поток 2 (Калибровка) — Расчет калибровки отражательной способности

  • Поток 3 (Обработка) — дебайеризация на GPU, коррекция виньетирования, вычисление индекса

  • Поток 4 (Экспорт) — запись файлов, встраивание метаданных

По мере того как потоки конвейера завершают свою работу (например, все изображения были обнаружены), выделенная им память GPU освобождается и перераспределяется между оставшимися активными потоками. Это означает, что поток 3 (этап, требующий интенсивного использования GPU) постепенно получает больше памяти по мере продвижения конвейера, что повышает пропускную способность для наиболее вычислительно-емких задач.

Этапы выделения памяти

Этап
Активные потоки
Распределение памяти GPU

Начальный

1, 2, 3, 4

Распределено между всеми потоками

Середина-начало

2, 3, 4

Память потока 1 перераспределяется

Середина-конец

3, 4

Память потоков 1+2 переходит к 3+4

Конец

3 или 4

Максимальный объем памяти для оставшегося потока

Обработка с учетом текстур

Метод дебайеризации с учетом текстур (только Chloros+) использует значительно больше памяти GPU, чем стандартный метод, из-за модели шумоподавления на основе ИИ/ML:

  • Системы с < 7 ГБ VRAM вынуждены работать в цикле синхронной обработки для режима с учетом текстур (по одному изображению за раз)

  • Системы с 7 ГБ и более VRAM могут обрабатывать данные с учетом текстур параллельно, хотя и с меньшим количеством рабочих процессов по сравнению со стандартным режимом***

Управление тепловым режимом (Jetson)

Устройства Jetson имеют ограничения по тепловому режиму, особенно при размещении в закрытых помещениях или в воздушных судах. Chloros отслеживает температуру GPU и CPU и автоматически регулирует обработку:

Температура
Реакция

< 70 °C

Нормальная работа — полная скорость

70 °C (Предупреждение)

Уменьшение размера пакета

80 °C (Критический уровень)

Агрессивное ограничение — снижение параллелизма и количества рабочих процессов

90 °C (Выключение)

Полная остановка обработки на GPU

Для мониторинга температуры на платформах Jetson используется tegrastats. На настольных системах с адекватным охлаждением термическое ограничение редко срабатывает.


Обработка нагрузки на память

Chloros отслеживает нагрузку на системную память во время обработки:

  • Порог памяти: загрузка 85% вызывает консервативное поведение

  • Сокращение OOM: при возникновении события нехватки памяти выделение памяти сокращается на 25% (множитель 0,75x)

  • Переключение конвейера: При сильной нагрузке на память конвейер автоматически переключается с fused_gpu на tiled_gpu

  • Рекомендации по подкачке: на Jetson Chloros предупреждает вас, если пространства подкачки недостаточно для размера вашего набора данных***

Мониторинг адаптации вычислений

Вывод статуса CLI

При запуске обработки CLI отображает обнаруженный профиль оборудования:

Диагностика системы

Запустите chloros-cli selftest, чтобы увидеть полный профиль оборудования и проверить вычислительные возможности:

При этом проверяется доступность CUDA, память GPU, модели шумоподавителя и подключение к бэкенду.


Следующие шаги

Последнее обновление