Czy jedna karta GPU może transkodować wideo podczas uruchamiania lokalnego modelu AI?

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.

Tak, jedna karta GPU często może jednocześnie obsługiwać transkodowanie wideo i lokalną sztuczną inteligencję, jeśli silniki wideo, moc obliczeniowa, pamięć VRAM, zasilanie i sterowniki zachowują wystarczający zapas.

Transkodowanie multimediów może korzystać z dedykowanych bloków dekodowania i kodowania, podczas gdy model AI opiera się głównie na obliczeniach macierzowych lub ogólnych oraz przechowuje w pamięci VRAM wagi modelu i kontekst. Taki podział umożliwia pracę równoległą, ale nie zapewnia pełnej izolacji: filtry, mapowanie tonów, ładowanie modelu, presja na pamięć, taktowanie, temperatury i współdzielone konteksty sterownika mogą nadal powodować wzajemne zakłócanie zadań. Odpowiedź należy uzyskać podczas etapowego testu równoległego na konkretnej karcie.

Sprawdź, z których silników GPU korzysta każde zadanie

Uruchom jedno transkodowanie sprzętowe i zarejestruj aktywność dekodowania, kodowania, obliczeń, kontrolera pamięci, pamięci VRAM i poboru mocy. Następnie zatrzymaj je i uruchom reprezentatywne żądanie AI, korzystając z tych samych pomiarów.

Serwer multimediów może używać stałofunkcyjnych silników wideo, podczas gdy środowisko uruchomieniowe AI korzysta z CUDA, ROCm, oneAPI lub innej ścieżki obliczeniowej. Często pozwala to na nakładanie się zadań, ale wypalanie napisów, skalowanie i mapowanie tonów mogą przenieść część potoku wideo na obliczenia ogólne.

Jeśli sesja multimedialna pokazuje wyłącznie użycie CPU, napraw sprzętowe transkodowanie przed testowaniem współistnienia zadań. Jeśli model AI działa głównie na CPU, ponieważ nie mieści się w pamięci VRAM, pytanie o współdzielenie GPU stało się już szerszym problemem dotyczącym pamięci systemowej i wydajności CPU.

Ustal stabilne wartości bazowe dla pojedynczych zadań

Zmierz działanie strumienia multimedialnego w izolacji podczas uruchamiania, sceny szczytowej, przewijania i wznowienia odtwarzania. Zapisz szybkość transkodowania, stan bufora, obciążenie silników GPU, użycie VRAM, użycie CPU i pobór mocy.

Uruchom model AI w izolacji, używając docelowej kwantyzacji, rozmiaru kontekstu, partii i poziomu równoległości. Zapisz czas ładowania modelu, liczbę tokenów na sekundę, czas do pierwszego tokena, użycie VRAM po załadowaniu oraz szczytowe zużycie pamięci wraz ze wzrostem kontekstu. Użytkownicy Ollama udokumentowali częściowe przeniesienie obliczeń na GPU, które należy odróżnić od wartości bazowej dla modelu działającego w całości w pamięci GPU.

Poradnik ZimaSpace dotyczący sprawdzania GPU pod kątem domowego serwera NAS zawiera dodatkowe kontrole sprzętu i zasilania niezbędne przed testami równoległymi.

Zarezerwuj pamięć VRAM dla modelu i potoku wideo

Zapisz użycie VRAM w stanie bezczynności, użycie VRAM przez rezydujący model, wzrost zużycia pamięci wraz z kontekstem oraz dodatkową pamięć przydzielaną po uruchomieniu dekodowania wideo, filtrów i kodowania. Zachowaj celowy zapas zamiast planować wykorzystanie całej deklarowanej pojemności karty.

Modele AI mogą pozostać w pamięci po zakończeniu żądania i blokować inne zadania GPU. W jednym z problemów Ollama opisano sytuację, w której model pozostawał w pamięci VRAM do momentu ponownego uruchomienia usługi, gdy inna aplikacja potrzebowała GPU.

Gdy łączne szczytowe użycie zbliża się do limitu VRAM, zastosuj mniejszą kwantyzację, krótszy kontekst, niższy poziom równoległości, krótszy czas podtrzymywania modelu w pamięci lub mniejszy model. Nie traktuj przenoszenia danych do pamięci systemowej jako równoważnego zwiększenia pojemności — może ono znacząco zwiększyć opóźnienia i destabilizować obie usługi.

-15% OFF

Przeprowadź etapowy test obciążenia równoległego

Uruchom model AI i poczekaj, aż zostanie załadowany do pamięci, a następnie rozpocznij jedno standardowe transkodowanie sprzętowe. Podczas sceny o wysokiej przepływności bitowej dodaj długi prompt lub równoległe żądanie AI i obserwuj obie usługi przez kilka minut.

