Co powoduje przeciążenie procesora, gdy sprzętowe transkodowanie i sztuczna inteligencja wideo działają jednocześnie?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Przeciążenie CPU występuje, ponieważ sprzętowe transkodowanie i wideo AI nadal współdzielą obsługę dekodowania po stronie hosta, przygotowywanie klatek, kopiowanie pamięci, dźwięk oraz zadania związane z planowaniem.

Serwer domowy może wskazywać aktywny sprzętowy enkoder, podczas gdy użycie CPU osiąga sto procent po uruchomieniu AI kamery lub analizy multimediów. Bloki kodeków przyspieszają obsługiwane operacje dekodowania lub kodowania, ale nie cały potok. Demultipleksowanie, nieobsługiwane profile, skalowanie, konwersja przestrzeni kolorów, pobieranie klatek, wstępne przetwarzanie na potrzeby wykrywania obiektów, śledzenie, dźwięk, napisy, sieć i pamięć masowa mogą konkurować o te same rdzenie oraz przepustowość pamięci.

Częściowe odciążenie sprzętowe pozostawia znaczące etapy obciążające CPU

Ścieżka multimedialna analizuje kontenery, dekoduje wideo, filtruje klatki, koduje wynik, obsługuje dźwięk i zapisuje pakiety transportowe. Obsługa sprzętowa może obejmować tylko wybrane kodeki, głębie bitowe, rozdzielczości lub filtry; nieobsługiwane etapy są wykonywane programowo.

Przegląd częściowego odciążenia transkodowania rozróżnia obsługiwane ścieżki dekodowania i kodowania od filtrów oraz profili, które mogą przełączać się na CPU. Charakterystycznym objawem jest aktywny jeden silnik sprzętowy wraz z wątkami programowymi obsługującymi filtry, dźwięk, napisy lub awaryjne dekodowanie.

Znacznik sprzętowego transkodowania nie jest dowodem odciążenia całego potoku. Przed przypisaniem AI wyłącznej odpowiedzialności za przeciążenie sprawdź wybór kodeka i filtrów na każdym etapie. Różnica ta pozostaje widoczna podczas późniejszych testów w warunkach domowych.

Wideo AI dodaje dekodowanie, kopiowanie i wstępne przetwarzanie

Wykrywanie obiektów wymaga wybranych klatek w formacie wejściowym modelu. System może dekodować drugi strumień, kopiować powierzchnie z GPU do CPU, zmieniać rozmiar, normalizować, konwertować kolory, grupować tensory i śledzić wyniki, nawet gdy samo wnioskowanie działa na akceleratorze.

Przegląd wstępnego przetwarzania na potrzeby widzenia komputerowego wyjaśnia, dlaczego zmiana rozmiaru, normalizacja, konwersja kolorów i inne przekształcenia poprzedzają wnioskowanie. Etapy te mogą obciążać rdzenie hosta, nawet gdy sam model działa na akceleratorze. Wynik pośredni musi pozostać możliwy do sprawdzenia, zanim zostanie wykonana automatyzacja.

Jeśli obniżenie liczby klatek AI zmniejsza użycie CPU, a wykorzystanie urządzenia do wnioskowania pozostaje podobne, prawdopodobnie dominuje wstępne przetwarzanie lub śledzenie. Jeśli użycie CPU spada dopiero po zmianie profilu kodeka, bardziej prawdopodobne jest awaryjne dekodowanie. Tę granicę należy mierzyć osobno w realistycznych warunkach pracy.

Współdzielona przepustowość pamięci i planowanie wzmacniają rywalizację o zasoby

Zintegrowane układy GPU, silniki kodeków, rdzenie CPU i akceleratory AI mogą współdzielić systemową pamięć RAM. Równoczesne kopiowanie klatek i duże powierzchnie zwiększają liczbę chybień pamięci podręcznej oraz presję na pamięć, a wiele wątków roboczych powoduje przełączanie kontekstu i rywalizację o kolejki.

Macierz sprzętowego przyspieszania kodeków pokazuje, że obsługa przyspieszania zależy od kodeka, profilu, głębi bitowej i generacji sprzętu. Niezgodne formaty lub transfery mogą przekazywać zadania z powrotem do CPU i współdzielonej pamięci. Praktyczne konsekwencje są widoczne, gdy kilka źródeł konkuruje o ograniczony kontekst.

Granica awarii przebiega przy wysokim użyciu CPU spowodowanym niezwiązanym ze sprawą skanowaniem, tworzeniem miniatur lub szyfrowaniem pamięci masowej w tym samym oknie czasowym. Koreluj wątki poszczególnych procesów i etapy potoku, zamiast opierać się wyłącznie na całkowitym użyciu CPU. Zależność tę należy zachować w końcowym interfejsie.

-15% OFF

Zbuduj profil CPU i kopiowania powierzchni dla każdego etapu

Odtwarzaj stałe pliki multimedialne i nagrania z kamer, rejestrując demultipleksowanie, silnik dekodowania, awaryjne przetwarzanie programowe, graf filtrów, skalowanie, konwersję przestrzeni kolorów, kopiowanie powierzchni, kodowanie, dźwięk, napisy, liczbę klatek AI, wstępne przetwarzanie, wnioskowanie, śledzenie, przepustowość pamięci, kolejkę uruchomień, pamięć masową i użycie CPU przez poszczególne procesy.

Użyj testowania wąskich gardeł CPU, aby sklasyfikować ograniczenia CPU, pamięci, sieci i pamięci masowej. Testuj samo transkodowanie, samo AI, oba zadania jednocześnie, ścieżki bez kopiowania oraz zmniejszoną liczbę klatek AI bez zmieniania klipów źródłowych. Wynik należy zatem sprawdzić w odniesieniu do pierwotnych dowodów.

Napraw etap, który rośnie wyłącznie podczas jednoczesnego uruchomienia obu zadań. Dopasuj obsługiwane formaty, unikaj wielokrotnego dekodowania i kopiowania, ogranicz liczbę wątków wstępnego przetwarzania lub zaplanuj obciążenia; zakup szybszego CPU jest przedwczesny, gdy jeden nieobsługiwany filtr wymusza awaryjne przetwarzanie programowe.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.