Test GPGPU: NVIDIA Fermi vs ATI Evergreen

12 kart graficznych w akcji. Testujemy OpenCL, DirectCompute, ATI Stream i NVIDIA CUDA. Sprawdzamy też wydajność PhysX pomiędzy dwoma generacjami kart GeForce oraz sprzętowych teselatorów ATI i NVIDII.

General Purpose GPU - o co w tym chodzi?

Image
Image

Wojna pomiędzy NVIDIĄ a ATI toczy się na wielu frontach. Jednym z nich jest poletko zastosowań GPGPU, gdzie każdy z potentatów chce zdobyć należną mu pozycję. GPGPU, czyli General Purpose Graphics Processor Unit, jest technologią w której układ graficzny zajmuje się obliczeniami ogólnego przeznaczenia, czyli takimi, które były do tej pory realizowane przez procesor. Jaka z tego korzyść? Taka, że architektura nowoczesnych kart graficznych pozwala przeprowadzać takie obliczenia od kilku do kilkunastu razy szybciej niż przy wykorzystaniu procesorów.

O GPGPU pisaliśmy już na naszych łamach w artykule nVidia CUDA i ATI Stream. Wykorzystać moc GPU. Jeśli do tej pory nie spotkałeś się z ideą zaprzęgnięcia kart graficznych do takiej roli, polecamy lekturę tego tekstu. Zgodnie z tytułem traktował on o dwóch technologiach GPGPU konkurencyjnych firm (NVIDII i ATI). Dzięki technologii CUDA i jej ostrej promocji na pozycję lidera wysunęła się firma NVIDIA. ATI ze swoim rozwiązaniem Stream pozostała nieco w tyle (przynajmniej jeśli chodzi o aplikacje użytkowe), jednak dziś sytuacja uległa zmianie, bo do walki włączył się kolejny zawodnik. 

Jest on z założenia daltonistą i nie wybiera strony zielonej (NVIDIA) ani czerwonej (ATI), ponieważ może działać na dowolnej platformie. Mowa oczywiście o OpenCL, otwartym standardzie programowania równoległego dla heterogenicznych (różnorodnych) systemów, który ma oferować takie same (bądź większe) możliwości jak CUDA, Stream czy DirectCompute. Do obliczeń ogólnego przeznaczenia OpenCL może wykorzystać zarówno wielordzeniowe procesory oraz dowolne układy graficzne, i to - z założenia - równocześnie. Standard ten może pogodzić obie technologie odwiecznych rywali, których główną wadą jest to, że mogą działać albo na kartach NVIDII (CUDA), albo na ATI (Stream).

Zarówno NVIDIA jak i ATI już jakiś czas temu udostępniły sterowniki OpenCL w wersji 1.0. W przypadku NVIDII są one zintegrowane ze sterownikami kart graficznych, a w przypadku ATI należy zainstalować dodatkowy pakiet ATI Stream Software Developer Kit (SDK) z obsługą OpenCL.

W tym przypadku NVIDIA znów była o krok przed rywalem. Pierwszy pokaz OpenCL działającego na swoich kartach przeprowadziła już w grudniu 2008 roku i wprowadziła implementację OpenCL w sterownikach przeznaczonych dla użytkownika końcowego już we wrześniu 2009.  Firmie ATI/AMD udało się to zrealizować dopiero w grudniu, jednak wersja beta Stream SDK z obsługą OpenCL była dostępna już w październiku.

Implementacja OpenCL w wykonaniu ATI/AMD, mimo że przyszła na świat później, to jednak ma zaletę, której rywal jak na razie nie wprowadził do swoich sterowników. OpenCL jest frameworkiem programowania równoległego zarówno dla układów graficznych, jak i wielordzeniowych procesorów. OpenCL w wykonaniu ATI umożliwia wykorzystanie również procesora jako jednostki OpenCL (liczba rdzeni równa się liczbie jednostek OpenCL). OpenCL NVIDII jak na razie umożliwia wykorzystanie do obliczeń wyłącznie kart graficznych. Znając niechęć „Zielonych” do usprawniania jakiejkolwiek technologii, która byłaby związana z procesorami (vide PhysX CPU), można przypuszczać, że tak już pozostanie.

Swoje trzy grosze do świata technologii GPGPU wtrąciła też firma Microsoft ze swoim rozwiązaniem o nazwie DirectCompute.

DirectCompute umożliwia wykonywanie obliczeń na układzie graficznym i funkcjonuje w środowisku Windows Vista/7.  Chociaż technologia pojawiła się wraz z Windows 7 i DirectX 11, to wykorzystuje moc kart graficznych zarówno z obsługą DX 10/10.1 (DirectCompute 4.0/4.1), jak i DX 11 (DirectCompute 5.0).

