Oto dowody na to, że GeForce’y nie są przystosowane do DirectX 12

Felieton/Sprzęt 04.09.2015
Oto dowody na to, że GeForce’y nie są przystosowane do DirectX 12

Oto dowody na to, że GeForce’y nie są przystosowane do DirectX 12

Mogło wydawać się, że sprawa wydajności kart graficznych GeForce w środowisku DirectX 12 jest już zamknięta. W ciągu ostatnich dni pojawiło się jednak kilka interesujących faktów, które rzucają światło na tę sprawę.

Na początek krótko przybliżę sprawę osobom, które jej nie znają. Linki do moich poprzednich tekstów na ten temat znajdziecie w pierwszych dwóch akapitach. Jakiś czas temu pojawił się benchmark z gry Ashes of Singularity. Tytuł ten zapewne nie zdobyłby dużego rozgłosu, gdyby nie fakt, że jest to pierwsza gra wykorzystująca DirectX 12. W przeprowadzonych w niej testach okazało się, że na wprowadzeniu nowego API znacznie zyskują karty graficzne AMD, zyskując przy tym przewagę nad kartami konkurencji.

Początkowo Nvidia twierdziła, że testy przeprowadzone w niej są niemiarodajne, a gra była tworzona pod kątem AMD. Deweloperzy studia Oxide szybko wyjaśnili, że tworząc grę korzystali z wytycznych Microsoftu, a jedyną dużą optymalizacją było wyłączenie na konfiguracjach z kartą graficzną Nvidii funkcji Asynchronous Compute, która powodowała duże spadki wydajności.

Jest to jedna z najważniejszych funkcji DirectX 12 i nie jest ona wspierana przez karty graficzne Nvidii.

Funkcja ta polega na wielowątkowym przekazywaniu zadań z wielu źródeł w sposób płynny i synchroniczny. Nie wymaga przestojów w przepływie danych mających na celu przepuszczanie innych danych. Funkcja ta sprawia, że układ graficzny jest wykorzystywany w maksymalnym stopniu, a co za tym idzie, wydajność rośnie. DirectX 11 jako interfejs wysokopoziomowy nie pozwalał na korzystanie z tak zaawansowanych funkcji. Wprowadzenie DirectX 12 zmieniło ten stan rzeczy.

AMD było przygotowane na nową sytuację, ponieważ wcześniej tworzyło Mantle – własny interfejs programowania podobny do DirectX 12. Z tego powodu AMD tworząc obecnie wykorzystywaną architekturą Graphics Core Next zaimplementowało w swoich kartach ACE, czyli jednostki obliczeń asynchronicznych. Karty Nvidii tworzone z myślą o DirectX 11 takich jednostek nie mają. Z tego powodu wydajność GeForce’ów w DirectX 12 nie rośnie, a czasami wręcz spada.

Co prawda popularność nowego API jest chwilowo praktycznie zerowa, ale niebawem ten stan rzeczy ma się zmienić. W przeciągu najbliższego półrocza pojawiś się mają tytuły takie jak Fable Legends, Gears of War Ultimate, DeusEx 2, Rise of Tomb Raider oraz Mirrors Edge Catalyst, które będą wykorzystywać tylko DirectX 12. Oprócz tego pojawi się też Star Wars Battlefront, które będzie wykorzystywać dwie wersje DirectX.

Tak duża popularność świeżo powstałego API nie może dziwić. W końcu zarówno AMD, jak też Nvidia obiecywały, że ich kilkuletnie karty będą wspierać nowego DirectXa. Jakby tego było mało, DirectX 12 będzie wykorzystywany też w konsoli Microsoft Xbox One. Skoro producenci muszą tworzyć grę z myślą o dwóch API (GNM stosowany w PlayStation 4 oraz DirectX 12) to nie uśmiecha się im dostosowywać grę do szybko starzejącej się technologii.

Jakby tego było mało, Nvidia pośrednio przyznała, że ma problemy z Async Compute.

Informacje te można znaleźć w stworzonej przez firmę prezentacji dotyczącej wirtualnej rzeczywistości. Ze slajdu 25 dowiadujemy się, że Nvidia korzysta z rozwiązania zwanego jako preemption, co w wolnym tłumaczeniu można przetłumaczyć jako prawo pierwokupu lub wywłaszczenie. Pozwala ono na nadawanie wybranym zadaniom większego priorytetu. Kiedy pojawia się zadanie o wysokim priorytecie, jest ono przepuszczane. Jest to sposób mniej wydajny od asynchronicznego przesyłania danych.

Jeśli Nvidia zaleca korzystanie z niego, może to oznaczać, że faktycznie nie może wykorzystać nowych technologii. Wskazuje na to też slajd numer 27, gdzie Nvidia radzi programistoom rozbijać dłuższe zadania na krótsze. Rozwiązanie to przeczy idei obliczeń asynchronicznych i wykonywanie kilku obliczeń jednocześnie. Firma z Santa Clara jednocześnie zapewnia, że problemy te zostaną rozwiązane przy okazji premiery nowej serii kart graficznych opartych o architekturę Pascal. Są one tworzone z myślą o DirectX 12 i mam podejrzenia graniczące z pewnością, że będą wspierać Asnyc Compute.

Nvidia udziały

Należy pamiętać o tym, że Nvidia ma obecnie ponad 80% udziału w rynku kart graficznych i współpracuje z wieloma studiami deweloperskimi. Po powyższej prezentacji widać, że póki co firma może namawiać ich do nie korzystania z DirectX 12 lub jego kluczowych funkcji.  Sytuacja ta jednak zmieni się w przyszłym roku, gdy na rynku pojawią się nowe karty Nvidii. Wówczas wszystkie możliwości DirectX 12 będą wykorzystywane, co ucieszy posiadaczy Radeonów oraz nowych kart Nvidii.

Najbardziej poszkodowani będą posiadacze obecnej generacji kart graficznych, która w nowych warunkach będzie cechować się niską wydajnością. Możliwe jest, że firma z Santa Clara nie zrobi nic, by naprawić tę sytuację. Dotychczasowe doświadczenie pokazało, że Nvidii nie zależy na wspieraniu swoich starych produktów i koncentruje się przede wszystkim na przekonywaniu graczy do kupna nowych sprzętów.

AMD z kolei od 4 lat stosuje w swoich kartach graficznych tę samą, przyszłościową architekturę i nie zamierza jej zmieniać.

Oznacza to, że kupując nowego Radeona lub nowszą możemy spodziewać się wsparcia przez długie lata i stałego wzrostu wydajności karty względem niegdyś konkurencyjnych modeli konkurencji. Jeszcze niedawno Radeon R9 290X był porównywany z GeForcem GTX 780, a dziś jest od niego wydajniejszy. Teraz zastanawiam się, czy po premierze Pascala ta leciwa karta nie okaże się lepsza również od topowych modeli serii GTX 900.

Dołącz do dyskusji