ATI CrossFire - raport dotyczący technologii cz.1

Otaczający nas świat składa się z nieskończonej liczby detali. Proces tworzenia światów wirtualnych, które chcą sprostać temu poziomowi złożoności może pochłonąć nieograniczoną moc obliczeniową. Rozłożenie tego zadania na skończoną liczbę składowych, takich jak piksele i wielokąty, równoległe obliczenia na wielu elementach, mogą nam pomóc zbudować taki złożony obraz. Najłatwiejszym sposobem podniesienia mocy obliczeniowej jest powiększanie liczby tranzystorów, które wykonują to zadanie. Jednakże po przekroczeniu pewnego punktu, koszt mikroprocesora wzrasta geometrycznie w stosunku do wzrostu jego rozmiaru i liczby tranzystorów. Celem wieloprocesorowej technologii jest umożliwienie proporcjonalnego wzrostu niezależnie od technologicznego procesu wytwarzania. CrossFire to technologia opracowana przez ATI, polegająca na łączeniu kart graficznych w obrębie jednego systemu.

ATI CrossFire - Raport dotyczący technologii - cz.1

CrossFire to nowa technologia opracowana przez ATI, polegająca na łączeniu kart graficznych w obrębie jednego systemu. Oto podstawowe korzyści:

  • wyższa wydajność - do dwóch razy większa liczba klatek niż w przypadku pojedynczego GPU.
  • wyższa jakość obrazu - do dwóch razy wyższa jakość antialiasingu niż w przypadku pojedynczego GPU przy maksymalnej wydajności
  • wyższa kompatybilność - poprawione efekty w każdej aplikacji 3D
  • wyższa elastyczność - prosty upgrade systemów GPU, obsługa pojedynczego lub wielu monitorów

system ATI CrossFire z dwiema kartami

Image

Otaczający nas świat składa się z nieskończonej liczby detali. Proces tworzenia światów wirtualnych, które chcą sprostać temu poziomowi złożoności może pochłonąć nieograniczoną moc obliczeniową. Rozłożenie tego zadania na skończoną liczbę składowych, takich jak piksele i wielokąty, równoległe obliczenia na wielu elementach, mogą nam pomóc zbudować taki złożony obraz.

Rzecz jasna najłatwiejszym sposobem podniesienia mocy obliczeniowej jest powiększanie liczby tranzystorów, które wykonują to zadanie. Jednakże po przekroczeniu pewnego punktu, koszt mikroprocesora wzrasta geometrycznie w stosunku do wzrostu jego rozmiaru i liczby tranzystorów.

Niestety, wydajność nie wzrasta w tym samym tempie. Celem wieloprocesorowej technologii jest umożliwienie proporcjonalnego wzrostu niezależnie od technologicznego procesu wytwarzania. ATI jest jednym z pionierów wieloprocesorowej technologii. Jeśli pamiętacie nasze artykuły jeszcze z 1999 roku, mieliśmy okazję testować wtedy technologię ATi MAXX, wykorzystującą opatentowaną technikę Alternate Frame Rendering (naprzemienne renderowanie klatek). Karta graficzna Rage Fury MAXX łączyła dwa procesory Rage 128 PRO na pojedynczej płycie przeznaczonej dla wymagających graczy.

Image

Pomimo ograniczeń narzuconych przez interfejs szyny AGP, była w stanie osiągnąć prawie 80% wzrost liczby klatek przy wysokiej rozdzielczości w grach takich jak Quake 3.

Image