Intefejs Windows już korzysta z mocy obliczeniowej kart graficznych, a szerszego wykorzystania DirectCompute należy spodziewać się w przyszłych grach wykorzystujących możliwości DirectX 11.

Image

GPU-Z: GeForce GTX 260, 275, 285, 465, 470 i 480

W szranki w testach GPGPU (OpenCL i DirectCompute) stanęły karty Fermi  (GTX 480, 470 i 465) oraz Evergreen (rodzina ATI HD 5xxx). Od razu jednak chcielibyśmy zaznaczyć, że dostępne oprogramowanie słabo (lub wcale) radziło  sobie z wykorzystaniem dwóch układów graficznych, co w większości testów zdyskwalifikowało Radeona HD 5970.

Image

 Efekt uruchomienia jednego z testów OpenCL w GPU Caps Viewer na Radeonie HD 5970

Dodatkowo sprawdziliśmy wydajność kart GeForce najnowszej i poprzedniej generacji w testach CUDA i PhysX, oraz kart Radeon w ATI Stream. Korzystając z okazji nie omieszkaliśmy dokładnie sprawdzić kolejnego aspektu nowych konstrukcji graficznych obu firm - wydajności sprzętowych teselatorów.

Karty NVIDII i ATI cechują się odmienną budową, sposobem działania i różnym podejściem do realizacji tych samych celów. Rozwój technologii CUDA i Stream, pomimo znaczących postępów, wciąż nie przyniósł spodziewanego wysypu oprogramowania, z którego mógłby skorzystać użytkownik końcowy.

Image

GPU-Z: Radeon HD 5670, 5770, 5830, 5850, 5870 i 5970

Implementacje OpenCL dla kart obu producentów są rozwiązaniami świeżymi. Twórcy oprogramowania (choćby Folding@home) natykali się na problemy z obu wersjami i na masowe wykorzystanie tej technologii przyjdzie nam z pewnością jeszcze poczekać. Należy też ostrożnie założyć, że część benchmarków - i sterowników - ma wciąż ograniczoną funkcjonalność. Jeśli porównanie wydajności kart graficznych w grach jest zadaniem stosunkowo prostym, to sytuacja zmienia się diametrialnie w przypadku obliczeń GPGPU. Często nie sposób stwierdzić, która z konstrukcji jest wydajniejsza - wszystko zależy od tego, jak został napisany program i czy potrafi lepiej wykorzystac architekturę kart ATI, czy NVIDII.

Aplikacje testowe

Heaven Benchmark 2.1 – Najnowsza wersja benchmarka opartego na silniku Unigine, który potrafi wykorzystać sprzętową teselację. Wydajnośc kart ATI i NVIDII przetestowaliśmy w czterech wariantach: teselacja wyłączona (disabled), poziom teselacji średni (moderate), poziom teselacji normalny (normal) i poziom teselacji najwyższy (extreme). Testy przeprowadziliśmy w rozdzielczości 1680 x 1050, na kartach Fermi (GTX 465, 470 i 480) i Evergreen (rodzina Radeon HD 5xxx), przy wykorzystaniu DirectX 11, ustawieniach wysokich (shaders: high), filtrowaniu anizotropowym x16 (anisotropy 16) i poczwórnym wygładzaniu krawędzi (anti-aliasing x4).

Sandra 2010 – To jeden z najpopularniejszych benchmarków syntetycznych, wyposażony w mnóstwo różnorodnych testów, dzięki którym możemy przetestować niemal dowolny aspekt platformy sprzętowej. W tym przypadku wykorzystaliśmy test GPGPU Processing (menu Benchmarks, dział Graphics Processor), który sprawdza możliwości obliczeniowe kart graficznych. Dokonaliśmy pomiarów wydajności DirectCompute 5.0 (Compute Shader Processor) i OpenCL (OpenCL Processor). Dodatkowo sprawdziliśmy wydajność kart GeForce przy zastosowaniach CUDA (CUDA Processor) i kart Radeon w ATI Stream (STREAM Processor). Test OpenCL na platformach oparty o karty ATI umożliwia równoczesne przetestowanie karty graficznej i procesora (każdy rdzeń procesora taktowany jest jako jednostka OpenCL).

FluidMark 1.1.1 – benchmark symulujący zachowanie cieczy oparty na silniku NVIDIA PhysX. Do działania może on wykorzystywać karty NVIDII (hardware), bądź procesor (software). Działanie w pierwszym przypadku jest znacznie szybsze. Test przeprowadziliśmy na wszystkich kartach GeForce w rozdzielczości 1680 x 1050 z wyłączonym antyaliasingiem. Warto wspomnieć, że dostępna jest już wersja 1.2 tego programu, która wykorzystuje wielowątkowość CPU.

