DirectX 12 połączy w jedno Radeony i GeForce – ale kto z tej „jedności” skorzysta?
Serwis Tom's Hardware pozyskał dość zaskakujące informacje oDirectX 12. Jeśli wierzyć doniesieniom z pragnącego zachowaćanonimowość źródła, nowy interfejs graficzny Windows 10 pozwolićma na łączenie w jedną pulę różnych zasobów sprzętowychpodsystemu grafiki, pozwalając programistom na wykorzystywanie gowedług potrzeb. W praktyce oznaczać to ma, że możliwe stanie sięjednoczesne wykorzystanie układów graficznych różnychproducentów, nawet do renderowania tej samej grafiki.
24.02.2015 20:15
Przyjrzyjmy się bliżej przedstawionemu przez Tom's Hardwaremechanizmowi Explicit Asynchronous Multi-GPU. W DirectX 11 ipoprzednich wersjach API, wykorzystanie więcej niż jednegoprocesora graficznego wymagało ich pracy na tym samym zbiorzedanych, przy jednoczesnym renderowaniu naprzemiennych klatek. Wswojej pamięci układy graficzne przechowywały więc tę samązawartość geometrii i tekstur, nie było mowy o zsumowaniugraficznego RAM w jeden blok pamięci. By zapewnić płynnośćgrafiki, musieliśmy więc mieć w kolejce prerenderowane klatki –to jednak odbijało się na płynności interakcji z użytkownikiem.
W DX12 możliwe ma być jednoczesne renderowanie jednej klatkiprzez większą liczbę GPU – programista będzie mógł określić,jak dane geometrii i tekstur zostaną rozdzielone międzyposzczególne procesory, jak i wyznaczyć obszar rysowany przez danyprocesor. Dzięki temu kolejka narysowanych ramek się skróci,znikną problemy z interakcją, uwolnione zostaną dodatkowe zasoby.Te wszystkie fizyczne GPU będą mogły być więc traktowane przezpodsystem grafiki jako jedna wirtualna karta graficzna.
Entuzjaści pogodzenia czerwonego z zielonym nie powinni jeszczeświętować. Informatorzy amerykańskiego serwisu sugerują, żetakie rozwiązanie miałoby działać nawet dla różnych architektursprzętowych jednocześnie, tak że karty GeForce mogłybywspółdziałać z Radeonami nawet przy rysowaniu tej samej klatki.Co więcej, możliwe w ten sposób miałoby się stać jednoczesnewykorzystanie specyficznych dla tych GPU możliwości, np. 3D VisionNvidii z TrueAudio AMD.
Wykorzystanie wielu różnych GPU (a szerzej mówiąc, wszelkiegorodzaju procesorów) w systemie jest możliwe już dzisiaj, w ramachframeworku OpenCL, z grafiką sytuacja jest jednak bardziejskomplikowana. Anonimowe źródło przyznaje, że konkretnaimplementacja tych rozproszonych technik renderowania ma pozostać wrękach deweloperów, co w praktyce oznacza, że pozostanie ona wrękach producentów procesorów graficznych. To, że DirectX 12będzie pozwalał na jakieś operacje nie oznacza, że pozwoli na tozamknięty pakiet middleware GameWorks Nvidii. Takie pomysły nawykorzystanie czerwonych i zielonych kart pojawiały się już wpoprzedniej dekadzie, założeniem było wówczas wykorzystaniesłabszego GeForce jako karty fizyki (przez silnik PhysX) isilniejszego Radeona jako karty renderującej grafikę – Nvidia pomysł ten odrzuciła.
Bardziej realistyczny jest scenariusz łączenia dyskretnych GPUze zintegrowaną grafiką Intela – niebiescy nie udają, że ichIntel HD jest najlepszym, co może przydarzyć się graczom. W ramachDirectX 12 nowe, zgodne z tym API gry mogłyby wykorzystywać GPUIntela właśnie do liczenia fizyki gry czy rysowania mniejwymagających elementów (np. interfejsu gry, rozmaitych HUD-ów czywskaźników), a GeForce czy Radeona do ciężkiej roboty.Szczególnie korzystne byłoby to dla użytkowników mocniejszychlaptopów z dyskretnymi układami graficznymi w mobilnych wersjach,których wydajność jest zawsze niższa niż ich desktopowych wersjii każda dodatkowa „pomoc” jest mile widziana.
Szczegółów dotyczących tego wieloprocesorowego podsystemugrafiki jest oczywiście bardzo mało, trudno tu cokolwiekprzesądzać, ale warto zwrócić uwagę na podobieństwa założeńmiędzy tą propozycją a heterogeniczną architekturą obliczeniową(HSA), tak promowaną przez AMD. Wspólna pula zasobówobliczeniowych w HSA powstać może nie tylko jednak z układówgraficznych, możliwości są znacznie większe – możemy dołączaćdo niej także CPU różnych rodzin czy procesory sygnałowe. Jak dotej pory HSA, choć tak ambitna, nie zdołała się spotkać zwiększym uznaniem deweloperów, niewiele jest oprogramowania w pełniwykorzystującego jej możliwości poza tak naprawdę niewymagającąHSA akceleracją obliczeń przez OpenCL. Niewykluczone, że ambitnypomysł Microsoftu też nie znajdzie szerokiego zastosowania –liczba problemów technicznych i licencyjnych do rozwiązania jestspora, zabawa we wkładanie Radeonów i GeForce do jednego komputerapo to tylko, by sobie pograć w Wiedźmina 3 na 60 FPS po prostu możeokazać się niewarta świeczki. Debugowanie takich konfiguracji dlaproducenta po prostu będzie zbyt czaso- i pracochłonne, by byłowarte podjętych starań.