W 2001 roku, ATI rozpoczęła współpracę z Evans & Sutherland mającą na celu opracowanie wieloprocesorowych stacji roboczych. Rezultatem okazał się simFUSION image generator, który wykorzystywał 4 ATI GPU na płycie. Wersje oparte na procesorach RadeonŽ 9700 i 9800 wyposażone w technologie ATI o nazwie Supertiling i Super AA, mogą obsługiwać do 24 próbek antialiasingu w czasie rzeczywistym przy wyjątkowo wysokich rozdzielczościach. Aby spełnić wymagania jeszcze bardziej wymagających aplikacji, generatory obrazu simFUSION mogą być razem łączone. System wizualizacji Evans & Sutherland RenderBeastŽ wykorzystuje do 16 połączonych kart simFUSION, co daje w sumie 64 GPU. Cały system jest w stanie tworzyć do 768 miliardów pikseli na sekundę i obsługiwać do 384 elementów antialiasingu. Technologia ta sprawdziła się w wojskowych symulatorach, komercyjnych symulatorach lotu, planetariach, wizualizacji w przemyśle motoryzacyjnym i innych przemysłowych zastosowaniach.

Płyta SimFUSION 6000q z poczwórnym GPU Radeon 9800

Image

Mimo, że wieloprocesorowe technologie były rewolucyjne, ograniczenia w obsłudze technologii sprawiły, że nie były w stanie dostarczyć swoich wszystkich możliwości szerokiemu gronu użytkowników PC. Aby przezwyciężyć te kłopoty potrzebny był szybki, stosunkowo tani, dwukierunkowy interfejs pomiędzy składnikami PC. W 2004 roku, wprowadzenie platformy PCI Express sprostało wspomnianemu wymaganiu i pozwoliło na wprowadzenie nowej generacji wydajnej wieloprocesorowej technologii dla komputerów PC.

CrossFire - jak to działa?

CrossFire jest wyszukaną i wydajną technologią dostępną obecnie przede wszystkim dla kart graficznych z serii X800 i X1000. Składa się z następujących elementów:

  • karty Radeon CrossFire Edition z 'silnikiem składającym'
  • drugiej karty PCI Express z serii X800 lub X1000
  • płyty głównej obsługującej CrossFire z dwoma slotami PCI Express dla kart graficznych
  • sterowników Catalyst z obsługą CrossFire

Diagram budowy CrossFire

Image

W systemie CrossFire każdy GPU ma swój dedykowany slot PCI Express połączony z układem North Bridge płyty głównej i ma przydzielony swój własny bufor komend i pamięć systemową. Przydzielenie osobnych buforów komend pozwala każdemu GPU wykonywać unikalny zestaw zadań. Część pamięci systemowej przeznaczona jest do współdzielenia danych pomiędzy dwa GPU. Dzielone dane zawierają komendy synchronizacji, tekstury, pozaekranowe, oraz inne dane generowane podczas procesów modelowania. Konfiguracja wykorzystuje zalety szybkiego dwukierunkowego połączenia PCI Express, aby zapewnić płynną i wydajną współpracę pomiędzy GPU. Gdy każdy z GPU ukończy przydzielone mu zadania dla danej klatki, wyniki przesyłane są do 'silnika składającego' (CrossFire Compositing Engine). Urządzenie to łączy wyniki z każdego GPU w zależności od wybranego trybu pracy, po czym wysyła końcowe klatki do monitora. Jest ono w stanie wykonywać zaawansowane operacje łączenia bez obciążania żadnego z GPU. CrossFire obsługuje cztery tryby pracy, z czego trzy poświęcone są wydajności (AFR, Supertile i Scissor) a jeden jakości (Super AA). Każdy z trybów wykorzystuje inną metodę dzielenia materiału potrzebnego do generowania obrazów 3D pomiędzy wiele GPU.

Wyższa wydajność

Kluczem do wyższej wydajności wieloprocesorowych systemów jest maksymalnie wydajne podzielenie obrabianego materiału. Ważne jest także zminimalizowanie dodatkowych zadań wywołanych przetwarzaniem sterowników, czy też synchronizacją pomiędzy GPU - a wszystko przy równoczesnym zachowaniu kompatybilności z szerokim wachlarzem aplikacji. Aby osiągnąć taki efekt, CrossFire wykorzystuje jedną z trzech różnych technik dzielenia generowanego obrazu. Optymalna technika określana jest automatyczne dla każdej aplikacji 3D za pomocą Catalyst A.I., który jest składnikiem sterowników ATI. Te trzy techniki to: Alternate Frame Rendering, Supertiling, i Scissor.

