Karta graficzna wysłana na urlop. Coś innego obsłużyło Windowsa 11

konto.spidersweb.pl 7 godzin temu

Karta graficzna nie musi już składać Pulpitu Windowsa 11. Eksperymentalny projekt pokazuje, iż jej zadanie może przejąć NPU. Działa, choć na razie boleśnie wolno.

Przez ostatnie lata producenci komputerów przekonują nas, iż NPU jest jednym z najważniejszych elementów nowoczesnego peceta. Neural Processing Unit ma lokalnie napędzać funkcje sztucznej inteligencji, od przetwarzania obrazu i dźwięku po coraz bardziej rozbudowane modele uruchamiane bez połączenia z chmurą. Problem polega na tym, iż przez sporą część czasu ten wyspecjalizowany układ zwyczajnie nie ma zbyt wiele do roboty.

Grupa labscommunity postanowiła więc zadać dość przewrotne pytanie: skoro mamy w komputerze kolejny programowalny procesor, to czy dałoby się wykorzystać go do czegoś zupełnie innego? Na przykład do… renderowania pulpitu Windows 11. Odpowiedź brzmi: tak.

Projekt npu-render jest eksperymentalnym sterownikiem wyświetlania, który przechwytuje operacje kierowane przez Desktop Window Manager do układu graficznego i zamiast na GPU wykonuje je na NPU Intela. Nie chodzi przy tym o pokazanie prostej demonstracji czy wyrenderowanie pojedynczego okna. Twórcom udało się w ten sposób uruchomić prawdziwy pulpit wraz m.in. z Eksploratorem plików, menu Start, Notatnikiem, aplikacjami WPF i oknami Edge’a.

I zanim ktoś zacznie zastanawiać się, czy oznacza to koniec zintegrowanych układów graficznych: nie. Na razie to przede wszystkim bardzo interesujący eksperyment techniczny.

Windows przez cały czas myśli, iż rozmawia z grafiką

Najciekawszą częścią projektu nie jest choćby samo wykorzystanie NPU, ale sposób, w jaki twórcy obeszli fundamentalny problem. Windows 11 nie został przecież zaprojektowany z myślą o tym, żeby Desktop Window Manager nagle zaczął wysyłać swoją pracę do procesora neuronowego.

Dlatego autorzy npu-render przygotowali własny sterownik. DWM przez cały czas posługuje się Direct3D i z jego perspektywy nie następuje rewolucja. Sterownik zapisuje operacje renderowania w pakietach klatek, po czym odpowiedni proces przekazuje pracę dalej do NPU. Tam wykonywane są specjalnie przygotowane procedury SHAVE dostarczane poprzez OpenVINO. Gotowy obraz trafia następnie przez pośredni sterownik wyświetlania na ekran. To ważne, bo aplikacji nie trzeba przepisywać specjalnie na potrzeby eksperymentu.

Autorzy sprawdzili m.in. Eksplorator plików, menu Start, Notatnik, aplikacje WinUI oraz WPF i Edge’a. Dwa ostatnie przypadki są szczególnie ciekawe, ponieważ według dokumentacji projektu ich własne powierzchnie są w końcowym etapie kompozytowane przez zmodyfikowany tor renderowania. Innymi słowy, nie jest to sztuczka polegająca na wyrenderowaniu makiety pulpitu. Windows rzeczywiście działa, a NPU wykonuje pracę, która normalnie kojarzy się jednoznacznie z układem graficznym.

Tyle iż Windows działa wtedy jak komputer sprzed kilku dekad

Tutaj docieramy do największego „ale”. Autorzy npu-render podkreślają bez ogródek, iż jest to prototyp badawczy, a nie produkt. W testowanej konfiguracji system osiągał około 2-3 zweryfikowanych aktualizacji ekranu na sekundę, podczas gdy celem było 30 Hz. W jednym ze szczegółowo opisanych pomiarów do panelu trafiało około 1,6 klatki na sekundę. choćby najlepiej skonfigurowany monitor OLED przy takich osiągach specjalnie nas nie uratuje.

