Już nie tylko grafika

GPU stają się coraz wydajniejsze. Dawno już na tym polu prześcignęły tradycyjne procesory. Dlaczego więc ich nie wykorzystać do liczenia czegoś więcej niż tylko grafiki, np. przetwarzania strumienia audio?

Jeszcze kilka lat temu wydajność układów graficznych była tak dalece niewystarczająca, że większość obliczeń związanych z wyświetlaniem obrazu wykonywać musiał procesor. Z czasem na rynku pojawiać się zaczęły takie układy jak ViRGE (Video and Rendering Graphics Engine) firmy S3, które nie tylko przejęły na siebie sporą część obliczeń wymaganych do wyświetlenia grafiki 3D, ale także zaczęły wykonywać je znacznie szybciej niż CPU. Gry takie jak np. Monster Truck Madness pokazywały jednak, że procesor jest w stanie wygenerować więcej klatek animacji na sekundę niż ViRGE.

Prawdziwy przełom w generowaniu grafiki nastąpił dopiero wraz z premierą pierwszego akceleratora 3D firmy 3Dfx Interactive, a mianowicie legendarnego już Voodoo. Karta ta nie dość, że przejęła na swoje barki sporą część obliczeń związanych z trójwymiarową grafiką, to na dodatek potrafiła liczyć trzykrotnie szybciej niż ówczesne najwydajniejsze procesory Pentium. Co więcej, tworzona przez Voodoo grafika na ekranie komputera wyglądała jak na owe czasy po prostu niesamowicie i na głowę biła tę, którą udawało się uzyskać dzięki CPU. Na barkach procesora ciągle jednak spoczywał gros obliczeń geometrycznych, takich jak transformacje obiektów, a w dalszej kolejności generowanie realistycznego oświetlenia. A że właśnie takich rachunków w trakcie generowania scen 3D było coraz więcej, wkrótce było wiadomo, że wąskim gardłem staje się nie tyle karta graficzna, co jednostka centralna komputera PC. W końcu doszło już do takich sytuacji, że karty graficzne kolejnej generacji, takie jak np. Voodoo2, były w stanie teoretycznie wygenerować w ciągu sekundy prawie 100 milionów pikseli, a w rzeczywistości wartości tej nie można było osiągnąć nawet na najwydajniejszych ówczesnych procesorach, takich jak Pentium II 400 MHz. Dla wszystkich stało się wówczas jasne, że dalszy rozwój akceleratorów 3D może zatrzymać się z powodu niedostatecznie szybkiego przyrostu wydajności kolejnych generacji procesorów – chyba że układ graficzny odciąży CPU, przejmując od niego kolejną porcję żmudnych obliczeń. Tak właśnie się stało jesienią 1999 roku, w chwili narodzin pierwszego graficznego procesora GPU (Graphics Processing Unit) opracowanego przez firmę nVidia.

Z układu w procesor

W kości nVidia GeForce 256, bo o niej mowa, oprócz niespotykanej wówczas palety sprzętowych technik generowania grafiki 3D zastosowano również rewolucyjne jak na owe czasy rozwiązanie, a mianowicie zintegrowaną jednostkę T&L (Transform and Lighting). Wykonywała ona samodzielnie obliczenia związane z transformacjami geometrycznymi i kalkulacjami oświetlenia, które wcześniej musiał wykonywać CPU. GeForce 256 był wyjątkowy także pod innym względem: pierwszy raz w historii układ graficzny składał się bowiem z przeszło dwukrotnie większej liczby tranzystorów (23 miliony) aniżeli nawet najwydajniejszy wówczas procesor Pentium III (jedynie 9,5 miliona)!

Kolejnym krokiem na drodze do uwolnienia CPU od obliczeń związanych z generowaniem grafiki było pojawienie się GeForce’a 3. Ten zaprezentowany w 2001 roku GPU wyposażony został w programowalne jednostki Vertex i Pixel Shader. Dodany do GeForce’a 3 moduł do obróbki wierzchołków (Vertex Shader) wziął na siebie większość obliczeń geometrycznych. Co więcej, Vertex Shader jest tak naprawdę niczym innym jak potężnym procesorem zmiennoprzecinkowym SIMD (Single Instruction Multiple Data), o możliwości którego ledwie ociera się jednostka SSE2 z procesora Pentium 4.

Obszary zastosowań GPU
– realistyczne symulacje wymagające ogromnej mocy obliczeniowej,
– obliczenia związane z fizyką gry oraz sztuczną inteligencją komputerowych przeciwników,
– profesjonalna obróbka dźwięku,
– wspomaganie obliczeń multimedialnych.

Zastosowane nowości sprawiły jednak, że liczba tranzystorów składających się na GeForce’a 3 jest o ponad 20 procent większa niż w wypadku procesora Pentium 4. Ten trend już się nie zmienił – z każdą kolejną generacją procesory graficzne były i są zdecydowanie bardziej złożone od CPU. Najnowszy GeForce 6800 składa się już z przeszło 222 milionów tranzystorów, czyli ma ich o 1/4 więcej niż największy obecnie procesor dla domowego użytkownika – Pentium 4 Extreme Edition (178 milionów), wyposażony przecież w dodatkowe 2 MB pamięci cache L3.

Wraz z liczbą tranzystorów w szalonym tempie rośnie też wydajność GPU. Obecnie możliwości obliczeniowe GeForce’a 6800 Ultra szacuje się na 40 Gflops/s, ATI Radeon X800XT to już 42 Gflops/s. Dla porównania: wydajność P4 pracującego z zegarem 3 GHz to zaledwie 6 Gflops/s, a wszystko to przy o wiele niższym od tradycyjnego CPU zegarze 520 MHz (ATI) czy nawet zaledwie 400 MHz (nVidia). Oczywiście to maksymalna wydajność, a ta rzeczywista jest zawsze niższa, m.in. z powodu niedostatecznie efektywnego podsystemu pamięci. Także tutaj ujawnia się ogromna przewaga GPU nad CPU. Zarówno GeForce 6800, jak i Radeon X800 mają zainstalowany na karcie graficznej podsystem pamięci (najczęściej GDDR3 o zegarze dochodzącym do 600, a efektywnie 1200 MHz), zdolny do dostarczenia im w czasie jednej sekundy nawet 35 gigabajtów danych. Dla porównania: standardowy P4 zadowolić się musi jedynie przepustowością RAM-u rzędu 6,4 GB. Czemu więc ogromnej wydajności GPU nie wykorzystać do innych celów aniżeli tylko graficznych?

Intel Pentium 4 (Prescott) kontra nVidia GeForce 6800 (NV40)
ProcesorPrescottNV40
Liczba tranzystorów125 mln222 mln
Powierzchnia układu112 mm2około 290 mm2
Wymiar technologiczny90 nm130 nm
Zegar 3 GHz400 MHz
Przepływność pamięci6,4 GB/s35,2 GB/s
Moc obliczeniowaokoło 6 Gflops/s40 Gflops/s
0
Zamknij

Choć staramy się je ograniczać, wykorzystujemy mechanizmy takie jak ciasteczka, które pozwalają naszym partnerom na śledzenie Twojego zachowania w sieci. Dowiedz się więcej.