- Timestamp:
- Sep 7, 2010, 12:56:06 PM (14 years ago)
- Location:
- liacs/SCA2010/nQueens
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
liacs/SCA2010/nQueens/report.tex
r168 r178 19 19 20 20 \title{\emph{n-Queens} minimale dominantie verzamelingen \\ 21 \large{Chessboard Domination on Programmable Graphics Hardware door Nathan Courni k}}21 \large{Chessboard Domination on Programmable Graphics Hardware door Nathan Cournia}} 22 22 \author{Rick van der Zwet\\ 23 23 \texttt{<hvdzwet@liacs.nl>}} … … 28 28 \maketitle 29 29 \begin{abstract} 30 Dit schrijven zal het paper van Nathan Courni k\emph{Chessboard Domination on31 Programmable Graphics Hardware}~\cite{CDGPU2006} ---en in het speciaalde32 gepresenteerde n-Queens oplossing--- vrij samenvatten in het nederlands en zal30 Dit schrijven zal het paper van Nathan Cournia \emph{Chessboard Domination on 31 Programmable Graphics Hardware}~\cite{CDGPU2006} ---en in het bijzonder de 32 gepresenteerde $n$-Queens oplossing--- vrij samenvatten in het Nederlands en zal 33 33 de mening van de ondergetekende op het geheel geven. 34 34 \end{abstract} … … 39 39 \includegraphics[width=0.5\textwidth]{pasted1.pdf} 40 40 \end{center} 41 \caption{Links ; koningin kan dit patroon slaan. Rechts; ongeldige \emph{n-Queens} oplossing, opdat de koninginnen rechtsonder elkaar kunnen slaan}41 \caption{Links: koningin kan dit patroon slaan. Rechts: ongeldige \emph{n-Queens} oplossing, omdat de koninginnen rechtsonder elkaar kunnen slaan.} 42 42 \label{fig:patroon} 43 43 \end{figure} 44 44 Vanwege het feit dat \emph{n-Queens} een algemeen geaccepteerde terminologie 45 is voor het plaatsen van $n$ koning en op een $n*n$ schaakbord zodanig dat de46 koning en elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald45 is voor het plaatsen van $n$ koninginnen op een $n*n$ schaakbord zodanig dat de 46 koninginnen 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 48 staan om zo terugzoeken en refereren inhet originele paper~\cite{CDGPU2006}48 staan om zo terugzoeken in en refereren naar het originele paper~\cite{CDGPU2006} 49 49 makkelijker te maken. 50 50 … … 53 53 De minimale dominantie verzameling ({\emph{Minimum domination set}}) is 54 54 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 een56 koningin op staat. Omdat een koningin een karakteristiek patroon kan staan (zie55 van het schaakbord a) door ten minste 1 koningin direct bereikt kan worden of b) bezet is 56 door een koningin. Omdat een koningin een \emph{karakteristiek patroon} kan slaan (zie 57 57 Figuur~\ref{fig:patroon}) kan het minimale aantal koninginnen wat nodig is ook 58 bepaald worden d mv van formule~\ref{eq:ondergrens}.58 bepaald worden door middel van Formule~\ref{eq:ondergrens}: 59 59 \begin{equation} 60 60 y(Q_{n})\geq\frac{n-1}{2}, n\geq1 61 61 \label{eq:ondergrens} 62 62 \end{equation} 63 Als het een 'gewone' dominantie verzameling is dan hoeft het aantal koninginnen 64 niet perse minimaal zijn. 65 66 67 \section{Grafische Verwerking Eenheid} 63 Waarbij in Formule~\ref{eq:ondergrens} $n$ het de grootte van het bord is ($n 64 \times n$). De knopen van $Q_{n}$ zijn genomen van een $n \times n$ bord met 65 $n^{2}$ als de knopen. Als knoop $a$ door middel van het \emph{karakteristiek 66 patroon} van een koningin vanuit $b$ bereikt kan worden, wordt er een tak 67 tussen deze knopen gevormd. Dit geheel (de knopen en takken) is $Q_{n}$. $y(G)$ 68 is de minimum of a domination set of $G$. $y(Q_{n})$ is dan het minimalel 69 aantal koninginnen die men kan plaatsen en zodaning de minimale dominantie 70 verzameling te bereiken. Als het een ``gewone'' dominantie verzameling is dan 71 hoeft het aantal koninginnen niet perse minimaal zijn. 72 73 74 \section{Grafische Verwerkings Eenheid} 68 75 \begin{figure} 69 76 \centering … … 73 80 data-kanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke 74 81 intern als $n * m$ array gezien kan worden. Een \emph{kernel} kan toegepast 75 worden op een (deel van de) \emph{framebuffer}. }82 worden op een (deel van de) \emph{framebuffer}. Illustratie uit \cite{WPCUDA}.} 76 83 \label{fig:werking} 77 84 \end{figure} 78 De Grafische Verwerking Eenheid (\emph{Graphics Processing Unit}ook bekend als85 De Grafische Verwerkings Eenheid (\emph{Graphics Processing Unit}, ook bekend als 79 86 \emph{GPU}) heeft speciale electronica om ervoor te zorgen dat deze snel de 80 87 \emph{RGB} waardes van alle beeldpunten kan berekenen in complexe beeldsystemen … … 90 97 stappen zien die uitgevoerd moeten worden om de \emph{GPU} aan te sturen. Het 91 98 is belangrijk om te beseffen dat de \emph{GPU} een heel simpele processor is en 92 (dus) zeer kleine buffers en instructie 99 (dus) zeer kleine buffers en instructieset heeft. Verder is het ook cruciaal 93 100 te weten dat de \emph{GPU} \textit{niet} direct gebruik gebruik kan maken van 94 het hoofd-geheugen van de \emph{CPU}, maa kdat de invoer en uitvoer altijd eerst101 het hoofd-geheugen van de \emph{CPU}, maar dat de invoer en uitvoer altijd eerst 95 102 naar/van de \emph{GPU} verplaatst zal moeten worden. 96 103 97 \section{Aanpak emph{n-Queens}probleem op de \emph{GPU}}104 \section{Aanpak $n$-Queens probleem op de \emph{GPU}} 98 105 Het zoeken van geldige minimale dominantie verzamelingen is een stevige klus, 99 waarvoor minimaal ( en dus optimale geval) $n$ koninginnen nodig zijn die we op een $n *n$106 waarvoor minimaal (in het optimale geval) $n$ koninginnen nodig zijn die we op een $n \times n$ 100 107 schaakbord kunnen plaatsen. Dat levert $(n * n)! - ((n * n)-n)!$ mogelijkheden op. 101 108 De \emph{GPU} zal gebruikt worden om oplossingen sneller te controleren en zal 102 niet gebruikt worden om effici"{e}ntie oplossingen te vinden. De kracht zit hem in 103 het feit dat meer oplossingen getest kunnen worden en dus potentieel betere 104 oplossingen tussen kunnen zitten, welke ook te zien in in 105 algoritme~\ref{alg:overzicht}. De genereerde potenti"{e}le oplossingen die aan de 106 \emph{GPU} ter controle aangeboden worden respecteren de boven- en ondergrens. 109 niet gebruikt worden om effici"{e}nte oplossingen te vinden. De kracht zit hem in 110 het feit dat meer oplossingen getest kunnen worden en er dus potentieel betere 111 oplossingen tussen kunnen zitten, wat ook te zien is in 112 Algoritme~\ref{alg:overzicht}. De genereerde potenti"{e}le oplossingen die aan de 113 \emph{GPU} ter controle aangeboden worden respecteren eventuele bekende boven- 114 en ondergrenzen zoals Formule~\ref{eq:ondergrens}. \footnote{Zie voor meer 115 bekende boven- en ondergrenzen onder andere de papers genoemd in \cite[CDGPU2006]{sectie 2, pagina 62}.} 116 107 117 108 118 \begin{algoritm} … … 124 134 \centering 125 135 \includegraphics[width=0.4\textwidth]{pasted4.pdf} 126 \caption{Stempels van verschillende schaakstukken, de verschillende groottes zijn noodzakelijk om aan te geven hoe de stempel vergroot of verkleint moet worden}136 \caption{Stempels van verschillende schaakstukken, de verschillende groottes zijn noodzakelijk om aan te geven hoe het stempel vergroot of verkleind moet worden.} 127 137 \label{fig:stempels} 128 138 \end{figure} 129 139 Om snelle detectie mogelijk te maken, wordt er gebruikt gemaakt van een 130 eigenschap waar een \emph{GPU} in uitblinkt ; het '\emph{stempelen}' van objecten in140 eigenschap waar een \emph{GPU} in uitblinkt: het ``\emph{stempelen}'' van objecten in 131 141 een raster (welke in traditionele beeldbewerking gebruikt wordt om texturen te 132 142 maken). Elk schaakstuk heeft zijn eigen stempel-patroon zoals te zien in … … 140 150 \caption{Door slim te coderen kunnen meerdere potenti"{e}le oplossingen tegelijk 141 151 bekeken worden. Hier wordt gebruik gemaakt van (a) het feit dat de ruimte groter 142 is dan het 'schaakbord' welkebekeken wordt en (b) een pixel gecodeerd is uit143 vier onafhankelijke kleuren }152 is dan het ``schaakbord'' dat bekeken wordt en (b) een pixel gecodeerd is uit 153 vier onafhankelijke kleuren.} 144 154 \label{fig:raster} 145 155 \end{figure} 146 156 Er zijn nog twee eigenschappen van de \emph{GPU} waar dankbaar gebruik van 147 157 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} op pagina~\pageref{fig:raster}---158 geaccepteerde invoer. Door slim te combineren ---zie Figuur~\ref{fig:raster} op pagina~\pageref{fig:raster}--- 149 159 kan het aantal potenti"{e}le oplossingen dat getest kan worden gemaximaliseerd 150 160 worden. 151 161 152 De individuele \emph{kernels} volgen het algoritme~\ref{alg:kernel}. De test of162 De individuele \emph{kernels} volgen Algoritme~\ref{alg:kernel}. De test of 153 163 alle punten gemarkeerd zijn lijkt op het eerste gezicht een lus/loop die test over 154 164 alle beeldpunten, echter de \emph{GPU} heeft specifieke instructies om dit … … 161 171 \begin{algoritm} 162 172 \begin{verbatim} 163 01: voor elke stempels in stempel locatie173 01: voor alle stempels in stempel locatie 164 174 02: ..plaats stempel 165 175 03: als (alle punten gemarkeerd) dan … … 175 185 \includegraphics[width=0.4\textwidth]{pasted6.pdf} 176 186 \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 des te beter de \emph{GPU} gaan presteren in vergelijking met de \emph{CPU}}187 Uitvoertijden (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} gaat presteren in vergelijking met de \emph{CPU}.} 178 188 \label{fig:uitvoertijd} 179 189 \end{figure} 180 Door het toepassen van de \emph{GPU} inhet \emph{n-Queens} probleem kunnen181 winsten geboekt worden zoals te zien i n figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}.190 Door het toepassen van de \emph{GPU} op het \emph{n-Queens} probleem kunnen 191 winsten geboekt worden zoals te zien is in Figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}. 182 192 Het toepassen van \emph{GPU} dominantie textuur technieken lijkt voor dit 183 specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld en184 de \emph{GPU} wereld. De stempels bieden tevens meer vrijheden om alternatieve 185 'schaakstukken' te onderzoeken.193 specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld naar 194 een implementatie in de \emph{GPU} wereld. De stempels bieden tevens meer 195 vrijheden om alternatieve ``schaakstukken'' te onderzoeken. 186 196 \subsection{Verder werk} 187 197 Er zal gekeken worden of de generatie van nieuwe oplossingen ook op de 188 \emph{GPU} gedaan kan worden om zo het probleem van de langzame context189 wisselingen op te lossen. 190 Verder zal er gekeken worden of de coderingvan de borden op nog een slimmere191 manier aangepakt kan worden ,in plaats van de kleur in 4 basis-kleuren uit te192 splitsen zouden ook de volledige 32 bits (elke kleur is 8 bit) kunnen worden om193 nog meer (combinaties) van oplossingen te coderen.198 \emph{GPU} gedaan kan worden om zo het probleem van de langzame 199 contextwisselingen op te lossen. Verder zal er gekeken worden of de codering 200 van de borden op nog een slimmere 201 manier aangepakt kan worden: in plaats van de kleur in 4 basis-kleuren uit te 202 splitsen zouden ook de volledige 32 bits (elke kleur heeft 8 bits) kunnen worden om 203 nog meer (combinaties) van oplossingen te coderen. 194 204 195 205 \subsection{Discussie} 196 De claim dat de \emph{GPU} 'veel' sneller is lijkt meniet gefundeerd in de197 grafieken. Beide nlijken erg dicht bij elkaar te blijven en ik zie niet waarom206 De claim dat de \emph{GPU} ``veel'' sneller is lijkt niet gefundeerd in de 207 grafieken. Beide lijken erg dicht bij elkaar te blijven en ik zie niet waarom 198 208 dit plots veel beter zou worden bij grotere $n$ waarden. 199 De 'tegel-methode' van figuur~\ref{fig:raster} lijkt in theorie leuk, maar als 200 de $n$ groter wordt is er grote kans dat de tegels niet meer (goed) passen. Als 201 de $n$ groter wordt dan in mogelijke invoer is het helemaal niet meer mogelijk. 202 203 204 205 \begin{thebibliography}{2} 209 De ``tegel-methode'' van Figuur~\ref{fig:raster} lijkt in theorie leuk, maar als 210 $n$ groter wordt is er grote kans dat de tegels niet meer (goed) passen. Als 211 $n$ groter wordt dan in mogelijke invoer ---de maximale grootte van een bord 212 die in in het geheugen van de de \emph{GPU} past is gelimiteerd aan de hoeveelheid geheugen iin de \emph{GPU} en op welke manier dit geheugen ingedeeld is--- is het helemaal niet meer 213 mogelijk. 214 215 216 217 \begin{thebibliography}{3} 206 218 \bibitem[DM2003]{DM2003}E. J. Cockayne, emph{Chessboard domination 207 219 problems}, \emph{Discrete Math}, 86:1320, 1990. … … 210 222 on Programmable Graphics Hardware}, \emph{ACM SE'06 March 211 223 10-Â12, 2006}. Melbourne, Florida, USA 224 225 \bibitem[WPCUDA]{WPCUDA}Wikipedia, CUDA, \url{http://en.wikipedia.org/wiki/CUDA} 226 (as of Sept. 7, 2010, 12:03 GMT). 227 212 228 \end{thebibliography} 213 229 \newpage
Note:
See TracChangeset
for help on using the changeset viewer.