Zgłoś błąd

X

Zanim wyślesz zgłoszenie, upewnij się że przyczyną problemów nie jest dodatek blokujący reklamy.

Typ zgłoszenia
Treść zgłoszenia
Twój email (opcjonalnie)
Nie wypełniaj tego pola
 
.
Załóż konto
EnglishDeutschРусскийFrançaisEspañol中国

Jakie korzyści daje akceleracja GPU? Test w kilku programach

polsal | 09-01-2015 17:38 |

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.

7
Zgłoś błąd
Liczba komentarzy: 60

Komentarze:

x Wydawca serwisu PurePC.pl informuje, że na swoich stronach www stosuje pliki cookies (tzw. ciasteczka). Kliknij zgadzam się, aby ta informacja nie pojawiała się więcej. Kliknij polityka cookies, aby dowiedzieć się więcej, w tym jak zarządzać plikami cookies za pośrednictwem swojej przeglądarki.