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 SE | ATI Radeon X800 Pro | ATI Radeon X800 XT | nVidia GeForce FX 5900 Ultra | nVidia GeForce FX 5950 Ultra | nVidia GeForce 6800 Ultra | ATI Radeon 9800 Pro | ATI Radeon 9800 XT | |
Nazwa kodowa | R420/R423 | R420/R423 | R420/R423 | NV35 | NV38 | NV40 | R350 | R360 |
Sugerowana cena | 1200 zł | 2100 zł | 2700 zł | 2000 zł | 2350 zł | 2700 zł | 1700 zł | 2250 zł |
Technologia wykonania | 0,13 mm low-k | 0,13 mm low-k | 0,13 mm low-k | 0,13 mm | 0,13 mm | 0,13 mm | 0,15 mm | 0,15 mm |
Liczba tranzystorów | 160 mln | 160 mln | 160 mln | 130 mln | 130 mln | 220 mln | 107 mln | 107 mln |
Pobór mocy | 42 W | 49 W | 65 W | b.d. | b.d. | 150 W | b.d. | b.d. |
Silnik graficzny | Smartshader HD | Smartshader HD | Smartshader HD | CineFX 2.0 | CineFX 2.0 | CineFX 3.0 | Smartshader 2.1 | Smartshader 2.1 |
Liczba potoków renderujących | 8 | 12 | 16 | 4 | 4 | 16 | 8 | 8 |
Liczba TMU/potok | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 1 |
Generacja DirectX1) | 9.0+ | 9.0+ | 9.0+ | 9.0+ | 9.0+ | 9.0c+ | 9.0 | 9.0 |
Vertex Shader1) | 2.0+ | 2.0+ | 2.0+ | 2.0+ | 2.0+ | 3.0 | 2.0 | 2.0 |
Pixel Shader1) | 2.0+ | 2.0+ | 2.0+ | 2.0+ | 2.0+ | 3.0 | 2.0 | 2.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ęci | 27,2 GB/s (?) | 28,8 GB/s | 32 GB/s | 27,2 GB/s | 30,4 GB/s | 35,2 GB/s* | 21,8 GB/s | 23,4 GB/s |
Taktowanie pamięci (efektywne) | 850 MHz (?) | 900 MHz | 1120 MHz | 850 MHz | 950 MHz | 1100 MHz* | 680 MHz | 730 MHz |
Taktowanie rdzenia | 450 MHz (?) | 475 MHz | 520 MHz | 450 MHz | 475 MHz | 400 MHz* | 380 MHz | 412 MHz |
Fillrate | 3,6 Gpiksela/s | 5,7 Gpiksela/s | 8,8 Gpiksela/s | 3,6 Gpiksela/s | 3,8 Gpiksela/s | 7,6 Gpiksela/s | 3,04 Gpiksela/s | 3,3 Gpiksela/s |
Złącze | AGP 8x/PCI Express 16x | AGP 8x/PCI Express 16x | AGP 8x/PCI Express 16x | AGP 8x | AGP 8x | AGP 8x/PCI Express 16x | AGP 8x | AGP 8x |
Wydajność** | ||||||||
Test 3DMark03 | b.d. | 8650 | 11 560 | 5300 | 6450 | 12 400 | 5940 | 6380 |
* – 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 | ||||||||