Zwiększaj tylko jeden parametr naraz: dodaj kolejny strumień multimedialny, wydłuż kontekst, dodaj kolejne żądanie AI, włącz wypalanie napisów lub mapowanie tonów HDR. Zapisz pierwszy moment, w którym szybkość transkodowania spadnie poniżej czasu rzeczywistego, odtwarzanie zacznie buforować, opóźnienie AI gwałtownie wzrośnie lub GPU zostanie zresetowane.

Zaobserwowana awaria Prawdopodobne współdzielone ograniczenie Następny test
Model AI nie chce się załadować Rezerwacja pamięci VRAM Wyładuj model lub zmniejsz jego rozmiar albo rozmiar kontekstu
Wideo buforuje tylko podczas generowania Konkurencja o obliczenia, zasilanie lub filtry Przetestuj zwykłe transkodowanie SDR bez filtrów GPU
AI zwalnia, ale wideo pozostaje stabilne Planowanie obliczeń Ogranicz równoległość AI lub nadaj priorytet odtwarzaniu
Oba kontenery tracą dostęp do GPU Awaria sterownika lub kontekstu Sprawdź dzienniki jądra i środowiska uruchomieniowego kontenerów

Praktycznym limitem jest ostatnia kombinacja, która pozostaje stabilna podczas uruchamiania i szczytowego obciążenia, a nie liczba sesji, które przez chwilę pojawiają się na pulpicie monitorowania.

Obserwuj awarie kontekstu sterownika i kontenerów

Celowo udostępnij obu kontenerom tę samą fizyczną kartę GPU i zweryfikuj identyfikatory urządzeń, biblioteki sterownika, wersje środowiska uruchomieniowego oraz uprawnienia. Nie przekazuj przypadkowo różnych węzłów renderowania ani nie ukrywaj GPU przed jedną z usług.

Współdzielony dostęp może przestać działać nawet po wielu godzinach normalnej pracy. W raporcie dotyczącym Ollama w Dockerze opisano błędy kontekstu CUDA oraz sytuację, w której Jellyfin utracił sprzętowe transkodowanie NVIDIA do czasu ponownego uruchomienia kontenera, co pokazuje awarię kontekstu GPU między usługami.

Zbierz dzienniki AI, serwera multimediów, środowiska uruchomieniowego kontenerów, jądra i sterownika GPU z tego samego przedziału czasowego. Ponowne uruchomienie jednego kontenera może przywrócić działanie usługi, ale trwałe rozwiązanie należy wdrożyć na granicy sterownika, środowiska uruchomieniowego, pamięci modelu lub poziomu równoległości, która wywołała współdzieloną awarię.

Kontroluj rezydencję modelu, kolejkowanie i priorytet usług

Zdecyduj, czy model musi pozostawać załadowany przez cały dzień, czy może być wyładowywany po okresie bezczynności. Stała rezydencja skraca czas do pierwszego tokena, ale rezerwuje pamięć VRAM nawet wtedy, gdy serwer multimediów potrzebuje dodatkowej przepustowości.

Wiele aplikacji GPU może technicznie współdzielić urządzenie, ale nadal destrukcyjnie konkurować o zasoby, gdy jedna z nich zużywa niemal całą pamięć. Użytkownicy kontenerów NVIDIA zwracali uwagę na sytuację, w której jeden kontener wysyca pamięć GPU, podczas gdy oczekuje się działania innego zadania.

Nadaj odtwarzaniu bardziej rygorystyczny cel jakościowy: ogranicz równoległość AI, kolejkować długie generowania, wyładowuj zbyt duże modele przed godzinami oglądania przez rodzinę lub zaplanuj generowanie wsadowych embeddingów. Nie polegaj na ogólnym priorytecie CPU kontenera do kontrolowania zużycia pamięci GPU i sposobu wykonywania zadań.

Wiedz, kiedy rozdzielić zadania

Pozostaw jedną kartę GPU, gdy docelowy model mieści się z zapasem, zwykłe transkodowanie pozostaje szybsze niż czas rzeczywisty, opóźnienie AI jest akceptowalne, a awarie nie przenoszą się między kontenerami. Udokumentuj przetestowany model, kontekst, liczbę strumieni i ścieżkę filtrów.

Rozdziel zadania, gdy duże modele zużywają niemal całą pamięć VRAM, kilku użytkowników transkoduje jednocześnie, filtry HDR lub napisów wymagają obliczeń, żądania AI są wrażliwe na opóźnienia albo jedna z usług musi pozostać dostępna podczas konserwacji sterownika.

Lista kontrolna ZimaSpace dotycząca sygnałów ostrzegawczych lokalnej sztucznej inteligencji wyznacza granicę, po której współdzielone obliczenia zaczynają osłabiać podstawową niezawodność pamięci masowej i multimediów serwera.

Wsparcie i wskazówki

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.