Aktualności:

Nowy polski projekt BOINC - Universe@Home

Menu główne

Debian, sterowniki, CUDA Toolkit i emulator

Zaczęty przez TJM, 28 Sierpień 2009, 14:05

TJM

Wiem że szanse na uzyskanie odpowiedzi są małe, ale i tak spróbuję, może akurat zaoszczędzi mi to siwych włosów i godzin dłubania %)

Próbował ktoś z was instalować sterowniki NV na Debianie 4, tudzież sterowniki bez karty w trybie emulacji ?

Właśnie z tym walczę, próbuję skonstruować jakieś środowisko do kompilacji/testów oprogramowania na CUDA. Nie mam pod linuksem karty z CUDA i nie zanosi się, żebym w najbliższej przyszłości miał, chyba że uda mi się od NV wyżebrać coś w rodzaju 8400 którego od biedy uciągną moje liche zasilacze w linuksowych maszynkach (szanse marne ale będę próbował %)). Teoretycznie jednak sterowniki nvidii dają się zainstalować w trybie emulacji, znalazłem nawet różne instrukcje jak to się robi, ale sprawę komplikują tu dwie rzeczy

1) nie ma paczki ze sterownikami pod Debiana 4, jest niby instrukcja jak zainstalować sterowniki ręcznie. Niestety dotyczy starszej wersji, w nowych jest więcej plików i nie bardzo mogę rozgryźć co i jak ręcznie kopiować/linkować. Niby paczka pod Ubuntu powinna być kompatybilna, ale coś nie jest.

2) Nawet jak przekopałem się (wydaje mi sie, że poprawnie) przez proces instalacji, powstały inne komplikacje. Wykonując test który powinien zakończyć się wykonaniem aplikacji CUDA na emulatorze, wyskakuje mi po prostu info, że nie mam karty nv  :ph34r:

Na chwilę obecną najbardziej interesowałaby mnie jakaś sprawdzona metoda instalacji sterowników na debianie, myślę że już na zainstalowanych sterach jakoś powinno udać się uruchomić emulator - z tego co widzę, polega to po prostu na usunięciu części plików lub przeniesieniu ich poza domyślne ścieżki wyszukiwania.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Troll81

Podesłać moją 8500GT?? co sie ma kurzyć :D

AiDec

Cytat: TJM w 28 Sierpień 2009, 14:05
1) nie ma paczki ze sterownikami pod Debiana 4, jest niby instrukcja jak zainstalować sterowniki ręcznie. Niestety dotyczy starszej wersji, w nowych jest więcej plików i nie bardzo mogę rozgryźć co i jak ręcznie kopiować/linkować. Niby paczka pod Ubuntu powinna być kompatybilna, ale coś nie jest.

Zainstalowac stara wersje, pozniej stery a pozniej upgrade.



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

gielo

Ja mam kartę z cuda ale jakoś ono mi nie chce działać pod debianem. W sumie przestałem się tym przejmować jako że Liczenie z wykorzystaniem GPU pod NVIDIA jest mało wydajne i jak czytałem często liczy się szybciej na zwykłym procesorze. Moja karta to NVIDIA 9400GT 1GB, natomiast proc to AMD64 2x2100. Jak ktoś miał do czynienia z podobną konfiguracją i uważa że z CUDA na tym liczy się dużo szybciej prosiłbym o info.
Profesjonalne statystyki stron  - także dla pozycjonerów



TJM

Niektóre rzeczy jednak liczą się na nvidiach wydajnie. Przykładowo przeglądałem dokumentację i źródła symulatora bomby Turinga, wersja dla GPU wypada kilkukrotnie szybciej od wielowątkowej aplikacji zajmującej jednocześnie 4 rdzenie jakiegoś quada. Nie pamiętam na jakiej karcie testował to autor, ale nawet na GF 9600GT obliczenia lecą dużo szybciej niż na q6600 (4 rdzenie na raz oczywiście).

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

ksysju

Hi

Instalowałem dwie karty (GTX 260) pod debianem. Najnowszym oficjalnym, czyli 5 coś tam.
Korzystałem z instalek NV, zero jakis problemów.
ksysju

