Prośba o przetestowanie programu w CUDA

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
kabooom
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 08 gru 2009, 11:38
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86

Prośba o przetestowanie programu w CUDA

Post autor: kabooom »

Witam
Mam olbrzymią prośbę o przetestowanie mojego programu (praca inżynierska) wykorzystującego CUDA, osobę/osoby która ma geforce'a z co najmniej 64 rdzeniami cuda (czyli jakiś geforce 9600 np.). Sam mam gt210 ale dziadostwo jest tak wolne (no dobra mój program też nie jest wspaniały) że nie dostaję praktycznie żadnego przyspieszenia. Program rozwiązuje dość duże układy równań liniowych (do 10mln zmiennych). W załączniku znajdują się dwa programy- jeden liczy na cpu, drugi na gpu, oraz skrypt który je odpala. Wymagania od strony sprzętu to min. 2GB ramu (żeby zmieściła się ta największa macierz). Wyniki zostaną wyplute na std. wyjście więc można je przekierować do pliku

Kod: Zaznacz cały

./run.sh >> out.txt
Proszę również o podanie modelu karty graficznej i procesora.

//edit: może dział 'Programowanie' byłby bardziej właściwy
Załączniki
linEqSysSolver.tar.gz
solvers
(72.9 KiB) Pobrany 81 razy
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: Prośba o przetestowanie programu w CUDA

Post autor: luzakwielki »

kabooom pisze:że nie dostaję praktycznie żadnego przyspieszenia.
Nie we wszystkich algorytmach uzyskasz przyspieszenie (może być dużo wolniejszy) - przy gt210 to nawet przy maksymalnym jego wykorzystaniu będzie wolniejszy niż CPU(jeśli użyjesz w swoich algorytmach instrukcji SSE).
kabooom pisze:Program rozwiązuje dość duże układy równań liniowych (do 10mln zmiennych). W załączniku znajdują się dwa programy- jeden liczy na cpu, drugi na gpu, oraz skrypt który je odpala. Wymagania od strony sprzętu to min. 2GB ramu (żeby zmieściła się ta największa macierz). Wyniki zostaną wyplute na std. wyjście więc można je przekierować do pliku
Te 2GB to jest wrzucane na raz na GPU (jeśli tak to dziwne, że to działa na 210 ;p)? Kartę mam GeForce 460 1GB (czyli 13.5x szybsza niż Twoja biorąc pod uwagę same obliczenia (GFLOPs), a dodatkowo przepustowość pamięci od 9x do 15x większa niż w 210 (9 jeśli masz 210 z ddr3, a prawie 15 z ddr2)), ale nie przetestuje Ci programu (nie ufam programom wrzucanym na fora), a nie dałeś wersji debug, żebym mógł popatrzeć na kod i zobaczyć czy to faktycznie nie jakiś złośliwy program.

PS. przy pracy nad wydajnością swoich programów na GPU pamiętaj o architekturze kart graficznych - ważne jest to, że podobnie do SSE/NEON/AVX, czyli architektura SIMD (jedna instrukcja jest wykonywana na wszystkich rdzeniach SIMD, a tylko każdy ma inne dane) dlatego pamiętaj o tym, żeby nie nadużywać instrukcji if (i całej reszty kontroli programu (np. pętle)), bo wystarczy niewygodne dane dla GPU dać i z 16 rdzeni w 210 masz 2 bardzo słabe rdzenie (reszta wykonuje instrukcje które robią te 2, ale nie zapisuje obliczeń (bo nie spełniły warunków if)) - jeśli używasz to na GPU powinieneś to przemyśleć. Ogólnie jeśli chcesz pisać w CUDA/OpenCL to powinieneś poznać architekturę sprzętu na którym program ma działać (jak już poznasz to będziesz wiedział czy kod który napisałeś jest dobry, czy wręcz przeciwnie (rzadko przeniesienie kodu 1:1 z CPU na GPU jest dobrym pomysłem)).
kabooom
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 08 gru 2009, 11:38
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Prośba o przetestowanie programu w CUDA

Post autor: kabooom »

Na pewno wąskim gardłem jest ciągłe korzystanie z pamięci globalnej ale już tak to zaimplementowałem i nie mam za bardzo czasu żeby to zmieniać. Na karte nie wrzucam 2GB bo nawet tyle nie mam ;) ale mam tyle na kompie i widze ze podczas uruchamiania dochodzi do ok 80% wykorzystania.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Amazon [Bot] i 8 gości