]> AND Private Git Repository - prng_gpu.git/blobdiff - prng_gpu.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ajout
[prng_gpu.git] / prng_gpu.tex
index e6650ce89e356b8b300f79335362c9274c8bd78c..f0482538e2238b6131a940654e744d204d24049b 100644 (file)
@@ -1,5 +1,90 @@
 \documentclass{article}
 \documentclass{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{fullpage}
+\usepackage{fancybox}
+\usepackage{amsmath}
+\usepackage{moreverb}
+\usepackage{commath}
+
+\title{Efficient generation of pseudo random numbers based on chaotic iterations on GPU}
 \begin{document}
 \begin{document}
-qdsqsd
-qsdqsd
+\maketitle
+
+\begin{abstract}
+This is the abstract
+\end{abstract}
+
+\section{Introduction}
+
+Interet des itérations chaotiques pour générer des nombre alea\\
+Interet de générer des nombres alea sur GPU
+...
+
+\section{Chaotic iterations}
+
+Présentation des itérations chaotiques
+
+\section{Efficient prng based on chaotic iterations}
+
+On parle du séquentiel avec des nombres 64 bits\\
+
+Faire le lien avec le paragraphe précédent (je considère que la stratégie s'appelle $S^i$\\
+
+In  order to  implement efficiently  a PRNG  based on  chaotic iterations  it is
+possible to improve  previous works [ref]. One solution  consists in considering
+that the  strategy used $S^i$  contains all the  bits for which the  negation is
+achieved out. Then instead of applying  the negation on these bits we can simply
+apply the  xor operator between  the current number  and the strategy  $S^i$. In
+order to obtain the strategy we also use a classical PRNG.
+
+\begin{figure}[htbp]
+\begin{center}
+\fbox{
+\begin{minipage}{14cm}
+unsigned int CIprng() \{\\
+  static unsigned int x = 123123123;\\
+  unsigned long t1 = xorshift();\\
+  unsigned long t2 = xor128();\\
+  unsigned long t3 = xorwow();\\
+  x = x\textasciicircum (unsigned int)t1;\\
+  x = x\textasciicircum (unsigned int)(t2$>>$32);\\
+  x = x\textasciicircum (unsigned int)(t3$>>$32);\\
+  x = x\textasciicircum (unsigned int)t2;\\
+  x = x\textasciicircum (unsigned int)(t1$>>$32);\\
+  x = x\textasciicircum (unsigned int)t3;\\
+  return x;\\
+\}
+\end{minipage}
+}
+\end{center}
+\caption{sequential Chaotic Iteration PRNG}
+\label{algo:seqCIprng}
+\end{figure}
+
+In Figure~\ref{algo:seqCIprng}  a sequential  version of our  chaotic iterations
+based PRNG  is presented.  This version  uses three classical 64  bits PRNG: the
+\texttt{xorshift},  the \texttt{xor128}  and the  \texttt{xorwow}.   These three
+PRNGs  are presented  in~\cite{Marsaglia2003}.   As each  PRNG  used works  with
+64-bits and as  our PRNG works with 32 bits, the  use of \texttt{(unsigned int)}
+selects the 32 least  significant bits whereas \texttt{(unsigned int)(t3$>>$32)}
+selects the 32  most significants bits of the  variable \texttt{t}. This version
+sucesses   the   BigCrush   of    the   TestU01   battery   [P.   L’ecuyer   and
+  R. Simard. Testu01].
+
+\section{Efficient prng based on chaotic iterations on GPU}
+
+On parle du passage du sequentiel au GPU
+
+\section{Experiments}
+
+On passe le BigCrush\\
+On donne des temps de générations sur GPU/CPU\\
+On donne des temps de générations de nombre sur GPU puis on rappatrie sur CPU / CPU ? bof bof, on verra
+
+\section{Lyapunov}
+
+\section{Conclusion}
+\bibliographystyle{plain}
+\bibliography{mabase}
 \end{document}
 \end{document}