r   e   k   l   a   m   a
r   e   k   l   a   m   a

Nowy model sterowników grafiki w Windows 8.1 upraszcza współpracę CPU i GPU

Strona główna AktualnościOPROGRAMOWANIE

Zgiełk wokół detali związanych z interfejsem użytkownika w Windows 8.1 przyćmiewa naprawdę ważne zmiany, jakie Microsoft wprowadza do swojego nowego systemu operacyjnego. Jedną z najciekawszych jest modyfikacja w modelu sterowników graficznych WDDM, która ograniczyć ma nadmiarowe kopiowanie danych między buforami procesora głównego i procesora graficznego, poprzez odwzorowanie domyślnego bufora („map default buffer” – MDB), i która przyniesie znaczne przyspieszenie operacji obliczeniowych w maszynach, które korzystają ze zintegrowanych układów CPU/GPU i będą działały z nowym DirectX 11.2.

Proces współpracy między kartą graficzną a procesorem głównym w obecnym modelu WDDM jest dość skomplikowany. W uproszczeniu można opisać go następująco: GPU ma swoją własną szybką pamięć, w której aplikacja alokuje swój bufor domyślny. Z buforem tym pracują jednostki obliczeniowe GPU (stream processors w terminologii AMD i unified shaders w terminologii Nvidii), zapisując i odczytując z niego dane. Jeśli dane te miałyby zostać odczytane przez procesor główny, aplikacja poprzez Direct3D zakłada w pamięci systemowej bufor pomostowy, wybierając jego lokalizację tak, by jak najefektywniej skopiować dane między domyślnym buforem a buforem pomostowym po magistrali PCI Express. Następnie GPU kopiuje dane do bufora pomostowego, a CPU po wydaniu komendy odwzorowania zaczyna przeprowadzać w nim operacje zapisu i odczytu. W szczegółach z procesem tym możecie zapoznać się na stronach MSDN.

W komputerach z jednostkami SoC/APU procesor główny i graficzny współdzielą pamięć, a więc cały ten cykl jest dla nich nieefektywny. Wersja 1.3 modelu sterowników graficznych Windows, wprowadzona w wersji 8.1 tego system, znacznie upraszcza wykorzystanie zasobów w pamięci dla takich maszyn, eliminując bufor pomostowy i dodatkową operację kopiowania do niego z bufora domyślnego, którą zastąpi właśnie wspomniane odwzorowanie bufora domyślnego.

Prawdopodobnie rozwiązanie to będzie wspierane zarówno przez układy Intela jak i AMD; Intel już zapowiedział, że MDB działać będzie na procesorach Ivy Bridge i Haswell, a AMD wydało niedawno sterowniki Catalyst dla Windows 8.1, które obsługują model WDDM 1.3 dla najnowszych APU z serii Trinity, Richland, Kabini i Temash (Llano i Brazos działać muszą na starym WDDM 1.2). Od strony programisty wsparcie zapewni oczywiście sam Microsoft: rozszerzenie C++ AMP dla Visual Studio 2013 wprowadza obsługę współdzielonej pamięci CPU/GPU (a także ulepszoną obsługę tekstur i nowy debugger, pozwalający np. na jednoczesne debugowanie CPU i GPU). Oczywiście stworzone za pomocą tego rozszerzenia aplikacje wykorzystujące MDB wymagać będą do uruchomienia przynajmniej Windows 8.1.

Warto przypomnieć, że MDB nie jest jakimś przełomowym wynalazkiem Microsoftu – podobne, a nawet lepsze rozwiązania wykorzystuje zarówno Intel jak i AMD w OpenCL (rozszerzenia do OpenCL od tych producentów procesorów pozwalają nie tylko na bezpośredni zapis i odczyt CPU z buforów GPU, ale też operację w drugą stronę – udostępnienie GPU pamięci alokowanej przez CPU). Podobnie podpatrzona z OpenCL jest inna nowość w Windows, czyli linkowanie shaderów HLSL programiści mogą tworzyć prekompilowane funkcje HLSL, budować z nich biblioteki, a następnie linkować je do shaderów w momencie uruchomienia, w efekcie wykorzystując wydajniejszy, prekompilowany kod, gdy tylko pojawią się niezbędne informacje do ukończenia obliczeń. Ten mechanizm będzie działał już na każdym sprzęcie wspieranym przez Windows 8.1

Zainteresowani nowym Direct3D 11.2 powinni obejrzeć prezentację z konferencji Build 2013, dostępną tutaj, a także przeczytać udostępnioną dla programistów dokumentację.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.