JX3 Benchmark – benchmark oparty na silniku gry MMO o nazwie JX3. Gra pochodzi z Chin i nie jest specjalnie znana poza tym krajem, ale jej twórcy opublikowali całkiem użyteczny benchmark. Można go uruchomić w dwóch trybach: PhysX and Lightning oraz CUDA Accelerated Animation. Pierwszy test to nic innego jak silnik gry uzupełniony o efekty PhysX, natomiast drugi wyświetla animację 200 postaci na raz, wspierając się technologią CUDA. Testy zostały przeprowadzone w rozdzielczości 1680 x 1050, z wyłączonym AA,

MKZ (Metal Knight Zero Online) Benchmark – kolejna gra online z dalekiego wschodu. To nic innego jak dynamiczna strzelanka FPP. Graficzny silnik gry nie jest specjalnie spektakularny, ale twórcy także tej gry wyposażyli go w zaawansowane efekty NVIDIA PhysX i pokusili się o wypuszczenie samodzielnego benchmarka.

OpenCL GPCB (General Purpose Computing Benchmark) 1.1 – W obecnej chwili jest to chyba najbardziej zaawansowany benchmark OpenCL. Przeprowadza całe mnóstwo testów, a zapis wyników wystarczyłby na stworzenie tabelek do kilku artykułów. Nie wszystkie z nich działają jednak prawidłowo zarówno na platformach opartych na kartach ATI i NVIDII (autorzy wskazują tu na brak odpowiedniego wsparcia ze strony producentów). Dlatego też wykorzystaliśmy jedynie dwa testy, a mianowicie Common Mathematics – Parallel Reduction (operacje matematyczne) oraz Cryption (test kryptograficzny za pomocą algorytmu SHA-1).

SmallLuxGPU 1.3 – czyli GPGPU wkracza do świata grafiki 3D. Test sprawdzający możliwości obliczeniowe układów graficznych (OpenCL) przy wykorzystaniu renderera LuxRender. Do testów wykorzystaliśmy scenę Kitchen. Była ona liczona przy domyślnych wartościach (bez zmiany jakichkolwiek ustawień) w rozdzielczości 640 x 480. Pomiar średniej prędkości renderowania był dokonywany po przeliczeniu 200 próbki.

SmallptGPU 2.0 – OpenCL i grafika 3D po raz kolejny. Benchmark wykorzystuje GPU do obliczeń prostej sceny 3D przy różnych ustawieniach.Pomiar średniej prędkości renderowania był dokonywany po przeliczeniu 1000 próbki (2000 próbki w scenie Simple). Wersja 2 tego benchmarka wspiera kilka urządzeń OpenCL – o ile jednak bezproblemowo dokonywała obliczeń za pomocą GPU ATI i procesora, to niestety nie udało nam się zmusić ją do wykorzystania na raz dwóch układów GPU na karcie Radeon HD 5970.

GPU Caps Viewer 1.8.6 – program diagnostyczny do kart graficznych wyposażony dodatkowo w liczne testy OpenGL i OpenCL. Sprawdziliśmy działanie kart graficznych w następujących testach: 4D Quaternion Julia Set (OpenCL GPU + OpenGL 3.2), 1M Particles (OpenCL GPU + OpenGL 3.2) oraz PostFX (OpenCL GPU + OpenGL 3.2). Szybkość generowania grafiki była mierzona za pomoca programu Fraps, czas pomiaru wynosił 60 sekund. Testy przeprowadzaliśmy w rozdzielczości 1024 x 768 (domyślne ustawienia programu to 600 x 600).

DirectCompute & OpenCL Benchmark 0.45 – jeden z pierwszych (o ile nie pierwszy) benchmarków OpenCL jakie pojawiły się w sieci. Warto docenić te oprogramowanie, zwłaszcza, że jego twórcą jest nasz rodak. Niestety napotkaliśmy problemy z różnymi kartami graficznymi w teście DirectCompute i ostatecznie zdecydowaliśmy sie na publikację jedynie wyników testu OpenCL.

W testach wykorzystano sterowniki:

  • ATI Catalyst 10.5
  • ATI Stream SDK 2.1
  • ForceWare 257.21

Teselacja w wykonaniu ATI i NVIDII

Przez teselację rozumiemy podział wielokątów generowanych podczas tworzenia obrazu 3D na mniejsze, dzięki czemu wyświetlana grafika może być znacznie bardziej szczegółowa. Teselacja coraz śmielej wkracza do świata gier, czego efekty (na razie dość skromne) możemy zaobserwować choćby w takich produkcjach jak DiRT 2, Metro 2033, czy Aliens vs Predator. Na rozgrzewkę proponujemy porównanie wydajności kart Fermi i Evergreen za pomocą najnowszej wersji benchmarka Heaven w wersji 2.1.Tym razem skupiliśmy się na samej teselacji i przetestowaliśmy ją w różnych ustawieniach.

