raport: obliczenia z wykorzystaniem GPU
Data: 17 luty 2009
Identyfikator: 090338
Zapowiedzi wykorzystania mocy kart graficznych do działań typowych dla procesora przestają być już
tylko wirtualne. Pojawiło się już wiele programów, które są zdolne wykorzystać moc GPU do obliczeń. Sprawdziliśmy, jakie korzyści z najszybszych kart może odnieść niemal każdy użytkownik komputera.
Strona 1 z 2
|
Możliwości układu G80
|
|
Podstawą architektury układu Nvidii G80 jest 8 jednostek cieniowania, każda udostępnia 16 jednostek obliczeniowych SP – w sumie liczba tych procesorów wynosi 128. Najciekawszą ich cechą jest to, że są to 32-bitowe skalarne jednostki zmiennoprzecinkowe, a nie – jak dotychczas – jednostki wektorowe, które zaprojektowano głównie do pracy z wektorami wykorzystywanymi do tworzenia grafiki. Procesory SP pracują z bardzo wysokim zegarem 1,35 GHz. Dzięki temu potencjał procesora graficznego jest lepiej wykorzystywany, jednostki wektorowe starszego typu często nie były w pełni obciążane (w przypadku pracy na pojedynczej zmiennej skalarnej 3/4 mocy jednostki wektorowej jest nieużywane). Zmiennoprzecinkowe jednostki SP zapewniają tym samym bardziej optymalne zagospodarowanie dostępnej mocy.
|
O początkach rozwiązań GPGPU (General Purpose GPU), czyli wykorzystywanie układów graficznych do innych obliczeń niż proces renderowania trójwymiarowych scen, napisaliśmy w numerze 3/2007 (nextmag.pl/a/070301). Tamte urządzenia przeznaczone były jednak na rynek profesjonalny. Sytuacja zmieniła się wraz z pojawieniem się architektury G80 Nvidii (GeForce 8800 GTX i pochodne). Te układy przeznaczone do komputerów domowych, okazały się na tyle potężne, że zaczęto pracować nad aplikacjami wykorzystującymi ich możliwości.
Cuda na… grafice
AMD i Nvidia obiecują olbrzymi przyrost wydajności pecetów po wykorzystaniu do pracy GPU. Na razie realne kształty przybrała jednak tylko CUDA (Compute Unified Device Architecture). To równoległa architektura obliczeniowa opracowana przez firmę Nvidia. Można ją traktować jako osobny silnik wbudowany w układy graficzne serii GeForce 8 i 9, który jest dostępny dla programistów przez odpowiednie środowisko wykorzystujące język C. CUDA obsługuje wszystkie popularne interfejsy, w tym OpenCL i DirectX 11, a dzięki odpowiednim bibliotekom również Java i Phyton.
Dzięki CUDA zgodne z nią układy graficzne są otwartą architekturą, podobnie jak CPU. W przeciwieństwie jednak do procesorów, GPU mają równoległą architekturę wielowątkową (najnowsze układy Nvidii mają nawet 240 jednostek obliczeniowych), co w przypadku odpowiednio przygotowanej aplikacji powoduje nawet kilkudziesięciokrotny wzrost wydajności w stosunku do najszybszych procesorów czterordzeniowych. Efektem jest przyspieszenie pracy programów wykorzystujących tę architekturę.
|
Dla programistów
|
|
Jeżeli zamierzasz sam napisać program wykorzystujący układ graficzny, to niezbędne okaże się pobranie kilku plików ze strony Nvidii. Są to w kolejności: sterownik CUDA, zestaw narzędzi CUDA
i – opcjonalnie – zestaw przykładów. Narzędzia przeznaczone są do wszystkich popularnych systemów operacyjnych (Windows, Linux, MacOS) zarówno w wersjach 32-, jak i 64-bitowych. W celu ich pobrania przejdź na stronę: www.nvidia.com/object/cuda_get.html i wybierz swój system operacyjny. Na dole strony pojawi się lista wersji (najnowsza to 2.1 beta) oraz trzy pliki do pobrania.
|
Zastosowania profesjonalne
CUDA najpowszechniej przyjęła się w zastosowaniach profesjonalnych, gdzie wielordzeniowa architektura znacząco zwiększa szybkość obliczeń. Berkeley’s Open Infrastructure for Network Computing, jedna z wiodących platform obliczeń rozproszonych, korzysta z mocy układów Nvidii do przyspieszenia tempa odkryć naukowych dzięki takim projektom, jak GPUGRID czy Einstein@home.
Innym projektem, który docenił zalety technologii Nvidii, jest SETI@home. Nvidia we współpracy z zespołem naukowców przygotowała specjalną wersję aplikacji, która obsługuje układy GeForce. Dzięki temu, że każdy może zainstalować taki program na swoim komputerze, projekt obejmuje już 200 tys. aktywnych użytkowników, których karty są wykorzystywane do wyszukiwania śladów pozaziemskiej inteligencji za pomocą radioteleskopów wykrywających sygnały radiowe z kosmosu. Wydajność GeForce GTX 280 w SETI@home jest ponad dwa razy większa niż w przypadku Core i7 965 3,2 GHz) oraz prawie 8 razy większa niż dla Core 2 Duo E8200 2,66 GHz.
Karty graficzne mogą też być wykorzystywane w programach symulujących śledzenie promieni światła (Ray-tracing), zachowania się płynów, kryptografii i złożonych obliczeń wizualizacyjno-matematycznych.
Zastosowania domowe
W przypadku zastosowań domowych zaletami CUDA jest możliwość kodowania wideo i wykonywania obliczeń fizyki w grach (PhysX). Do tego ostatniego celu wystarczy zgodna karta graficzna i najnowsze sterowniki. Obsługa akceleracji fizyki jest w nich domyślnie włączona.
Akceleracja procesu kodowania filmów jest możliwa dzięki aplikacji Badaboom. To łatwy w użyciu, szybki konwerter multimediów do urządzeń przenośnych. Program można pobrać bezpośrednio ze strony www.nvidia.com. Wersja darmowa ma czasowo ograniczone działanie.
Ocena: 



(aby ocenić, musisz się zalogować w serwisie)
Podobne artykuły: