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

Zgiełk wokół detali związanych z interfejsem użytkownika wWindows 8.1 przyćmiewa naprawdę ważne zmiany, jakie Microsoftwprowadza do swojego nowego systemu operacyjnego. Jedną znajciekawszych jest modyfikacja w modelu sterowników graficznychWDDM, która ograniczyć ma nadmiarowe kopiowanie danych międzybuforami procesora głównego i procesora graficznego, poprzezodwzorowanie domyślnego bufora („mapdefault buffer” – MDB), i która przyniesie znaczneprzyspieszenie operacji obliczeniowych w maszynach, które korzystająze zintegrowanych układów CPU/GPU i będą działały z nowymDirectX 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 maswoją własną szybką pamięć, w której aplikacja alokuje swójbufor domyślny. Z buforem tym pracują jednostki obliczeniowe GPU(stream processors wterminologii AMD i unified shaders wterminologii Nvidii), zapisując i odczytując z niego dane. Jeślidane te miałyby zostać odczytane przez procesor główny, aplikacjapoprzez 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 magistraliPCI Express. Następnie GPU kopiuje dane do bufora pomostowego, a CPUpo wydaniu komendy odwzorowania zaczyna przeprowadzać w nim operacjezapisu i odczytu. W szczegółach z procesem tym możecie zapoznaćsię na stronachMSDN. [img=windows3d]W komputerach z jednostkamiSoC/APU procesor główny i graficzny współdzielą pamięć, a więccały ten cykl jest dla nich nieefektywny. Wersja 1.3 modelusterowników graficznych Windows, wprowadzona w wersji 8.1 tegosystem, znacznie upraszcza wykorzystanie zasobów w pamięci dla takich maszyn, eliminującbufor pomostowy i dodatkową operację kopiowania do niego z buforadomyślnego, którą zastąpi właśnie wspomniane odwzorowaniebufora domyślnego.Prawdopodobnie rozwiązanie tobędzie wspierane zarówno przez układy Intela jak i AMD; Intel jużzapowiedział, że MDB działać będzie na procesorach Ivy Bridge iHaswell, a AMD wydało niedawno sterowniki Catalyst dla Windows 8.1, które obsługują model WDDM 1.3 dla najnowszychAPU z serii Trinity, Richland, Kabini i Temash (Llano i Brazosdziałać muszą na starym WDDM 1.2). Od strony programisty wsparciezapewni oczywiście sam Microsoft: rozszerzenie C++AMP dla Visual Studio 2013 wprowadza obsługę współdzielonejpamięci CPU/GPU (a także ulepszoną obsługę tekstur i nowydebugger, pozwalający np. na jednoczesne debugowanie CPU i GPU).Oczywiście stworzone za pomocą tego rozszerzenia aplikacjewykorzystujące MDB wymagać będą do uruchomienia przynajmniejWindows 8.1.Warto przypomnieć, że MDB niejest jakimś przełomowym wynalazkiem Microsoftu – podobne, a nawetlepsze 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 alokowanejprzez CPU). Podobnie podpatrzona z OpenCL jest inna nowość wWindows, czyli linkowanieshaderów HLSL programiści mogą tworzyć prekompilowane funkcjeHLSL, budować z nich biblioteki, a następnie linkować je doshaderów w momencie uruchomienia, w efekcie wykorzystującwydajniejszy, prekompilowany kod, gdy tylko pojawią się niezbędneinformacje do ukończenia obliczeń. Ten mechanizm będzie działałjuż na każdym sprzęcie wspieranym przez Windows 8.1Zainteresowani nowym Direct3D11.2 powinni obejrzeć prezentację z konferencji Build 2013,dostępną tutaj,a także przeczytać udostępnioną dla programistów dokumentację.

04.07.2013 19:30

Wybrane dla Ciebie
Komentarze (88)