Karty Nvidii bez wsparcia dla ważnej funkcji DirectX 12 - raport
Problem „zielonych”.
Jak wspominaliśmy w naszym pierwszym spojrzeniu na benchmark DirectX 12 wbudowany w strategię Ashes of the Singularity, karty AMD pokazały przewagę nad sprzętem Nvidii. Wywołało to szeroką dyskusję i wzajemne przerzucanie się winą pomiędzy obozem „zielonych” i odpowiedzialnym za projekt studiem Oxide.
„Rozmowa” przeniosła się z oficjalnych blogów na łamy forum dyskusyjnego Overclock.net, gdzie przedstawiciel studia deweloperskiego przyznał, że „Maxwell nie wspiera Async Compute, przynajmniej nie w natywny sposób. Wyłączyliśmy tę technologię na prośbę Nvidii, ponieważ próby korzystania z niej dawały gorsze rezultaty” - napisał niejaki „Kollock”.
Czym jest Async Compute? To jedna z kluczowych funkcji bibliotek DirectX 12, z myślą o których powstaje właśnie Ashes of the Singularity. W dużym uproszczeniu, metoda ta pozwala na jednoczesne przenoszenie danych w dwóch kanałach.
Jak wyjaśnia obrazowo użytkownik serwisu Reddit, karty Nvidii w architekturze Maxwell mają jedną „drogę”, z jednym „pasem” na auta (grafika) i 32. pasami na ciężarówki (Compute - obliczenia). Ciężarówki mogą korzystać z pasa dla aut, ale dopiero, gdy „zjadą” z niego wszystkie samochody osobowe, co programiści określają jest jako „zmienianie kontekstu” (context switch).
Tymczasem karty AMD w architekturze GCN mają jedną drogę z wspólnym pasem dla aut i ciężarówek oraz dodatkowe 8 dróg, po 8 pasów każda, wyłącznie dla ciężarówek. Oba typy pojazdów mogą więc poruszać się jednocześnie i asynchronicznie.
Po części wyjaśnia to, dlaczego Nvidia osiągnęła przewagę na DirectX 11. Starsza wersja bibliotek potrafi korzystać bowiem tylko z jednej „drogi” jednocześnie.
Tymczasem wygląda na to, że AMD postawiło na nieco bardziej przyszłościowe rozwiązanie i wraz z technologią Mantle (znaną teraz jako Vulkan) pracowało właśnie nad szerszym wsparciem Async Compute, które ma także duże - jeśli nie większe - znaczenie w konsolach.
„Nasze zastosowanie Async Compute blednie w porównaniu z tym, co robią na konsolach” - dodaje przedstawiciel Oxide. „Większość z tych rzeczy nie trafiła jeszcze na PC, ale słyszałem, że deweloperzy osiągają nawet o 30 procent lepszą wydajność.”
„Co ciekawe, sterownik Nvidii raportował działanie funkcji, ale próba jej wykorzystania zakończyła się prawdziwą katastrofą pod względem wydajności i zgodności, więc ją wyłączyliśmy” - dodaje „Kollock”.
„O ile wiem Maxwell nie ma Async Compute, więc nie wiem, dlaczego sterownik przekazywał takie informacje.”
W serwisie Reddit wypowiedział się także pracownik AMD, który bez większej kurtuazji opisał sprzęt konkurencji:
„Oxide idealnie podsumowało moje przemyślenia. Nvidia zapewnia o »pełnym« wsparciu dla DX12, ale wygodnie ignoruje fakt, że architektura Maxwell jest całkowicie niezdolna to wykonywania asynchronicznych obliczeń bez bazowania na wolnym zmienianiu kontekstu.”
Ale czy mowa o starszych Maxwellach, czy także tych nowych, z serii 900? I na ile pomóc może optymalizacja sterowników? Sprawa na pewno jest „rozwojowa” i na obecną chwilę więcej jest pytań niż odpowiedzi. Nvidia nie wydała jeszcze oficjalnego komunikatu w tej sprawie.
Dzięki, ZetarXenil.
Nudzisz się? Zobacz także: