Oprogramowanie

nVidia CUDA

Karty GeForce wspierane przez technologię NVidia CUDA (serii 8, 9, 100 i 200 i z minimum 256 MB pamięci):

GeForce GTX 295, GTX 285, GTX 280, GTX 275, GTX 260, GTS 250, GTS 150, GT 130, GT 120, G100, 9800 GX2, 9800 GTX+, 9800 GTX, 9800 GT, 9600 GSO, 9600 GT, 9500 GT, 9400GT, 8800 Ultra, 8800 GTX, 8800 GTS, 8800 GT, 8800 GS, 8600 GTS, 8600 GT, 8500 GT, 8400 GS, 9400 mGPU, 9300 mGPU, 8300 mGPU, 8200 mGPU i 8100 mGPU

Karty Quadro wspierane przez technologię NVidia CUDA:

Quadro FX 5800, FX 5600, FX 4800, FX 4800 dla Maca, FX 4700 X2, FX 4600, FX 3800, FX 3700, FX 1800, FX 1700, FX 580, FX 570, FX 470, FX 380, FX 370, FX 370 Low Profile, CX, NVS 450, NVS 420, NVS 295, NVS 290, Plex 2100 D4, Plex 2200 D2, Plex 2100 S4 i Plex 1000 Model IV

Mobilny GeForce:

GeForce GTX 280M, GTX 260M, GTS 160M, GTS 150M, GT 130M, G110M, G105M, G102M, 9800M GTX, 9800M GT, 9800M GTS, 9800M GS, 9700M GTS, 9700M GT, 9650M GS, 9600M GT, 9600M GS, 9500M GS, 9500M G, 9300M GS, 9300M G, 9200M GS, 9100M G, 8800M GTS, 8700M GT, 8600M GT, 8600M GS, 8400M GT i 8400M GS

Mobilny Quadro:

Quadro FX 3700M, FX 3600M, FX 2700M, FX 1700M, FX 1600M, FX 770M, FX 570M, FX 370M, FX 360M, NVS 320M, NVS 160M, NVS 150M, NVS 140M, NVS 135M i NVS 130M

Z dobrodziejstw technologii NVidia CUDA potrafią także skorzystać systemy Tesla (S1070, C1060, C870, D870 i S870).

Wspierane systemy operacyjne:

  • Windows XP (32-bit/64-bit)
  • Windows Vista (32-bit/64-bit)
  • Mac OS X 10.5.2 lub nowszy
  • Linux (32/64-bit):
  • Redhat Enterprise Linux 3.x, 4.x i 5.x
  • SUSE Linux Enterprise Desktop 10
  • OpenSUSE 10.1, 10.2, 10.2 I 11
  • Fedora 7, 8 i 9
  • Ubuntu 7.04, 7.10 I 8.04

CUDA (Compute Unified Device Architecture),  jest środowiskiem języka C (podobnie zresztą jak ATI Stream), dzięki któremu możliwe jest stworzenie aplikacji które wykorzystują moc przetwarzania równoległego rdzeni procesora graficznego. Sterownik CUDA współpracuje zarówno z bibliotekami OpenGL jak i DirectX. Więcek szczegółów na temat technologii i jej wykorzystania można znaleźć na oficjalnej stronie NVidii w dziale CUDA ZONE.

Udostępniono już CUDA w wersji 2.2, której to zapewniono między innymi wsparcie dla Windows 7. Użytkownicy Linuxa mogą już korzystać z debuggera CUDA, z tym, że producent zaznacza, że został on przetestowany jedynie z 32-bitową wersją Red Hat Enterprise Linux w wersji 5.x. W najnowszej wersji znajdziemy także narzędzie Visual Profiler 2.2, które umożliwia profilowanie aplikacji w języku C uruchomionym na GPU. Wersja ta obsługuje pomiary przepustowości pamięci wewnątrz rdzenia układu, co pozwala na sprawdzenie wydajności obliczeń w środowisku CUDA.

Dodatkowo można liczyć na większą wydajność międzyoperacyjną przy wykorzystaniu OpenGL, pobieranie tekstur z nieciągłej pamięci liniowej, bezpośrednie pobieranie danych z pamięci systemowej, uwspólnienie dostępnego obszaru pamięci dla całego RAM oraz asynchroniczne operacje kopiowania pamięci w systemie Vista. Wśród innych poprawek wymienia się między innymi wsparcie dla Ubuntu 8.10, Fedory 10 i RHEL 5.3. Więcej informacji na temat zmian w wersji 2.2 można znaleźć na oficjalnym forum CUDA Zone.

Narzędzia deweloperskie NVidia CUDA są bezpłatne i można je pobrać ze strony firmy nVidia.

Warto wspomnieć, że znajdują się tam też dokumentacje dotyczące tworzenia wtyczek do Photoshopa oraz programu MATLAB wykorzystujących tą technologię.

Jak wspominałem we wstępie, NVidia zdążyła już rozpisać konkurs, który miał wyłonić najbardziej innowacyjnych twórców oprogramowania dla procesorów graficznych w Europie. Nagrodzono czterech programistów, z czego dwóch pochodzi z Polski.
Pierwsze miejsce w konkursie zajął Richard Membarth (Niemcy) za plug-in filtra do programu GIMP. Drugie zajął Jan Linxweiler (Niemcy) za symulację przepływu płynów. Trzecie i czwarte miejsce zgarnęli Polacy. Janusz Bedkowski za aplikację Robot Range Finder, która symuluje ruchy obiektów i reaguje na nie w czasie rzeczywistym, a Jacek Naruniec za program do identyfikacji twarzy na podstawie jej cech charakterystycznych (w oparciu o obraz z kamery internetowej), oraz jej  śledzenia.

Jak widać zastosowania CUDA są praktycznie nieograniczone i przyszłe wykorzystanie tej technologii może nas jeszcze nie raz zadziwić.