GPUMLib  0.2.2
GPU Machine Learning Library
random.h
1 /*
2  Noel Lopes is an Assistant Professor at the Polytechnic Institute of Guarda, Portugal
3  Copyright (C) 2009, 2010, 2011, 2012 Noel de Jesus Mendonša Lopes
4 
5  This file is part of GPUMLib.
6 
7  GPUMLib is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef GPUMLib_Random_h
22 #define GPUMLib_Random_h
23 
24 #include <curand.h>
25 #include "../memory/DeviceArray.h"
26 
27 namespace GPUMLib {
28 
31 
33 class Random {
34  private:
35  static curandGenerator_t randomGenerator;
36  static curandRngType_t randomGeneratorType;
37 
38  static curandGenerator_t RandomGenerator();
39 
40  public:
42  static void CleanUp();
43 
47  static void SetSeed(unsigned long long seed, curandRngType_t generatorType = CURAND_RNG_PSEUDO_DEFAULT);
48 
51  static void Fill(DeviceArray<float> & a);
52 };
53 
55 
56 }
57 
58 #endif
static void CleanUp()
Destroys the existing random generator and frees the memory associated with its state.
Definition: random.cu:40
static void SetSeed(unsigned long long seed, curandRngType_t generatorType=CURAND_RNG_PSEUDO_DEFAULT)
Definition: random.cu:47
Class for generating random values on the device. Uses the CURAND library.
Definition: random.h:33
static void Fill(DeviceArray< float > &a)
Definition: random.cu:56