Tryb Alternate Frame Rendering (AFR) - naprzemiennego generowania klatek.

W tym trybie wszystkie parzyste klatki renderowane są przez jeden GPU, a nieparzyste przez drugi. Ukończone klatki z obu GPU przesyłane są do 'Compositing Engine' na karcie CrossFire Edition, która z kolei przesyła je do monitora. Dzięki możliwości całkowicie osobnej pracy GPU, AFR zapewnia największą poprawę wydajności ze wszystkich dostępnych trybów. Jest to także jedyny tryb, który pozwala na połączenie pełnych możliwości przetwarzania vertex obu GPU.

Image

Głównym ograniczeniem tego trybu jest fakt, że nie może on być wykorzystywany w aplikacjach, w których obraz jest zależny od danych wygenerowanych w poprzedniej klatce. Wynika to stąd, że AFR generuje kolejne klatki równocześnie za pomocą różnych GPU. W takich przypadkach, zamiast AFR, zastosowanie znajdują tryby Supertile lub Scissor.

Tryb Supertile

W tym trybie każda klatka, która ma zostać wygenerowana, dzielona jest na kawałki według wzoru szachownicy, w wyniku czego trafiają one po połowie do dwóch GPU. Z racji tego, że przetwarzane części są małe (32x32 piksele), metoda ta sprawdza się bardzo dobrze ponieważ równo dzieli materiał pomiędzy GPU, bez względu na to jaki obraz wyświetlany jest na ekranie i bez dodatkowego obciążenia ze strony oprogramowania.

Image

Tryb Supertile ma tę zaletę, że jest w stanie współpracować w zasadzie z każdą aplikacją 3D. Równocześnie, istnieje niewielka liczba aplikacji, w których rozkład materiału wg Supertile nie zapewnia optymalnej wydajności. W tych przypadkach wykorzystany może być tryb Scissor.

Tryb Scissor

W tym trybie każda klatka dzielona jest na dwie sekcje, z których każda przetwarzana jest przez jeden GPU. Podział może być poziomy lub pionowy, równy (50/50) lub nierówny (np. 60/40 lub 70/30). Właściwa konfiguracja określana jest automatycznie dla każdej aplikacji.

Image

Mimo że generalnie tryb Scissor jest mniej wydajnym sposobem dzielenia materiału niż metoda Supertile, istnieją okoliczności, w których sytuacja może być odwrotna. Tryb Scissor jest obsługiwany przez CrossFire w celu maksymalizacji kompatybilności i wydajności.

CrossFire - wyższa jakość obrazu

Jednym z podstawowych problemów wczesnej technologii wieloprocesorowej jest poradzenie sobie z aplikacjami 3D, które ograniczane są wydolnością CPU, a nie GPU. Podobna sytuacja ma miejsce w przypadku aplikacji, które mogą być wykonane na pojedynczym GPU tak szybko, że osiągają ilość klatek na sekundę dużo większą niż odświeżanie monitorów. W takich sytuacjach dodatkowa moc zapewniona przez drugi GPU jest ewidentnie marnowana, ponieważ na drodze stoją ograniczenia CPU i urządzeń wyświetlających. Sytuacje te mogą być bardzo częste w przypadku szybkich systemów, nawet gdy jakość obrazu ustawiona jest na najwyższy poziom. W przypadku systemów wyposażonych w nieco starsze CPU lub wyświetlacze o ograniczonej rozdzielczości, takie jak popularne LCD 1280x1024, wartość drugiego dodanego GPU może być niewielka. Technologia ATI CrossFire stara się rozwiązać ten problem za pomocą trybu Super AA, który korzysta z drugiego GPU, aby poprawić jakość obrazu, a nie zwiększyć liczbę wyświetlanych klatek.

Tryb Super AA