Od jakiegoś czasu wiadomo, że w teście Heaven karty Fermi mają potężną przewagę z teselacją przy ustawieniach ekstremalnych (extreme). Różnica bierze się oczywiście z powodu zupełnie odmiennych konstrukcji kart Evergreen i Fermi oraz podejścia do problematyki teselacji. Z okazji premiery pierwszej karty z obsługą DirectX 11, firma ATI/AMD zwracała szczególną uwagę na zagadnienie teselacji, oraz na oddzielną, programowalną jednostkę zajmującą się wyłącznie tym zagadnieniem (teselator). Notabene oddzielna jednostka teselacyjna istniała już w kartach serii HD 2xxx, 3xxx oraz 4xxx (a nawet wcześniej, w postaci modułu TruForm), ale w konstrukcji kart Evergreen pojawiły się zmiany, w tym między innymi dwie nowe programowalne jednostki cieniowania. Limit wartości współczynnika teselacji w stosunku do poprzedniej generacji  kart wzrósł ponad czterokrotnie.

Tymczasem przy okazji premiery Fermi, NVIDIA nie omieszkała się pochwalić, że dzięki zastosowaniu jednostek odpowiedzialnych za geometrię (PolyMorph Engine), na karcie GTX 480 można uruchomić 15 niezależnych silników teselacyjnych. Skąd wzięła się ta liczba? Wystarczy zerknąć na poniższe zrzuty ekranowe z GPU Caps Viewer, by łatwo to zrozumieć.

Image

GeForce GTX 480, 470 i 465

Każdy multiprocesor strumienowy (czyli SM, nie mylić z SP, czyli „rdzeniami CUDA” – pojedynczymi procesorami strumieniowymi) ma własną jednostkę PolyMorph Engine, w której skład wchodzi między innymi teselator. Stąd GTX 480 może naraz uruchomić 15 silników teselacyjnych, GTX 470 już tylko 14, a GTX 465 „jedynie” 11.  Nie od dziś wiadomo, że najnowszy układ NVIDII jest niezwykle zaawansowany i skomplikowany. W środowisku IT pojawiły się plotki, że to właśnie implementacja PolyMorph Engine w każdym z SM była jednym z głównych powodów opóźnienia premiery układów Fermi.

Image

GeForce GTX 285, 275 i 260

Nie należy się sugerować tym, że karty GeForce poprzedniej generacji mają więcej multiprocesorów (powyższy zrzut ekranowy) – odmieniona architektura Fermi daje najnowszym kartom NVIDII potężną przewagę w tym względzie.  Sprawdźmy więc,jak przy różnych wartościach teselacji w akcji sprawdzają się karty Evergreen i Fermi.

Testy teselatorów: Heaven Benchmark 2.1

Image
Image

Bez włączonej teselacji możliwości przeciwników rozkładają się zgodnie z oczekiwaniami. Dwa układy graficzne Radeona HD 5970 rozkładają każdego przeciwnika (i sojusznika) na łopatki. ;-)

Image

Zastosowanie minimalnej teselacji zmienia dużo w wyglądzie silnika gry, ale wcale nie wpływa drastycznie na zmianę wyników. Karty Fermi zaczynają zaliczać lepsze wyniki, ale i Radeony radzą sobie całkiem nieźle. Jak widać na poniższym zrzucie ekranowym, różnice w wyświetlanej grafice przy użyciu silnika Unigine i różnych ustawień teselacji są nieduże (nie licząc jej całkowitego wyłączenia).

Image
Image

Przy ustawieniach normalnych, karty GeForce zaczynają ostro piąć się w gorę. Radeon HD 5970 jednak nie odpuszcza. Teselatory z pewnością są istotnym elementem, ale stanowią tylko niewielką część tych złożonych konstrukcji, jakimi są karty graficzne i nie tylko ich liczba wpływa na szybkość wyświetlania grafiki.

Image

Dopiero ekstremalna teselacja pozwala GTX 480 przebić Radeona HD 5970. Oczywiście w pierwszym przypadku mamy do czynienia z kartą opartą na jednym układzie, a w drugim z dwuprocesorowym potworem. Warto zwrócić uwagę no to, że nawet najsłabsza karta oparta na architekturze Fermi, czyli GTX 465, wypada lepiej od Radeona HD 5870. Radeonowi HD 5970 wystarczają tylko dwa teselatory, by nawiązać z Fermi równorzędną walkę. Wiele osób wciąż ma jednak uprzedzenia dotyczące rozwiązań multi-GPU.

Czy ektremalna teselacja znajdzie zastosowanie w grach? Wątpliwe. Na korzyść NVIDII należy zaliczyć elastyczność silnika PolyMorph Engine i docenić pracę ich inżynierów. Czy jednak ścieżka, którą zaczęli podążać, okaże się właściwa? Dowiemy się dopiero na przykładzie przyszłych gier wykorzystujących teselację.

Testy PhysX: JX3, MKZ i FluidMark

