25.01.06 00:00 | Autor: Dariusz Przybyło
Premiera nowych układów o kodowej nazwie R520 (rodzina RADEON X1K) wywołała wiele emocji. ATI zaprezentowała kartę RADEON X1800 XT, która okazała się najszybszym produktem na rynku. Nowe technologie, wyższe taktowania i nareszcie obsługa Shader Model 3.0. Teraz przyszedł czas na dopracowanie technologii oraz lekkie przyspieszenie istniejącego produktu. Takie cele postawiono sobie podczas tworzenia serii RADEON X1900.
Inżynierowie ulepszając istniejący układ mieli za zadanie maksymalizację jego wydajności przy minimalnej przebudowie jego struktury. R580 ma po prostu być usprawnieniem dla swojego poprzednika, a nie kolejną nowością.
Świat shaderów
Wraz z pojawieniem się programowalnych shaderów w 2001 grafika gier znacząco uległa poprawie. Obecnie niemalże we wszystkich grach na pojedynczym pixelu - jeszcze przed wyrenderowaniem, uruchamiane są instrukcje shaderów. Instrukcje shadera można podzielić na dwie grupy: operacje związane z pobraniem danych z pamięci (operacje teksturowania) oraz operacje czysto matematyczne (czyli operacje arytmetyczne). Początkowo na pojedynczym pixelu obie operacje były wykonywane w tej samej ilości. Jednak trend ten zmienia się i znacząco zwiększa się ilość operacji arytmetycznych.
Poniższy wykres obrazuje wspomniane zjawisko:
Można również zauważyć, że w niektórych grach większość pixeli korzysta z podwójnego filtrowania, próbkowania punktowego z tekstury czy nawet nie korzysta z zapytań do tekstury. Co już dowiodła NVIDIA w rodzinie GeForce FX, takie operacje mogą być wykonywane przez jednostkę teksturującą w jednym (bądź nawet mniej) cyklu zegara.
Teksturowanie pixeli zależne jest zarówno od pojemności pamięci, jak i jej przepustowości. A pamięć na karcie jest dosyć drogim elementem. Można tworzyć programy dla pixel shaderów, które będą matematycznie generowały teksturę (taki efekt można zauważyć w 3DMark05/06, gdzie klif w scenie z potworem morskim jest całkowicie generowany przy użyciu programu pixel shadera).
Jednostki pixel shadera ze względu na operacje wektorowe mogą być też zaprzęgnięte do wyliczeń fizyki w grze, znacząco odciążając procesor. Niestety to ostatnie podejście ma jeden minus - kradnie moc do renderowania grafiki.
RADEON X1900 posiada 48 procesorów pixel shader. W skład takiego jednego procesora wchodzą: dwa wektory ALU, dwa skalary ALU i jednostka branch (sterująca skokami). Silnik R580 posiada nadal 16 jednostek teksturujących. W ten sposób liczba operacji arytmetycznych jest trzy razy większa niż operacji teksturujących.
Zwiększanie liczby jednostek operujących na teksturach jest bardzo kosztowne - wymaga zwiększonej liczby tranzystorów. Natomiast jednostki arytmetyczne są "tańsze", a zarazem ich zwiększenie znacząco wpływa na wydajność. W ten sposób RADEON X1900 posiada o 20% więcej tranzystorów (ich liczba sięga niemal 380 milionów!), a moc operacji dla pixel shadera zwiększona jest o 200%.
Taki podział jednostek ma pozytywny przyrost w przypadku najnowszych i przyszłych gier, które coraz intensywniej korzystają z mocy silnika pixel shader. Przykładem może być tutaj gra FEAR - oczywiście sprawdzimy przyrost wydajności w tej grze.
Nie myślcie, że jednostki teksturujące są bezużyteczne czy przestarzałe. Przykładem jest fakt, że to właśnie przy ich pomocy generuje się cienie. Mapowanie cieni dokonuje się poprzez filtrowanie tekstur. Mapowanie cieni generuje niestety cienie o ostrych krawędziach - w rzeczywistości światło na styku z krawędzią rozprasza się powodując miękką krawędź cienia. By urzeczywistnić krawędź, należy je próbkować, co wymaga wielu odwołań do tekstur.
Standardowe tekstury korzystają z czterech wartości (R, G, B, i kanał alpha). Jednostki teksturujące w jednym zapytaniu pobierają wszystkie cztery wartości. Natomiast tekstura cienia składa się z jednej wartości. Można więc wykorzystać owe jednostki do pobierania jednego elementu oraz jego trzech sąsiadów. Technika ta nosi nazwę Fetch4 i znacząco przyspiesza zapytania do tekstury cienia przez co przyspiesza proces renderowania cieni.
RADEON X1900
Rynek kart graficznych przyzwyczaił się, że najpierw wydawany jest nowy produkt, a za jakiś czas jego odświeżenie. Niektórzy redaktorzy amatorsko nazywają to 'odgrzanym kotletem', co oczywiście jest sporym błędem. To normalne, że posiadaną technologię warto dopracować. Przykładów można mnożyć, jak np. RADEON X850, który uzyskiwał jeszcze wyższe taktowania, czy kolejne wydania chipsetu używanego dla GeForce 6800 (NV41 i NV42), które wprowadzały nawet spore poprawki do struktury chipsetu.
Prosimy o wypowiadanie się w komentarzach w sposób uprzejmy, z poszanowaniem innych uczestników dyskusji i ich odrębnych stanowisk.