Changeset 142 for liacs/SCA2010/nQueens


Ignore:
Timestamp:
Jul 1, 2010, 2:59:37 PM (14 years ago)
Author:
Rick van der Zwet
Message:

Not ready yet, but going on the road...

Location:
liacs/SCA2010/nQueens
Files:
6 added
2 edited

Legend:

Unmodified
Added
Removed
  • liacs/SCA2010/nQueens/latex.mk

    r140 r142  
    5656        $(ASPELL) -l en -p ~/aspell-en.dic $(ASPELL_ARGS) $<
    5757
    58 .dvi.pdf:
    59         $(DVIPDF) $? $@
     58#.dvi.pdf:
     59#       $(DVIPDF) $? $@
     60
     61.tex.pdf:
     62        pdflatex -halt-on-error $?
    6063
    6164.tex.dvi:
  • liacs/SCA2010/nQueens/report.tex

    r2 r142  
    88\usepackage[english,dutch]{babel}
    99\selectlanguage{dutch}
    10 \usepackage{graphicx}
     10\usepackage[pdftex]{graphicx}
    1111\usepackage{url}
    12 \usepackage{multicol}
    13 \usepackage{fancybox}
    1412\usepackage{amssymb,amsmath}
     13\usepackage{wrapfig}
     14\usepackage{lipsum}
     15\usepackage{float}
    1516
    16 \author{Rick van der Zwet, Universiteit Leiden}
    17 \title{XXX \\
    18 \large{XXX}}
     17\floatstyle{ruled}
     18\newfloat{algoritm}{thp}{lop}
     19\floatname{algoritm}{Algoritm}
     20
     21\title{\emph{n-Queens} minimale dominatie verzamelingen \\
     22\large{Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik}}
    1923\author{Rick van der Zwet\\
    20   \texttt{<hvdzwet@liacs.nl>}\\
    21   \\
    22   LIACS\\
    23   Leiden University\\
    24   Niels Bohrweg 1\\
    25   2333 CA Leiden\\
    26   The Netherlands}
     24  \texttt{<hvdzwet@liacs.nl>}}
    2725\date{\today}
    2826
     27
    2928\begin{document}
    30 
    3129\maketitle
     30\begin{abstract}
     31Dit schrijven zal het paper van Nathan Cournik \emph{Chessboard Domination on
     32Programmable Graphics Hardware}~\cite{CDGPU2006} ---en in het speciaal de
     33gepresenteerde n-Queens oplossing--- vrij samenvatten in het nederlands en zal
     34de mening van de ondergetekende op het geheel geven.
     35\end{abstract}
    3236
    3337\section{Inleiding}
     38\begin{figure}
     39  \begin{center}
     40    \includegraphics[width=0.5\textwidth]{pasted1.pdf}
     41  \end{center}
     42  \caption{Links; koningin kan dit patroon slaan. Rechts; ongeldige \emph{n-Queens} oplossing, opdat de koninginnen rechtsonder elkaar kunnen slaan}
     43  \label{fig:patroon}
     44\end{figure}
     45Vanwege het het feit dat \emph{n-Queens} een algemeen geaccepteerde termiologie
     46is, voor het plaatsen van $n$ koningen op een $n*n$ schaakbord zodanig dat de
     47koningen elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald
     48worden. Verder zal in de tekst op diverse plekken de orginele engelse bewoordinging
     49staan om zo terugzoeken en refereren in het orginele paper~\cite{CDGPU2006}
     50makkelijker te maken.
     51
     52
     53\section{Minimale dominatie verzameling}
     54De minimale dominatie verzameling ({\emph{Minimum domination set}}) is
     55een setup waarbij elk vakje van het schaakbord door ten minste 1 koningin
     56geslagen kan worden of dat er een koningin op staat. Omdat een koningin een
     57karakteristiek patroon kan staan (zie Figuur~\ref{fig:patroon}) kan het
     58minimale aantal koninginnen wat nodig is ook bepaald worden dmv van
     59formule~\ref{eq:ondergrens}. 
     60\begin{equation}
     61y(Q_{n})\geq\frac{n-1}{2}, n\geq1
     62\label{eq:ondergrens}
     63\end{equation}
     64
     65
     66\section{Grafische Verwerking Eenheid}
     67De Grafische Verwerking Eenheid (\emph{Graphics Processing Unit} ook bekend als
     68\emph{GPU}) heeft speciale electronica om ervoor te zorgen dat deze snel de
     69\emph{RGB} waardes van alle beeldpunten kan berekenen in complexe beeldsystemen
     70met bijvoorbeeld ingewikkende (lees: tijdrovende) berekeningen voor schaduw,
     71reflextie en intensiteit. Om deze grote hoeveelheid gegevens te verwerken maakt
     72de \emph{GPU} gebruik een grote hoeveelheid parralelle processoren, welke alle
     73individueel een deel van de berekeningen op zich nemen.
     74
     75Recente (electronica) onwikkelingen zoals \emph{CUDA}\footnote{\url{http://en.wikipedia.org/wiki/CUDA}} en (meer generieke implementaties)
     76\emph{OpenCL}\footnote{\url{http://en.wikipedia.org/wiki/OpenCL}} hebben ertoe
     77geleid dat de GPU ook door de geprogrammeerd kan worden om specifieke
     78berekeningen uit te voeren. Figuur~\ref{fig:werking} laat de verschillende
     79stappen zien die uitgevoerd moeten worden om de \emph{GPU} aan te sturen. Het
     80is belangrijk om te beseffen dat de \emph{GPU} een heel simpele processor is en
     81(dus) zeer kleine buffers en instructie set heeft. Verder is het ook cruciaal
     82te weten dat de \emph{GPU} \textit{niet} direct gebruik gebruik kan maken van
     83het hoofdgeheugen van de \emph{CPU}, maak dat de invoer en uitvoer altijd eerst
     84naar/van de \emph{GPU} verplaatst zal moeten worden.
     85\begin{figure}
     86  \begin{center}
     87    \includegraphics[width=0.4\textwidth]{pasted1.png}
     88  \end{center}
     89  \caption{\emph{GPU} werking. De verschillende \emph{GPU} processorblokken
     90worden \emph{kernels} genoemd. De data wordt getransporteerd door verschillende
     91datakanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke
     92intern als $n * m$ array gezien kan worden. Een \emph{kernel} kan toegepast
     93worden om een (deel van de) \emph{framebuffer}} \label{fig:werking}
     94\end{figure}
     95
     96\section{Algoritme}
     97Het zoeken van geldige minimale dominatie verzamelingen is een stevige klus,
     98welke we (in het optimale geval) $n$ koninginnen hebben die we op een $n * n$
     99schaakbord kunnen plaatsen. Dat levert $(n * n)! - ((n * n)-n)!$ mogelijkheden op.
     100De \emph{GPU} zal gebruikt worden om oplossingen sneller te controlen en zal
     101niet gebruikt worden om effientere oplossingen te vinden.
     102
     103\begin{algoritm}
     104\begin{verbatim}
     10501: klaar=nee
     10602: doe
     10703: ..bereken potentieel minimale dominatie verzameling
     10804: ..plaats in framebuffer
     10905: ..als (alle pixels zijn gemarkeerd) dan
     11006: ....klaar=ja
     11107: ..eindeals
     11208: totdat (klaar=ja)
     113\end{verbatim}
     114\caption{aanpak minimale dominatie set}
     115\end{algoritm}
     116\subsection{Computing the piece configuration}
     117\begin{itemize}
     118\item Exhaustive manner
     119\item Piece configuration stored on the CPU as linked links
     120\item Lower bound and Upper bound is respected
     121\end{itemize}
     122
     123\subsection{Rendered in Framebuffer}
     124\begin{wrapfigure}{r}{0.4\textwidth}
     125  \begin{center}
     126    \includegraphics[width=0.4\textwidth]{pasted4.pdf}
     127  \end{center}
     128  \caption{The Toucan}
     129\end{wrapfigure}
     130\begin{itemize}
     131\item GPU supports textures, every piece is a texture
     132\item Render points on the CPU and offload to the GPU to map texture on
     133specific place
     134\end{itemize}
     135
     136\subsection{Determine Domination (e.g. Mark solution)}
     137\begin{itemize}
     138\item Simple approch
     139\item Sum all pixels of $n*n$ board and match if $sum=n*n$
     140\end{itemize}
     141
     142\section{GPU Optimalizations}
     143\begin{wrapfigure}{r}{0.4\textwidth}
     144  \begin{center}
     145    \includegraphics[width=0.4\textwidth]{pasted5.pdf}
     146  \end{center}
     147  \caption{The Toucan}
     148\end{wrapfigure}
     149\begin{itemize}
     150\item GPU is able to process all colours at the times
     151Grid Framebuffer
     152\end{itemize}
     153\begin{itemize}
     154\item GPU has many CPU's called kernels
     155\item Each kernel can process it's own little block of information
     156\item Putting multiple possible solutions in one bloc
     157\end{itemize}
     158
    34159\section{Uitleg probleem}
    35160\section{Theorie}
     
    38163\section{Experimenten}
    39164\section{Conclusie}
    40 \begin{thebibliography}{10}
     165\begin{wrapfigure}{r}{0.4\textwidth}
     166  \begin{center}
     167    \includegraphics[width=0.4\textwidth]{pasted6.pdf}
     168  \end{center}
     169\caption{
     170Execution times (log scale) of CPU and GPU based minimum domination
     171implementations computing $y(Q_{n})$. As $n$ increases, the GPU's
     172speed advantage over the CPU become more evident.}
     173\end{wrapfigure}
     174
     175\begin{itemize}
     176\item Domination texture good mapping between CPU world and GPU world
     177\item Flexible texture definition without any impact
     178\end{itemize}
     179
     180\subsection{Discussion}
     181\begin{itemize}
     182\item No significant speedup, claim that $n\geq13$ GPU is \emph{'much'} faster
     183\item No scaleable
     184\end{itemize}
     185
     186\begin{thebibliography}{2}
     187\bibitem[DM2003]{DM2003}E. J. Cockayne, emph{Chessboard domination
     188problems}, \emph{Discrete Math}, 86:1320, 1990.
     189
     190\bibitem[CDGPU2006]{CDGPU2006}Nathan Cournik,\emph{Chessboard Domination
     191on Programmable Graphics Hardware}, \emph{ACM SE'06 March
     19210-­12, 2006}. Melbourne, Florida, USA
    41193\end{thebibliography}
    42194\newpage
    43 % \advance\textwidth by 8cm
    44 % \advance\oddsidemargin by -3cm
    45 % \advance\evensidemargin by -3cm
    46 % \advance\topmargin by -2cm
    47 % \advance\textheight by 4cm
    48 % \advance\footskip by -4cm
    49 % \marginparwidth 0cm
    50 % \twocolumn
    51 % \section*{Appendix}
    52 % De NN code en pre-parse.pl code  zagen er als volgt uit:
    53 % \newline
    54 % \tiny
    55 % %preformatted with `source-highlight -n -f latex bridge.cc`
    56 % \input{nn.c}
    57 % \input{data/pre-parse.pl}
    58 % \onecolumn
    59 
    60195\end{document}
Note: See TracChangeset for help on using the changeset viewer.