X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/prng_gpu.git/blobdiff_plain/1ef8a2c0156684f00384e536ee77170afcca38d4..3ae5945229ec8e7fd70a5734de8bfafe9a8d3a9e:/prng_gpu.tex?ds=sidebyside diff --git a/prng_gpu.tex b/prng_gpu.tex index e6650ce..f048253 100644 --- a/prng_gpu.tex +++ b/prng_gpu.tex @@ -1,5 +1,90 @@ \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} -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}