Kanadyjski kontratak

Czwartego maja ukrywające się pod kodową nazwą R420 układy graficzne z serii ATI X800 ujrzały światło dzienne. Podobnie jak w przypadku konkurencyjnego GeForce’a 6800 Ultra (patrz: $(LC103118:Królowie grafiki)$), produkt firmy ATI – Radeon X800 XT, który otrzymał niedawno dodatkowy przydomek Platinum Edition – jest niemal dwa razy szybszy od swojego poprzednika, Radeona 9800 XT (patrz: $(LC106300:Czas na 16 potoków)$). Co kryje się za tak dużym wzrostem wydajności najnowszych akceleratorów 3D spod znaku klonowego liścia?

Wycisnąć jak cytrynę

Sama architektura układu R420 praktycznie nie różni się od tej znanej z kości R350/R360 (Radeon 9800 Pro/9800 XT – patrz: $(LC42333:Pogromca GeForce’a)$). Inżynierom z firmy ATI – co potwierdzają również nasze testy – udało się jednak dokonać majstersztyku optymalizacji. U podstaw przyśpieszenia generowania trójwymiarowej grafiki leży zwiększenie liczby potoków renderujących z ośmiu do szesnastu. W akceleratorze znalazło się zatem szesnaście jednostek Pixel Shader.

W każdej z nich konstruktorzy wykorzystali po dwa 72-bitowe moduły przetwarzające instrukcje wektorowe i dwie 24-bitowe jednostki skalarne. W stosunku do Radeona 9800 XT oznacza to również podwojenie mocy obliczeniowej, gdyż wspomniany układ zawierał zaledwie po jednej skalarnej i jednej wektorowej jednostce arytmetyczno-logicznej. Liczba modułówy mapujących tekstury (TMU – Texture Mapping Unit) nie uległa zmianie – w dalszym ciągu na jeden potok renderujący przypada jedna 96-bitowa jednostka TMU.

Klonowanie podzespołów

W Radeonie X800, który niestety nie jest zgodny z bibliotekami DirectX 9.0c – o czym za chwilę – Pixel Shadery zgrupowane zostały w czterech blokach. Każdy ma dostęp do własnego podsystemu zarządzającego buforem Z. W jego skład wchodzą: moduł odpowiedzialny za przeprowadzaną na wczesnym etapie generowania sceny hierarchiczną eliminację niewidocznych dla obserwatora obiektów (ang. Hierarchical Early Z Test) i pamięć podręczna dla nakładanych na obraz szablonów, którą zoptymalizowano również pod kątem prostych operacji związanych z operowaniem cieniami (Z/Stencil Cache). W omawianym podsystemie znalazła się też jednostka odpowiedzialna za kompresję informacji znajdujących się w buforze Z i szybkie oczyszczanie go z już niepotrzebnych danych. Jest to kolejna odsłona znanej już z poprzednich Radeonów technologii Hyper Z – otrzymała ona oznaczenie Hyper Z HD. Dwie ostatnie litery nazwy pochodzą od słów High Definition. Podobnie symbolem HD oznaczono zespół Pixel i Vertex Shaderów tworzących wspólnie tzw. silnik graficzny. W kości R420 nosi on nazwę Smartshader HD.

W nowym Radeonie zwiększona została też liczba Vertex Shaderów odpowiedzialnych za przeprowadzanie obliczeń związanych z transformacjami geometrycznymi i kalkulacjami oświetlenia generowanej sceny. Zamiast dotychczasowych czterech jednostek X800 ma ich sześć. Dzięki temu zabiegowi uzyskano 50-procentowy wzrost mocy obliczeniowej nowego procesora graficznego w kalkulacjach geometrycznych. Radeon X800 może przetworzyć ponad 750 milionów wielokątów w ciągu sekundy.

Sama budowa modułu Vertex Shader nie zmieniła się w porównaniu z poprzednikiem. Jednostka składa się z dwóch bloków arytmetyczno-logicznych: 128-bitowej jednostki wektorowej i 32-bitowego procesora skalarnego. Znajduje się tam też moduł sterujący przepływem danych (ang. flow control). Odpowiada on m.in. za wymianę informacji pomiędzy jednostką wektorową i skalarną i dynamicznie śledzi wszelkie rozgałęzienia wykonywanego programu shaderowego.

DirectX na dwa plus

Pojawienie się pętli i rozgałęzień w wykonywanych przez jednostki Pixel i Vertex Shader programach jest jedną z nowości wprowadzonych w nowej “shaderowej” specyfikacji. Firma ATI oznaczyła ją jako 2.0+. Programy wykonywane przez poszczególne wektorowe i skalarne jednostki arytmetyczno-logiczne wydłużone zostały z 64 do 512 instrukcji, dla tekstur można zaś stosować nie 32, ale również 512 komend. Łącznie długość programów zwiększyła się ze 160 do 1536 rozkazów.