Już od jakiegoś czasu w sieci pojawiają się plotki o przeportowaniu PhysX do OpenCL. Czy oznaczałoby to w końcu, że ten popularny silnik fizyczny zadziałałby także na kartach ATI? Sądząc po wcześniejszych posunięciach NVIDII jest to mało prawdopodobne. Firma zazdrośnie strzeże swoich technologii, co najlepiej widać właśnie po PhysX.  To właśnie NVIDIA zablokowała możliwość wykorzystania PhysX przez karty GeForce, o ile jej sterowniki wykryją w komputerze także układ graficzny ATI. Warto przypomnieć, że w sterownikach 257.15 beta zabrakło owego zabezpieczenia, co pozwalało bez przeszkód wykorzystać do wyświetlania obrazu kartę Radeon, a do obliczeń PhysX kartę GeForce. Szybko jednak okazało się, że, jest to... pomyłka. Któryś z programistów NVIDII po prostu zapomniał o dodaniu do sterowników owych zabezpieczeń. „Błąd” szybko naprawiono w niedawno opublikowanej wersji WHQL.

- JX3 Benchmark – PhysX & Lightning

Image

W teście PhysX i Lightning wszystkie karty radzą sobie przyzwoicie, chociaż należy pamiętać, że przeprowadzaliśmy go przy wyłączonym wygładzaniu krawędzi, gdzie GF100 (Fermi) zyskałby większą przewagę. GTX 285 depcze po piętach najsłabszej karcie Fermi, ale od GTX 480 dzieli go prawie 20 klatek różnicy.

MKZ Benchmark

Image

Benchmark na silniku Metal Knight Zero nie wykazuje już tak wielkich różnic. Silnik wcale nie prezentuje się rewelacyjnie, ale mnogość efektów PhysX powoduje, że nawet GTX 480 wyciąga średnio zaledwie 40 klatek na sekundę i to w rozdzielczości 1280 x 1024. Gra zapewne nie zrobi wielkiej furory na zachodzie, ale widać, że w niektórych przypadkach różnice pomiędzy dwoma generacjami kart GeForce wcale nie muszą być wielkie.

FluidMark

Image
Image

FluidMark również wykazuje wyraźne zwycięstwo kart Fermi, ale różnica również nie jest przytłaczająca. Nasze poprzednie testy wykazały, że w zależności od aplikacji (gry), różnica pomiędzy dwoma generacjami kart GeForce może być albo niewielka (Cryostasis), albo przytłaczająca (Dark Void).

Testy CUDA i Stream: JX3 i Sandra 2010

Swego czasu pisaliśmy już o zastosowaniach technologii CUDA i Stream w artykule "nVidia CUDA i ATI Stream. Wykorzystać moc GPU". Od czasu publikacji naszego artykułu minęło już trochę czasu, ale dla zwykłego użytkownika zmieniło się niewiele. Nie zostaliśmy zasypani oprogramowaniem, które wykorzystywałoby te technologie. Owszem, na rynku oprogramowania widać optymistyczne znaki, ale powszechne wykorzystanie CUDA i Stream to wciąż pieść przyszłości. Dodać tu też należy, że największy ruch panuje w obozie „Zielonych” i ich technologii CUDA.

Oprogramowanie użytkowe nie powstaje może jak grzyby po deszczu, ale nowe pozycje wciąż się pojawiają. Można tu wymienić choćby renderery (czyli programy służące do renderingu scen wykonanych w programach do grafiki 3D, takich jak 3D Studio Max) Octane Render, oraz Arion, z tym, że ten drugi jest silnikiem hybrydowym, który potrafi wykorzystać równocześnie nie tylko GPU, ale i CPU, ale nawet moc obliczeniową innych komputerów poprzez sieć LAN.

Jeśli chodzi o ATI Stream, większość ostatnich informacji o tej technologii była powiązana z OpenCL – wydaje się więc, że ATI/AMD zamierza się skupić na wykorzystaniu tego standardu (OpenCL w wykonaniu ATI działa w architekturze Stream, tak samo jak w wykonaniu NVIDII – w architekturze CUDA).

JX3 Benchmark – CUDA Accelerated Animation

Image

Test wykorzystujący NVIDIA CUDA do generowania animacji 200 postaci jest bardzo wymagający. Najszybsze akceleratory poprzedniej generacji osiągają nieco ponad 20 klatek na sekundę. Wyniki kart Fermi są zauważalnie lepsze, ale trudno tu mówić o miażdżącej przewadze.

Image

Testy: Sandra 2010 – CUDA & Stream Processor

Test GPGPU Processing umożliwia sprawdzenie wydajności kart graficznych przy pomocy różnych technologii, w tym NVIDIA CUDA i ATI Stream. Niezależnie od użytej technologii wyniki podawane są w megapikselach na sekundę. Skoro jest to jeden test GPGPU, zdecydowaliśmy się na umieszczenie na tych samych tabelach zarówno wyników CUDA, jak i Stream. Na tej samej zasadzie porównuje się wyniki np. z programu Media Show Espresso, który przecież także potrafi konwertować filmy za pomocą jednej lub drugiej technologii.