TJM

Ja mam jedynie Debiana 4, inna wersja nie wchodzi w grę - jeden host to serwer BOINC a drugi to mirror jego OSa, więc tak musi zostać. Która wersja instaluje się sama na debianie ?

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

ksysju

Hi

Brałem 9.8.x86.x86_64

możesz też zassać i zainstalować sterowniki  za pomoca tego skrytpu

cd /usr/local/bin;wget -Nc techpatterns.com/sgfxi;chmod +x sgfxi

ksysju

gielo

ksysju więc wytłumacz jak to uruchomić. Ja instalije stery te ze strony nvidii a nie te co są dołączane w debianie jako że korzystam z najnowszych wersji jądra a tu sterów dla nich w debianie nie ma. Dodatkowo te dostarczane z debianem (non free) są jakby mniej wydajne z jakiegoś powodu niż te ze strony nvidia. Mówię o sterach nonfree z obsługa 3d a nie tych open source. Boinc mam zainstalowany ten debianowy 6.4.5, potem zassałem skrypt pod linuksa 6.6.36 i podmieniłem plik boinc więc teraz działa ten najnowszy. Niestety nie udało mi sie uruchomić cuda ani na starszej ani na nowszej wersji boinc
Profesjonalne statystyki stron  - także dla pozycjonerów



TJM

No i po dłuższej walce okazuje się, że na Debianie nie da rady. Może same CUDA da się uruchomić (w sumie zaraz sprawdzę), ale samego CUDA Toolkita i SDK nie da rady, ze względu na różnice w bibliotekach między najbardziej zbliżonym systemem (Ubuntu) a Debianem. Przy kompilacji bibliotek samego SDK, potrzebnych chociażby do zbudowania przykładów, wyskakują błędy nvcc.

Postawiłem więc maszynę z Ubuntu 9.04 specjalnie do pracy z CUDA i wcale nie jest też za różowo. Takich rzeczy spodziewałbym się u ATI, doskonale wiem jak bardzo niedorobiony może być ich soft. A tu zonk, mimo że Ubuntu 9.04 jest niby wspieranym przez nv systemem, podczas instalacji całego SDK pojawiają się niemałe problemy:
- nie zgadzają się niektóre ścieżki, żeby zaczęło coś działać trzeba porobić trochę symlinków, tak żeby niektóre katalogi były dostępne pod dwoma nazwami.
- trzeba edytować pliki źródłowe SDK przed kompilacją i poprawiać drobne błędy, głównie braki includów.
- parę plików jest w złych katalogach, przez co kompilacja bibliotek SDK nie rusza 'od kopa' - trzeba poczytać log i skopiować pliki
- brakuje dokładnych informacji jakich dodatkowych bibliotek potrzeba, żeby kompilować część przykładów. Trzeba zgadywać z komunikatów błędów linkera i/lub kompilatora.

W końcu teoretycznie udało mi się odpalić emulator i to na maszynie, która fizycznej karty nigdy nie zobaczy (brak portów PCI-E), jednak nadal nie jest za ciekawie - aplikacja deviceQuery zgłasza dostępność trybu emulacji, natomiast inne już zgłaszają brak karty. Co ciekawe, kiedy ściągnąłem te same aplikacje luzem ze strony nv (jakieś starsze wersje chyba), ruszają niby ale w obliczeniach pojawiają się błędy. Nie wiem w końcu więc czy działa to czy nie, usiłuję od rana wbić na forum nvidii, ale tak się składa, że padło w momencie kiedy kliknąłem 'register' i do tej pory same timeouty  XD










Same kłody pod nogi jak na razie.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

gielo

Zassaj najnowszą testową wersję boinc pod linuksa i podmień programy. Tam masz coś takiego jak cudart.so wżuć go do /usr/lib64 lub /usr/lib32 w zależności z jakiej wersji debiana korzystasz i wszystko powinno działać. Nie kombinuj z paczkami ubuntu bo mieszanie dytrybucji jest najkrutrzą droga do wywrócenia systemu. Ubuntu mimo że oparte na debianie to ma inaczej roziązane niektóre elementy więc może szybko to doprowadzić do problemów z systemem.
Profesjonalne statystyki stron  - także dla pozycjonerów



