Technologie i wydarzenia
Artykuł
Marcin Bieńkowski, Środa, 20 czerwca 2007, 09:30

Nie tylko CUDA

Wraz z GeForem 8800 NVIDII zadebiutowała nowa zunifikowana architektura CUDA (Compute Unified Device Architecture). Bardzo podobne rozwiązanie o nazwie Unified Shaders, które znacznie wcześniej przetestowane zostało w Xenosie, układzie graficznym konsoli Xbox 360, znaleźć można również w Radeonie HD 2900 XT. Nie jest to przypadek, że najnowsze układy 3D konkurujących ze sobą firm korzystają w tym samym stopniu z ujednoliconej architektury procesorów geometrycznych. Takie rozwiązanie architektoniczne narzuca bowiem DirectX 10. W DX10 wszystkie operacje dotyczące przetwarzania wielokątów i pikseli realizowane do tej pory oddzielnie przez jednostki Vertex i Pixel Shader połączone zostały w jedną, wspólną fazę.



 Architektura zunifikowanych modułów graficznych pozwala na wyeliminowanie opóźnień, spowodowanych pustymi cyklami jednostek Vertex i Pixel Shader; źródło: NVIDIA

Projektantów Microsoftu do połączenia w DirectX 10 wszystkich kalkulacji geometrycznych i operacji na pikselach skłoniło kilka przyczyn. Najważniejszą z nich było to, że w dotychczasowym modelu bardzo często zdarzało się, iż jednostki Vertex i Pixel Shader nie były równomiernie obciążone obliczeniami. Gdy jedne z nich pracowały na pełnych obrotach, drugie stały bezczynnie przez kilkanaście cykli zegarowych w oczekiwaniu na wyniki obliczeń tych pierwszych. W zunifikowanej architekturze nie ma miejsca na takie przestoje. Każda jednostka, w zależności od potrzeb, może zająć się jednym lub drugim typem obliczeń, zmniejszając tym samym liczbę pustych przebiegów i zwiększając wydajność układu. Drugą, być może ważniejszą przyczyną, leżącą u podstaw powstania zunifikowanej architektury, był pomysł na to, aby przyczynić się do stworzenia uniwersalnego układu graficznego, który byłby w stanie przejąć na siebie również kalkulacje związane z obliczeniami fizyki, animacją czy funkcjami związanymi z zarządzaniem sztuczną inteligencją w grze. Wszystkie te operacje łączą w sobie obliczenia, którymi do tej pory zajmowały się oddzielnie jednostki Vertex i Pixel Shader.


Do potoku graficznego dodano nowe jednostki Geometry Shader. Do ich zadań należy m.in. przetwarzanie i deformacja elementów sceny 3D.; źródło: AMD/ATI

Oczywiście, nie każda karta graficzna zgodna z DX10 musi wykorzystywać zunifikowaną architekturę procesorów graficznych. Równie dobrze może być ona wykonana w tradycyjnej architekturze z oddzielnymi jednostkami Vertex i Pixel Shader. Wówczas odpowiednim rozseparowaniem operacji zajmie się sterownik urządzenia, co niestety dodatkowo obciąży jednostkę centralną komputera. Niestety to nie wszystko. Jeżeli karta wykorzystuje tradycyjną architekturę, wówczas DirectX 10 wymaga, aby w układzie 3D znajdowaly się dodatkowe jednostki shaderowe. Pomiędzy Vertex a Pixel Shaderem musi znaleźć się nowy moduł o nazwie Geometry Shader. Jednostka ta odpowiedzialna jest za operacje łączenia wierzchołków i wielokątów sceny w paski oraz bardziej złożone struktury geometryczne. Takimi operacjami w wypadku kart zgodnych z DX 9 zajmuje CPU – to są te nieliczne, wspomniane przez nas operacje w strumieniu graficznym, które pozostały na barkach procesora. Teoretycznie możliwa jest zatem symulacja Geometry Shadera przez sterowniki, ale przy bardziej skomplikowanych grach, procesor będzie już zbyt obciążony innymi obliczeniami, aby dał sobie radę z dodatkowymi przekształceniami, tym bardziej, że Geometry Shadery mają na tych złożonych, werteksowych strukturach modyfikować i przeprowadzać obliczenia fizyczne dotyczące ruchu pasków (np. falowanie trawy czy włosów) oraz generować dla nich cienie szablonowe. Co więcej, dzięki istnieniu Geometry shaderów, takie efekty jak mapowanie przemieszczeń (Displacement Mapping), wytłaczanie cieni szablonowych (Stencil Shadow Extrusion) czy tworzenie obiektów typu point-sprite będzie dla programistów znacznie łatwiejsze.

Dobrym przykładem obliczeń fizycznych wykonywanych przez jednostki Geometry Shader są dema NVIDII Box of Smoke i Waterworld, które promowały GeForce’a 8800. W pierwszym z nich symulowano na drodze obliczeń fizycznych rozchodzenie się dymu, w drugim zachowanie się wody płynącej po kamieniach; źródło NVIDIA

Ocena artykułu:
Ocen: 2
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook
Ostatnio komentowane