Karty graficzne
Artykuł
Mieszko Krzykowski, Sobota, 13 czerwca 2009, 17:47
Trudno jest znaleźć osobę, która interesowałaby się choć trochę sprzętem komputerowym i nie słyszała o CUDA. Dzięki wprowadzeniu programowalnych jednostek cieniowania stało się możliwe wykonywanie na układach graficznych znajdujących się w domowych PC bardzo skomplikowanych obliczeń mało związanych z renderowaniem wyglądu kostiumu głównego bohatera gry Crysis. Tak powstało CUDA – rozwiązanie NVIDI-i pozwalające na wykorzystanie mocy obliczeniowej drzemiącej w kartach graficznych firmy, mocno przez nią eksponowane od czasu wprowadzenia GeForce'a GTX 280. Mieliśmy okazję porozmawiać przez telefon z Alainem Ticquetem – przedstawicielem NVIDI-i odpowiedzialnym za program GPU Venture i wspieranie twórców oprogramowania zgodnego z CUDA.

Mieszko Krzykowski: Ostatnio można zauważyć, że NVIDIA bardzo chce, aby przestano patrzeć na karty graficzne jak na coś, co może tylko obsługiwać gry. Ostatnimi czasy karty NVIDI-i są oznaczane jako GeForce with CUDA. Dlaczego jest to dla NVIDI-i tak ważne?

Alain Ticquet: Dla NVIDI-i ważne jest to, że karty graficzne nie służą już tylko do rysowania obrazów na ekranie. GPU jest jednostką obliczeniową zdolną liczyć wiele rzeczy równolegle. Układy graficzne mogą być wykorzystywane również do rzeczy niezwiązanych bezpośrednio z tym, co jest wyświetlane na ekranie – można ich użyć w każdej aplikacji, w której jest potrzebna duża moc obliczeniowa, na przykład przy złożonych obliczeniach numerycznych. Można powiedzieć, że mamy tutaj dziesiątki czy setki procesorów 386 lub 486 zintegrowanych w jednym kawałku krzemu. GPU jest bardzo przydatne wszędzie tam, gdzie jest potrzebna wydajność obliczeniowa na wysokim poziomie. Dlatego też można go używać w matematyce, fizyce, chemii, inżynierii czy w obliczeniach związanych z symulacjami komputerowymi, analizami finansowymi, a nawet przy przetwarzaniu filmów wideo.  Czyli wszędzie tam, gdzie przetwarza się dużą ilość danych i gdzie można zrównoleglić obliczenia. Na przykład w kompresji obrazu GPU jest bardziej efektywne niż tradycyjny procesor, różnica wydajności może być nawet kilkusetkrotna.

Krótko mówiąc, jeśli masz kartę graficzną GeForce serii 8 lub nowszą, możesz ją wykorzystać nie tylko do zadań związanych z wyświetlaniem obrazu, ale także w innych obliczeniach. Oprogramowanie zgodne z CUDA może być tworzone zarówno na potrzeby High Performance Computing, kiedy to jest uruchamiane na specjalnym, przeznaczonym do tego sprzęcie, jak i na potrzeby normalnych domowych komputerów z kartą graficzną. Przykładem tego drugiego zastosowania jest program Elemental Badaboom, służący do wykonywania kompresji wideo za pomocą GPU. Przewaga w szybkości kompresji nad CPU jest znaczna. Innym przykładem jest firma Adobe i jej aplikacje do obróbki fotografii. Kiedy manipuluje się fotografią, to GPU jest w stanie znacznie szybciej niż CPU wykonać wszystkie obliczenia. To są nasze sposoby na przekonanie ludzi do tego, że to działa.

Mieszko Krzykowski: Wszystko to w praktyce oznacza, że CUDA nie umie robić wszystkiego.

Alain Ticquet: Oczywiście. Wszystkim zalecamy, aby sami sprawdzili, które z rozwiązań jest szybsze w ich przypadku. Zachęcamy, aby napisali najpierw kawałek kodu kompatybilnego z CUDA, w C albo w Fortranie, a następnie podobny kawałek kodu przeznaczonego do zwykłych procesorów i porównali oba rozwiązania w obliczeniach, które chcą wykonywać.

Mieszko Krzykowski: Jakie rodzaje aplikacji pozwalają nam zobaczyć, co daje i jak działa CUDA?

