Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
TwojePC.pl © 2001 - 2020
RECENZJE | Radeon 9800 Pro vs GeForceFX 5900
    

 

Radeon 9800 Pro vs GeForceFX 5900


 Autor: Kris | Data: 10/07/03
     

Shadery 2.0

Sądzę, że zdecydowanie ważniejszą zaletą takich gigantów nowej generacji jest, przynajmniej w teorii, ich przygotowanie do obsługi przyszłych gier. Wcześniej czy później shadery w wersji 2.0 dojdą do głosu i dopiero wtedy nastąpi rzeczywista masakra starszych kart Dx8. Na razie w zasadzie nie ma możliwości jednoznacznego określenia potencjalnej mocy, jaką dysponują testowane karty w odniesieniu do zapowiadanych produkcji. Mamy jakieś strzępki informacji pochodzące z bardziej lub mniej "sponsorowanych" testów wersji beta, lakoniczne wypowiedzi programistów, mylące testy własne producentów sprzętu, "optymalizowane" pod benchmarki dx9 sterowniki, szum marketingowy, plotki i teoretyczne rozważania. Zanim spróbuję przynajmniej coś zasugerować to przeprowadzę jeden, ponoć kontrowersyjny test.

O najnowszej produkcji Futuremark'a napisano już tyle artykułów, że po przeczytaniu zaledwie małej części z nich może się komuś z mózgu zrobić typowa sieczka. Z jednej strony 3DMark2003 może być potrzebnym narzędziem testującego karty Dx9, ale z drugiej strony goni go cały tabun różnych afer i wzajemnego obrzucania się błotem zarówno przez producentów jak i użytkowników. A prawda jak wiadomo leży z reguły pośrodku.

Wnikliwym czytelnikom powinno od razu skojarzyć się, że niektóre wyniki znacząco różnią się od tych, które uzyskałem przy okazji pierwszego testu GFFX5800U. Najbardziej widoczne jest to przy GFFX a wynika nie ze zmiany sterowników, ale z nowej wersji programu testującego. Okazało się, że producenci układów a w szczególności nVidia zastosowali daleko idące "optymalizacje" służące poprawianiu wyniku. Nowa wersja benchmarka (build 330) utrudniła sterownikom prawidłowe wykrycie programu i dostosowanie się do niego. Z kolei sterowniki beta v44.65 omijają blokadę wprowadzoną przez FutureMark i tak można długo kręcić się w miejscu.

Okazało się, że obie firmy stosowały spotykaną już przy grach operację podmiany programu shadera na taki, który przy zbliżonym obrazie wynikowym (ATI twierdzi, że identycznym i podmiana dotyczyła tylko GT4 natomiast nVidia wymieniła shadery GT2-4 a obraz minimalnie się różnił) lepiej dostosowywał się do możliwości sprzętu. Jak dla mnie nie ma w tym nic specjalnie szkodliwego a wręcz przeciwnie, można to nazwać faktyczną optymalizacją tym bardziej, że osobiście nie widziałem specjalnych pogorszeń obrazu na FX'ie (różnice wychodzą dopiero przy serii nieruchomych zrzutów ekranu). Niestety takie dostosowanie to tylko drobiazg w porównaniu z tym, co dodatkowo stosował nowy GeForce. Chodzi o technikę "clipping frames" sprowadzającą się do omijania w renderingu fragmentów obrazu, które w danym momencie nie są widoczne dzięki kompletnej wiedzy o całym procesie przetwarzania danej grafiki. W związku z tym, że tej metody nie da się zastosować do dynamicznie zmiennej gry można śmiało pisać o nabijaniu testujących, a co za tym idzie również potencjalnych klientów w przysłowiową butelkę. Oczywiście, jeśli celem testu jest określenie rzeczywistych możliwości przetwarzania 3D przez kartę a nie tylko zdobywanie "pustych" punktów. Właśnie ze względu na to, rozmyślnie, w porównaniach dotyczących kart różnych firm dawałem wyniki "nieoptymalizowane". Przynajmniej częściowo.

