Динамічна адаптація обчислень

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


Як це працює

Коли Chloros запускається, він автоматично аналізує вашу систему:

  1. Виявляє операційну систему — Windows або Linux

  2. Визначає ядра процесора та загальний обсяг оперативної пам'яті

3.Виявляє наявність графічного процесора — підтримку NVIDIA CUDA, VRAM, модель 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 — Повний шлях обробки на графічному процесорі. Усі операції дебейєрингу, корекції та індексації виконуються на графічному процесорі в одному злитому проході. Найвища пропускна здатність, але вимагає більше 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

circle-info

Уніфікована пам'ять Jetson: пристрої Jetson спільно використовують пам'ять графічного процесора та центрального процесора. Jetson Orin NX 16 ГБ повідомляє про ~15,3 ГБ відеопам'яті, але це та сама фізична оперативна пам'ять, яку використовують ОС та процеси центрального процесора. 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, ніж стандартний метод, через модель шумозаглушення на основі 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, моделі шумозаглушувачів та підключення бекенду.


Наступні кроки

Last updated