Alain Ticquet: W takim razie pomówmy chwilę o fizyce i o grach. Przez większość czasu na ekranie widzisz efekt obliczeń związanych z wyświetlaniem obrazu, jednak coraz częściej ważną rolę w grach odgrywa fizyka. I tutaj pojawia się PhysX. Do tej pory obliczenia fizyki były ograniczone do procesora. Teraz mogą być wykonywane na GPU. Dzięki temu fizyka może być bardziej złożona, szybciej obliczana i łatwiej ją stosować.

Dużo zyskują też aplikacje, w których potrzebna jest duża moc obliczeniowa i jednocześnie jest prowadzonych wiele obliczeń, przykładem chemia, fizyka i inne dziedziny, w których przeprowadza się symulacje. Niektóre złożone obliczenia związane z symulacjami chemicznymi mogą trwać 2, 3, 4 czy 5 dni, zanim uzyska się wynik i sprawdzi działanie algorytmów. Na przykład przeprowadziliśmy kiedyś benchmark: okazało się, że policzenie pewnego zadania, które zajmowało 4,5 dnia na CPU, na GPU zajęło 27 minut. Zadanie to polegało na liczeniu aproksymacji. Dzięki CUDA znacznie można skrócić czas wykonywania pewnych obliczeń i można to robić na każdym komputerze, który ma wewnątrz kartę GeForce, a na świecie jest teraz 100 mln komputerów z kartami zgodnymi z CUDA. Jest to bardzo przydatne w każdym centrum badawczym czy finansowym, w którym musisz po prostu robić wszystko jak najszybciej.

Mieszko Krzykowski: Rozumiem, że CUDA jest świetnym rozwiązaniem dla uniwersytetów, centrów badawczych czy miejsc, w których są przeprowadzane analizy finansowe – czyli takich, w jakich trzeba przetwarzać dużą ilość danych. Ale co CUDA daje zwykłym użytkownikom?

Alain Ticquet: Aplikacji nie jest może zbyt wiele, ale dopiero zaczynamy współpracę z twórcami. Mimo tego już widać, co CUDA może zaoferować użytkownikom. Na przykład konwersja filmu na format odpowiedni dla iPhone'a może zająć jeden – dwa dni. Przy użyciu CUDA można to zrobić w pół godziny albo w godzinę. Teraz coraz więcej ludzi chce oglądać filmy na swoich urządzeniach mobilnych. Już dwie firmy zainteresowały się używaniem CUDA w swoich aplikacjach związanych z konwersją wideo: jedna to Elemental, a druga to CyberLink. Dzięki temu do kompresowania filmów można używać swojej karty graficznej. Jest to pierwszy krok i już teraz jest to łatwe do zrobienia. Efekt jest bardzo widoczny, bo wystarczy wziąć Badaboom, zainstalować go na swoim komputerze – i zamiast pół godziny czekamy na skompresowanie filmu tylko kilka minut. Są to pierwsze aplikacje tego typu na rynku, jednak będzie ich na pewno więcej. Aplikacje te dają się uruchomić zarówno na GPU, jak i CPU, co pozwala samemu się przekonać, że gdy wykorzystywane jest GPU, obliczenia trwają tylko ułamek czasu, którego potrzebuje CPU.

Z GPU korzysta już Adobe, CyberLink, Elemental i PhysX. We wszystkich ich programach widać, jak dużo daje CUDA i że nie trzeba być programistą, aby korzystać z tej technologii – wystarczy, że użytkownik ma odpowiednie oprogramowanie, które używa jego GPU.

Mieszko Krzykowski: Powiedziałeś, że będzie coraz więcej aplikacji zgodnych z CUDA. Mógłbyś powiedzieć trochę o tym, jakie nowe aplikacje pojawią się w najbliższej przyszłości?

Alain Ticquet: Ostatnio CUDA cieszy się dużym zainteresowaniem światka medycznego, szczególnie w związku z tomografią.

Mieszko Krzykowski: Chodzi o projekty podobne do Fastry?

Alain Ticquet: Tak, był to pierwszy tego typu projekt, powstał już jakiś czas temu. Od tamtej pory wiele placówek medycznych związanych z tomografią zaczęło wykonywać niezbędne obliczenia na GPU. Jest to kolejne miejsce, w którym widać bardzo duże korzyści z używania CUDA i w którym powstają specjalne systemy do wykonywania obliczeń na GPU.

Ocena artykułu:
Ocen: 14
Zaloguj się, by móc oceniać
karols10 (2009.06.13, 18:11)
Ocena: 0