Image
Image

Z miejsca widać dużą sympatię Sandry do produktów ATI/AMD. Wypada powątpiewać, czy wydajność obliczeniowa takiej karty jak Radeon HD 5830 jest nieco większa od GeForce GTX 470 (pierwsza tabelka), lub w drugim przypadku niemal dwukrotnie większa od GeForce GTX 480. Z drugiej strony może to być znak, jak szybkie w niektórych zastosowaniach mogą być karty ATI - a że seria 5xxx była niezwykle udana, w to chyba nikt nie wątpi.

Gdy jednak spojrzymy oddzielnie na wyniki CUDA i Stream, sytuacja staje się bardziej klarowna. Wynika z nich, że w zastosowaniach CUDA karta GTX 480 może być od dwóch, do trzech razy szybsza od GTX 285. Oczywiście należy pamiętać, że to test syntetyczny, a więc niewiele mówiący o wydajności przy rzeczywistych zastosowaniach. Po stronie ATI widać jak bardzo w obliczeniach GPGPU, tanie karty takie jak HD 5770 i HD 5670, odstają od swoich starszych braci.

Testy OpenCL i DirectCompute: Sandra 2010

Wersja 2010 tego popularnego programu przyniosła kilka zmian, w tym między innymi uzupełniono dział benchmarka GPGPU Processing o test OpenCL. Sprawdźmy więc, która z kart będzie miała (podkreślamy: teoretycznie) większe możliwości obliczeniowe przy użyciu OpenCL.

Sandra 2010 – OpenCL Processor

Image
Image
Image
Image

Sandra po raz drugi i ponownie wielka przewaga kart ATI w teście Float. Wyniki testu Double Shaders są całkowicie odmienne – tu z kolei widać supremację układów NVIDII. GTX 480 osiąga o 50% lepszy wynik od Radeona HD 5870. Wszelkie znaki na niebie i ziemi (oraz informacje na stronie ATI/AMD) wskazują na to, że sterowniki OpenCL nie potrafią wykorzystać dwóch układów Radeona HD 5970. Znacznie bardziej dziwne jest to, że wyniki kart graficznych ATI wraz z procesorem są znacząco niższe od samej karty. Dlaczego się tak dzieje? Spróbujmy przeanalizować te wyniki pod kątem zajętości zasobów systemowych.

Układ Średnie użycie GPU
Średnie użycie CPU
GT200
97% 2%
GF100 (Fermi)
99% 25%
Cypress + Deneb
50% 50%
Cypress (58xx)
99% 1%
Deneb (Phenom II X4)
n/d 96%

Sytuacja od razu staje się jasna. Nic dziwnego, że karty graficzne ATI pracując razem z procesorem osiągają taki słaby wynik, skoro w tym teście pracują na „pół gwizdka”. Warto zauważyć, że Fermi (GF100) jako jedyna wśród kart graficznych w teście GPU zużywała też  1 / 4 mocy procesora.

Sandra 2010 – Compute Shader Processor

Image
Image
Układ Średnie użycie GPU
Średnie użycie CPU
Cypress (58xx)
98% 25%
GF100 (Fermi)
98% 25%

Direct Compute bardzo demokratycznie podszedł do obu konkurencyjnych konstrukcji, obciążając je w identycznym stopniu. Rodzinka Evergreen jest jednak w tym teście wyraźnie lepsza, a najszybszy GF100 (GTX 480) nie radzi sobie z Radeonem 5830. Sprawia to, że obserwując wyniki testów Sandra ogarniają nas coraz większe wątpliwości.

Image

Powyższy zrzut ekranowy przedstawia zajętość procesora podczas testu Compute Shader Processor (góra) i OpenCL Processor (dół) na kartach graficznych Fermi. W obu przypadkach procesor jest obciążony w okołu 25%, ale zajętość rdzeni jest zupełnie inna.

Testy OpenCL: General Purpose Computing Benchmark

OpenCL GPCB to jeden z nowszych benchmarków sprawdzających wydajność kart graficznych pod kątem OpenCL. Pomimo wskazania przez program na procesor jako jednostkę OpenCL, wedle informacji twórców testy procesora zostały zaprojektowane konwencjonalnie – za pomocą języka C, a nie kodu OpenCL.

Image
Image
Image

Wyniki testów Common Mathematics nie są trudne do przeanalizowania. Wszystkie karty GeForce są szybsze od Radeonów. Niezależnie czy mamy do czynienia z operacjami pojedyńczej, czy podwójnej precyzji, przewaga Zielonych (jeśli chodzi o najnowsze karty Fermi) jest druzgocąca.