Troll81


X X X

Ubuntu wspiera akcję "BYKOM STOP"! Może B@P też powinno?

Dla autora koszmarków: http://bykom-stop.avx.pl/czymsprawdzac.html

TJM

Niestety, co by nie wymyślić, programować w CUDA pod Debianem się nie da. Odpalić gotową aplikację może i się da, chociaż ja na razie mam z tym trudności (błędy bibliotek). Jeśli ktoś chce sprawdzić, mogę zamieścić jakąś testową aplikację.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

ksysju

Hi

Jak możesz to daj coś, potestujemy przez weekend

ksysju

TJM

Na chwilę obecną nawet nie zabardzo jest co testować - co najwyżej jeśli masz chęć, możesz sprawdzić czy aplikacje kompilowane w moim środowisku ruszą. Przerabiałem trochę jeden z dołączonych przykładów od nv, żeby zobaczyć jak miewa się szybkość wykonywania CPU/emulacja vs GPU.
Zanim cokolwiek ruszę w kwestii Enigma@CUDA muszę przebrnąć przez jakieś tutoriale, należy pamiętać, że nie jestem nawet programistą i samo przeglądanie źródeł to czarna magia, nie mówiąc już o pisaniu progsów %)

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

TJM

#16
Jak do tej pory były same kłody pod nogi, ale dziś miła niespodzianka - przyjęli moją aplikację i stałem się zarejestrowanym developerem nV %) Zobaczymy co z tego wyniknie - na razie podoba mi się już dostęp do nowych, jeszcze niepublicznych narzędzi - można działać od razu trochę przyszłościowo.
Teraz muszę wstępnie ustalić dwie rzeczy

1) OpenCL czy CUDA ? Na chwilę obecną nie wiem nawet jakie są różnice, ale OpenCL wydaje mi się bardziej przyszłościowy.

2) Nie wiem, czy przepisywać aktualną aplikację, czy lepiej porzucić ten pomysł i od zera napisać od razu bruteforce. Jak na razie trafił się jeden tylko ciphertext dla którego w ogóle warto by odpalać grafy, pozostałe to max paręnaście dni liczenia na CPU. Można więc podejrzewać, że podobnie będzie też w przypadku innych i hillclimb na GPU może w najlepszym razie spowodować przeciążenie serwera projektu %)
Z kolei bruteforce to byłby backup plan na wypadek gdyby obie dotychczas podjęte próby złamania tekstu hillclimbem się nie powiodły - bruteforce jak wiadomo ma 100% skuteczności, więc jeśli GPU dostarczyłyby potrzebną prędkość, pojawiłaby się nowa szansa. Aplikacja przy tym powinna być sporo prostsza od hillclimba - łatwiejsza do napisania, debugowania i równie łatwa do zaimplementowania w automatycznie działającym środowisku serwerowym.

Na korzyść drugiej wersji przemawia też fakt, że nie wiem nawet czy zdążę cokolwiek napisać zanim obliczenia dla drugiego podejścia się zakończą - łatwo nie będzie, bo nadal mam kilka problemów nie do przeskoczenia (na linuksie brak możliwości zainstalowania karty z CUDA - zostaje emulator; na Win z kolei karta jest, brak softu - bez dostępu do MSDNa ciężko). No i dużo czasu przeznaczonego na prace nad projektem wciągają mi inne zadania - poprawki różnych bugów, różne zgłoszenia od userów, kontrola działania serwera, backupy itp pierdoły. Niewiele zostaje na czytanie poradników w stylu 'jak zostać programistą CUDA w 24h' %)

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

AiDec

Przede wszystkim wielkie i serdeczne gratulacje  :parrrty:


Cytat: TJM w 15 Wrzesień 2009, 00:36
2) Nie wiem, czy przepisywać aktualną aplikację, czy lepiej porzucić ten pomysł i od zera napisać od razu bruteforce. (...) Na korzyść drugiej wersji przemawia też fakt, że nie wiem nawet czy zdążę cokolwiek napisać zanim obliczenia dla drugiego podejścia się zakończą (...)

