Динамическая адаптация вычислений
В версии Chloros 1.1.0 реализованы интеллектуальное определение аппаратного обеспечения и автоматический выбор стратегии обработки. Механизм обработки адаптируется к вашему оборудованию — от Jetson Nano до рабочей станции с несколькими графическими процессорами — без какой-либо ручной настройки.
Как это работает
При запуске Chloros автоматически анализирует вашу систему:
Определяет операционную систему — Windows или Linux
Определяет ядра ЦП и общий объем ОЗУ
3.Обнаруживает наличие графического процессора — поддержку NVIDIA CUDA, объем видеопамяти, модель 4. Определяет модель Jetson (если применимо) — через /proc/device-tree/model 5. Проверяет датчики температуры (Jetson) — для обработки с учетом температурных условий 6. Выбирает оптимальную стратегию вычислений — на основе всего обнаруженного оборудования 7. Автоматически настраивает количество рабочих процессов, тип конвейера и распределение памятиРезультат кэшируется, чтобы последующие запуски начинались быстрее. Если оборудование изменяется (например, добавляется графический процессор), Chloros выполняет повторное профилирование при следующем запуске.***
Стратегии вычислений
Chloros выбирает одну из трех стратегий вычислений в зависимости от вашего оборудования:
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
Объединенная память 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) постепенно получает больше памяти по мере продвижения конвейера, что повышает пропускную способность для наиболее вычислительно-емких задач.
Этапы выделения памяти
Начальный
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, модели шумоподавителя и подключение к бэкенду.
Следующие шаги
Конвейер обработки — понимание архитектуры 4-поточного конвейера
Руководство по NVIDIA Jetson — Развертывание и оптимизация для Jetson
CLI : Командная строка — Полное справочное руководство по CLI
Последнее обновление