Oprogramowanie

DirectX 10 w zunifikowanej architekturze

DirectX 10 został stworzony pod kątem zunifikowanej architektury. Zunifikowana architektura API i GPU, zamiast stosować osobne jednostki, łączy jednostki tradycyjnego vertexu, geometrii i pikseli w jedną fazę przetwarzania. Tak więc API obsługuje wszystkie jednostki za pomocą pojedynczej fazy GPU, zamiast kilku, jak działo się to do tej pory.

W miejsce shaderów vertex, pixel i geometry mamy teraz jedną jednostkę, która zajmuje się wszystkimi zadaniami. W dzisiejszych czasach często jesteśmy świadkami marnowania możliwości jednostek przetwarzających w GPU przez aplikacje, które 'korkują' inne jednostki. Przed chwilą widzieliśmy jednostki Vertex Shader, które odpoczywały i czekały aż jednostki Pixel Shader uporają się ze swoim zadaniem lub na odwrót. Zunifikowana architektura powinna zaradzić takim sytuacjom i zredukować czas oczekiwania, a także marnowanie cyklów krzemu.

Podczas gdy DirectX 10 jest w stanie w pełni wykorzystać zunifikowaną architekturę procesorów graficznych, zunifikowany GPU nie musi wcale spełniać wymogów specyfikacji DirectX 10. Dlatego też można spotkać GPU z osobnymi jednostkami odpowiedzialnymi za vertex, geometrię i piksele, który jest w pełni zgodny z DirectX 10. Kluczowym elementem, który musi być obsługiwany przez niezunifikowany GPU jest nowy Geometry Shader, mogący pracować w architekturze ustalonego przetwarzania potokowego, tak jak pokazuje to powyższa ilustracja.

Jednym z pomysłów leżących u podstaw zunifikowanej architektury jest zmiana GPU z jedynie renderującego procesora, na układ zdolny do wszelkich obliczeń. W chwili obecnej procesor graficzny rysuje grafikę 3D i wyświetla ją na ekranie. Oczywiście ma więcej zadań na głowie, takich jak grafika 2D, czy wideo, ale dla potrzeb tego artykułu mamy na myśli przede wszystkim grafikę trójwymiarową. Za sprawą zunifikowanej architektury GPU staje się czymś więcej. Staje się procesorem, który jest w stanie zrobić prawie wszystko co wymaga przetwarzania kodu. Oznacza to, że GPU może przejąć takie funkcje jak fizyka, sztuczna inteligencja, animacja, a także wiele innych procesów, które wzbogacają doznania gracza. DirectX 10 i zunifikowana architektura GPU pomagają karcie wideo zmienić się we wszystkopotrafiący układ. Takie są przynajmniej założenia. Jak to będzie wyglądało w rzeczywistości zależy od twórców gier.

Na powyższej ilustracji widać, że pojawił się nowy arbiter wątków. Jednostka arbitra wysyła wątki do rdzenia, który stwierdza ile zasobów pixel, vertex i geometry shaderów potrzebuje dana scena. Jednostka ta pełni funkcję policjanta drogówki, który zajmuje się całym ruchem zmierzającym do GPU. GPU z kolei zajmuje się wszystkim co jest związane z renderowaniem sceny. Pozwala to na skorzystanie ze wszystkich zasobów podczas przetwarzania scen, bardzo obciążonych przez cieniowanie vertex i pixel. Arbiter wątków jest w stanie wysyłać wiele wątków równocześnie, tak jak ma to miejsce w przypadku wielowątkowości w CPU. Można zobaczyć jak wszystko to łączy się ze sobą na przykładzie wielowątkowego rdzenia wprowadzonego w technologii serii Radeon X1000. Seria X1000 może być uznawana za hybrydową Zunifikowaną Architekturę, ponieważ tylko mały kroczek dzieli ją z całkowicie Zunifikowaną Architekturą.

Widać także jak cała technologia została połączona w konsoli XBOX 360. XBOX 360 wykorzystuje technologię GPU ATI i należy do zunifikowanej architektury. Dlatego też ATI ma już na rynku pierwszą generację zunifikowanej architektury GPU. Jasną sprawą jest, że XBOX 360 jest daleko przed desktopowymi GPU jeżeli chodzi o technologię.

Ponieważ XBOX 360 reprezentuje pierwszą generację zunifikowanej architektury ATI, ich kolejna generacja desktopowego GPU będzie drugim pokoleniem technologii zunifikowanej architektury ATI. Oznacza to, że ATI skorzystała na tym czego nauczyła się w trakcie opracowywania zunifikowanej architektury XBOXa 360 i wprowadziła poprawki, aby stworzyć jeszcze lepszą zunifikowaną architekturę dla PC w postaci kolejnej generacji desktopowych GPU. Oznacza to także, że przenoszenie gier pomiędzy XBOXem 360, a desktopowymi sprzętem GPU ATI powinno być łatwiejsze.