Динамична адаптация на изчисленията

Chloros 1.1.0 въвежда интелигентно разпознаване на хардуера и автоматичен избор на стратегия за обработка. Двигателят за обработка се адаптира към вашия хардуер — от Jetson Nano до работна станция с няколко графични процесора — без никаква ръчна конфигурация.


Как работи

Когато Chloros стартира, той автоматично профилира вашата система:

  1. Разпознава операционната система — Windows или Linux

  2. Идентифицира ядрата на процесора и общата RAM

3.Открива наличието на GPU — NVIDIA CUDA възможности, VRAM, модел 4. Идентифицира модела на Jetson (ако е приложимо) — чрез /proc/device-tree/model 5. Проверява термичните сензори (Jetson) — за обработка, съобразена с температурата 6. Избира оптималната стратегия за изчисления — въз основа на целия открит хардуер 7. Конфигурира броя на работниците, типа на конвейера и разпределението на паметта автоматично

Резултатът се кешира, за да започват по-бързо следващите изпълнения. Ако хардуерът се промени (например, добави се графичен процесор), Chloros препрофилира при следващото стартиране.


Стратегии за изчисления

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

Стратегия
Необходим GPU
Работни процеси
Конвейер
Най-подходящо за

GPU_PARALLEL

Да (12 GB+ VRAM или 16 GB+ споделена)

3-4

fused_gpu

Настолни графични процесори с 12 GB+, Jetson Orin NX 16 GB, AGX Orin

GPU_SINGLE

Да (< 12 GB VRAM)

1-3

tiled_gpu

Графични процесори от начален клас, Jetson Nano, Orin Nano

CPU_PARALLEL

Не

ядра - 1

cpu_fallback

Системи без NVIDIA GPU

Типове пипалини

  • fused_gpu — Пълен път на обработка на GPU. Всички операции по дебайериране, корекция и индексиране се изпълняват на графичния процесор в един обединен цикъл. Най-висока производителност, но изисква повече VRAM.

  • tiled_gpu — Път на графичния процесор с ефективно използване на паметта. Обработва изображенията на плочки, за да се побере в ограничената памет на графичния процесор. По-ниска производителност, но работи на устройства с ограничена памет.

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

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

Платформа
Стратегия
Работници
Конвейер
Бележки

Jetson Nano 8GB

GPU_SINGLE

1

tiled_gpu (сериализиран)

Режим с ефективно използване на паметта, обработва по едно изображение наведнъж

Jetson Orin NX 16GB

GPU_PARALLEL

3

fused_gpu (едновременна)

Препоръчително крайно устройство — истинска паралелна GPU обработка

Jetson AGX Orin 64GB

GPU_PARALLEL

4

fused_gpu (едновременна)

Максимална производителност на крайното устройство

Настолен компютър с 8 GB GPU

GPU_SINGLE

3

tiled_gpu

Добра производителност на настолен компютър с паметно ефективни плочки

Настолен компютър с 12 GB+ GPU

GPU_PARALLEL

3-4

fused_gpu

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

Система само с CPU

CPU_PARALLEL

ядра - 1

cpu_fallback

Не се изисква GPU, използва ThreadPool

circle-info

Унифицирана памет на Jetson: Устройствата Jetson споделят паметта на GPU и CPU. Jetson Orin NX 16GB отчита ~15,3 GB 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 в сравнение със стандартния метод поради модела за отстраняване на шума с AI/ML:

  • Системите с < 7 GB VRAM са принудени да използват синхронна циклична обработка за режим с разпознаване на текстури (по едно изображение наведнъж)

  • Системите с 7 GB+ VRAM могат да обработват Texture Aware едновременно, макар и с намален брой работници в сравнение със Standard***

Термично управление (Jetson)

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

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

< 70°C

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

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

Намаляване на размера на партидата

80°C (Критично)

Агресивно ограничаване — по-ниска паралелност и брой работници

90°C (Изключване)

Пълно спиране на обработката на GPU

Мониторингът на температурата използва tegrastats на Jetson платформи. На настолни системи с адекватно охлаждане термичното ограничаване рядко се задейства.


Управление на натоварването на паметта

Chloros следи натоварването на системната памет по време на обработката:

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

  • Намаляване при OOM: Ако възникне събитие за изчерпване на паметта, разпределението се намалява с 25% (мултипликатор 0,75x)

  • Резервен вариант на конвейера: При силен натиск върху паметта, пиплинът автоматично преминава от fused_gpu към tiled_gpu

  • Препоръки за суап: На Jetson, Chloros ви предупреждава, ако пространството за суап е недостатъчно за размера на вашия набор от данни***

Мониторинг на адаптацията на изчислителната мощност

Изход за състоянието на CLI

Когато започне обработката, CLI показва открития хардуерен профил:

Системна диагностика

Изпълнете chloros-cli selftest, за да видите пълен хардуерен профил и да проверите изчислителните възможности:

Това проверява наличността на CUDA, паметта на GPU, моделите за отстраняване на шума и свързаността на бекенда.


Следващи стъпки

Last updated