Nowe karty graficzne i interfejsy - rewolucja graficzna 2016

Co nowego wprowadza DX12, Vulkan, Mantle czy nowe karty graficzne AMD i nVidii: Pascal i Polaris?

W 2016 i 2017 roku będziemy świadkiem gwałtownego skoku wydajności i możliwości kart graficznych. Nowe procesy technologiczne, nowe interfejsy DX12 i Vulkan, popularyzacja rozdzielczości 4K oraz wirtualnej rzeczywistości, czy konkurencja AMD z nVidią.

Zobaczmy więc o co chodzi z tymi nowościami.

W tym artykule postaram się omówić obecny stan kart graficznych i interfejsów jaki rozgrzewa nagłówki portali technologicznych jak i serca wielu graczy. Nowe interfejsy i nowe generacje kart graficznych to ogromna zmiana w porównaniu do dość zastałego już świata procesorów. Nieco technologii uproszczę i jeżeli ten temat Cię interesuje to polecam obejrzenie zamieszczonych na końcu klipów technologicznych Youtuberów.

Nowe interfejsy DX12, Mantle i Vulkan

Początek rewolucji - Mantle

W ostatnich latach gry wypuszczone na MS Windows oparte były o DX11, a na Linuksie wydawcy zmagali się z OpenGL. Nvidia ze swoją generacją kart opartych na architekturze Maxwell i wysoko ocenianym sterownikiem DX11 zgarnął około 80% rynku. AMD zaczęło odbijać się dopiero niedawno po wydaniu nowszej serii kart (Fury i inne). W tle premier kolejnych gier AMD opublikowało nowe API, interfejs do karty graficznej nazwany Mantle.

Mantle to niskopoziomowe API dla kart graficznych AMD. Nie bazuje na OpenGL czy DX11, jest zupełnie nowym tworem, który poszedł w zupełnie odmiennym kierunku. Zamiast wysokopoziomowego API i rozbudowanego systemu walidacji wszystkich operacji dostajemy bardzo surowe, niskopoziomowe API, które jest trudniejsze w użyciu i wymaga większego nakładu pracy ze strony programistów. Niemniej ten interfejs pokazał że jest znacznie lepszy od istniejących rozwiązań. Niski poziom dostępu do GPU pozwala programistom znacznie bardziej efektywnie korzystać z karty graficznej. Dodatkowo nacisk położono na bolączkę wielu gier - wąskie gardło na procesorze.

Na niektórych grach DX11 czy OpenGL można łatwo zauważyć że jeden (czy czasami dwa) rdzeń procesora jest mocno obciążony, a pozostałe praktycznie w ogóle. Jest to spowodowane tym że proces wysyłający polecenia do GPU działa na jednym rdzeniu. Mantle pozwala natomiast rozdzielać bufory komend na wiele rdzeni. Ta jednak prosta zmiana sprawiła że wiele gier, do których dodano obsługę Mantle mogło zacząć działać znacznie szybciej. Jako że wiele słabych rdzeni znajdziemy na konsolach, urządzeniach mobilnych to potencjalny rynek jest ogromny. Także zestawy z najwyższych półek mogły zyskać na tym rozwiązaniu.

Drugi problem to wąskie gardło na karcie graficznej - stare interfejsy mogły nie wyrabiać się wystarczająco szybko z wykonywaniem zadań obliczeniowych i graficznych na karcie. Wysoki poziom abstrakcji blokował lepsze rozłożenie pracy. Mantle wprowadziło asynchroniczne kolejki obliczeniowe, pozwalające efektywnie zapełnić czas karty graficznej, tak by nie miała przestoi czekając na synchronicznie zgłaszane kolejnych zadań.

W skrócie Mantle to bardzo małe API - programista dostaje bardzo małe i surowe klocki, z których może zbudować aplikację wedle własnych potrzeb. Niski poziom nie przeciąża procesora obsługą kolejnych warstw abstrakcji, jak i oddaje kontrolę w ręce programisty zamiast w ręce sterownika karty graficznej. To od programisty zależy jak wydajna będzie gra. Większa elastyczność kosztem większego nakładu pracy.

