Zaloguj

Zarejestruj się

Zaloguj przez Facebook

Wiadomości24 > Cywilizacja > Komputery > Zastosowanie procesorów graficznych w medycynie

Pozycja materiału w rankingach:

22408 miejsce

Dział: Komputery

Ocena: 3pkt

Oceń:

Zastosowanie procesorów graficznych w medycynie


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ą

Oto jak wygląda superkomputer FASTRA. / Fot. ASTRA (http://fastra.ua.ac.be/)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.

Karta graficzna, kojarzona dotychczas z elektroniczną rozrywką, zyskuje uznanie w świecie obliczeń komputerowych. Zastosowanie tego komponentu w obliczeniach wydawało się jedynie kwestią czasu. Wystarczy przywołać liczby. Najmocniejszy z procesorów dostępnych obecnie na rynku dla zwykłych użytkowników posiada cztery rdzenie, co oznacza, że może przetwarzać równolegle taką liczbę zadań. Z kolei karta graficzna posiada nawet ponad 216 rdzeni, a w przypadku nadchodzącego procesora NVIDIA GT300 nawet 512. Oznacza to, że jest w stanie przetwarzać jednocześnie aż 125 razy więcej zadań niż procesor.

Pierwszą firmą, która dostrzegła możliwości kart graficznych była NVIDIA. Tworząc całkowicie nową architekturę NVIDIA CUDA, pozwoliła na pisanie programów wykorzystujących moc procesorów graficznych. Technologia ta została wyjątkowo ciepło przyjęta przez branżę, co zaowocowało powstaniem wielu ambitnych projektów naukowych. ATI, konkurent NVIDIA, widząc sukcesy przeciwnika też postanowiło rozszerzyć funkcjonalność swoich produktów poprzez wprowadzenie technologii Stream. Jednak było już zbyt późno. Obecnie technologia NVIDIA CUDA jest stosowana przez największe zespoły badawcze na całym świecie. Rezultatem jest nawet dwudziestokrotne przyspieszenie badań.

FASTRA – belgijski superkomputer

Jednym z najciekawszych przykładów zastosowania kart graficznych w nauce jest belgijski superkomputer FASTRA. W codziennej pracy, związanej z tomografią komputerową, badacze z grupy ASTRA z uniwersytetów w Antwerpii, zajmują się rekonstrukcją modeli trójwymiarowych w wysokiej rozdzielczości. Stworzenie pojedynczego obrazu zajmuje normalnym komputerom nawet tydzień. Oznacza to, że uzyskanie wyników w rozsądnym czasie wymaga zastosowania setek komputerów. Dlatego powstała FASTRA – komputer, który pozwala na rekonstrukcję modelu w kilka godzin.
Jednym z przykładów zastosowana procesora obliczeniowego NVIDIA Tesla jest superkomputer Cray CX1 skonstruowany przez firmę, która tworzyła historię superkomputerów. / Fot. Cray Inc. (http://www.cray.com/Products/CX1.aspx) Obraz wykonany przy pomocy soczewki aparatu fotograficznego w oparciu o algorytmy opracowane przez zespół badawczy Hansa van Haterena. / Fot. Hans van Hansa van Haterena z uniwersytetu Groningen  (http://hlab.phys.rug.nl/imlib/c4001_4212/index.html)
Pozycja autora w rankingach:

Komentarze: 5

Sortuj komentarze:

Szymon Piszczek 13.06.2009 17:14

Ocena: Ocena pozytywna 63 Ocena negatywna 73

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ą.

Komentarz został ukrytyrozwiń

Autor usunął profil 02.05.2009 23:22

Ocena: Ocena pozytywna 81 Ocena negatywna 71

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.

Komentarz został ukrytyrozwiń

Artur Bochenko 25.04.2009 22:43

Ocena: Ocena pozytywna 66 Ocena negatywna 64

Dodam ze to nie porównanie ,tylko przedstawienie nowych możliwości procesorów graficznych dzięki zastosowaniu technologii CUDA.

Komentarz został ukrytyrozwiń

Artur Bochenko 25.04.2009 14:18

Ocena: Ocena pozytywna 77 Ocena negatywna 70

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.

Komentarz został ukrytyrozwiń

Autor usunął profil 25.04.2009 13:08

Ocena: Ocena pozytywna 76 Ocena negatywna 63

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.

Komentarz został ukrytyrozwiń

odśwież

Maksymalnie 4000 znaków. (możesz jeszcze wpisać: 4000)

Reklama

Najpopularniejsze

Reklama
Copyright 2012 Wiadomosci24.pl
Realizacja serwisu: Gratka Technologie Sp. z o.o.