Skorzystaj z app. Jak nie zdarzysz, to i tak ta wiedza Ci sie przyda. Poza tym IMHO nie musisz app od razu przepisywac - na poczatek mozesz ja po prostu `obudowac` czy tez `emulowac` (sadze ze wiesz co mi chodzi po glowie), wydajnosc nie bedzie powalajaca, ale zaimplementowanie prostsze i szybsze.



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

TJM

Właśnie niestety specyfika aplikacji w tej wersji powoduje, że nie ma szans na przepisanie części. Tzn przepisać sobie można, nawet liczyłem na to, że da radę na początek funkcje score wywalić na GPU.
Niestety nie jest tak za różowo, bo po prostu nie opłaca się na GPU wysyłać jednorazowo małej ilości danych. Cała siła tkwi w tym, żeby wysłać jak najwięcej. Karta sama sobie odpali tyle ile fizycznie da radę, a jeśli wyślę za mało, po prostu będzie praktycznie idlowała.
W praktyce wygląda to tak, że jeśli mam funkcję na CPU która liczy kilka prostych pętli i na GPU da się ją rozwinąć, żeby część instrukcji wykonywała się równolegle (a w funkcjach xxx_score da się to zrobić), to taka pojedyńcza funkcja wykonuje się na GPU sporo szybciej. Niestety, różnica prędkości jest dodatnia tylko przy wykonaniu tego samego kodu co najmniej kilkanaście razy. Dla pojedyńczego wywołania zysk prędkości ginie po prostu w opóźnieniu spowodowanym przekazaniem bloku do wykonania na karcie.
No i niestety 'tu się zgina dziób pingwina' - dla użytego algorytmu dane zmieniają się przy każdym przebiegu i jednocześnie przy każdym potrzebne są nowe dane wyjściowe z funkcji, więc nie ma możliwości zmagazynowania danych w celu wysłania na raz do GPU. Trzeba na GPU przenosić całą główną pętlę programu, na CPU zostawić tylko dzielenie tego na zakresy do wysłania do GPU, odbieranie danych i operacje I/O - checkpointy itp. Nie będzie to niestety zbyt proste, ze względu właśnie na stopień skomplikowania algorytmu.

Tak nawiasem mówiąc, poczytałem trochę tematów na forum nV i udało mi się odpalić CUDA w VS 2008 (wcześniej miałem z tym problemy) tak więc teraz teoretycznie mam dwa równoległe środowiska do pracy z CUDA - linuks i Win. Na Windows nawet ze wsparciem sprzętowym, więc mogę sobie już co nieco potestować bezpośrednio na grafie. Linuks musi z tym niestety poczekać aż nie uda mi się dorwać gdzieś jakiejś złomowatej płyty z PCI-E i jak najbardziej energooszczędnej grafy. Czas zapolować na allegro na jakieś 8400/8500 z uwalonymi wyjściami na monitor, które i tak nie będą nigdy potrzebne %)

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

gielo

Co do błędów sorry ale jestem dyslektykiem i pisałem z kompa zaraz po instalacji systemu bez konfiguracji słowników pod debianem jeszcze. Mam takie pytanie do osób korzystających z debiana i boinc otóż jest pod nim 2 optymalki pod seti i milkę. Czy trzeba coś jeszcze konfigurować aby one działały czy instalacja pakietów wystarczy ? Kolejna sprawa to, znalazłem optymalkę pod einstein na linuksa jak to odpalić pod debianem ?
Dla nieznających tematu od razu mówie że debian ma instalowane optymalki z pakietów do katalogów nijak mających się do katalogu z boinc czy managera boinc i jakoś nie mogę dojść skąd boinc wie wogle że są jakieś optymalki ? Tym bardziej nie wiem jak zainstalować te dla einstein które nie mają paczek dla debiana. So to już gotowe programy wraz z plikiemcośtam.xml
Profesjonalne statystyki stron  - także dla pozycjonerów