Mimo iż najnowsze wersje OpenGL czy DX11 próbowały rozwiązywać te problemy, to nadal istniały i były wąskimi gardłami dla twórców gier, czy świata urządzeń mobilnych.

Mantle wyrusza w świat

Benchmarki i same gry wykorzystujące Mantle pokazały że takie podejście jest lepszym rozwiązaniem od obecnie istniejących. AMD zgłosiło się z tym interfejsem do Microsoftu jak i do grupy Khronos odpowiedzialnej za rozwój standardu OpenGL. W skrócie powiedzieli to jest nasze API, bierzcie ile chcecie, za darmo. Mantle pozwoliło błyskawicznie przyśpieszyć prace nad Vulkanem - następcą OpenGL nie będący jego pochodną. Także DirectX12 był mocno wzorowany na Mantle. Pomysł AMD został powszechnie zaadaptowany.

Vulkan, Mantle i DX12 pozwalają rozpraszać kolejki na wiele rdzeni procesora, oferują niski poziom dostępu do karty graficznej bez dodatkowej magii wysokopoziomowego API jak i wystawiają API pozwalające efektywnie rozkładać pracę na samej karcie graficznej. DX12 dostępny jest dla Windows 10 (i Xbox One), Vulkan dostępny jest dla najnowszych wersji MS Windows, Linuksa jak i Androida. Apple poszło w kierunku swojego API Metal, które ma nieco inne podejście. Po publikacji DX12 (i Vulkana) samo Mantle nie konkuruje już z tymi interfejsami i przerodziło się w projekt do testowania nowych możliwości przez AMD i partnerów.

Ashes of Singularity - pierwsza gra DX12 i pierwszy sukces

Ashes of Singularity jest strategiczną grą czasu rzeczywistego opartą na silniku Nitrous tworzonego przez Oxide Studios. Wydawca ten zaczął prace nad swoim silnikiem za czasów Mantle testując czy to API rozwiąże ich problem - zarządzania i renderowania ogromnego pola bitwy pełnego jednostek. Mantle zmiażdżyło DX11, to samo zrobił DX12. Vulkan wyszedł później, ale też i w jego przypadku Oxide Studios zaprezentowało benchmark.

Benchmarki pojawiają się w sieci, np. benchmark.pl, czy legitreviews.com. Polecam też obejrzeć klip:

Jak widać interfejs DX12 wygrywa z interfejsem DX11. Pytanie tylko dlaczego karta nVidii zyskuje mniej?

Hardwarowe problemy nVidii?

Za kartę R9 290X zapłacimy jakieś 1500zł, a za GTX 980 około 2000zł. W benchmarkach syntetycznych, czy benchmarkach różnych gier opartych o DX11 karta nVidii wypada lepiej. Moglibyśmy oczekiwać że po przejściu na DX12 nadal utrzyma status lidera. Tutaj pojawia się pierwszy niuans DX12 - asynchronicznych obliczeń (Asynchronous Compute). Gra Ashes of Singularity wykorzystuje interfejs do asynchronicznych obliczeń (choć w niedużym stopniu) i z opublikowanych przez nich informacji sterownik nVidii nie implementuje obecnie w pełni tej części interfejsu DX12. Internet oszalał na punkcie asynchronicznych obliczeń i problemów nVidii, niemniej to wcale nie musi być przyczyna takich wyników benchmarków... ale najpierw popatrzmy na te asynchroniczne obliczenia.

Karty AMD oparte od dawna na architekturze GCN posiadają coś co nazywa się Asynchronous Compute Engines (ACE). Każdy silnik może parsować spływające polecenia i przekazywać je do wykonania na jednostkach obliczeniowych - Compute Units. Każdy silnik ACE może zarządzać do 8 niezależnymi kolejkami jak i działać współbieżnie z procesorem graficznych poleceń i dwoma silnikami DMA (dostępu do pamięci). Każda kolejka może rozsyłać zadania do wykonania bez czekania aż inne zadania na karcie graficznej zakończą się. To oszczędza bardzo dużo czasu.