Podobnie jak w przypadku nowych kości nVidii, konstruktorzy z ATI zastosowali mechanizm MRT (Multiple Render Target). Pozwala on na przekazywanie danych dotyczących położenia pikseli, ich koloru i nakładanej tekstury pomiędzy poszczególnymi jednostkami wykonawczymi. Technologia ta, nazywana też odroczonym cieniowaniem (ang. deferred shading), ułatwia końcową fazę renderowania obrazu, gdyż karta nie musi sięgać po te dane do pamięci. Mechanizm ten spełnia już założenia specyfikacji Pixel Shader 3.0.

O niezgodności kart ATI z najnowszą metodą generowania grafiki, zawartą w bibliotekach graficznych Microsoft DirectX 9.0c decydują dwa czynniki: ograniczenie liczby wykonywanych instrukcji (nowa specyfikacja zakłada możliwość korzystania z programów o nieskończonej długości) oraz brak w jednostkach Vertex Shader modułu pobierającego i analizującego tekstury. Pierwsze ograniczenie można obejść, wykonując odpowiednio połączone ze sobą programy shaderowe. Drugiej przeszkody nie da się ominąć w sposób sprzętowy, a jedynie programowo załatać w sterownikach karty. Dopiero następca R420 – R500 – będzie w pełni zgodny z najnowszą specyfikacją Microsoftu.

Co ciekawe, jak twierdzą przedstawiciele firmy ATI, problemem zgodności z modelem shaderów w wersji 3.0 nie należy się wcale przejmować. Otóż, przez najbliższe półtora roku użytkownicy nie skorzystają z zalet nowej technologii, gdyż producenci gier nie zdążą przygotować kolejnej generacji silników dla aplikacji 3D. Mało tego, gdy gry takie pojawią się już na rynku, obecne karty nVidii zgodne z DirectX 9.0c mogą się okazać za słabe jak na potrzeby nowych tytułów. Moim zdaniem tłumaczenie firmy ATI byłoby sensowne, gdyby nie jedno małe “ale”… W trakcie premiery GeForce’ów 6800 nVidia przedstawiła listę jedenastu gier zgodnych z shaderami 3.0, które w sklepach pojawią się jeszcze w tym roku.

Porównanie układów z rodziny R420 z najszybszymi obecnie modelami procesorów graficznych
ATI Radeon X800 SEATI Radeon X800 ProATI Radeon X800 XTnVidia GeForce FX 5900 UltranVidia GeForce FX 5950 UltranVidia GeForce 6800 UltraATI Radeon 9800 ProATI Radeon 9800 XT
Nazwa kodowaR420/R423R420/R423R420/R423NV35NV38NV40R350R360
Sugerowana cena1200 zł2100 zł2700 zł2000 zł2350 zł2700 zł1700 zł2250 zł
Technologia wykonania0,13 mm low-k0,13 mm low-k0,13 mm low-k0,13 mm0,13 mm0,13 mm0,15 mm0,15 mm
Liczba tranzystorów160 mln160 mln160 mln130 mln130 mln220 mln107 mln107 mln
Pobór mocy42 W49 W65 Wb.d.b.d.150 Wb.d.b.d.
Silnik graficznySmartshader HDSmartshader HDSmartshader HDCineFX 2.0CineFX 2.0CineFX 3.0Smartshader 2.1Smartshader 2.1
Liczba potoków renderujących81216441688
Liczba TMU/potok11122111
Generacja DirectX1)9.0+9.0+9.0+9.0+9.0+9.0c+9.09.0
Vertex Shader1)2.0+2.0+2.0+2.0+2.0+3.02.02.0
Pixel Shader1)2.0+2.0+2.0+2.0+2.0+3.02.02.0
PamięćGDDR1/GDDR3 (256-bit)GDDR1/GDDR3 (256-bit)GDDR3 (256-bit)GDDR1 (256-bit)GDDR1 (256-bit)GDDR3 (256-bit)GDDR1 (256-bit)GDDR1 (256-bit)
Przepustowość pamięci27,2 GB/s (?)28,8 GB/s32 GB/s27,2 GB/s30,4 GB/s35,2 GB/s*21,8 GB/s23,4 GB/s
Taktowanie pamięci (efektywne)850 MHz (?)900 MHz1120 MHz850 MHz950 MHz1100 MHz*680 MHz730 MHz
Taktowanie rdzenia450 MHz (?)475 MHz520 MHz450 MHz475 MHz400 MHz*380 MHz412 MHz
Fillrate3,6 Gpiksela/s5,7 Gpiksela/s8,8 Gpiksela/s3,6 Gpiksela/s3,8 Gpiksela/s7,6 Gpiksela/s3,04 Gpiksela/s3,3 Gpiksela/s
ZłączeAGP 8x/PCI Express 16xAGP 8x/PCI Express 16xAGP 8x/PCI Express 16xAGP 8xAGP 8xAGP 8x/PCI Express 16xAGP 8xAGP 8x
Wydajność**
Test 3DMark03b.d.865011 5605300645012 40059406380
* – pierwsze modele kart referencyjnych nVidii; ** – na podstawie danych producenta i wyników CHIPLabu; b.d. – brak danych; (?) – przypuszczalne dane techniczne dla seryjnych wersji układów graficznych, 1) -specyfikacje 9.0+ nVidii i ATI są różne
Więcej:bezcatnews