artykuły

GeForce 8800 GTX i 8800 GTS - nadchodzi era kart graficznych DirectX 10

365 10 listopada 2006, 01:53 S. Stolarczyk, R. Sobkowski

NVIDIA czyni CUDA

NVIDIA CUDA to nic nadprzyrodzonego - to Compute Unified Device Architecture. Na czym polega niezwykłość tej architektury?

Jej podstawą jest 8 jednostek cieniowania, z których każda udostępnia 16 jednostek obliczeniowych SP - Streaming Processor. Łącznie G80 dysponuje zatem 128 jednostkami SP! Są to 32-bitowe skalarne jednostki zmiennoprzecinkowe. Zupełne zaprzeczenie dotychczasowych architektur, w których jednostki shaderów realizowano jako wektorowe, zdolne do pracy na czteroelementowych wektorach. Nie koniec na tym - procesory strumieniowe pracują z zegarem 1,35 GHz (w GeForce 8800 GTX), dużo szybszym niż zwykliśmy spotykać w GPU. Dlaczego zrezygnowano z jednostek wektorowych? Odpowiedź jest prosta - trzy lub cztery jednostki SP poradzą sobie z obróbką wektora czy macierzy położenia równie dobrze jak jednostka wektorowa, natomiast w przypadku zmiennej o charakterze skalarnym 3/4 potencjału obsługującej ją jednostki wektorowej pozostałoby niewykorzystane. W pojedynczym shaderze, poza jednostkami SP, znajduje się także zestaw modułów odpowiedzialnych za operacje na teksturach (na schemacie oznaczone kolorem niebieskim). Moduły zoptymalizowano pod kątem obliczeń HDR i obsługują one zarówno tryby FP16, jak i FP32. Prześledźmy, jak przebiega standardowy wciąż proces budowy modelu 3D, realizowany jako CUDA.

Kolejne fazy przetwarzania przesyłane są, jedna po drugiej, do jednostek SP w ten sposób, że jednostka kończąca pracę w roli vertex shadera może przejąć obróbkę fragmentu powierzchni również jako jednostka pixel shader. Elastyczność konfiguracji przyniosła jeszcze jedno dość istotne usprawnienie - wprowadzenie pełnej potokowości. W dotychczasowych architekturach mówiło się co prawda o "potoku przetwarzania", ale w rzeczywistości potok ten był dość poprzerywany. Popatrzmy zresztą:

W architekturze G7x jednostka shadera na pewnym etapie obróbki elementu musi oczekiwać na nałożenie tekstury na ten element. W architekturze G8x jednostka kończąca obróbkę matematyczną może podjąć kolejne zadanie, pracując nad następnym pikselem czy werteksem, bez oczekiwania na wynik pracy jednostek teksturujących - po nałożeniu tekstury praca zostanie przekazana do kolejnej jednostki SP. Taka elastyczność może, w połączeniu z elastycznością podejmowania zadań przez jednostki SP, przynieść znaczny wzrost wydajności.

Nowe możliwości

Zespół 128 procesorów strumieniowych, zawarty w G80, to prawdziwa potęga obliczeniowa. Każdy z nich może w jednym cyklu wykonać dwie instrukcje klasy MAD, czyli działania z zakresu mnożenia-dodawania oraz jedną MUL, czyli operację mnożenia. SP pracują na 32-bitowych danych zmiennoprzecinkowych, w formacie zgodnym ze standardem IEEE 754. Są wprawdzie jednostkami skalarnymi, ale można łączyć ich grupy w zespoły wektorowe, pracujące w trybie SIMD.

Jaka jest wydajność obliczeniowa G80? Pracując z zegarem 1,35 GHz, zespół 128 jednostek SP dysponuje mocą obliczeniową bliską 520 Gflops (miliardów operacji zmiennoprzecinkowych na sekundę). Czy to dużo? Superklaster Trójmiejskiej Akademickiej Sieci Komputerowej, wyposażony w 266 procesorów Itanium 2, dysponuje mocą 1510 Gflops, zaledwie nieco ponad trzykrotnie większą. Moc obliczeniowa G80 jest ponadto stosunkowo łatwo dostępna, dzięki zastosowaniu standardowego formatu danych, a także dzięki opracowaniu w ramach wspomnianego wcześniej programu CUDA silnego wsparcia programowego do tworzenia aplikacji wykorzystujących wolną moc SP.

Na początek należy się spodziewać przede wszystkim obsługi warstwy fizycznej. Elementy symulacji fizycznej zaimplementowane są już w DirectX 10, więc można być spokojnym, że G80 będzie je sprzętowo obsługiwać. Pod nazwą NVIDIA Quantum Effects producenci gier będą mieli ponadto do dyspozycji znacznie szerszy zestaw możliwości modelowania warstwy fizycznej. Zapowiadane dziesiątki tysięcy obiektów, fizyka ciał sztywnych, cieczy i cząstek umożliwiają nie tylko bardziej naturalną wizualizację dotychczas wykorzystywanych efektów, ale także tworzenie modeli nieobsługiwanych przez obecny standard wizualizacji.

2