Nie jest pewne na ile nVidia ma z tym problem, ich sprzętowa architektura była tworzona pod kątem zastosowania preemption, wywłaszczenia, które nadaje priorytet zadaniom. Ważniejsze wykona się szybciej, tyle że mechanizm ten nie jest aż tak wydajny jak Asynchronous Compute. Nowa generacja kart nVidii Pascal powinna radzić sobie z tym znacznie lepiej, choć czy i o ile to się jeszcze okaże. nVidia musi zmienić swoją architekturę, natomiast AMD nie. nVidia sugeruje obecnie stosowanie mniejszych kolejek, a obecne generacje ich kart nie implementują wszystkich funkcjonalności DX12.

Ashes of Singularity rysuje bardzo wiele elementów (jednostek) w przestrzeni. Taka specyfika tej gry może być łatwa do obsłużenia przez karty AMD. Inne typy gier potrzebujące mniej komend rysowania mogą mieć zupełnie inne przyrosty wydajności na DX12 dla nVidii, czy AMD. Pełen obraz da dopiero benchmark kilku gier różnych typów. Producent gry wyraźnie podkreślił że gra stosuje asynchroniczne obliczenia w dość małym stopniu a największy przyrost wydajności na DX12 zauważyli na zmniejszonym obciążaniu procesora przez sterownik karty graficznej. Pytanie na ile bardziej procesor obciąża sterownik nVidii i czy może być lepiej zoptymalizowany?.

Wiele kart graficznych

Nowe niskopoziomowe interfejsy pozwalają wykorzystywać więcej niż jedną kartę graficzną. W przypadku CrossFire czy SLI karty graficzne generują oddzielne klatki (np. przy dwóch kartach każda renderuje co drugą). W przypadku nowych interfejsów można korzystać z każdej karty oddzielnie, w tym karty AMD i nVidii w jednym systemie. Vulkan ma w planach dodanie interfejsu ułatwiającego wymianę danych pomiędzy kartami, ale to w przyszłych wersjach. Obsługa wielu kart nie jest robiona w tle, to programista musi wykorzystać taką możliwość i odpowiednio rozdzielać pracę wedle potrzeb.

Pisanie od podstaw

Kilka gier DX11 dostało łatki dodające obsługę DX12 co praktycznie nie przełożyło się na poprawę osiągów. Niestety ale żeby w pełni wykorzystać możliwości nowych interfejsów potrzebny jest silnik stworzony z myślą o nowych niskopoziomowych interfejsach. Szybkie przenoszenie gier z DX11 na DX12 trzeba brać bardzo sceptycznie.

AMD kontra nVidia

nVidia zyskała 80% rynku oferując świetne karty graficzne połączone z bardzo dobrym sterownikiem DX11. AMD w tym czasie sprzedawałi swoje karty graficzne, które nie wykorzystywały pełnego swojego potencjału celując długofalowo w popularyzację niskopoziomowych interfejsów. Za architekturą GCN jak i interfejsem Mantle stało przekonanie AMD że rynek grafiki i gier pójdzie właśnie w tym kierunku. nVidia w tym czasie nie zaryzykowała aż tyle, tworząc dobre produkty, które czeka teraz poważna zmiana.

AMD Polaris i Vega

Nowe układy graficzne AMD Polaris zadebiutują gdzieś przed sezonem powrotu do szkoły. Układy Vega to przełom 2016/2017, ale nic konkretnego o dacie premiery nie wiadomo. Układy Polaris 11 (duży) i Polaris 10 (mały) będą produkowane w Globalfoundries w 14nm procesie (przejście z 28nm). Mniejszy proces pozwala zmniejszyć zapotrzebowanie na prąd lub upchnąć na tej samej powierzchni większą ilość tranzystorów. AMD chwali się zwiększeniem wydajności na wat i spory nacisk kładzie na granie na poziomie konsol na cienkich ultrabookach i temu podobnych urządzeniach. Do tego bogate możliwości multimedialne. Polaris zaoferuje usprawnienia do architektury GCN, obsługę HDMI 2.0a, DisplayPort 1.3, dekodowanie h.265 do 4K, czy enkodowanie h.265 4K@60FPS.

