Динамічна адаптація обчислень
У версії Chloros 1.1.0 реалізовано інтелектуальне виявлення апаратного забезпечення та автоматичний вибір стратегії обробки. Механізм обробки адаптується до вашого апаратного забезпечення — від Jetson Nano до робочої станції з декількома графічними процесорами — без будь-якого ручного налаштування.
Як це працює
Коли Chloros запускається, він автоматично аналізує вашу систему:
Виявляє операційну систему — Windows або Linux
Визначає ядра процесора та загальний обсяг оперативної пам'яті
3.Виявляє наявність графічного процесора — підтримку NVIDIA CUDA, VRAM, модель 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— Повний шлях обробки на графічному процесорі. Усі операції дебейєрингу, корекції та індексації виконуються на графічному процесорі в одному злитому проході. Найвища пропускна здатність, але вимагає більше VRAM.tiled_gpu— Шлях графічного процесора з ефективним використанням пам'яті. Обробляє зображення частинами, щоб вміститися в обмежену пам'ять графічного процесора. Нижча пропускна здатність, але працює на пристроях з обмеженою пам'яттю.cpu_fallback— Обробка виключно на CPU з використанням багатопотокового паралелізму. Використовується, коли графічний процесор NVIDIA недоступний.***
Поведінка залежно від платформи
Jetson Nano 8 ГБ
GPU_SINGLE
1
tiled_gpu (послідовний)
Режим з ефективним використанням пам'яті, обробляє одне зображення за раз
Jetson Orin NX 16 ГБ
GPU_PARALLEL
3
fused_gpu (паралельний)
Рекомендований периферійний пристрій — справжня паралельна обробка на графічному процесорі
Jetson AGX Orin 64 ГБ
GPU_PARALLEL
4
fused_gpu (паралельний)
Максимальна продуктивність на периферії
Настільний ПК з 8 ГБ графічного процесора
GPU_SINGLE
3
tiled_gpu
Хороша продуктивність настільного ПК з ефективним використанням пам'яті
Настільний ПК з графічним процесором 12 ГБ+
GPU_PARALLEL
3–4
fused_gpu
Оптимальна продуктивність настільного ПК
Система лише з процесором
CPU_PARALLEL
ядра — 1
cpu_fallback
Графічний процесор не потрібен, використовується ThreadPool
Уніфікована пам'ять Jetson: пристрої Jetson спільно використовують пам'ять графічного процесора та центрального процесора. Jetson Orin NX 16 ГБ повідомляє про ~15,3 ГБ відеопам'яті, але це та сама фізична оперативна пам'ять, яку використовують ОС та процеси центрального процесора. 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, ніж стандартний метод, через модель шумозаглушення на основі AI/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
Last updated