Browse Source

Vergeltungswaffe-3

master
Dominik 8 years ago
parent
commit
1f8689a3b2
1 changed files with 16 additions and 4 deletions
  1. +16
    -4
      DergunPiotr-WaskoDominik/zad6/dok.tex

+ 16
- 4
DergunPiotr-WaskoDominik/zad6/dok.tex View File

@ -108,9 +108,11 @@ __global__ void gauss(int rows, int cols, unsigned char *in_r, unsigned char *in
}
\end{lstlisting}
Obraz do kernela przesyłany jest w postaci 3 tablic jednowymiarowych( po jednej dla każdego koloru). Konwersja z tablicy dwuwymiarowej A o rozmiarze NxM na jednowymiarową tablice B o rozmiarze N*M odbywa się wg wzoru: A[i][j] = B[M*i+j].
Obraz do kernela przesyłany jest w postaci 3 tablic jednowymiarowych( po jednej dla każdego koloru RGB). Konwersja obrazu z tablicy dwuwymiarowej A o rozmiarze NxM na jednowymiarową tablice B o rozmiarze N*M odbywa się wg wzoru: A[i][j] = B[M*i+j].
Każdy wątek oblicza co najmniej jeden piksel. Zaczyna od piksela o numerze równym numerowi wątku. W celu celu obliczenia numeru następnego piksela dodaje do aktualnego numeru liczbę wszystkich wątków. Następnie oblicza ten piksel i powtarza czynność z dodawaniem liczby wątków, sprawdzając oczywiście czy otrzymana wartość nie jest większa od całkowitej liczby pikseli w obrazie.
Zadanie zostało uruchomione na komputerze wyposażonym w karte graficzna NVIDIA GeForce GT 640M. Karta posiada dwa multiprocesory po 192 rdzenie CUDA, taktowane zegarem 709 MHz. Pamięć karty to 980MB.
Zadanie zostało uruchomione na komputerze wyposażonym w kartę graficzna NVIDIA GeForce GT 640M. Karta posiada dwa multiprocesory po 192 rdzenie CUDA, taktowane zegarem 709 MHz. Pamięć karty to 980MB.
Program testowano na obrazie o rozmiarze 24107x4491 pikseli. Parametry dla jakich uruchomiono program to 3 rozmiary siatki: 16, 64, 256 oraz dla każdego rozmiaru siatki rozmiar bloku: 64,128,192,256,320.
@ -127,10 +129,19 @@ Na rysunku 1. przedstawiono wykres zależności czasu obliczeń od rozmiaru blok
\end{figure}
\section*{Porównanie}
Porównanie technologii OpenMP i MPI wykonano na komputerze MacPro3.1 wyposażonym w 2 procesory Xeon E5462, przy czym do dyspozycji było 6 rdzeni. Program z CUDA uruchomiono na innym komputerze wyposażonym w katę graficzną NVIDIA GeForce GT 640M z dwoma multiprocesorami po 192 rdzenie CUDA, taktowane zegarem 709 MHz. Do porównania użyto wykonanych na laboratoriach programów obliczających rozmycie Gaussa . Do testów wybrano obraz o rozdzielczości 24107x4491. W tabeli przedstawiono czas wykonania przez poszczególne programy oraz liczbę użytych przez nie wątków, w przypadku CUDA jest to iloczyn rozmiaru siatki oraz rozmiaru bloku.
Porównanie technologii OpenMP i MPI wykonano na komputerze MacPro3.1 wyposażonym w 2 procesory Xeon E5462, przy czym do dyspozycji było 6 rdzeni. Program z CUDA uruchomiono na innym komputerze wyposażonym w katę graficzną NVIDIA GeForce GT 640M z dwoma multiprocesorami po 192 rdzenie CUDA, taktowane zegarem 709 MHz. Do porównania użyto wykonanych na laboratoriach programów obliczających rozmycie Gaussa . Do testów wybrano obraz o rozdzielczości 24107x4491. W tabeli 1. przedstawiono czas wykonania przez poszczególne programy oraz liczbę użytych przez nie wątków, w przypadku CUDA jest to iloczyn rozmiaru siatki oraz rozmiaru bloku.
Na podstawie danych w tabeli 1. oraz wniosków wyciągniętych z poprzednich laboratoriów można sformułować następujące wnioski:
\begin{itemize}
\item OpenMP przez to, że sam zarządza tym jak i co będzie zrównoleglone nie jest tak szybki jak pozostałe rozwiązania
\item MPI przy starannym zaprojektowaniu programu pozwana na dość dobre wyniki oraz umożliwia dużą skalowalność.
\item Umiejąc odpowiednio zdekomponować problem i przystosować go do obliczeń na karcie graficznej, CUDA okazuje się najlepszym wyborem do obliczeń równoległych.
\end{itemize}
\vspace{8mm}
\begin{table}
\centering
\begin{tabular}{|c|c|c|}
\hline
@ -144,5 +155,6 @@ Porównanie technologii OpenMP i MPI wykonano na komputerze MacPro3.1 wyposażon
\textbf{CUDA} & 98304 & 571\\
\hline
\end{tabular}
\caption{Porównanie}
\end{table}
\end{document}

Loading…
Cancel
Save