Rozpatrując tylko taką "stronę medalu" można wysnuć proste wnioski, co do intencji nVidia, wydajności Dx9 ich nowych kart i odsądzić ich od czci i wiary. W życiu jednak nie jest tak, że wszystko jest albo czarne albo białe. Jest jeszcze druga strona. Aby ją wydobyć na wierzch najpierw trzeba się zastanowić, dlaczego w zasadzie FX bez "optymalizacji" nie błyszczy w tym teście? Przyczyn może być kilka, ale ja chciałbym skoncentrować się na jednej, konkretnej kwestii. W zasadzie mógłbym wysnuć prosty wniosek: Nie da się porównać wydajności w nowym API zgodnych z tym standardem kart ATI oraz nVidia. Sprawa dotyczy dokładności obliczeń zmiennoprzecinkowych (wymóg Dx9) renderingu. Microsoft w opisie standardu określił dwie możliwe do zastosowania precyzje danych FP: 16-bitową zwana "częściową" (Partial Precision) oraz 24-bitową zwana "pełną" (Full Precision). Silnik graficzny ATI operuje zawsze na 24-bitowej precyzji. Jeśli aplikacja zażąda częściowej to układ dokona obliczeń w pełnej, bez żadnego zysku na wydajności. GeForceFX natomiast ma układ jednostek obliczeniowych pozwalający na użycie połowy z nich w przypadku braku zapotrzebowania na pełną precyzję, co daje konkretny przyrost mocy przetwarzania. Jeśli natomiast wymagana jest pełna precyzja to obliczenia realizuje cały moduł obliczeniowy w trybie 32-bitów. Jest to zgodne ze specyfikacją IEEE i w związku z tym, że przekracza wymóg stawiany przez Dx9 można ten model obliczeń nazwać "pełną precyzją" również w API Microsofta.

Wraz z dokładnością obliczeń wiąże się kwestia zarówno jakości grafiki 3D jak i szybkości jej przetwarzania. Aby porównać musielibyśmy sprowadzić obie karty do wspólnego "mianownika". Niestety nie jesteśmy w stanie tego zrobić. FX jest zmuszony do obliczeń w 32-bitach, aby można to było nazwać pełną jakością Dx9 natomiast Radeon zawsze liczy w 24-bitach. Podkreślam, że chodzi o precyzje obliczeń a nie sam kolor.

Analizując dziesiątki mądrych wypowiedzi w tej kwestii dopracowałem się następujących wniosków (po analizie obydwu "obozów").
  • Różnica w jakości renderingu pomiędzy 32 a 24-bitową precyzją jest znacznie mniejsza niż pomiędzy 24 a 16-bitową. Sądzę, że większość jest w stanie to zrozumieć i potwierdzić. Można zrobić sobie analogię do kolorów.
  • Zupełnie odwrotnie jest z kwestią skomplikowania obliczeń i co za tym idzie czasu ich wykonywania. Mniej dodatkowej pracy zajmuje przejście z 16 na 24 niż z 24 na 32-bity. To też można pokazać za pomocą prostych pętli wykonujących obliczenia na różnej precyzji.
  • Realna różnica jakości grafiki w zależności od użytej precyzji zależy w dużym stopniu od tego jak zostanie napisany shader. Programista może chcieć uzyskać taki efekt, że przy zastosowaniu 16-bitowych obliczeń obraz wyraźnie straci (głównie kwestia finalnych przejść pomiędzy odcieniami kolorów po sprowadzeniu do 32-bitowej palety). Może też opracować efekt, który nie da znaczącej przewagi karcie z 24-bitową precyzją.
Jednym słowem bez konkretnych aplikacji niewiele w tej kwestii można powiedzieć. Wszystko jest w rękach programistów. Na korzyść ATI może świadczyć fakt zgodności ze specyfikacją Microsofta, z którą przecież programiści muszą się liczyć oraz realny zysk w jakości obrazu. nVidia z kolei ma większą uniwersalność ze względu na lepszą możliwość dostosowania się do konkretnych wymogów stawianych przez daną grę. Niestety może również nie licząc się z nikim wymuszać mniejszą precyzję do osiągania przewagi benchmarkowej i maskować w ten sposób inne niedociągnięcia swoich układów. Oczywiście teoretycznie. Nie ma co ukrywać, że jest o co walczyć bo klient uwielbia porównywać same liczby fps i na tej podstawie dokonywać zakupów. Jakieś mętne wyjaśnienia związane z niemal niewidocznymi różnicami w obrazie nawet go nie zainteresują. Może i słusznie.