Z opublikowanych materiałów wynika iż AMD spory nacisk kładzie na rynek mobilny, oraz karty graficzne średniej półki (porównanie z GTX 950). Nie wiadomo czy i kiedy pojawią się karty graficzne z wyższej półki oparte o rodzinę Polaris. Być może będziemy czekać na Vegę, która wykorzysta pamięć HBM2. Plotki krążące obecnie po internecie sugerują iż AMD musi dostarczyć wydajne układy do konsol zdolne zapewnić obsługę VR - rzeczywistości wirtualnej.

nVidia Pascal i Volta

Nowa generacja układów nVidii będzie produkowana przez TSMC w litografii 16nm (czyli nieco większej od AMD). Główne zmiany to własnościowy interfejs NV-Link pozwalający efektywniej łączyć karty graficzne ze sobą i procesorem jak i zmiany w obsłudze wykonywania operacji połowicznej, pojedynczej i podwójnej precyzji (FP16, FP32 i FP64), co może znacząco podnieść wydajność kart stosowanych do obliczeń (i mniejsza precyzja tym szybciej można dokonać obliczenia). Premiera, potencjalnie tylko papierowa powinna odbyć się w tym samym czasie co premiera AMD Polaris.

Volta będzie oferować jeszcze większe moce obliczeniowe. Jako że pamięci HBM2 nie są jeszcze masowo dostępne pierwsze karty Pascal podobnie jak karty AMD będą musiały zadowolić się GDDR5X lub HBM1. Nie wiadomo czy nVidia zachowa HBM2 na Voltę, czy też z końcem roku wyda mocniejsze karty z HBM2.

Od strony rynku gier niewiele jeszcze wiadomo odnośnie nowych generacji kart nVidii. Optymalizacje serii Maxwell były robione pod kątem możliwości 28nm procesu tak by wycisnąć więcej wydajności i energooszczędności na mniejszych marginesach dobrze już poznanego procesu produkcyjnego. Nowe litografie mogą opóźnić dostępność nowych kart obu producentów jak i ograniczyć początkowe korzyści.

Czerwoni czy Zieloni?

AMD jest teraz w świetle jupiterów i może rodzić się pytanie czy warto kupić kartę nVidii. Jeżeli musisz dokonać zakupu teraz to nie ma aż tak drastycznych różnic wydajności pomiędzy odpowiednikami AMD i nVidii. Jeżeli za rok nowe generacje kart będą wyraźnie lepsze w DX12, VR to zawsze można sprzedać starą, nadal dobrą dla istniejących gier kartę i kupić nowszą. Jeżeli planujesz zakup za kilka miesięcy to warto śledzić doniesienia o możliwościach nowych kart, jak i informacje o wyprzedaży starych generacji bo być może interesujące Ciebie gry nie będą wymagać tych wszystkich nowinek. Istniejące topowe karty AMD wydają się być bardziej odporne na przyszłość, ale też są bardziej energochłonne i mocno podkręcane. Karty nVidii potencjalnie mogą nie być w pełni zgodne/optymalne z najnowszymi technologiami (mają problemy z pełną zgodnością z DX12), ale nie należy nVidii od razu skreślać.

Niemniej AMD chwali się (pracownik AMD) że większość gier DX12 robionych w 2015/2016 będzie z nimi współpracować. AMD jest na fali i od sukcesu Polarisa jak i procesów Zen zależy przyszłość tej firmy.

Co jeszcze ciekawego?

Vulkan się rozprzestrzenia

