Co to jest teraflop?
W jakim stopniu ich liczba wpływa na gry? Sprawdza Digital Foundry.
Po ujawnieniu pierwszych informacji na temat specyfikacji PlayStation 4 i Xbox One, na jaw szybko wyszły różnice w możliwościach obliczeniowych układów graficznych tych platform. Sprzęt Microsoftu - przynajmniej początkowo, przed zmianą założeń - oferował 1,23 teraflopa w GPU, podczas gdy maszyna Sony - 1,84 TF. Na papierze przepaść była spora, a Xbox One wydawał się mieć kłopoty jeszcze przed rozpoczęciem sprzedaży. Cyfry sugerowały, że PS4 będzie miało 50 procent przewagi w kluczowym dla graczy obszarze układu graficznego.
Teraz wydaje się jednak, że sytuacja odwróciła się o 180 stopni. W przypadku PlayStation 4K Neo mowa podobno o 4,2 TF, podczas gdy Project Scorpio chwali się liczbą 6 TF - 43 procent więcej. Wszystko to jest niewątpliwie fascynujące, ale czym właściwie są teraflopy i w jakim stopniu ich liczba przekłada się na wydajność czy wrażenia w grach?
„Flop” to liczba operacji zmiennoprzecinkowych na sekundę, zapisana jako liczba rzeczywista w notacji naukowej, czyli „razy 10 do potęgi”, a także podstawowa jednostka mocy obliczeniowej komputera. Jeśli mowa o technologii AMD w sercach konsol Microsoftu i Sony, obliczenia są całkiem proste - mnożymy liczbę shaderów (bazowych jednostek obliczeniowych określających wygląd elementów na ekranie, jak ich kolor czy inne efekty) w GPU oraz taktowanie zegarów. W sprzęcie AMD znajdziemy 64 shadery w jednostce obliczeniowej (CU). W Xbox One mamy 12 CU, PS4 ma ich 18, co daje odpowiednio 768 i 1152 shadery. Taktowanie zegarów w tych konsolach to odpowiednio 853 MHz oraz 800 MHz.
Matematyka nie jest więc w tym przypadku specjalnie skomplikowana, ale wynik musimy jeszcze podwoić, ponieważ w każdym cyklu równolegle wydawane są dwa różne typy poleceń (proces multiply-accumulate). Powstają szalenie wysokie wartości, więc - jak to często bywa w przypadku komputerów - wynik można przedstawić w bardziej przystępnej formie. Ostateczną liczbę dzielimy więc przez bilion, uzyskując teraflopy.
Poniżej obliczenia w przypadku dobrze znanych konfiguracji PlayStation 4 i Xbox One.
- Xbox One: 768 shaderów × 853 MHz × 2 polecenia = 1,310,208 megaflopów/1,31 TF
- PlayStation 4: 1152 shadery × 800 MHz × 2 polecenia = 1,843,200 megaflopów/1,84 TF
- Neo: 2304 shadery × 811 MHz × 2 polecenia = 4,197,888 megaflopów/4,2 TF
Microsoft ujawnił przed targami E3, że najnowszy model - Project Scorpio - zaoferuje 6 TF mocy w układzie graficznym, ale bez podawania żadnych dodatkowych detali. Mamy więc tylko wynik, bez części składowych, takich jak taktowanie zegarów. W naszej ostatniej analizie postawiliśmy na szczegóły dotyczące nadchodzących kart graficznych AMD o nazwie kodowej Vega. Rezultatem były przybliżone przewidywania na temat mocy nowej konsoli.
- Scorpio, scenariusz #1: 3584 shadery × 840 MHz × 2 polecenia = 6,021,120 megaflopów/6,02 TF
- Scorpio, scenariusz #2: 3840 shaderów × 800 MHz × 2 polecenia = 6,144,120 megaflopów/6,14 TF
Założyliśmy niższe taktowanie zegarów, ponieważ nowy procesor będzie zapewne znacząco większy od tego z PlayStation Neo (większy procesor generuje więcej ciepła, więc najczęściej działa przy niższym taktowaniu). Zakładając także zastosowanie technologii AMD Radeon Vega, dysponującej 64 jednostkami obliczeniowymi lub 4096 shaderami. Stawiamy właśnie na Vega, ponieważ osiągnięcie obiecywanych 6 TF w przypadku architektury Polaris (tej z PlayStation 4K Neo) wymagałoby ekstremalnie wysokiego taktowania zegarów, jak niżej:
- Scorpio scenariusz #3: 2304 shadery × 1302 MHz × 2 polecenia = 5,999,616 megaflopów/6 TF
Taktowanie musiałoby być nawet wyższe niż w karcie Radeon RX 480, na której bazuje PlayStation 4K Neo, co - patrząc realistycznie - nie ma szans na realizację. Pisząc krótko, albo Microsoft ma dostęp do jakiejś tajnej technologii AMD, albo korzysta właśnie z ograniczonej wersji architektury Vega. To drugie wydaje się być bardziej prawdopodobne.
W jakim stopniu teraflopy określają moc sprzętu?
Teraflopy to bardzo podstawowa jednostka określania mocy obliczeniowej, odcięta od wszystkich innych aspektów GPU. Dla przykładu, obecna architektura GCN od AMD zawsze górowała nad Nvidią w kwestii czystej mocy obliczeniowej, radząc sobie dużo lepiej podczas - powiedzmy - szczytu popularności przeróżnych kryptowalut. To nie przekłada się jednak automatycznie na wydajność w grach.
Dobrym przykładem jest zestawienie Nvidia GTX 1080 z 9 TF oraz AMD Radeon R9 Fury X z 8,6 TF. Można zakładać, że oba modele są porównywalne, ale poniższe testy w rozdzielczości 4K wskazują, że to pierwsze urządzenie jest znacznie szybsze, oddając pole tylko w jednej grze. Nawet wolniejszy GTX 1070 z 6,5 TF mocy często radzi sobie lepiej od Fury X. Co więcej, w kwestii teraflopów GTX 1070 jest nawet niżej od Titan X (7 TF), ale w grach osiąga podobne - lub lepsze - rezultaty.
Ważne są sterowniki, czyli oprogramowanie obsługujące sprzęt. Kluczowa jest jednak architektura samego układu graficznego, nie wspominając już o innych aspektach, takich jak przepustowość pamięci czy zasoby pamięci cache szybkiego dostępu. Porównania pomiędzy konsolami są jednak bardziej wartościowe, ponieważ komponenty otaczające GPU skalują się zazwyczaj wraz ze wzrostem mocy graficznej, a PlayStation 4 i Xbox One bazują na podzespołach z tej samej rodziny, o podobnej architekturze.
3840×2160 (4K) | GTX 1070 | GTX 1080 | Titan X | R9 Fury X |
---|---|---|---|---|
Assassin's Creed Unity, Ultra High, FXAA | 25,4 | 32,5 | 25,6 | 22,6 |
Ashes of the Singularity, Extreme, 0x MSAA, DX12 | 43,1 | 53,3 | 40,9 | 49,0 |
Crysis 3, Very High, SMAA T2x | 31,5 | 40,1 | 31,3 | 31,4 |
The Division, Ultra, SMAA | 31,0 | 37,3 | 30,7 | 31,1 |
Far Cry Primal, Ultra, SMAA | 33,5 | 42,4 | 33,5 | 34,5 |
Rise of the Tomb Raider, Ultra, SMAA, DX12 | 35,6 | 45,8 | 35,9 | 29,6 |
Wiedźmin 3, Ultra, Post AA, bez HairWorks | 37,3 | 43,7 | 34,0 | 32,8 |
Project Cars, Ultra, SMAA | 33,6 | 38,5 | 29,8 | 20,9 |
Porównania wewnątrz obecnej generacji, między Xbox One i Scorpio oraz PlayStation 4 i Neo, mogą nie być już równie wartościowe. AMD nadal dostarcza komponenty współpracujące z poprzednią generacją, ale nowa fala sprzętu GPU otrzymuje poprawki w architekturze i spodziewamy się wyższej efektywności. Sprawdzimy to już wraz z kartą RX 460, dysponującą 16 jednostkami obliczeniowymi na wzór Radeona HD 7850, ale już w oparciu o architekturę Polaris. Wyrównanie taktowania i przepustowości pomiędzy tymi modelami powinno w teorii pokazać ulepszenia wprowadzane w nowej generacji GPU.
Na papierze, Scorpio jest 4,6 razy mocniejsze od Xbox One, a Neo - 2,3 razy mocniejsze od PS4. Poprawki w architekturze AMD mogą jednak przełożyć się na nawet wyższy wzrost wydajności - większy, niż można sądzić po samym spojrzeniu na teraflopy. Warto przy tym pamiętać, że 40-procentowy wzrost mocy obliczeniowych nie przełoży się na 40 proc. więcej klatek na sekundę.
Wydajność GPU nie skaluje się wraz z wzrostem mocy obliczeniowej
Ogólnie rzecz ujmując, „wciśnięcie” większej liczby jednostek obliczeniowych do GPU przełoży się na wyższą wydajność. Dwa razy więcej teraflopów nie zaoferuje jednak dwukrotnie większej liczby klatek na sekundę, by posłużyć się dość prymitywnym przykładem. Powodów jest wiele, ale mowa głównie o ograniczeniach związanych z przepustowością pamięci.
Weźmy Radeona R9 380X. Karta ma pełne 32 jednostki obliczeniowe dzięki układowi Tonga od AMD. W zestawieniu z ograniczonym R9 380 (ten sam układ, ale 28 jednostek obliczeniowych) widzimy przyrost mocy tylko o 10-15 procent. Jest tak, pomimo wyższego taktowania zegarów, szybszej pamięci i większej liczby shaderów. Różnica pomiędzy teraflopami i rzeczywistą wydajnością wydaje się tylko zwiększać wraz ze wzrostem liczby tych pierwszych. Microsoft stara się jak może, dodając do 6 TF w Scorpio przepustowość na poziomie 320 GB/s, w porównaniu z 218 GB/s w Neo.
Różnicę w liczbie teraflopów i rzeczywistą wydajnością widać już także w PlayStation 4 i Xbox One. Wiarygodne testy porównawcze układów GPU na konsolach praktycznie nie istnieją, ponieważ deweloperzy stosują najczęściej blokadę liczby klatek na sekundę, dostosowują jakość poszczególnych elementów oprawy lub też zmieniają natywną rozdzielczość, by zachować równy poziom. Jest jednak pewien wyjątek - nowy Hitman. Gra działa w 1080p na obu konsolach, z identyczną oprawą i bez blokady FPS, co daje idealne warunki do testów porównawczych.
Okazuje się, że w obszarach w dużym stopniu obciążających GPU, PlayStation 4 oferuje wydajność wyższą o 30 procent, pomimo przewagi w teraflopach na poziomie 40 proc. (1,84 TF kontra 1,31 TF) oraz w przepustowości pamięci (w zależności od wykorzystania zasobów ESRAM w Xbox One). Ale to nie wszystko: Hitman w niektórych scenariuszach może działać lepiej na Xbox One, co sprowadza nas do następnego punktu.
Wydajność w grach zależy też od procesora
Hitman to interesujący przykład gry ograniczanej zarówno przez CPU, jak i GPU. Etap w Paryżu to mnóstwo postaci niezależnych, z własnym zachowaniem i animacjami do przetworzenia. Te zadania nadają się lepiej dla procesora, a PS4 i Xbox One dysponują względnie słabym układem Jaguar, zaprojektowanym pierwotnie z myślą o urządzeniach mobilnych. Aby zyskać wyższą wydajność, podwojono liczbę rdzeni, co nie jest chyba najlepszym rozwiązaniem. Rezultatem jest 1,65 GHz na rdzeń na sprzęcie Microsoftu oraz 1,6 GHz na konsoli Sony - 9,4 procent mniej. Różnicę tę widać niekiedy na ekranie w grze Hitman.
Sony starało się odpowiedzieć na ten problem w Neo. Wygląda na to, że nowa architektura AMD - Zen - nie jest jeszcze gotowa na integrację z GPU w jeden układ konsolowy, więc postawiono na drugiej najlepsze rozwiązanie, czyli wyższe taktowanie. Neo stawia więc na 2,1 GHz w porównaniu z 1,6 GHz w bazowym PS4 - 31,3 procent więcej. Nie wiemy dokładnie, z jakiej architektury skorzysta Scorpio, ale analiza dostępnych danych zdaje się wskazywać na podobną strategię - szybsze rdzenie Jaguar, być może w zaktualizowanej wersji.
To nasze główne zastrzeżenie związane z Neo i Scorpio: przełomowy wzrost mocy w układzie graficznym, ale bez podobnych zmian w sferze CPU. To może w pewnym stopniu wyjaśniać nacisk na rozdzielczość 4K, a nie na więcej klatek na sekundę (co na pewno byłoby milej widziane). Przejście z 30 na stałe 60 FPS wymaga dużo więcej od procesora. A w przypadku Neo - gdzie znamy specyfikację - nie widzimy nic, co wskazywałoby na wymagany do tego wzrost mocy.
W skrócie: moc układu graficznego to nie tylko teraflopy
Nie ma prostej linii łączącej teraflopy z wydajnością w grach. Wartość ta na pewno daje pogląd na ogólne możliwości GPU, ale porównania sprawdzają się raczej tylko w ramach jednej rodziny sprzętu. Nawet wtedy karta z - powiedzmy - wyższą o 40 procent mocą nie zaoferuje 40 proc. klatek na sekundę więcej. Możliwości układu graficznego zależą od wielu innych czynników, na czele z przepustowością pamięci, czyli tempem przesyłania danych.
Jest jednak jasne, że Xbox One z 12 jednostkami obliczeniowymi i 1,31 TF w GPU wypada słabiej od PlayStation 4 z 18 jednostkami obliczeniowymi i 1,84 TF w rdzeniu graficznym, co podkreślała jeszcze niższa przepustowość pamięci w urządzeniu Microsoftu. Biorąc jednak pod uwagą tak znaczącą różnicę w specyfikacji, deweloperzy poradzili sobie całkiem dobrze przy pracach nad tytułami multiplatformowymi. Głównym wyróżnikiem była najczęściej rozdzielczość, choć PS4 często oferowało także wyższą płynność.
Wiele wskazuje na podobny podział w przypadku PlayStation 4K Neo i Project Scorpio, tym razem z przewagą po stronie Microsoftu. Tajemnicą pozostaje jednak, w jakim stopniu specyfikacje przełożą się na działanie w grach. Microsoft zdaje się celować w natywne 4K, co rozważa chyba także Sony - ale najpewniej poprzez skalowanie z niższej rozdzielczości. Być może jednak, w obliczu potężniejszego sprzętu u konkurenta, Sony - a także deweloperzy - postarają się osiągnąć pełnię możliwości 1080p? Jak wspominaliśmy już wcześniej, nowe konsole zaoferują większe możliwości nie tylko na polu rozdzielczości.