Image
Image

Test szyfrowania za pomocą algorytmu SHA-1 całkowicie odwraca losy tej potyczki. GeForce GTX 480 niewielką przewagą punktową wygrywa z Juniperem. Jedno jest pewne – po otrzymaniu takiej dawki sprzecznych wyników można poczuć w głowie prawdziwy mętlik.

Testy OpenCL: GPU Caps Viewer

GPU Caps Viewer nie jest może programem diagnostycznym tak popularnym jak GPU-Z, ale w odróżnieniu od rywala jest znacznie bardziej rozbudowany – między innymi o liczne testy. Testy generują efekty graficzne przy użyciu OpenGL, do obliczeń wykorzystując również kartę graficzną (OpenCL GPU).

Image
Image
Układ Średnie użycie GPU
Średnie użycie CPU
GT200
97% 4%
GF100 (Fermi)
99% 4%
Cypress (58xx)
88% 4%

Zajętość układu graficznego i procesora w tym teście jest właściwie identyczna, niezależnie od użytej karty graficznej. Dwa najsilniejsze jednoprocesorowe Radeony na szczycie, ale tuż za nimi czai się GTX 480.

Image
Układ Średnie użycie GPU
Średnie użycie CPU
GT200
66% 23%
GF100 (Fermi)
61% 27%
Cypress (58xx)
58% 23%

W teście 1M układy graficzne są obciążone w mniejszym stopniu, ale mniej więcej na podobnym poziomie. Całkowicie zmienia się za to rozkład sił – najsłabszy GeForce wyraźnie góruje na najszybszym Radeonem. Model HD 5970 wraca na moment do gry, ale nawet tej karcie nie udaje się prześcignąć żadnego z rywali.

Image
Układ Średnie użycie GPU
Średnie użycie CPU
GT200
87% 9%
GF100 (Fermi)
88% 11%
Cypress (58xx)
90% 8%

W teście PostFX karty ATI również nie mają wiele do powiedzenia. Dochodzimy w tym momencie do niezbyt odkrywczej konkluzji, że w niektórych zastosowaniach - i przy zastosowaniu konkretnych algorytmów - lepiej sprawdzi się architektura ATI, a w innych NVIDII.

Testy OpenCL: SmallptGPU 2.0

W możliwościach obliczeniowych kart graficznych upatruje się przyszłość grafiki 3D. Wyobraźcie sobie, jak trójwymiarowa scena generowana za pomocą procesora przez kilkanaście godzin (mówimy teraz oczywiście o technologii ray-tracingu wykorzystywanej w takich programach jak 3D Max Studio), teraz może zostać wyrenderowana o wiele szybciej. NVIDIA doskonale zdaje sobie z tego sprawę, stąd też pojawienie się wraz z Fermi technologii Optix. Optix to jednak temat na całkowicie oddzielny artykuł, który to - jak sie zapewnie domyślacie - wkrótce pojawi sie na łamach benchmark.pl.

SmallptGPU był jednym z pierwszych benchmarków, który wykorzystywał moc GPU do renderowania grafiki 3D. Wersja 2.0 potrafi już całkiem nieźle zarządzać zasobami sprzętowymi, nie na tyle jednak, by zmusić do działania równocześnie dwa układy graficzne Radeona HD 5970.

Image
Image
Image

Niezależnie od wielkości próbki, karty graficzne pozostają mniej więcej na tych samych miejscach na liście. Triumfuje Fermi, za nimi karty Evergreen, a na końcu starsze modele GeForce oparte na układzie GT200. HD 5870 świetnie spisuje się w duecie z jednostką centralną – oba układy są bardzo wysoko obciążone. Jak widać korzyść z takiego sojuszu nie jest wielka (przynajmniej na tle mocy obliczeniowej Radeona HD 5870), ale liczy się to, że wykorzystywane są w tym momencie wszystkie zasoby sprzętowe platformy. Porównanie możliwości obliczeniowych samego Radeona HD 5870 i tej samej karty w duecie z procesorem daje wyobrażenie na temat tego, ile razy 5870 w takich zastosowaniach może być szybszy od czterordzeniowego Phenoma II X4 965 3,4 GHz.

Układ Średnie użycie GPU
Średnie użycie CPU
GT200
99% 1%
GF100 (Fermi)
95% 1%
Cypress + Deneb (Phenom II X4)
95% 98%
Cypress (58xx)
97% 1%

Wszystko wskazuje na to, że to właśnie test Smallpt GPU potrafi najlepiej wykorzystać zasoby sprzętowe, więc jego wiarygodność w naszych oczach znacznie wzrasta.

Image
Układ Średnie użycie GPU
Średnie użycie CPU
GT200
91% 4%
GF100 (Fermi)
71% 13%
Cypress + Deneb (Phenom II X4)
89% 58%
Cypress (58xx)
90% 1%

