Jakie korzyści daje akceleracja GPU? Test w kilku programach
- SPIS TREŚCI -
- 0 - Karty graficzne służą nie tylko do grania
- 1 - Platforma testowa i sterowniki
- 2 - Luxmark 2.0 - Benchmark
- 3 - WebGL - Benchmark
- 4 - Blender 2.73 - Renderowanie sceny
- 5 - Sony Vegas 13 - Renderowanie materiału video
- 6 - Adobe Photoshop CS6 - Obróbka zdjęcia
- 7 - Adobe Photoshop CC - Obróbka zdjęcia
- 8 - HandBrake 0.10 - Konwersja pliku video
- 9 - WinZip 19 - Kompresja archiwum
- 10 - Podsumowanie - Akceleracja w praktyce
W ciągu ostatnich kilku lat karty graficzne wyewoluowały z wyspecjalizowanych urządzeń do wyświetlania obrazu, stając się czymś na kształt wieloprocesorowej jednostki obliczeniowej. Zazwyczaj liczą oczywiście każdy cenny FPS w naszych ukochanych grach, ale już dawno okazało się, że sprawny programista przy pomocy odpowiedniego zestawu interfejsów jest w stanie przerzucić część zadań na kartę graficzną, odciążając w ten sposób procesor. Jeżeli jeszcze te obliczenia można wykonać równolegle, to nagle okazuje się, iż GPU wykonuje konkretne polecenia szybciej niż CPU. Wystarczy spojrzeć na listę TOP500 najwydajniejszych superkomputerów na świecie, gdzie drugie miejsce zajmuje TITAN-Cray XK7, który nie przypadkowo został rozbudowany o 18 688 kart NVIDIA Tesla K20X. No dobrze, ale przeciętny użytkownik raczej nie przeprowadza symulacji pogodowych albo nie bada zachowania cząsteczek za pomocą dynamiki molekularnej w skalach od atomowej do relatywistycznej, w celu głębszego zrozumienia zachowań półprzewodników. Co więc możemy zyskać?
Autor: Maciej Wawrzynowski
Standardowy zestaw interfejsów programistycznych do kart graficznych to znany wszystkim DirectX firmy Microsoft. Z racji tego, że jest to standard ściśle związany ze środowiskiem Windows, powstał otwarty zestaw OpenGL (Open Graphics Library), który działa również z systemami Mac OS X i Linux. Dokładniej rzecz ujmując jest on odpowiednikiem Direct3D w pakiecie DirectX. Nas najbardziej będą jednak interesowały dwa inne interfejsy - CUDA (Compute Unified Device Architecture) i OpenCL (Open Computing Language). Pierwszy z nich pozwala zaprogramować obliczenia na kartach graficznych firmy NVIDIA, drugi na dowolnych z procesorem włącznie. Sama akceleracja GPU w programach użytkowym nie jest niczym nowym, ale dotąd była raczej ciekawostką, niż faktycznym skróceniem czasu operacji.
Innym elementem o którym warto wspomnieć jest akceleracja GPU w przeglądarkach internetowych. Dzięki WebGL, opierającym się na OpenGL ES (wersji OpenGL przygotowanej dla urządzeń mobilnych) przeglądarki internetowe mogą wyświetlać grafikę 3D. Wymagane jest włączenie akceleracji sprzętowej w ustawieniach aplikacji i wówczas możemy cieszyć się grafiką 3D. W tym wypadku mówimy o wygenerowaniu obrazu, więc strony internetowe oparte o WebGL w ogóle się nie uruchomią jeżeli wyłączymy wspomaganie GPU w przeglądarce. Poza najszybciej nasuwającym się wykorzystaniem WebGL w grach, w internecie można znaleźć wiele ciekawych projektów, choćby takich jak ZygoteBody. Jest to strona internetowa gdzie mamy pełny, szczegółowy, trójwymiarowy model ludzkiego ciała. Jedną z ciekawszych gier które znaleźliśmy był Quake 4 Multiplayer demo.
Założeniem testu było sprawdzenie akceleracji GPU w programach, które ją wspierają, a jednocześnie należą do grupy używanych przez szersze grono ludzi, niż specjaliści pracujący na oprogramowaniu za kilkanaście czy kilkadziesiąt tysięcy dolarów. Jak się okazuje liczba programów wspierających OpenCL w ciągu kilku ostatnich lat stale rośnie - pytanie jak to się przekłada na rzeczywistą wydajność i bezproblemowość? Najwięcej o OpenCL i CUDA możemy poczytać w zakresie wspomagania obróbki grafiki czy filmów. Przed programistami stoją niejako dwa zadania. Po pierwsze: trzeba przepisać kod w taki sposób by operacje były wykonywane równolegle, co przełoży się na rzeczywiste przyspieszenie przetwarzania. Po drugie: efekt końcowy musi być identyczny jak w przypadku normalnego przeliczania przez CPU. Jak się okazuje nie jest to zadanie łatwe - problemy występują zarówno z pierwszym i drugim zadaniem. Sprawdźmy więc jak im poszło w testowanych przez nas programach.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- …
- następna ›
- ostatnia »
- SPIS TREŚCI -
- 0 - Karty graficzne służą nie tylko do grania
- 1 - Platforma testowa i sterowniki
- 2 - Luxmark 2.0 - Benchmark
- 3 - WebGL - Benchmark
- 4 - Blender 2.73 - Renderowanie sceny
- 5 - Sony Vegas 13 - Renderowanie materiału video
- 6 - Adobe Photoshop CS6 - Obróbka zdjęcia
- 7 - Adobe Photoshop CC - Obróbka zdjęcia
- 8 - HandBrake 0.10 - Konwersja pliku video
- 9 - WinZip 19 - Kompresja archiwum
- 10 - Podsumowanie - Akceleracja w praktyce