Co to za cuda?

"Technologia NVIDIA CUDA™ to jedyne na świecie środowisko języka C, które pozwala programistom i twórcom oprogramowania na tworzenie aplikacji do rozwiązywania najbardziej złożonych obliczeniowo zadań w krótkim czasie poprzez wykorzystanie mocy przetwarzania równoległego wielu rdzeni procesora graficznego. Dzięki milionom już będących w użyciu procesorów graficznych z obsługą CUDA, tysiące programistów już wykorzystuje dostępne bezpłatnie narzędzia developerskie CUDA do przyspieszania działania aplikacji w wielu dziedzinach – od kodowania wideo i audio aż po poszukiwania ropy i gazu, projektowanie przemysłowe, obrazowanie medyczne i badania naukowe." 1

Strona domowa projektu.

Dokumentacja

Notatki na temat technologii CUDA

Instalacja

Pod tym adresem można pobrać odpowiednie pakiety.

Należy pobrać:

  • sterowniki obsługujące CUDA
  • CUDA Toolkit
  • CUDA SDK

Interesujący jest też plugin do Matlaba.
Dokładne informacje na temat zawartości pakietów można znaleźć pod tym adresem.

Linux

Poradnik powstał na podstawie informacji autorstwa CURRAN

Pakiety dla Ubuntu są w postaci skryptów (*.run). Pakiety dla 64b systemu Ubuntu 7.10 (w dniu pisania) to :

  • NVIDIA-Linux-x86_64-177.13-pkg2.run
  • NVIDIA_CUDA_Toolkit_2.0beta2_Ubuntu7.10_x86_64.run
  • NVIDIA_CUDA_sdk_2.0beta2_linux.run

Uwaga na wersję językową! Pliki ściągane z polskiej strony są zazwyczaj starsze niż dostępne na serwerze angielskojęzycznym (np. USA).

Instalacja sterowników

Jest to niestety najtrudniejsza czynność do wykonania, ponieważ skrypt musi być zainstalowany przy wyłączonych X'ach. Skrypt zmienia jądro systemu oraz pliki konfiguracyjne - z moich doświadczeń wynika, że system raczej nie wstaje. Kilkakrotnie próbowałem to zrobić, zawsze były jakieś problemy...

Istnieje jednak proste i pewne rozwiązanie!
Program EnvyNG umożliwiający automatyczną instalację sterowników zarówno dla kart nVidii jak i ATI.
Niezbędne pakiety to:

  • envyng-core oraz jedną z nakładek graficznych:
  • envyng-gtk - w przypadku używania Ubuntu i Gnom'a
  • envyng-qt - w przypadku używania Kbuntu i KDE

Instalacja CUDA Toolkit

Następujące komendy:

chmod +x NVIDIA_CUDA_Toolkit_2.0beta2_Ubuntu7.10_x86_64.run
sudo ./NVIDIA_CUDA_Toolkit_2.0beta2_Ubuntu7.10_x86_64.run auto

zmieniają uprawnienia a następnie uruchamiają instalację.

Zgodnie z zaleceniami, modyfikujemy ścieżki tak jak pokazuje CURRAN:

echo "# CUDA stuff
PATH=\$PATH:/usr/local/cuda/bin
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib
export PATH
export LD_LIBRARY_PATH"
>> ~/.bashrc

Wpisujemy zmienne przez restart konsoli i gotowe!

Instalacja CUDA SDK

Podobnie wygląda instalacja SDK - nadajemy uprawnienia do wykonania i uruchamiamy:

chmod +x ./NVIDIA_CUDA_sdk_2.0beta2_linux.run
sudo ./NVIDIA_CUDA_sdk_2.0beta2_linux.run auto

Podczas instalacji potwierdzamy domyślne ścieżki.

Kompilacja

Po zakończeniu instalacji w katalogu domowym powinien znajdować się katalog ~/NVIDIA_CUDA_SDK. Wywołanie make powinno skompilować SDK. Niestety w środowisku 64b niezbędna jest obecnie następująca modyfikacja:

./NVIDIA-Linux-x86_64-177.13-pkg2.run --extract-only
sudo mv NVIDIA-Linux-x86-169.12-pkg1/usr/lib/libcuda.so.169.12 /usr/lib/libcuda.so

Niestety, nadal nie udało mi się rozwiązać problemu w 64b systemie UBUNTU 8.04 :( Dostępne pakiety są z wersji 7.10, w dodatku beta. Trzeba poczekać na stabilną wersję!

Windows

Pobrane pakiety są w postaci instalatorów - wystarczy je uruchomić i postępować zgodnie ze wskazówkami. Poprawność instalacji sprawdzamy uruchamiając przykładowe programy, znajdujące się w katalogu CUDA SDK.

Visual Studio 2008 nie jest kompatybilne z technologią CUDA, należy zainstalować wersję 2005 (Microsoft Visual Studio 8) z wszystkimi dostępnymi aktualizacjami.

Przykładowe zastosowania

...

  1. #include stdio.h
  2.  
  3. main (void)
  4. {
  5.   int i=0;
  6.   cout << "Test parsera kodu  " << endl;
  7. }

Odwołania

Przypisy

1 http://www.nvidia.pl/object/cuda_what_is_pl.html

HomePage

Dydaktyka

Materiały do pobrania

Praca naukowa

Programowanie

Projekty

Lista stron


edit

Page last modified on 11.06.2011, 01:56 - Powered by PmWiki

|