Przy scenie Simple wykorzystanie zasobów nie jest już całkowite. Tutaj wyniki są zdecydowanie niekorzystne dla Radeona. GF100 (Fermi), nie dość, że jest znacznie szybszy, to jego zasoby są wykorzystywane jedynie w około 70%. Trudno przypuszczać, by na ten wynik miało wpływ 13% wsparcie procesora.

Testy OpenCL: SmallLuxGPU i DC & OpenCL Benchmark

Kolejny przyklad wykorzystania mocy obliczeniowej kart graficznych w grafice 3D. Tym razem do akcji wkracza darmowy silnik renderujący o nazwie LuxRender. LuxRender jedynie posiłkuje się kartą graficzną przy obliczeniach, bo w dużej mierze wykorzystuje jednostkę centralną (procesor).

Image
Image
Układ Średnie użycie GPU
Średnie użycie CPU
GT200 + Deneb (Phenom II X4) 47% 70%
GF100 (Fermi) + Deneb (Phenom II X4) 27% 74%
Cypress (58xx) + Deneb (Phenom II X4)
50% 71%

Zużycie mocy procesora stoi na niemal identycznym poziomie na wszystkich platformach, ale sytuacja jest zgoła odmienna jeśli chodzi o wykorzystanie mocy GPU. O ile karty GeForce GTX poprzedniej generacji i Radeony HD 5xxx są wykorzystywane w około 50%, to karty Fermi jedynie w około 30%. Pamiętajmy jednak, że są to dopiero początki wdrażania technologii GPGPU do sfery grafiki 3D.

Image

Na koniec zostawiliśmy jeden z pierwszych testów OpenCL. Jego autor początkowo stworzył go na własne potrzeby, by przekonać się ile razy jego Radeon jest szybszy od procesora. Z tego testu z kolei wynika, że topowe konstrukcje obu producentów mogą mieć bardzo zbliżoną wydajność w OpenCL. Wszystko zależy od konstrukcji programu.

Wyniki testów OpenCL są bardzo różnorodne i nie zawsze można uznać je za całkowicie wiarygodne. W całkiem sporej części przypadków korzystanie z benchmarków zaczyna przypominać wróżenie ze szklanej kuli.  Powód tego jest oczywisty – część testów została zaprojektowana tak, że lepiej się sprawdza na architekturze kart NVIDII, inne zaś na architekturze ATI. Pomimo nadziei związanych z OpenCL, rozwój tej technologii może zająć lata. Zdecydowaną przewagę ma w tym momencie CUDA – tę technologię wykłada się już z powodzeniem na Uniwersytetach, także w Polsce.

Image

GeForce czy Radeon? GF100 (Fermi) to niezwykle zaawansowany układ, który będzie się znakomicie sprawdzać w obliczeniach GPGPU. Konstrukcja ATI nie jest może aż tak skomplikowana, ale widać, że w takich zastosowaniach również radzi sobie świetnie, a nie zapominajmy, że wkrótce czeka nas premiera kart serii HD 6xxx – wątpliwe by firma ATI/AMD zaniedbała kwestię GPGPU.

Z dobrze poinformowanych źródeł wiemy, że ATI/AMD przymierza się do rychłej premiery kolejnej wersji ATI Stream SDK z ulepszoną obsługą OpenCL. W tym przypadku również można oczekiwać wzrostu wydajności w obliczeniach. Kiedy tylko uda nam się uzyskać na ich temat nieco więcej informacji, nie omieszkamy was o tym poinformować.

OpenCL wydaje się przyszłościowym rozwiązaniem, ale twórców oprogramowania czeka jeszcze wiele problemów do rozwiązania – choćby z optymalizacją programów OpenCL równocześnie dla rozwiązań sprzętowych różnych producentów, co naprawdę nie jest prostą kwestią do rozwikłania. Z drugiej strony aplikacja OpenCL działająca z różną wydajnością na różnych konstrukcjach i tak jest rozwiązaniem o niebo lepszym niż technologia działająca tylko na sprzęcie jednego producenta.

Wyniki testów OpenCL należy potraktować wstępnie – nie dają one na razie ostatecznej odpowiedzi, które z rozwiązań sprzętowych będzie się lepiej sprawować w takich zastosowaniach i ze względu na specyfikę OpenCL taka odpowiedź w ogole może nie być możliwa. Firma Khronos ogłosiła już powstanie specyfikacji OpenCL w wersji 1.1, NVIDIA i ATI wciąż dopracowują sterowniki w wersji 1.0, oferując kolejne rozszerzenia i funkcje – tu wciąż jest mnóstwo miejsca na rozwój i ulepszanie, a na to potrzeba czasu.

Image
Wybrane dla Ciebie
ZACZEKAJ! ZOBACZ, CO TERAZ JEST NA TOPIE