0%
znowu Nividia daje cios ATI... No a ja mam radeona xD
T0TEK (2009.06.13, 18:22)
Ocena: 0

0%
To mi wygląda na reklamę CUDA.
A tak całkiem na serio to do tej pory nie ma porządnego programu do konwertowania wideo (typu Total video converter), który korzystałby z mocy GPU. Szkoda że nikt nie myśli o tym, że grafika mogłaby pomagać procesorowi we wszystkich zadaniach. Zwykłego użytkownika cieszyłoby to najbardziej.
MIR4G3 (2009.06.13, 18:28)
Ocena: 0

0%
karols10 @ 2009.06.13 18:11  Post: 277086
znowu Nividia daje cios ATI... No a ja mam radeona xD


we cym ?

tez mi cos sponsoringiem zalecialo :S

'i mamy coś, co jest 10 razy szybsze niż cokolwiek innego na rynku...'

coz za skromnosc xD oni maja jakies specjalne kryteria przy wyborze pracownikow czy poprostu od tak sobie kazdy wywyzsza swoje ponad miare :E no tak nvidia = puste slowa :S
SwordOfUltimate (2009.06.13, 18:31)
Ocena: 0

0%
CUDA moze sie rozwinac w cos bardzo ciekawego albo to bedzie gwozdz do trumny nvidii, czego im nie zycze
wuzetkowiec (2009.06.13, 18:36)
Ocena: 0

0%
Typowe bicie piany.
Gobli (2009.06.13, 18:39)
Ocena: 0

0%
T0TEK @ 2009.06.13 18:22  Post: 277091
A tak całkiem na serio to do tej pory nie ma porządnego programu do konwertowania wideo
TMPGEnc?

MIR4G3 @ 2009.06.13 18:28  Post: 277093
...no tak nvidia = puste slowa :S
każdy zachwala swoje. nvidia, jak każdy inny producent sprzętu komputerowego, przedstawia swoje produkty w jak najlepszym świetle. to się nie nazywa 'puste słowa', a 'marketing'. jeśli by tego nie robili, kto by kupował ich produkt? odnosi się to tak samo do nvidii, jak i amd, intela, i każdego innego.
sideband (2009.06.13, 18:41)
Ocena: 0

0%
Cuda jak najbardziej nadaje do rozwiązań profesjonalnych , zwykły zjadasz chleba - gry , kompresja audio/wideo może sobie to odpuścić , ponieważ działa to słabiutko. TMPGEnc? Chyba żartujesz , cpu szybciej kompresuje niż grafa w tym programie buhe , jedynie obciążenie cpu spada ze względy na przejęcie części obliczeń przez grafe. Badaboom też słabiutko działa , wszystko opiera o wydajność cpu . Mając mocna karte i słaby procesor = wydajność marna , mocny cpu i słabiutka karta = wydajność bardzo dobra.
vteccorp (2009.06.13, 18:53)
Ocena: 0

0%
Qrde... właśnie oprócz sprawnej akceleracji w PS i kilku odtwarzaczach czy codec'ach (np. CoreCodec), brakuje właśnie fajnego i darmowego oprogramowania do encodowania materiału wideo! Przydałaby się chociaż jakaś poważna wtyczka do VirtualDub'a, która znacznie skróciłaby czas obróbki danej partii materiału... a tak, na razie czekamy... ;)
BadaBoom powinno być od początku udostępniane na licencji opensurce'owej. Teraz byłaby to pewnie, jedna z najlepszych i pewnie najszybsza aplikacja do kompresji wideo!
ch4os (2009.06.13, 19:42)
Ocena: 0

0%
AFAIK w Gdansku w kwietniu byly seminaria na temat programowania kart graficznych, prowadzil je jeden z doktorow z UG, oczywiscie bez dofinansowania nie ma szans na rozwoj tematu na 'naszych' uczelniach.
Andree (2009.06.13, 20:40)
Ocena: 0

0%
Ja nie konwertuję filmów, tylko oglądam w takim formacie, w jakim jest, bo nie mam ajfona (wystarcza mi komórka do dzwonienia).
Mogę sobie wyobrazić wiele zastosowań wielkiej mocy obliczeniowej CUDA i Larrabee przydatnego dla zwykłych ludzi: skuteczne rozpoznawanie mowy,
widzenie maszynowe w celu automatycznego nadzorowania (terenu, małego dziecka etc.) albo sterowania domowym robotem przez WiFi.
Zaloguj się, by móc komentować
Aktualności spokrewnione
Facebook
Ostatnio komentowane