„npurender” @ blok: „giphy”

Test responsywności przy rozdzielczości 1024 x 768 pikseli dał 2,5 aktualizacji obrazu na sekundę. Mediana czasu pomiędzy wysłaniem ruchu myszy a zobaczeniem efektu na ekranie wynosiła 94 ms, ale wartość dla 95. percentyla sięgała aż 1,5 s. Szczególnie kosztowne okazują się przebiegi kompozytora wykorzystujące rozmycie, które mogą trwać całe sekundy. To nie jest więc alternatywny sposób na przyspieszenie laptopa. To sposób na udowodnienie, iż rzecz uznawana wcześniej za zadanie GPU może zostać wykonana przez NPU. I właśnie z tego powodu projekt jest interesujący.

GPU rzeczywiście może odetchnąć. Tylko kilka na tym zyskujemy

Przeniesienie kompozycji pulpitu na NPU przynosi łatwy do zauważenia rezultat w monitoringu obciążenia sprzętu. Podczas jednego z eksperymentów, gdy pulpit składało GPU, jego silnik 3D pracował z obciążeniem 3,4 proc., z czego 2,8 proc. przypadało na DWM. Po przełączeniu cały obraz był składany przez NPU, którego wykorzystanie wzrosło do 58 proc. Obciążenie silnika 3D GPU spadło natomiast do 0,6 proc.

Brzmi imponująco, dopóki nie przyjrzymy się temu, co adekwatnie zyskaliśmy. Twórcy sami bardzo ostrożnie podchodzą do wyników i zaznaczają, iż nie wykazali wymiernego zysku dla innych obciążeń GPU. W jednym z kontrolowanych scenariuszy sama praca kompozytora była na tyle lekka, iż jego obciążenie silnika 3D pozostawało bardzo małe. Projekt nie twierdzi więc, iż przeniesienie pulpitu na NPU nagle uwalnia znaczące zasoby dla gier, renderowania 3D czy innych zastosowań.

NPU-render – schemat działania

To trochę jak zatrudnienie koparki do przewiezienia zakupów z supermarketu. Da się. Problem został rozwiązany. Samochód pozostał wolny. Tylko trudno jeszcze przekonać kogokolwiek, iż właśnie odkryliśmy przyszłość transportu. Dokumentacja projektu jest pod tym względem nietypowo uczciwa. Status „GPU relief” jest oznaczony jako niewykazany. Autorzy potrafią pokazać, iż kompozycja opuściła silnik 3D, ale nie twierdzą, iż dzięki temu inna aplikacja faktycznie dostała więcej wydajności.

Za to skala technicznego kombinowania robi wrażenie

W dużym uproszczeniu OpenVINO dostarcza sposób na skierowanie zadania do jednostki neuronowej, natomiast adekwatna praca jest wykonywana przez przygotowany przez autorów rasteryzator uruchamiany w jądrze SHAVE. Projekt obejmuje m.in. vertex shading, pokrywanie pikseli podczas rasteryzacji, próbkowanie dwuliniowe, tryby mieszania wykorzystywane przez kompozytor oraz obsługę shaderów potrzebnych przez DWM i WinUI.

Autorzy zidentyfikowali 38 par shaderów używanych przez DWM i WinUI, obejmujących m.in. jednolite i teksturowane prostokąty, efekty Mica i Acrylic, rozmycie oraz tekst. Wyniki wykonywane na urządzeniu są porównywane z implementacją referencyjną, a projekt przykłada szczególną wagę do tego, aby operacje nie były przedstawiane jako wykonane na NPU wtedy, gdy faktycznie zastosowano inną ścieżkę. To już zdecydowanie więcej niż weekendowy proof of concept.

