TEST_F(CommonTest, TestRandSeedGPU) { SyncedMemory data_a(10 * sizeof(unsigned int)); SyncedMemory data_b(10 * sizeof(unsigned int)); Caffe::set_random_seed(1701); CURAND_CHECK(curandGenerate(Caffe::curand_generator(), static_cast<unsigned int*>(data_a.mutable_gpu_data()), 10)); Caffe::set_random_seed(1701); CURAND_CHECK(curandGenerate(Caffe::curand_generator(), static_cast<unsigned int*>(data_b.mutable_gpu_data()), 10)); for (int i = 0; i < 10; ++i) { EXPECT_EQ(((const unsigned int*)(data_a.cpu_data()))[i], ((const unsigned int*)(data_b.cpu_data()))[i]); } }
TEST_F(CommonTest, TestRandSeedCPU) { SyncedMemory data_a(10 * sizeof(int), Caffe::GetDefaultDevice()); SyncedMemory data_b(10 * sizeof(int), Caffe::GetDefaultDevice()); Caffe::set_random_seed(1701, Caffe::GetDefaultDevice()); caffe_rng_bernoulli(10, 0.5, static_cast<int*>(data_a.mutable_cpu_data())); Caffe::set_random_seed(1701, Caffe::GetDefaultDevice()); caffe_rng_bernoulli(10, 0.5, static_cast<int*>(data_b.mutable_cpu_data())); for (int i = 0; i < 10; ++i) { EXPECT_EQ(static_cast<const int*>(data_a.cpu_data())[i], static_cast<const int*>(data_b.cpu_data())[i]); } }
TEST_F(CommonTest, TestRandSeedCPU) { SyncedMemory data_a(10 * sizeof(int)); SyncedMemory data_b(10 * sizeof(int)); Caffe::set_random_seed(1701); //viRngBernoulli(VSL_RNG_METHOD_BERNOULLI_ICDF, Caffe::vsl_stream(), // 10, (int*)data_a.mutable_cpu_data(), 0.5); caffe_vRngBernoulli(10, (int*)data_a.mutable_cpu_data(), 0.5); Caffe::set_random_seed(1701); //viRngBernoulli(VSL_RNG_METHOD_BERNOULLI_ICDF, Caffe::vsl_stream(), // 10, (int*)data_b.mutable_cpu_data(), 0.5); caffe_vRngBernoulli(10, (int*)data_b.mutable_cpu_data(), 0.5); for (int i = 0; i < 10; ++i) { EXPECT_EQ(((const int*)(data_a.cpu_data()))[i], ((const int*)(data_b.cpu_data()))[i]); } }
TEST_F(CommonTest, TestRandSeedGPU) { device *dc = Caffe::GetDefaultDevice(); if (dc->backend() == BACKEND_CUDA) { #ifdef USE_CUDA SyncedMemory data_a(10 * sizeof(unsigned int), Caffe::GetDefaultDevice()); SyncedMemory data_b(10 * sizeof(unsigned int), Caffe::GetDefaultDevice()); Caffe::set_random_seed(1701, Caffe::GetDefaultDevice()); CURAND_CHECK(curandGenerate(Caffe::curand_generator(), static_cast<unsigned int*>(data_a.mutable_gpu_data()), 10)); Caffe::set_random_seed(1701, Caffe::GetDefaultDevice()); CURAND_CHECK(curandGenerate(Caffe::curand_generator(), static_cast<unsigned int*>(data_b.mutable_gpu_data()), 10)); for (int i = 0; i < 10; ++i) { EXPECT_EQ(((const unsigned int*)(data_a.cpu_data()))[i], ((const unsigned int*)(data_b.cpu_data()))[i]); } #endif // USE_CUDA } }