20 lat rozwoju kart graficznych - część 1. Początki duopolu
W okresie, kiedy powstawały dobreprogramy, na rynku wciąż były echa po upadku 3dfx i porzuceniu przez PowerVR sekcji desktopowych kart graficznych. W tym czasie debiutowały też karty graficzne Nvidia GeForce czwartej generacji i Radeony trzeciej generacji wtedy jeszcze produkowane przez ATI Technologies.
Był to początek duopolu "zielonych" i "czerwonych", który znamy do dzisiaj, aczkolwiek po dwóch dekadach na rynku ponownie pojawi się trzeci gracz w postaci Intela wraz z kartami z serii ARC.
"Święta wojna" - Nvidia vs ATI Technologies
W 2002 roku Nvidia wypuściła karty graficzne GeForce 4 występujące w dwóch wariantach. Najwydajniejsze układy były oznaczone jako Titanium (Ti), a budżetowe miały dopisek MX. Układy wykorzystywały 150 nm litografię od TSMC oraz karty pokroju z serii Ti były o ponad 50 proc. szybsze od flagowych modeli starszej generacji bądź konkurencyjnego Radeona 8500.
Przewaga zielonych nie trwała długo, ponieważ ATI niewiele później wypuściło Radeony trzeciej generacji, które oferowały rewelacyjną wydajność i wsparcie najnowszego DirectX 9.0 wraz z shader model 2.0, vertex shader 2.0 i pixel shader 2.0. Ponadto nowe Radeony były drugimi układami, które wykorzystywały ostatnią wersję interfejsu AGP 8x i pierwszymi, w których wykorzystano metodę łączenia rdzenia z PCB typu chip-flip zamiast połączenia drutowego. Pozwoliło to na znaczące poprawienie możliwości odprowadzania ciepła, co przełożyło się na wyższe taktowanie.
Ponadto z czasem okazało się, że część słabszych Radeonów można programowo "przerobić" na wyższe modele w hierarchii, a niektóre mocniejsze modele ulepszyć modem ołówkowym. Przykładowo Radeona 9500 można było za pomocą zmodyfikowanych sterowników przerobić na Radeona 9700. Było to możliwe, ponieważ obydwa układy opierały się na tym samym rdzeniu, ale Radeon 9500 miał tylko aktywną jego połowę.
Było to możliwe, ponieważ tak jak w przypadku produkcji rdzeni procesorów wafle krzemowe zawsze mają pewną liczbę nie w pełni sprawnych rdzeni. Te są przez producentów wykorzystywane do produkcji układów z niższego segmentu, ale przewaga popytu nad podażą uszkodzonych układów może spowodować wykorzystanie rdzeni pierwotnie przeznaczonych dla wyższych w hierarchii układów. W takim przypadku "zbędna" część jest blokowana programowo (tańsza metoda) lub fizycznie uszkadzana (droższa metoda).
W przypadku pierwszej metody było możliwe uruchomienie zablokowanej części, tworząc wyższy układ w hierarchii. Szansa była na to losowa, a nawet w przypadku udanej transformacji mogły istnieć problemy ze stabilnością. Umożliwiały to specjalne wersje sterowników stworzone przez entuzjastów.
Z kolei dzięki modowi ołówkowemu lub wlutowaniu rezystora można było przerobić Radeona 9800 PRO w wyżej taktowanego 9800 XT (mod ołówkowy polegał na zrobieniu paru kresek pomiędzy pinami w pobliżu kontrolera napięcia rdzenia i pamięci, gdzie więcej kresek = wyższe napięcie).
Kontra zielonych pojawiła się w styczniu 2003 roku w postaci układów GeForce FX ze wsparciem DirectX 9.0, ale nie była to udana premiera. Przykładowo GeForce FX 5800 Ultra zasłynął bardzo głośnym układem chłodzenia oraz wydajnością poniżej już mającego parę miesięcy Radeona 9700. Powodem były opóźnienia z 130 nm litografią od TSMC.
Lata wielkich rewolucji
Rok 2004 był kolejnym kamieniem milowym, ponieważ dokładnie w tym roku przyjęto nowy standard złącza karty graficznej PCI Express (PCIe), który zastąpił starsze AGP. Starsze złącze zostało szybko wyparte, ponieważ zarówno ATI jak i Nvidia zdecydowały się na nie przejść.
Nowe złącze PCI Express w przeciwieństwie do AGP pozwalało na dwustronną komunikację oraz oferowało wyższą przepustowość. Starszy standard miał przepustowość 266 MB/s co w przypadku AGP z ośmiokrotnym mnożnikiem daje 2.1 GB/s. Tymczasem pierwsze PCIe oferowało przepustowość 250 MB/s na linię, a tych może być 16 (4 GB/s). Te wartości przy kolejnych generacja wzrastały i przy PCIe 5.0 mamy 8 GB/s na linię co przekłada się maksymalnie na 128 GB/s.
W przypadku ATI po prostu w 2004/2005 roku odświeżono starsze Radeony w nowej litografii (110/130 nm) oznaczone jako Radeon X300/550/600/700/800, a Nvidia zaprezentowała w 2004 roku serię GeForce 6 bazującą na mikroarchitekturze Curie. Ta była już powrotem do formy, ponieważ 6800 Ultra był zdolny pokonać zmodyfikowane układy ATI X800 PRO nawet w grach opartych o DirectX 9.0c, i tylko X800 XT Platinum Edition był szybszy. Z kolei w niższym segmencie dobrze sobie radziły GeForce 6800 GT i 6600.
Poza złączem PCIe w tych latach rozpoczęła się era promowanie pierwsze przez Nvidię, a później i ATI konfiguracji multi-GPU, ponieważ wtedy narodziło się Scan-Line Interleave (SLI) bazujące na rozwiązaniach z przejętego przez Nvidię 3dfx. W teorii dwie średnie karty graficznej miały oferować podwójna wydajność, ale jak wiemy zyski były mniejsze oraz ta funkcja była bardzo zależna od poziomu sterowników.
Z tego względu pojedynczy układ był często szybszy oraz oferował zawsze stabilną wydajność, a z SLI czasem mogło nawet dochodzić do pogorszenia wydajności w grach. ATI dość szybko w 2005 roku wprowadziło swoją odpowiedź CrossFireX, która z reguły działała gorzej. Ostatecznie Nvidia zaprzestała wsparcia tej funkcji w grach w 2020 roku, a AMD uśmierciło swoje rozwiązanie rok wcześniej.
Następnie premierę w latach 2005/2006 miała seria GeForce 7 od Nvidii (modyfikacja poprzedniej generacji) oraz w 2005 roku ATI wypuściło serię R500 przynoszącą zmiany wobec już mocno wyeksploatowanej serii R400 i wsparcie dla shader model 3.0
AMD wchodzi na rynek GPU i pojawiają się zunifikowane shadery
Jednym z największych wydarzeń w historii GPU jest przejęcie ATI Technologies przez AMD dokonane 24 października 2006 roku za 5,4 mld dolarów. AMD od dłuższego czasu miało chęć wejścia na rynek układów graficznych, ale czerwoni zdecydowali się kupić gotową firmę z tego sektora niż prowadzić mozolny i długotrwały samodzielny rozwój wspierany licencjonowaniem niezbędnych patentów tam, gdzie byłoby to konieczne.
Co ciekawe w chwili przejęcia około 60 proc. produkcji chipsetów ATI było produkowanych dla Intela i mimo początkowych zapewnień ATI o podtrzymaniu współpracy w następnych latach to ostatecznie wolumen czerwonych przejęła Nvidia.
Tymczasem dwa tygodnie później 8 listopada Nvidia wypuściła legendarne układy z rodziny GeForce 8800 (pierwszym był legendarny GeForce 8800 GTX) oparte na mikroarchitekturze Tesla. Ta przyniosła światu wsparcie dla DirectX 10 Shader Model 4.0 i zunifikowane shadery, które uczyniły karty graficzne takimi, jakie znamy.
Dotychczas budowa kart graficznych opierała się wykorzystaniu dwóch osobnych jednostek programowalnych od czasów DirectX 8 Pixel Shader i Vertex Shader. Najprościej to ujmując Vertex Shadery pierwsze "rysowały" obiekt w przestrzeni 3D, a Pixel Shadery wypełniały powstały obiekt pikselami. Taki sposób działania powodował, że zawsze część jednostek obliczeniowych była bezczynna i właśnie tę sytuację wyeliminowało wprowadzanie zunifikowanych shaderów mogących wykonywać obydwa zadania w zależności od potrzeb.
Dalsze losy mikroarchitektury Tesla oraz opóźnionej odpowiedzi AMD w formie układów Radeon HD2000 opartych na mikroarchitekturze TeraScale przedstawimy w drugiej części materiału.
Publikacja powstała w ramach cyklu z okazji 20-lecia dobrychprogramów. Wszystkie artykuły można znaleźć na stronie poświęconej jubileuszowi.
Przemysław Juraszek, dziennikarz dobreprogramy.pl