Antialiasing (AA) jest dobrze znaną techniką renderowania obrazu, zaprojektowaną aby niwelować powszechne i niechciane podczas tworzenia obrazów 3D zjawiska takie jak nierówne krawędzie, drgania, problemy z pikselami. Zamiast określać kolor każdego piksela na ekranie przez samplowanie pojedynczych lokacji w środku piksela, antialiasing sampluje wiele lokacji w obrębie danego piksela i łączy razem wyniki, aby określić ostateczny kolor. Dzisiejsze procesory graficzne stosują różne techniki antialiasingu. Najnowsza generacja GPU Radeon z technologią SmoothVision HD, korzysta z metody zwanej Multi-Sample Anti-Aliasing (MSAA). Metoda ta zbiera próbki z 2, 4, lub 6 programowalnych lokacji w każdym pikselu i łączy właściwą próbkę korekcji gamma w celu wygładzenia krawędzi wielokątów. Pobieranie większej liczby próbek na piksel zwiększa jakość końcowego obrazu. Nowe tryby CrossFire Super AA czerpią korzyści z możliwości jakie oferują programowalne próbki SmoothVision HD, aby zapewnić jeszcze wyższą jakość antialiasingu na wieloprocesorowych systemach. GPU renderują tę samą klatkę przy włączonym antialiastingu, ale korzystają z różnych lokacji. W momencie, gdy obie wersje tej samej klatki są gotowe, zostają one połączone za pomocą CrossFire 'Compositing engine'. Powstały obraz ma dwa razy więcej próbek, tak więc 4x i 6x AA staje się odpowiednio 8x i 12x Super AA.

Tryb Super AA

Image

- Porównanie wygładzania krawędzi za pomocą 6x AA i 12x Super AA

Podczas gdy nowe tryby antialiasingu zapewniają niezwykłą jakość i wydajność, ograniczane są krawędziami wielokątów. Niektóre typy tekstur, szczególnie te z przezroczystymi polami, mogą zawierać aliasing, który nie został usunięty przez techniki MSAA. Inna forma antialiasingu, znana jako Super-Sample Anti-Aliasing (SSAA) może być wykorzystana w takich właśnie przypadkach ponieważ zajmuje się ona każdym pikselem obrazu. Mimo że normalnie działa ona trochę wolniej od MSAA, moc wielu GPU sprawia, że znajduje ona zastosowanie i jest bardziej praktyczna.

Najprostsza i najczęściej używana forma SSAA wymaga, żeby obraz został najpierw wyrenderowany w wyższej rozdzielczości niż w tej, w której zostanie wyświetlony. Po ukończeniu tego zadania, obraz jest dostosowywany do rozdzielczości monitora. Metoda ta ma dwie główne wady. Po pierwsze, wymaga renderowania większej ilości pikseli niż normalnie, co może mieć drastyczny wpływ na wydajność. Po drugie, w jej wyniku otrzymujemy ustalony wzór siatki próbki, co źle wpływa na antialiasing niektórych typów poszarpanych krawędzi. Widoczne jest to szczególnie w przypadku prawie poziomych i pionowych krawędzi.

Super AA radzi sobie z obydwoma problemami. Wykorzystuje on drugi GPU do renderowania dodatkowych pikseli wymaganych dla każdej klatki, dzięki czemu niezauważalny jest spadek wydajności. Może także wykorzystać bardziej wydajny wzór próbek, znany jako rotated grid (obrotowa siatka), który lepiej rozwiązuje problem aliasingu prawie poziomych i pionowych krawędzi, poprawiając tym samym jakość obrazu. Dwa z nowych trybów Super AA wykorzystują kombinację MSAA i SSAA, aby osiągnąć najwyższą możliwą jakość obrazu. Pracują one używając nie tylko różnych sampli i multisampli lokacji na każdym GPU, ale także dzięki delikatnemu wyrównaniu centrów pikseli. W rezultacie, każdy GPU renderuje obraz z różnej perspektywy, oddalonej od siebie o około pół piksela. W taki sposób działają nowe tryby 10x i 14x Super AA, łącząc 2x SSAA z odpowiednio 4x i 6x MSAA.