W jednym z udokumentowanych eksperymentów pulpit był renderowany przez NPU przez 2160 s, czyli 36 minut. W tym czasie przetworzono 744 pakiety klatek i 9363 polecenia. Oddzielny test trwał 37 minut, a najdłuższa czysta sesja opisana przez autorów osiągnęła 40 minut. Jednocześnie eksperyment pozostaje daleki od niezawodności normalnego systemu. W jednym z testów po powrocie do standardowego pulpitu prawidłowo przywrócono pozycje tylko 7 z 14 okien, a problemem pozostaje również zachowanie po uśpieniu i wybudzeniu komputera.

Na razie tylko Intel

Jest jeszcze jedno istotne ograniczenie. npu-render korzysta w tej chwili z NPU Intela i technologii OpenVINO. Wyniki publikowane przez autorów pochodzą z pojedynczego laptopa z platformą Panther Lake, Windows 11, sterownikiem NPU 5540 oraz OpenVINO 2026.4.1. Sami deweloperzy mocno podkreślają, iż podawane liczby dotyczą właśnie tej jednej maszyny testowej. Nie jest to więc rozwiązanie, które za chwilę będzie można zainstalować na dowolnym komputerze Copilot+ PC z układem Qualcomma, AMD czy Intela. Nie mogłem go przetestować na swoim komputerze z chipsetem Snapdragon X Elite.

Co więcej, choćby na zgodnej maszynie eksperyment zdecydowanie nie jest przeznaczony dla zwykłego użytkownika. Projekt wymaga odpowiednio obsługiwanego NPU Intela, trybu testowego podpisywania sterowników, uprawnień administratora, określonego środowiska OpenVINO, narzędzi potrzebnych do budowy sterownika oraz toolchainu SHAVE. Autorzy wprost radzą eksperymentować na komputerze, do którego można uzyskać dostęp inną drogą, bo w przypadku awarii można przez kilka minut zostać bez użytecznego pulpitu. To powinno skutecznie ostudzić chęć instalowania projektu na służbowym laptopie pięć minut przed ważnym spotkaniem.

Najciekawsze jest jednak to, co ten eksperyment mówi o NPU

Microsoft zbudował wokół jednostek neuronowych sporą część narracji dotyczącej współczesnych komputerów z Windows. Wymagania dla klasy Copilot+ PC obejmowały m.in. NPU zapewniające co najmniej 40 TOPS, a dedykowane jednostki tego rodzaju rzeczywiście trafiły do całej klasy nowych procesorów. Naturalnym zastosowaniem tego sprzętu pozostaje AI. Ale npu-render dobrze pokazuje coś łatwego do przeoczenia: fizycznie mamy w komputerze kolejny wyspecjalizowany układ obliczeniowy i dopiero zaczynamy sprawdzać, do czego poza najbardziej oczywistymi scenariuszami da się go wykorzystać.

Dzisiaj przesuwanie na niego kompozycji pulpitu zwyczajnie się nie opłaca. GPU wykonuje podobną robotę sprawnie i przy niewielkim obciążeniu, podczas gdy NPU podczas eksperymentu potrafi zostać obciążone w kilkudziesięciu procentach tylko po to, żeby dostarczyć kilka aktualizacji ekranu na sekundę. Twórcy projektu sami piszą wprost: NPU potrafi poprawnie przejąć kompozycję pulpitu, ale nie potrafi jeszcze robić tego szybko.

Nie spodziewałbym się więc, iż za rok Windows zaoferuje w Ustawieniach przełącznik „renderuj pulpit przez NPU”. Nie taki jest sens tego eksperymentu. Ciekawsze pytanie brzmi: skoro udało się zmusić procesor neuronowy do zadania, do którego w ogóle go nie projektowano, to jakie inne obciążenia da się w przyszłości przerzucić pomiędzy CPU, GPU i NPU w zależności od sytuacji? Na razie mamy Windows 11 renderowany bez udziału GPU w typowej roli kompozytora, działający w tempie kilku aktualizacji obrazu na sekundę. Fatalny produkt. Świetny eksperyment. I właśnie dlatego warto mieć go na oku.

Idź do oryginalnego materiału