Pozycja materiału w rankingach:
Procesory powoli tracą na znaczeniu przy obliczeniach w projektach naukowych. Z wielkim hukiem udział zabierają im karty graficzne, które już przyczyniły się do rozwoju wielu ambitnych projektów związanych z medycyną
Od samych początków komputeryzacji zawsze istniał problem braku odpowiedniej mocy obliczeniowej do rozwiązywania skomplikowanych zadań. Obecnie najpopularniejszą metodą wykonywania skomplikowanych obliczeń jest dzierżawienie przez zespoły badawcze klastrów, wyposażonych w setki procesorów. Niestety używanie tak skomplikowanych urządzeń jest bardzo kosztowne i nie każdy może sobie na to pozwolić. Wydaje się, że małe zespoły z ograniczonym budżetem nie mają szansy na dostęp do super maszyn lecz rozwiązanie można znaleźć prawie w każdym sklepie ze sprzętem komputerowym.Zobacz także:
Artykuły
(5)
Galerie
(0)
Średnia ocen
(4.75)
Wiek: 27 | Miejscowość: Wrocław | Kraj: Polska
Ostatnie artykuły autora:
Sortuj komentarze:
Szymon Piszczek 13.06.2009 17:14
CUDA rzeczywiście nie jest tak cudowna, jak może się wydać komuś po lektórze artykułu.
W niektórych dziedzinach zwiększa moc, w innych niebardzo.
Jeśli się nie mylę, to wszystkie przytoczone zastosowania opierają się na przetwarzaniu obrazów. Tu dorzuciłbym jeszcze symulatory do różnych szkoleń (bodaj we Francji pracują nad symulatorem kolonoskopii, jakiś czas temu słyszałem o symulatorze robota saperskiego). Są to zastosowania niedalekie od pierwotnych.
Nie jestem specjalistą, ale trochę słyszałem.
1. W kartach wszystkie, albo większość rdzeni liczą w pojedyńczej precyzji (zmienne float, a nie double). Oznacza to, że mamy do dyspozycji liczby mniej dokładne i z mniejszego zakresu niż na CPU, które często prowadzą obliczenia w dokładności większej niż double. W niektórych zastosowaniach to nie jest problem, w innych - dyskwalifikuje.
2. Programując na GPU mamy do dyspozycji kilka rodzajów pamięci o bardzo różnym czasie dostępu, co znacznie komplikuje sprawę. W problemach "memory bounded" (gdzie szybkość obliczeń jest ograniczona przez czas dostępu rdzenia do danych, a nie samych obliczeń) zarządzanie pamięcią robi się istotne i często nie pozwala zbliżyć się do teoretycznej wydajności kart.
3. Powyższe dwie różnice powodują, że porównywanie CPU i GPU jest trudne. Co więcej porównywanie różnych rozwiązań opartych na CPU też nie jest proste, np. dla problemów "memory bounded" wydajność zależy bardziej od rozwiązania komunikacji miedzy rdzeniami oraz rdzeni z pamięcią niż od mocy samych rdzeni. Słyszałem o przypadkach gdy słabo zoptymalizowany kod 70% czasu pracy poświęcał na komunikację.
4. Istotną wadą GPU, przynajmniej dla mnie, jest niemożność przeniesienia programu - trzeba go przepisać na nowo. To jest oczywiście kwestia czasu i popularności.
5. Porównywanie GPU do konsumenckich CPU jest nieco chybione: w prawdziwych klastrach obliczeniowych stosuje się chyba nieco inne procesory.
6. Klastry, których jest mowa w artykule nie są zbyt duże. W Warszawie jest conajmniej kilka jednostek mających po kilkaset procesorów (polecam opisy na kdm.icm.edu.pl). To jednak nie jest dużo. Prawdziwe superkomputery (tzw. "petaskala") to tysiące procesorów. Tu istotne robią się takie parametry jak pobór mocy (w MW/TFlop, czyli w megawatach na milion operacji zmiennoprzecinkowych). W tej konkurencji karty graficzne podobno przegrywają z kretesem.
Wydaje mi się, że GPU sa dobre i mają przyszłość głównie w zastosowaniach, w których potrzebujemy dużej, ale nie ekstremalnie dużej mocy, nie potrzebujemy super precyzji oraz i tak piszemy całe oprogramowanie od nowa, a chcemy mieć maszynę na własność. Ja widze dwie dziedziny:
*wszelkie symulatory i obróbka obrazów, gdzie producent pisze od zera oprogramowanie i sprzedaje je wraz ze sprzętem, np. medycznym
*pracownie projektowe - Teslę z czterema GeForce można sobie postawić pod biurkiem w miejscu kaloryfera (spokojnie zastąpi ;)
Jednak przy zapotrzebowaniu na naprawdę dużą moc obliczeniową trzeba się postarać o grant obliczeniowy w jakimś centrum.
Na koniec warto jeszcze wspomnieć o konkurencji GPU na rynku nazwijmy to "średniej mocy" jaką są procesory PlayStation (np. http://www.icm.edu.pl/kdm/Biuletyn_nr_28).
Ogólnie fajny artykuł, ale przydałby się drugi - kontr i o innych rozwiązaniach. Część tez do takowego jest powyżej. Oprócz tego warto by poczytać strony ICM (są tam ludzie zajmujący się klastrami obliczeniowymy, GPU, PlayStation). Jest kilka osób obeznanych z CUDA na MIM UW, coś w tej technologii robią bodaj w Poznaniu. W tym roku była konferencja "GPU in HPC", która traktowała głównie o CUDA.. W Instytycie Geofizyki UW jest kilka osób zorientowanych w obliczeniach na naprawdę dużych maszynach (w NCAR).
Nie moja działka, zwłaszcza w czasie sesji, ale jakby ktoś chciał napisać o tym - służę pomocą.
Autor usunął profil 02.05.2009 23:22
w ktorym miejscu "Panie kolego" wypisuje bzdury? ze takie porownywanie GPU do CPU nie ma sensu? A pan robi to w co najmniej kilku fragmentach tekstu (chocby juz w samym wstepie). Napisalem tylko o tym.
Nie ma Pan tez pojecia co wiem na temat technologi NVIDIA CUDA, bo nigdzie o niej nie pisalem. Wiec prosze mi tu nie wyjezdzac z tekstami o doczytywaniu.
Troche pokory zycze.
Artur Bochenko 25.04.2009 22:43
Dodam ze to nie porównanie ,tylko przedstawienie nowych możliwości procesorów graficznych dzięki zastosowaniu technologii CUDA.
Artur Bochenko 25.04.2009 14:18
tomi135 warto by było poczytać o technologi NVIDIA CUDA ,by dowiedzieć się co to jest. Żeby kolega doczytał to by wiedział ze sam bzdury wypisuje.
Autor usunął profil 25.04.2009 13:08
porownywanie GPU do CPU jest co najmniej pomylka, a pisanie ze 4 karty graficzne maja wieksza moc obliczeniowa niz 1000 CPU to juz grube naduzycie. Zanim sie napisze takie bzdury wartto by najpierw dowiedziec sie do czego sluza CPU a do czego GPU i jakie sa miedzy nimi zasadnicze roznice.
Pierwszy polski satelita PW-Sat leci w kosmos
(odsłon: +409)