- Timestamp:
- Aug 3, 2010, 10:58:37 PM (14 years ago)
- Location:
- liacs/SCA2010/nQueens
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
liacs/SCA2010/nQueens/report.tex
r144 r168 42 42 \label{fig:patroon} 43 43 \end{figure} 44 Vanwege het hetfeit dat \emph{n-Queens} een algemeen geaccepteerde terminologie45 is ,voor het plaatsen van $n$ koningen op een $n*n$ schaakbord zodanig dat de44 Vanwege het feit dat \emph{n-Queens} een algemeen geaccepteerde terminologie 45 is voor het plaatsen van $n$ koningen op een $n*n$ schaakbord zodanig dat de 46 46 koningen elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald 47 47 worden. Verder zal in de tekst op diverse plekken de originele Engelse bewoording … … 52 52 \section{Minimale dominantie verzameling} 53 53 De minimale dominantie verzameling ({\emph{Minimum domination set}}) is 54 een opstelling waarbij zo weinig mogelijk koninginnen wordt gebruikt omelk vakje55 van het schaakbord door ten minste 1 koningin geslagen kan worden ofdat er een54 een opstelling waarbij met zo weinig mogelijk koninginnen elk vakje 55 van het schaakbord a) door ten minste 1 koningin geslagen kan worden of b) dat er een 56 56 koningin op staat. Omdat een koningin een karakteristiek patroon kan staan (zie 57 57 Figuur~\ref{fig:patroon}) kan het minimale aantal koninginnen wat nodig is ook … … 73 73 data-kanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke 74 74 intern als $n * m$ array gezien kan worden. Een \emph{kernel} kan toegepast 75 worden o meen (deel van de) \emph{framebuffer}.}75 worden op een (deel van de) \emph{framebuffer}.} 76 76 \label{fig:werking} 77 77 \end{figure} … … 81 81 met bijvoorbeeld ingewikkelde (lees: tijdrovende) berekeningen voor schaduw, 82 82 reflectie en intensiteit. Om deze grote hoeveelheid gegevens te verwerken maakt 83 de \emph{GPU} gebruik een grote hoeveelheid parallelle processoren, welke alle83 de \emph{GPU} gebruik van een grote hoeveelheid parallelle processoren, welke alle 84 84 individueel een deel van de berekeningen op zich nemen. 85 85 86 Recente (elektronica) ontwikkelingen zoals \emph{CUDA}\footnote{\url{http://en.wikipedia.org/wiki/CUDA}} en (meer generieke implementaties)86 Recente (elektronica) ontwikkelingen zoals \emph{CUDA}\footnote{\url{http://en.wikipedia.org/wiki/CUDA}} en een meer generieke implementatie 87 87 \emph{OpenCL}\footnote{\url{http://en.wikipedia.org/wiki/OpenCL}} hebben ertoe 88 geleid dat de GPU ook door degeprogrammeerd kan worden om specifieke88 geleid dat op de \emph{GPU} in plaats van enkel beeldverwerkingen te doen nu ook geprogrammeerd kan worden om specifieke 89 89 berekeningen uit te voeren. Figuur~\ref{fig:werking} laat de verschillende 90 90 stappen zien die uitgevoerd moeten worden om de \emph{GPU} aan te sturen. Het … … 95 95 naar/van de \emph{GPU} verplaatst zal moeten worden. 96 96 97 \section{Aanpak }97 \section{Aanpak emph{n-Queens} probleem op de \emph{GPU}} 98 98 Het zoeken van geldige minimale dominantie verzamelingen is een stevige klus, 99 w elke we (in het optimale geval) $n$ koninginnen hebben die we op een $n * n$99 waarvoor minimaal (en dus optimale geval) $n$ koninginnen nodig zijn die we op een $n * n$ 100 100 schaakbord kunnen plaatsen. Dat levert $(n * n)! - ((n * n)-n)!$ mogelijkheden op. 101 101 De \emph{GPU} zal gebruikt worden om oplossingen sneller te controleren en zal … … 146 146 Er zijn nog twee eigenschappen van de \emph{GPU} waar dankbaar gebruik van 147 147 gemaakt wordt, namelijk kleur en het verschil in grootte van het bord en de 148 geaccepteerde invoer. Door slim te combineren ---zie figuur~\ref{fig:raster} ---149 kan het aantal potenti"{e}le oplossingen d iegetest kan worden gemaximaliseerd148 geaccepteerde invoer. Door slim te combineren ---zie figuur~\ref{fig:raster} op pagina~\pageref{fig:raster}--- 149 kan het aantal potenti"{e}le oplossingen dat getest kan worden gemaximaliseerd 150 150 worden. 151 151 152 De individuele \emph{kernels} volgen het algoritme~\ref{alg:kernel} , de test of153 alle punten gemarkeerd zijn lijkt o m het eerste gezicht een lus entest over152 De individuele \emph{kernels} volgen het algoritme~\ref{alg:kernel}. De test of 153 alle punten gemarkeerd zijn lijkt op het eerste gezicht een lus/loop die test over 154 154 alle beeldpunten, echter de \emph{GPU} heeft specifieke instructies om dit 155 effici"{e}nt ieuit te voeren.156 Voor het plaatsen van de stempels moet er gegaan worden voor de grafische157 equivalent van een \texttt{OF} operatie. Als een \texttt{INVERSE} operatie gebruikt zou155 effici"{e}nter uit te voeren. 156 Voor het plaatsen van de stempels is er een een grafische operatie die 157 equivalent is aan een \texttt{OF} operatie. Als een \texttt{INVERSE} operatie gebruikt zou 158 158 worden om de stempel te plaatsen zou een tweede overlappende stempel onterecht 159 159 als niet geraakt gemarkeerd worden. … … 175 175 \includegraphics[width=0.4\textwidth]{pasted6.pdf} 176 176 \caption{ 177 Uitvoer tijden (logaritmische schaal) van de \emph{CPU} en \emph{GPU} gebaseerde minimale dominantie implementaties welke $y(Q_{n})$ uitrekenen. Hoe groter $n$ wordt , de beter de \emph{GPU} gaan presteren bovende \emph{CPU}}177 Uitvoer tijden (logaritmische schaal) van de \emph{CPU} en \emph{GPU} gebaseerde minimale dominantie implementaties welke $y(Q_{n})$ uitrekenen. Hoe groter $n$ wordt des te beter de \emph{GPU} gaan presteren in vergelijking met de \emph{CPU}} 178 178 \label{fig:uitvoertijd} 179 179 \end{figure} 180 180 Door het toepassen van de \emph{GPU} in het \emph{n-Queens} probleem kunnen 181 181 winsten geboekt worden zoals te zien in figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}. 182 Het toepassen van \emph{GPU} dominantie textuur technieken techniekenlijkt voor dit182 Het toepassen van \emph{GPU} dominantie textuur technieken lijkt voor dit 183 183 specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld en 184 184 de \emph{GPU} wereld. De stempels bieden tevens meer vrijheden om alternatieve
Note:
See TracChangeset
for help on using the changeset viewer.