captcha image

A password will be e-mailed to you.

Nasz świat w wielu miejscach składa się z mnóstwa podobnych elementów. Materia to pojedyncze atomy. Nasze ciała to podobne do siebie komórki. Galaktyki to zbiorowiska gwiazd. Naukowcy zauważyli, że badania nad takimi strukturami można niesamowicie przyspieszyć korzystając rozwiązań, które zostały zaprojektowane dla graczy. Ja, dzięki partnerowi tego wpisu, firmie HP, i ich komputerowi Victus by HP z kartą NVIDIA GeForce RTX 3060 włączyłem się w badania nad COVID-19.

Evan Schneider, astrofizyk z Princeton University w New Jersey, zajmuje się tworzeniem komputerowych modeli całych galaktyk. Złożoność obliczeń dla takiej symulacji jest ogromna, bo równolegle trzeba śledzić zachowanie i oddziaływanie milionów obiektów. Dlatego od kilku lat pracuje wykorzystując procesory graficzne, które doskonale się do takich zadań nadają.

Tysiące obliczeń równocześnie

Wyświetlanie obrazu to mozolna praca. Typowy monitor ma rozdzielczość 1920 na 1080 pikseli, a więc wyświetla jednocześnie 2 073 600 punktów. Ale przecież nie robi tego statycznie – w grach takich jak Minecraft czy Dying Light 2 co sekundę tworzonych jest 60, 90 czy nawet ponad 100 pełnoekranowych obrazów. Co prawda wspomagane jest to m.in. systemem DLSS (tu o nim pisałem znacznie więcej), ale wciąż to ogrom obliczeń. I to, co ważne, obliczeń podobnych do siebie, bo obraz składa się z mnóstwa takich samych punktów, dla których trzeba określić kolor i jasność.

Tymczasem główne procesory komputera potrafią wykonywać niezwykle szybko bardzo złożone obliczenia, ale muszą je ustawiać w kolejce. Od wielu już lat takie procesory mają kilka rdzeni – na przykład AMD Ryzen 7 5800H w komputerze Victus by HP, na którym piszę te słowa, ma ich 8. To dużo, bo możemy prowadzić 8 złożonych obliczeń równolegle i w mnóstwie zastosowań takie rozwiązanie sprawdza się doskonale. Jednak w przypadku zawansowanej grafiki procesor „zatyka się”, gdy musi prowadzić mnóstwo stosunkowo prostych, ale praktycznie jednoczesnych, obliczeń.

No i tu właśnie wkraczają karty graficzne. Na moim laptopie działa sobie karta NVIDIA GeForce RTX 3060, której procesor graficzny ma nie 8, nie 16 czy 32, ale aż 3584 rdzenie. Nie specjalizują się one w bardzo złożonych obliczeniach, ale za to tych prostszych mogą jednocześnie wykonywać całe mnóstwo.

Galaktyka bardziej dokładna

Wracamy więc do modelu galaktyki. W tekście w czasopiśmie Nature astrofizyk Evan Schneider mówi o tym, jak zdecydował się przenieść obliczenia swojego modelu z głównego procesora na procesor karty graficznej. Przez analogię – tak, jak obraz na ekranie składa się z milionów punktów, tak galaktykę można podzielić na miliony fragmentów i prowadzić równolegle obliczenia dla każdego z nich. Tylko czy to zadziała?

Działa! I to znakomicie. Schneider mówi, że uruchomienie jego programu na procesorach graficznych pozwoliło na prowadzenie symulacji z 10-krotnie większą szczegółowością. A to sprawiło, że wiele elementów modelu zaczęło dawać inne wyniki. Zmienił się na przykład sposób zachowania gazu znajdującego się na obrzeżach galaktyki.

Praktycznie wszędzie tam, gdzie można rozbić obliczenia na wiele równoległych, mniej skomplikowanych wątków zastosowanie procesorów graficznych może poprawić wydajność. Tak dzieje się na przykład w obliczeniach dotyczących przepływu cieczy – a więc w tunelach aerodynamicznych czy modelach atmosferycznych. Ta metoda sprawdza się świetnie, gdy musimy odtwarzać zachowanie atomów, bo dla każdego z nich obliczenia się bardzo podobne.

Kawałek do kawałka

Znajduje też zastosowanie przy diagnostyce nowotworów i projektowaniu leków do ich zwalczania. Diagnostyce – w tworzeniu przestrzennych obrazów na podstawie danych uzyskanych z rezonansu magnetycznego czy tomografii komputerowej. W zwalczeniu, bo tam mamy do czynienia z ogromnym zbiorem komórek, które – po odpowiednim uproszczeniu – można sprowadzić do mnóstwa jednocześnie działających małych mechanizmów możliwych do „zaklęcia” w odpowiedni algorytm. Gdy uruchomimy taką symulację używając metody równoległych obliczeń, uzyskamy niezły model fragmentu organizmu, na którym testować można nowe terapie.

