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

Private GIT Repository
ca continue sur le gpu
authorcouturie <couturie@carcariass.(none)>
Sun, 11 Sep 2011 17:45:23 +0000 (19:45 +0200)
committercouturie <couturie@carcariass.(none)>
Sun, 11 Sep 2011 17:45:23 +0000 (19:45 +0200)
prng_gpu.tex

index 081ec9ca9e4a508e145b295fc1bdba8b1f48b174..730b6206c2d632339de2e864e2921ce2e16f1ed5 100644 (file)
@@ -752,7 +752,7 @@ we have chosen to use the ISAAC PRNG to initalize all the parameters for the GPU
 version  of  our  PRNG.  The  implementation  of  the  three xor-like  PRNGs  is
 straightforward  as soon  as their  parameters have  been allocated  in  the GPU
 memory. Each xor-like  PRNGs used works with an internal  number $x$ which keeps
 version  of  our  PRNG.  The  implementation  of  the  three xor-like  PRNGs  is
 straightforward  as soon  as their  parameters have  been allocated  in  the GPU
 memory. Each xor-like  PRNGs used works with an internal  number $x$ which keeps
-the  last generated random  numbers. Other  internal variables  are used  by the
+the last generated random numbers. Other internal variables are also used by the
 xor-like PRNGs. More  precisely, the implementation of the  xor128, the xorshift
 and  the xorwow  respectively  require 4,  5  and 6  unsigned  long as  internal
 variables.
 xor-like PRNGs. More  precisely, the implementation of the  xor128, the xorshift
 and  the xorwow  respectively  require 4,  5  and 6  unsigned  long as  internal
 variables.
@@ -771,10 +771,20 @@ NumThreads: Number of threads\;}
   store internal variables in InternalVarXorLikeArray[threadId]\;
 }
 
   store internal variables in InternalVarXorLikeArray[threadId]\;
 }
 
-\caption{PRNG with chaotic functions}
-\label{main kernel for the chaotic iterations based PRNG GPU version}
+\caption{main kernel for the chaotic iterations based PRNG GPU version}
+\label{algo:gpu_kernel}
 \end{algorithm}
 
 \end{algorithm}
 
+According to  the available  memory in the  GPU and  the number of  threads used
+simultenaously, the number of random numbers that a thread can generate inside a
+kernel     is     limited,      i.e.      the     variable     \texttt{n}     in
+algorithm~\ref{algo:gpu_kernel}. For example, if  $100,000$ threads are used and
+if $n=100$\footnote{in fact, we need to add the initial seed (a 32-bits number)}
+then   the  memory   required   to  store   internals   variables  of   xor-like
+PRNGs\footnote{we multiply this number by $2$ in order to count 32-bits numbers}
+and  random  number of  our  PRNG  is  equals to  $100,000\times  ((4+5+6)\times
+2+(1+100))=1,310,000$ 32-bits numbers, i.e. about $52$Mb.
+
 \section{Experiments}
 
 On passe le BigCrush\\
 \section{Experiments}
 
 On passe le BigCrush\\