Podwójne GPU, dlaczego obecnie ani NVIDIA, ani AMD nie robią ich obecnie?

Jeśli obserwowałeś rynek w ostatnich latach, być może widziałeś, jak konfiguracje karty graficznej z dwoma GPU nie są już oferowane w nowych architekturach przez dużych producentów, takich jak AMD i NVIDIA. Jakie są powody, dla których obie firmy nie stawiają już na te podwójne GPU konfiguracje?

Od jakiegoś czasu przestaliśmy widzieć w sklepach podwójne karty graficzne, które były w najwyższej gamie konsumenckiej.

Podwójne GPU, dlaczego nie zrobić ich

Podwójna karta graficzna działa tak samo, jak dwie oddzielne karty graficzne, ale współdzieli tę samą magistralę PCI Express między nimi, co prowadzi do ograniczeń pod względem mocy dostępnej dla obu GPU, a także komunikacji z CPU. Najbardziej logicznym wyjaśnieniem jego zniknięcia jest to, że producenci zarabiają mniej na sprzedaży podwójnej karty niż nie dwóch prostych kart, poza faktem, że karty podwójne, ze względu na ich ograniczony rynek, stają się problemem zapasów, jeśli te karty graficzne nie są sprzedawane .

O ile w przypadku ciągnięcia kart graficznych z pojedynczym GPU połączonym ze sobą za pomocą technologii takich jak SLI czy Crossfire jest to bardziej opłacalne i bardziej odpowiednie, jeśli chodzi o zarządzanie zapasami. Ale motywacje techniczne są nieco bardziej złożone i mają związek z tym, jak oprogramowanie domowe, a zwłaszcza gry wideo, korzystają z procesorów graficznych.

Komunikacja CPU-GPU i jej wpływ na podwójne GPU

Na początku każdej klatki gry komputerowej procesor oblicza położenie sceny każdego obiektu w niej, a także interakcje, wykrywanie kolizji, tworząc w ten sposób uporządkowaną listę rzeczy do zrobienia zwaną „Listą poleceń”, którą jest napisane w części głównej RAM. GPU następnie przez jednostkę DMA, która pozwala mu odczytać główną pamięć RAM systemu, nie mylić z pamięcią grafiki, odczytuje tę listę tak, jakby to był pierścień. Innymi słowy, GPU odczytuje te same adresy pamięci, które będą zawierać tę listę lub listy w pętli.

Procesor GPU Comandos Colas

Wszystkie GPU mają mały procesor zwany „Command Processor”, który odczytuje tę część pamięci systemowej, w której znajduje się lista poleceń, które zostały wcześniej napisane przez procesor i które wskazują, co posiada GPU. zrobić, aby narysować bieżącą klatkę. Jednostka ta znajduje się w centralnej części GPU niezależnie od producenta i architektury tego samego.

Podobnie jak w przypadku pracy dyrygenta orkiestry, procesor poleceń jest umieszczony w centralnej części chipa niezależnie od architektury, ponieważ to on jest odpowiedzialny za kierowanie działaniem różnych GPU i że dane krążą prawidłowo w różne jednostki. Możemy mieć podwójny GPU przypisujący każdy z nich do innego ekranu, ale ogólnym zastosowaniem na rynku krajowym zawsze było połączenie dwóch procesorów graficznych, aby renderować tę samą scenę znacznie szybciej i / lub bardziej szczegółowo.

Jak renderują się podwójne GPU? Renderowanie podzielonej klatki a alternatywne renderowanie klatek

Pomysł posiadania podwójnego GPU to nic innego jak połączenie mocy obu GPU w celu renderowania tej samej sceny i mogą one współpracować, ale w tym celu oba GPU muszą ze sobą koordynować, aby renderować scenę, a do tego generalnie są dwa metody

  • Każdy GPU działa z przeplotem, gdzie każdy z nich obsługuje ramkę, a zatem inną listę ekranów. Nazywa się to alternatywnym renderowaniem klatek.
  • Współpraca zarówno w tej samej ramce, jak i współdzielenie przestrzeni na ekranie. Co to jest renderowanie podzielonej klatki

Pierwszy przypadek jest najłatwiejszy do zrobienia i nie wymaga synchronizacji między dwoma GPU podczas renderowania tej samej klatki, ponieważ każdy z nich obsługuje inną ramkę. Utrudnienie polega na tym, że zasoby, takie jak tekstury, modele i inne, zostaną zduplikowane w pamięci RAM każdej z kart, ponieważ chociaż działają one w połączeniu, jedna działa naprzemiennie.

Alternatywne renderowanie klatek