Do tworzenia tych algorytmów wykorzystuje się opracowaną przez firmę NVIDIA architekturę procesorów graficznych wdzięcznie nazwaną CUDA (Compute Unified Device Architecture), na którą programy pisze się w języku opartym na C++. To (wbrew pozorom) ważne, bo naukowcy chcący przenieść swoje obliczenia na wielordzeniowe procesory graficzne nie muszą uczyć się wszystkiego od nowa, tylko nieco rozbudować swoje umiejętności.

Dzięki dostępowi do tej architektury przyspieszenie sprzętowe wykorzystuje mnóstwo programów dobrze znanych studentom kierunków STEM (science, technology, engineering, mathematics) czy specjalistom z tych branż. Autodesk, Blender, Matlab, Enscape czy Tensorflow działają znacznie szybciej tam, gdzie mają wsparcie porządnej karty graficznej. I nie mówimy tu o superdrogich urządzeniach z linii Tesla, a o tych samych kartach RTX, jakie pozwalają osiągać niesamowite efekty w Cyberpunku 2077 czy Red Dead Redemption 2.

Jak walczyłem z covidem

Rozwiązania oparte o takie równoległe obliczenia wykorzystano m.in. do badań nad COVID-19. Skorzystano m.in. z systemu Folding@home. To projekt, w który może włączyć się każdy. Wystarczy pobrać program, który będzie działał na naszym komputerze, gdy my akurat z niego nie korzystamy. Jego głównym celem jest analiza sposobu, w jaki układają się białka. To niezwykle złożone zagadnienie wymagające potężnej mocy obliczeniowej, do której dostęp byłby ogromnie kosztowny lub wręcz niemożliwy. Tymczasem ludzie, którzy włączają się w projekt Folding@home udostępniają m.in. moc swoich kart graficznych do utworzenia rozproszonego superkomputera o niespotykanej mocy obliczeniowej przekraczającej jeden eksaflops. Dość powiedzieć, że najpotężniejszy superkomputer świata ma ponad dwukrotnie mniejszą moc. Pozwoliło to na przykład przeprowadzić obliczenia dotyczące działania nowych, donosowych szczepionek przeciw COVID-19.

W tej chwili Folding@home wykorzystywał 89% mocy procesora graficznego NVIDIA RTX 3060. Fot Crazy nauka

Gdy dotarł do mnie nowy laptop Victus by HP jedną z pierwszych rzeczy, jakie zrobiłem było zainstalowanie na nim Folding@home. Gdy odszedłem na chwilę od komputera obliczenia ruszyły i mogłem docenić, jak pracuje cały system pod potężnym obciążeniem. Oczywiście można regulować to, do jakiej mocy obliczeniowej ma dostęp program i oczywiście ustawiłem wszystko na maksimum. Po chwili dwa solidne wentylatory na spodzie laptopa pracowały już na pełnych obrotach, a program OMEN Gaming Hub, który pozwala na monitorowanie systemu pokazywał, że procesor graficzny pracuje niemal na maksymalnych obrotach.

Kawałek superkomputera na biurku

Warto jeszcze wspomnieć, że współczesne superkomputery oparte są na tym samym pomyśle przetwarzania równoległego, który wykorzystują karty graficzne. A więc superkomputer to nie jedna, niesamowicie potężna maszyna z nie-wiadomo-jakim-procesorem, a ogromna farma mniejszych komputerów, które połączone są bardzo wydajnymi łączami i korzystają ze specjalnie zaprojektowanej pamięci. Czyli… zupełnie jak karta graficzna w moim laptopie. Nie jest zresztą przypadkiem, że drugi na liście najmocniejszych superkomputerów świata, Summit pracujący w amerykańskim Oak Ridge National Laboratory, opiera swoją architekturę o jednostki graficzne NVIDIA Tesla V100.

I dlatego taki niewielki komputer z oddzielną kartą graficzną to bardzo dobre rozwiązanie dla studentów czy naukowców, którzy w miarę potrzeby mogą przenosić swoje programy na „coś większego”. Program przygotowany do równoległego przetwarzania przez procesor graficzny po niewielkich przeróbkach będzie działał na serwerach na uczelni czy w pracy albo w wynajętej chmurze obliczeniowej. Dzięki przenośnemu urządzeniu takiemu jak Victus by HP mamy przy sobie kawałek superkomputera.

Ale taki laptop ma nad superkomputerem jedną istotną przewagę. Gdy skończymy nasze mozolne i Bardzo Ważne zadania służbowe, możemy po prostu odpalić jakąś fajną grę, która porządnie wykorzysta graficzne możliwości naszej karty i da odpocząć. Ja w każdym razie przełączam się zaraz na Dying Light 2. Zombie same się nie pokonają!

Tekst jest elementem współpracy z firmą HP. Partner nie miał wpływu na wyrażane przez nas opinie

Nie ma więcej wpisów