wzory próbek antialiasngu

Image

Dodatkową korzyścią wynikająca z tych trybów jest fakt, że współpracują one z SmoothVision HD Anisotropic Filtering (AF). Jest to wysokiej jakości technika filtrowania zaprojektowana, aby tworzyć ostrzejsze, czystsze tekstury dzięki łączeniu wielu próbek tekstur (2, 4, 8, lub 16) dla każdego piksela. Ponieważ Super AA jest w stanie renderować każdy piksel z dwóch nieznacznie różniących się perspektyw, także próbki tekstury łączone są w podobny sposób. Oznacza to, że liczba próbek tekstury dla każdego piksela jest podwojona, tak więc obsługiwane może być Anisotropic Filtering do 32x . Nowe tryby Super AA mogą być uruchamiane przez użytkowników za pomocą interfejsu centrum kontroli ATI Catalyst.

Nowy suwak antialiasingu SmoothVision HD w centrum kontroli Catalyst

CrossFire - wyższa kompatybilność i elastyczność

Innym ograniczeniem poprzednich technik wieloprocesorowych był brak zgodności ze wszystkimi aplikacjami. Było to wynikiem wielu powodów, m.in. pewnych technik renderowania niekompatybilnych z konkretną implementacją wieloprocesorową lub dużą zależnością od CPU, która negatywnie wpływała na wydajność. Problemy te ograniczały możliwość wykorzystania drugiej karty w systemie. CrossFire jest pierwszą technologią wieloprocesorową, która zapewnia korzyści w każdej aplikacji 3D. Jest to możliwe dzięki obsłudze do czterech różnych trybów pracy, które maksymalizują kompatybilność. W momencie uruchomienia aplikacji sterowniki ATI Catalyst automatycznie wybierają najlepszy z trzech trybów wydajności bez udziału użytkownika. Użytkownik może ewentualnie, w celu poprawienia jakości, wybrać nowy tryb Super AA w centrum kontroli Catalyst.

Wczesne technologie wieloprocesorowe cechowała ograniczona możliwość modernizacji. Generalnie wymagały one dwóch identycznych lub prawie identycznych kart zainstalowanych w systemie, aby pracować bez zarzutu. Co więcej, każda z tych kart musiała być modelem specjalnie zaprojektowanym dla wieloprocesorowych konfiguracji. Bywało, że specjalne modele kart były droższe i trudniej dostępne od standardowych modeli. Ostatecznie, takie rozwiązanie oznaczało, że każdy wyprodukowany kompatybilny GPU musiał być wyposażony w układ logiczny obsługujący wieloprocesorowe zestawy, co niepotrzebnie zwiększało jego cenę. Na takie rozwiązanie skarżyli się szczególnie ci, którzy takich układów nie potrzebowali. Technologia ATI CrossFire prezentuje nowe podejście do modernizacji. System zaprojektowany został w taki sposób, że płyty Radeon CrossFire Edition mogą być połączone z dowolnym istniejącym modelem, konfiguracją, lub rodzajem karty graficznej PCI Express zbudowanej na GPU serii Radeon X800 lub Radeon X1000.

Dedykowany CrossFire Compositing Engine zapewnia, że tylko użytkownicy zainteresowani wieloprocesorową konfiguracją będą musieli zapłacić za możliwość takiej rozbudowy. Aby zagwarantować, że przetwarzane dane są równo rozdzielane pomiędzy karty o różnej wydajności, technologia ATI CrossFire pozwala na regulowanie prędkości każdego GPU. Umożliwia to uzyskanie większej wydajności i wyższej jakości obrazu w przypadku prawie każdej kombinacji kompatybilnych kart.

Wybrane dla Ciebie
ZANIM WYJDZIESZ... NIE PRZEGAP TEGO, CO CZYTAJĄ INNI!