Vulkan jest młodym interfejsem, ale pracowało nad nim wiele firm, w tym producenci układów graficznych. Qualcomm jak i Imagination Technologies zaprezentowały już demo i efekty działania Vulkana na ich mobilnych układach graficznych. Intel wydał Linuksowy sterownik obsługujący Vulkana, a AMD niedawno dodała eksperymentalną obsługę w zunifikowanym sterowniku AMDGPU. Pod Windowsem Vulkana obsługuje nVidia, AMD i Intel.

DX11 jak i OpenGL będą nadal używane, bo są po prostu łatwiejsze. Jeżeli gra, czy aplikacja nie cierpi na problemy o jakich wspominałem te interfejsy nadal będą używane. W przypadku gier wieloplatformowych (Windows, Linux (SteamOS)) możemy spodziewać się obsługi Vulkana lub nawet Vulkana i DX12. Jako że idee obu interfejsów są podobne to i portowanie gier DX12 do Vulkana nie będzie aż takie problematyczne jak w przypadku OpenGL.

DX12 jest obecnie tylko na Windowsie 10, który wśród graczy cieszy się mieszaną opinią. Nie wszyscy go lubią, a tym bardziej gry ograniczone do sklepu Microsoftu, które nie pracują na pełnym ekranie, tylko w oknie bez ramek (co psuje niektóre ustawienia i streaming/benchmarkowanie). Może dojść do tego że będzie spora ilość graczy na MS Windows innym niż 10.

Niemniej gry powstają długo i minie trochę czasu zanim plany przyszłych gier zaczną uwzględniać Vulkana jako główne API. Te które już powstają na DX12 decyzji nie zmienią, być może dodadzą Vulkana z czasem jeżeli będą portowane na Linuksa, czy nawet Androida.

Thunderbolt 3, XConnect i desktopowe GPU z laptopem

Razer Blade to ultracienki laptop ze złączem Thunderbolt 3 (USB 3.1 Type C), do którego producent zapowiedział stację dokującą pozwalającą podłączyć desktopową kartę graficzną i cieszyć się grami. AMD rozwinęło ten pomysł tworząc z Intelem rozwiązanie/standard XConnect, który oprócz umożliwienia podłączania GPU poprzez Thunderbolt 3 pozwala podłączyć i odłączyć kartę na gorąco bez wysypania systemu. Karty nVidia też można podłączyć (bo to kwestia BIOSu/UEFI), ale jak na razie nie obsługują bezbolesnego odłączania na gorąco.

Stacja dokująca mobilna nie jest, ale desktopowe karty są tańsze od mobilnych, jak i zazwyczaj są silniejsze. Możesz zabrać ze sobą mobilny laptop, podłączyć go w domu do stacji i grać, czy w pracy do stacji z kartą FirePro czy Quadro.

Intel negocjuje z AMD

W sieci pojawiły się plotki jakoby Intel negocjował z AMD licencjonowanie patentów i technologii związanej z ich układami graficznymi. Intel do końca Q1 2017 ma umowę z nVidią, ale według doniesień Intel może być zainteresowany umową z AMD i np. dodanie układów opartych o architekturę GCN do świata serwerowego (a może nawet stworzenie procesorów/układów zgodnych z HSA?).

Split-frame rendering

Crossfire czy SLI dzielą generowanie klatek pomiędzy karty graficzne. Technika ta ma swoje wady jak większe opóźnienie gry na akcje gracza. W grach, w których wąskim gardłem jest GPU można zastosować Split-frame rendering, co zaprezentowało AMD jeszcze za czasów Mantle. Klatka jest dzielona na części (kafelki) i każdą z części renderuje jedna karta graficzna. Nie ma już generowania klatek z wyprzedzeniem więc opóźnienie jest mniejsze, a że każda karta renderuje mały wycinek to zajmuje im to mniej czasu co dodatkowo poprawia wydajność. Renderowanie z podziałem klatki jest też obecne na np. kartach nVidia Quadro.

YouTube

Na YouTube jest sporo materiałów analizujących zmiany świata kart graficznych jak i procesorów. Jeżeli temat Cię zaciekawił to polecam klipy mądrych ludzi :)

Kanały:

blog comments powered by Disqus

Kategorie

Strony