Karty graficzne
Artykuł
Łukasz Marek, Mateusz Brzostek, Środa, 29 czerwca 2016, 15:00

Architektura GCN czwartej generacji

Architektura Polaris jest kolejnym etapem ewolucji Graphics Core Next, techniki będącej fundamentem kart graficznych i układów APU AMD od czasu Radeonów HD 7970, a od 2 lat – również konsoli Xbox One i PlayStation 4. Podstawowe cechy zostały zachowane, ale unowocześniono między innymi sprzętowe przyspieszacze wideo, podsystem pamięci, kontrolery wyjść obrazu i same jednostki obliczeniowe.

Jednostki obliczeniowe GCN czwartej generacji

Polaris - architektura

Schemat blokowy GPU Polaris 10. Kliknij, żeby powiększyć

Procesory strumieniowe są pogrupowane po 64 w jednostki obliczeniowe (CU). Procesor Polaris 10 ma 36 CU, a więc Radeon RX 480 z 2304 procesorami strumieniowymi jest pełną wersją tego GPU, bez żadnych wyłączonych segmentów. CU architektury Polaris mają ulepszone możliwości pobierania instrukcji z pamięci z wyprzedzeniem, dzięki czemu procesory strumieniowe rzadziej są bezczynne w oczekiwaniu na operacje na pamięci. Zwiększa to również efektywność pamięci podręcznej L2, bo pobrane do niej instrukcje są częściej pobierane dalej do CU. Procesory strumieniowe Polaris są też przystosowane do obliczeń na 16-bitowych liczbach stało- i zmiennoprzecinkowych (arytmetyka o zmniejszonej precyzji, half-precision): podczas takich obliczeń niepotrzebne części jednostek arytmetycznych i część rejestrów zostają wyłączone w celu oszczędzania energii.

Podsystem pamięci

Usprawniono prawie wszystkie części podsystemu pamięci, począwszy od pamięci podręcznej L2, która ma dwukrotnie większą pojemność niż w procesorach Hawaii (R9 390X) i taką samą jak w Fiji (R9 Fury): 2 MB. Dwukrotnie pojemniejsza L2 jest więcej niż dwa razy bardziej efektywna, bo może przechowywać skompresowane tekstury – a algorytm kompresji tekstur został w Polaris jeszcze usprawniony względem Radeonów R9 285 i Fury. Jak twierdzi AMD, jest nawet dwukrotnie efektywniejszy od tego w GCN trzeciej generacji, a RX 480 umie przesłać ponad 30% więcej danych niż GCN drugiej generacji z takim samym interfejsem pamięci. Kompresja tekstur jest jednym ze sposobów na obejście wąskiego gardła pamięci: w tańszych konstrukcjach nie można zastosować innego rodzaju pamięci (GDDR5X albo HBM), a GDDR5 już nie można o wiele bardziej przyspieszyć.

256-bitowy kontroler pamięci bez problemu współpracuje z pamięcią GDDR5 taktowaną z częstotliwością 2000 MHz (8 GT/s), podczas gdy w poprzednich GPU AMD stosowano najwyżej pamięć taktowaną z częstotliwością 1500 MHz, a możliwości podkręcania kończyły się na mniej więcej 1800 MHz. Prawdopodobnie Polaris może też współpracować z GDDR5X, ale ze względów ekonomicznych raczej nie zobaczymy takiej konfiguracji na rynku: koszt zastosowania GDDR5X byłby uzasadniony dopiero w sprzęcie znacznie wyższej klasy, w którym AMD zapewne użyje pamięci HBM.

Obliczenia asynchroniczne

Również sprzętowy scheduler w GCN czwartej generacji jest ewolucyjnym ulepszeniem poprzedniego, którym inżynierowie AMD tak chętnie się chwalili ze względu na możliwość asynchronicznego wykonywania obliczeń, co jest coraz częściej wykorzystywane w grach DirectX 12. Nowością jest system Quality of Service, pozwalający wybrać jeden z trzech trybów kolejkowania obliczeń jednocześnie z kolejkowaniem operacji na grafice.

W Hawaii i Fiji dostępny był tylko jeden: ten po lewej, w którym sprzętowy scheduler decyduje, gdzie i kiedy zostaną wykonane zadania obliczeniowe. W Polaris programista może wybrać też tryb z rezerwacją zasobów obliczeniowych (wolimy ten termin od „wywłaszczania”), podobnie jak w przypadku starszych GeForce'ów, w którym program decyduje, że chce zarezerwować pewne zasoby na zadania obliczeniowe. Wreszcie trzeci tryb wykorzystuje Quick Response Queue: pozwala programiście określić, które zadania mają wysoki priorytet i muszą zostać wykonane możliwie szybko, ale ostatecznie zostawia szczegóły sprzętowemu schedulerowi. QRQ jest szczególnie atrakcyjny w przypadku tych obliczeń, które trzeba zacząć możliwie późno, ale zakończyć absolutnie nie później niż w pewnym zadanym czasie – na przykład przy zniekształcaniu obrazu dla okularów VR. Żeby wyświetlacz pokazał możliwie świeży obraz, trzeba czekać ze zniekształcaniem jak najdłużej, ale przetworzony obraz musi być gotowy przed następnym odświeżeniem ekranu, żeby użytkownik nie zauważył rozdarcia (tearing) i żeby nie trzeba było powtarzać poprzedniej klatki.

Primitive Discard Accelerator

W przeszłości jednostki przetwarzające geometrię były czasem źródłem kłopotów Radeonów. Każda kolejna generacja GCN coś poprawiała pod tym względem. W tej dodano możliwość odrzucania bardzo małych wielokątów na wczesnym etapie obróbki, kiedy tylko okazuje się, że nie wpłynęłyby na kolor piksela. Tych mikrowielokątów jest szczególnie dużo wówczas, gdy wykorzystywana jest zaawansowana teselacja. Odrzucenie ich odpowiednio wcześnie pomaga zwłaszcza wtedy, kiedy włączone jest „prawdziwe” wygładzanie krawędzi (MSAA, multipróbkowanie). Podczas wygładzania krawędzi próbkuje się jeden piksel w kilku miejscach. Odrzucenie wszystkich subpikselowych wielokątów, które i tak nie wpłynęłyby na kolor piksela, bo nie pokrywają się z punktem próbkowania, oznacza znacznie mniej pracy dla jednostek geometrycznych.

Konkurs Palit Polska
Spis treści
Ocena artykułu:
Ocen: 22
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Aktualności spokrewnione
Facebook