Raczkującym dopiero kartom Dx9, wyprodukowanym przez nVidia na przeszkodzie stanął jednak Microsoft oraz FutureMark ze swoim 3DMarkiem 2003. Ten pierwszy wymyślił sobie minimum 24-bity (osobiście skłonny jestem przypuszczać, że kierowali się rzeczywistą jakością, bo trudno mi sobie wyobrazić, aby w momencie powstawania docelowej specyfikacji nowego DirectX'a ATI miało jakąś większą od nVidia siłę przebicia u takiego giganta-monopolisty jak Microsoft) precyzji zmiennoprzecinkowej a ten drugi uparł się, że nie będzie stosować specjalnych optymalizacji dla kart FX tym bardziej, że według FutureMark nVidia zażądała tego zbyt późno, aby można było kwestię rozważyć i zatwierdzić u wszystkich firm, które wyłożyły grubą kasę za uczestnictwo w programie 3DMarka. Nie pozostało nic innego jak wypisać się z towarzystwa i odciąć od wyników tego testu. Biorąc pod uwagę wiedzę na temat znaczenia wyników na sprzedaż produktu może nawet nie mieli innego wyjścia. Próby dyskredytowania testu, jak można było przewidzieć, niewiele dały i pozostała ta słynna "optymalizacja". W pierwszych sterownikach zaatakowano trybem 16-bitowym precyzji obliczeń, a w aktualnych - wobec pożądania WHQL - wprowadzono cały szereg innych modyfikacji, z których na pierwszy plan wybija się bezsprzeczny cios poniżej pasa w postaci wspomnianych "clipping frames".

W zasadzie, właściwie jestem w stanie zrozumieć działania nVidia w tej kwestii, choć oczywiście ze zrozumiałych względów budzą mój sprzeciw. Bardziej jednak denerwują mnie wypowiedzi przedstawicieli firmy, dla których w każdym przypadku brak optymalizacji wobec ich kart i trzymanie się specyfikacji API oznaczane jest jako świadome faworyzowanie konkretnej firmy. Nie ważne, że sami również uczestniczyli w tworzeniu API i nie ważne, że w ten sposób podcina się nogi nie tylko firmie, z którą aktualnie prowadzi się boje marketingowe, ale i wszystkim innym, którzy chcieliby wejść na ten rynek a jedyne, do czego się mogą dostosować to właśnie uniwersalny interfejs programowy. Typowe działania monopolistyczne. Z resztą jak bym na to nie patrzył to ciągle widzę pewne odniesienia do historycznych pojedynków nVidia - 3Dfx. Kwestia Glide vs OpenGL/D3D, sprawa ilości kolorów, kwestia dostosowania aplikacji do 16-bitowej palety koloru itd. Role jakby się trochę odwróciły, ale historia wyraźnie lubi zataczać kręgi. Deja vu?

Jak zmierzyć moc obliczeń PixelShader'a 2.0? Oprócz 3DMarka jest jeszcze ShaderMark 2.0 i RightMark3D Dx9. Trudno jednak być pewnym braku "optymalizacji" producentów kart. Raczej przyjdzie czekać na gry i kolejne benchmarki. Pozwoliłem sobie natomiast na ciekawostkę, jaką jest słynne demo nVidia z "rusałką". Jest to o tyle interesujące, że jako własne demo, które z natury zastosowania dedykowanych rozszerzeń OpenGL nie mogło być porównane wydajnościowo z konkurencją było optymalizowane na jakość obrazu. Radeony wręcz miażdżą prawowitych właścicieli tego demka wydajnością (zrobiłem dziesiątki zrzutów starając się dowieść, że na ATI jakiś widoczny efekt Shadera jest pomijany). Niewątpliwy cios dla marketingu nVidia. W pierwszej tabeli, oprócz "rusałki" dałem też nieoptymalizowane wyniki testów 3DMarka wykorzystujące, przynajmniej częściowo nowy standard shaderów:

Już po moich testach R9800Pro i FX5800U pojawił się GunMetal 2 Benchmark wymagający Dx9. Niestety, nie wykorzystuje on PixelShader'a 2.0. Szkoda, że Aquamark 3.0 nie jest jeszcze gotowy.

Pewną aproksymację wydajności przy R9800P można dokonać biorąc pod uwagę różnice do poprzednika. Prawdopodobnie nowy Radeon będzie działał podobnie jak FX5900. Ciekawostką jest fakt, że benchmark ma na stałe włączony antyaliasing (2x lub 4x). Dzięki temu, że sterowniki nVidia umożliwiają wymuszenie wyłączenia FSAA można było również przeprowadzić taki test (faktycznie obraz był zdecydowanie słabszy). Zauważyłem też na R9700Pro zakłócenia tekstur w niektórych fragmentach obrazu. Nie wiem czy dotyczą również samej gry, ale chyba wskazują na to, że demo nie było przygotowywane z wykorzystaniem kart ATI.

Przeprowadziłem również testy syntetyczne z wykorzystaniem RightMark3D i ShaderMark zawierających programy dla PixelShader 2.0. Również i w tym wypadku było to tylko porównanie R9700Pro z FX5900. Jestem jednak pewny, że na R9800Pro może być jedynie lepiej lub dużo lepiej.

Szczególnie interesujący wydaje się RightMark, bo potrafi pokazać 16 i 32-bitowy tryb precyzji FX'a. Jak widać różnica może sięgać nawet 40%. Nieźle. Dlaczego Radeony masakrują wydajnością nowe karty nVidia nawet w 16-bitowy trybie? Nie wiem. Czy mają spec "optymalizację", o której nie wie albo nie chce wiedzieć ich twórca (programista ShaderMark jedynie narzekał na zagrywki starszych sterowników nVidia)? Może też chodzić o problem niedostosowania silników tych aplikacji do architektury nVidia. A może układ ATI R3x0 faktycznie ma zdecydowanie wydajniejszy PixelShader? Pewnie dowiemy się tego dopiero wraz z wysypem gier Dx9. Niepokojące jest jednak to, że praktycznie wszystkie dotychczasowe testy PS2.0 obnażają jakąś słabość nVidia w tym zakresie. W tej chwili zarówno w pod względem wyników testów syntetycznych jak i praktycznej zgodności z API Radeon wydaje mi się nieco bezpieczniejszy. Może nie bez znaczenia jest również fakt, że układ już od roku znajduje się w łapach programistów, stanowiąc pierwotną bazę sprzętową do produkcji nowych gier i choć w końcu doczekał się konkurencji to nie sądzę, aby mógł zostać pominięty w produkcie finalnym. To jednak tylko gdybanie.

No to, kto w końcu jest mocniejszy w Dx9? Kwestia jest ważna, bo dotyczy sprawy lepszej "inwestycji w przyszłość". Jeśli pominiemy sprawę braku przystosowania wzajemnego wyników oraz możliwości manipulacji benchmarkami to mam wrażenie, że jednak ATI. Przynajmniej przy zgodności aplikacji z uniwersalną specyfikacją Microsoft Dx9. Wobec braku innego oprogramowania testowego mogę to jednak traktować głównie intuicyjnie.







Polub TwojePC.pl na Facebooku

Rozdziały: Radeon 9800 Pro vs GeForceFX 5900
 
 » Ewolucja
 » Bohater ATI
 » Bohater nVidia
 » Dylematy testującego
 » Klasyczne testy
 » Klasyczne testy (c.d.)
 » Shadery 2.0
 » FSAA i filtrowanie anizotropowe
 » Podkręcanie
 » Podsumowanie
 » Kliknij, aby zobaczyć cały artykuł na jednej stronie
Wyświetl komentarze do artykułu »