Karty pełne mocy
-
- Paweł Brągoszewski,
- 01.06.2007
Możliwości kart graficznych nie ograniczają się do kreowania wyglądu gier komputerowych na monitorze. Ich wielka moc obliczeniowa może być użyta w innych zadaniach, chociaż do w pełni uniwersalnego wykorzystania procesorów graficznych jeszcze daleko.
Możliwości kart graficznych nie ograniczają się do kreowania wyglądu gier komputerowych na monitorze. Ich wielka moc obliczeniowa może być użyta w innych zadaniach, chociaż do w pełni uniwersalnego wykorzystania procesorów graficznych jeszcze daleko.

Procesory graficzne są wykorzystywane do obliczeń potrzebnych w symulacjach zjawisk fizycznych, np. badaniu przepływu cieczy czy gazu.
Karty graficzne świetnie sprawdzają się przy specyficznych obliczeniach: wymagających przetwarzania wielkiej ilości niezależnych od siebie danych, dających się wykonywać równolegle. Coraz częściej podejmowane są próby wykorzystania procesorów graficznych w badaniach naukowych, np. przy modelowaniu zjawisk fizycznych, obliczeniach przepływu cieczy, przetwarzaniu dźwięku, grafiki rastrowej (w tym zdjęć cyfrowych) i wideo. Naukowcy próbują wykorzystać moc kart graficznych także do symulacji zjawisk pogodowych, w mechanice kwantowej i kryptografii.

Pierwsze przykładowe programy wykorzystujące CUDA potrafią m.in. dokonywać skomplikowanej analizy zachowań giełd papierów wartościowych i symulować przepływ cieczy. Wszystko to z wykorzystaniem procesora graficznego.
CUDA na kiju
Firmy NVIDIA i AMD dostrzegły możliwości, jakie otwierają się przed procesorami graficznymi, które mogą być wykorzystane do czegoś więcej niż generowanie grafiki. Obydwie firmy przygotowują mocne uderzenie związane z wykorzystaniem GPU do uniwersalnych obliczeń. Jeszcze na rok 2007 zapowiadane są premiery kart linii G80GL i R600. Apetyt budzi zwłaszcza projekt R600 firmy AMD: karta wyposażona w 4 GB pamięci i stanowiąca alternatywny procesor do obliczeń zmiennopozycyjnych w stosunku do tradycyjnego CPU.
Pod koniec lutego bieżącego roku NVIDIA udostępniła pakiet programistyczny wraz z kompilatorem specjalnej wersji języka C, przeznaczony do tworzenia wysoko wydajnych aplikacji wykorzystujących GPU jako koprocesor. Pakiet ten jest częścią większego programu o wdzięcznej nazwie CUDA (Compute Unified Device Architecture). Narzędzia udostępnione przez NVIDIĘ mogą znacząco przyśpieszyć tworzenie aplikacji wykorzystujących procesor graficzny. Programiści, których projekty wymagają zaawansowanych obliczeń, będą mogli skorzystać ze specjalnych konstrukcji językowych, umożliwiających przekazanie części zadań karcie graficznej.
Nieco inną drogę wybrała firma AMD (która wchłonęła ATI), prezentując inicjatywę CTM (Close To Metal). Udostępniła specyfikację języka niskiego poziomu do swoich produktów. W ten sposób umożliwiła swobodny rozwój narzędzi programistycznych, bibliotek, kompilatorów wykorzystujących procesory graficzne AMD. Na rynek wydajnych procesorów graficznych ma wejść także Intel, być może jeszcze w 2007 roku. Wojna o najwyższą wydajność uniwersalnych procesorów przeniesie się na nowe pole, a użytkownicy mogą spodziewać się znaczących, jeśli nie rewolucyjnych zmian w sposobie korzystania z kart graficznych.
Nie tylko giganci

Sh to zestaw narzędzi programistycznych służących do efektywnego tworzenia aplikacji wykorzystujących moc procesora graficznego. Udostępniany jest na zasadach open source.
Podobnym do Brook projektem jest Sh (http://www.libsh.org ), rozszerzenie C++ wprowadzające konstrukcje językowe, pozwalające na wygodne użycie procesora graficznego. Sh to projekt darmowy i otwarty, udostępniany na licencji GNU GPL. Początkowo był rozwijany przez firmę RapidMind (http://www.rapidmind.net ), a od połowy 2006 roku został udostępniony społeczności Open Source.