AFR jest najczęściej używanym modelem w przypadku kart graficznych PC pracujących w trybie dualnym. Główną zaletą jest to, że pozwala to GPU naprzemiennie uruchamiać swoją ramkę, zanim partner ją zakończy, a procesor może utworzyć listę poleceń dla drugiego GPU tuż przed zakończeniem pracy pierwszego. Należy wziąć pod uwagę, że w konkretnym przypadku AFR nie wszystkie klatki są renderowane w tym samym czasie iw określonym czasie. Jeden GPU będzie miał większe obciążenie niż drugi i nie będą skoordynowane, dlatego niezbędny jest element, który koordynuje, kiedy GPU zaczyna ramkę i kiedy się kończy, tak aby podczas generowania obrazu jeden nie nadepnął na drugi.

Drugi przypadek jest typowy dla GPU dla urządzeń Post-PC, ponieważ GPU tych urządzeń zwykle składają się z kilku symetrycznych GPU działających równolegle i korzystających z tego samego dostępu do pamięci. Typ renderowania tradycyjnie stosowany w tych urządzeniach to renderowanie za pomocą kafelków lub mozaiki, polegające na podzieleniu ekranu na mozaiki. W ten sposób na pierwszy podział ekranu składa się liczba dostępnych rdzeni GPU. Każdy rdzeń GPU traktuje wtedy część ekranu tak, jakby była to cała ramka.

Renderowanie podzielonej klatki

Renderowanie podzielonej klatki

Ta metoda nosi nazwę Split Frame Rendering, SFR i działa szczególnie w systemach, w których pomimo posiadania kilku procesorów graficznych wszystkie z nich dobrze współużytkują tę samą pamięć. Na PC i zaczynając od DirectX 12, Microsoft dodano obsługę Split Frame Rendering, która umożliwiła dwóm kartom graficznym obsługę tej samej ramki w tym samym czasie współużytkujących to samo adresowanie pamięci. Wygląda to naprawdę ładnie na papierze, ale… Co się dzieje, gdy dwa GPU nie współużytkują dobrze tej samej pamięci RAM i renderują tę samą klatkę w tym samym czasie? Przerażająco duże opóźnienia w dostępie powstają podczas komunikacji, gdy procesor GPU musi uzyskać dostęp do danych znajdujących się pod wspólnym adresem obu GPU.

SFR do prawidłowego działania wymaga, aby oba procesory graficzne miały tę samą pulę pamięci w sposób współużytkowany, a nie tylko takie samo adresowanie. Od jakiegoś czasu w niektórych modelach GPU pojawiają się procesory poleceń z wirtualizacją, które działają jako 2 lub więcej procesorów graficznych i dzielą dostępne zasoby sprzętowe, aby mogły działać jako kilka różnych procesorów graficznych. Jest to szeroko stosowane w centrach danych, w których procesor GPU może służyć do jednoczesnego dostarczania zasobów różnym klientom.

Jednak na krajowym rynku PC nie używa się zarówno SFR, jak i AFR, ponieważ wymaga to dostosowania sposobu tworzenia list poleceń oprogramowania dla tego typu konfiguracji. Liczba osób z podwójnym GPU jest niezwykle niska i nie opłaca się w ogóle tworzyć oprogramowania wykorzystującego te funkcje. Nawet rynek rzeczywistości wirtualnej, na którym posiadanie GPU renderującego każde oko byłoby plusem, nie osiąga nawet wystarczająco dużego popytu na karty graficzne, które mają procesory poleceń obsługujące standardowo wirtualizację.

Czy DirectX 12 wpłynął na podwójne GPU?

Począwszy od DirectX 11, możliwość wykonywania obliczeń ogólnego przeznaczenia na GPU została dodana równolegle z renderowaniem grafiki. Sposobem na to nie jest posiadanie pojedynczego bufora w pamięci, ale kilka różnych buforów, z których jeden i główny jest odpowiedzialny za renderowanie grafiki, a reszta wykonuje małe zadania obliczeniowe.

DX11 vs DX12

W DirectX 11, jeśli chodzi o GPU, chociaż istnieje kilka list poleceń oprócz listy poleceń dla grafiki w systemowej pamięci RAM wewnętrznej GPU, wszystko zostało wykonane jako długa lista, na której renderowanie sceny ma pierwszeństwo. W DirectX 12 nastąpiła duża zmiana, w której listy obliczeniowe są wykonywane przez GPU równolegle i asynchronicznie. Oznacza to, że te listy poleceń są rozstrzygane niezależnie od stanu listy poleceń do renderowania grafiki.

Należy pamiętać, że zarówno SFR, jak i AFR zależą od stanu dostępności zasobów GPU, czy ramka się skończyła, czy nie. Programista może wydrapać kilka dodatkowych milisekund z GPU, aby wykonać szereg dodatkowych zadań poza kompozycją sceny. To sprawia, że ​​bardzo, bardzo trudno jest skoordynować dwa GPU w skoordynowany sposób, aby umożliwić zarówno AFR, jak i SFR, a zatem DirectX 12 był ostatnim gwoździem do trumny dwóch GPU na rynku krajowym.

Te zmiany, wraz z kilkoma osobami z konfiguracjami z dwoma GPU, które uzasadniają optymalizację gier, sprawiły, że całkowicie zniknęły one z rynku.