Skip to content

Commit

Permalink
[tests] remove direct std::random_device usage. (#2397)
Browse files Browse the repository at this point in the history
  • Loading branch information
CAHEK7 authored Oct 25, 2023
1 parent 411b345 commit a6ae364
Show file tree
Hide file tree
Showing 18 changed files with 107 additions and 130 deletions.
20 changes: 10 additions & 10 deletions test/bn_3d_peract_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,11 @@ struct verify_forward_train_3d_bn_per_activation
runMean = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -243,11 +243,11 @@ struct verify_forward_train_3d_bn_per_activation
runMean = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -1034,15 +1034,15 @@ struct batch_norm_3d_per_activation_driver : test_driver
scale = tensor<PREC_TYPE>{ssn, ssc, ssd, ssh, ssw};
shift = tensor<PREC_TYPE>{ssn, ssc, ssd, ssh, ssw};

const PREC_TYPE Data_scale = static_cast<PREC_TYPE>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < scale.desc.GetElementSize(); i++)
{
scale[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
scale[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
}
for(std::size_t i = 0; i < input.desc.GetElementSize(); i++)
{
input[i] = prng::gen_descreet_uniform_sign(static_cast<T>(1e-4), 100);
input[i] = prng::gen_descreet_uniform_sign<T>(1e-4, 100);
}
}

Expand Down
20 changes: 10 additions & 10 deletions test/bn_3d_spatial_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,11 @@ struct verify_forward_train_3d_bn_spatial
runMean = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}
auto saveMean = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};
Expand Down Expand Up @@ -289,11 +289,11 @@ struct verify_forward_train_3d_bn_spatial
runMean = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_depth, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -1236,15 +1236,15 @@ struct batch_norm_3d_spatial_driver : test_driver
scale = tensor<PREC_TYPE>{ssn, ssc, ssd, ssh, ssw};
shift = tensor<PREC_TYPE>{ssn, ssc, ssd, ssh, ssw};

const PREC_TYPE Data_scale = static_cast<PREC_TYPE>(1e-4);
const double Data_scale = 1e-4;
for(std::size_t i = 0; i < scale.desc.GetElementSize(); i++)
{
scale[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
scale[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
}
for(std::size_t i = 0; i < input.desc.GetElementSize(); i++)
{
input[i] = prng::gen_descreet_uniform_sign(static_cast<T>(1e-5), 100);
input[i] = prng::gen_descreet_uniform_sign<T>(1e-5, 100);
}
}

Expand Down
20 changes: 10 additions & 10 deletions test/bn_peract_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,11 @@ struct verify_forward_train_bn_per_activation
runMean = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -233,11 +233,11 @@ struct verify_forward_train_bn_per_activation
runMean = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -992,15 +992,15 @@ struct batch_norm_per_activation_driver : test_driver
scale = tensor<PREC_TYPE>{ssn, ssc, ssh, ssw};
shift = tensor<PREC_TYPE>{ssn, ssc, ssh, ssw};

const PREC_TYPE Data_scale = static_cast<PREC_TYPE>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < scale.desc.GetElementSize(); i++)
{
scale[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
scale[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
}
for(std::size_t i = 0; i < input.desc.GetElementSize(); i++)
{
input[i] = prng::gen_descreet_uniform_sign(static_cast<T>(1e-4), 100);
input[i] = prng::gen_descreet_uniform_sign<T>(1e-4, 100);
}
}

Expand Down
20 changes: 10 additions & 10 deletions test/bn_spatial_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ struct verify_forward_train_bn_spatial
runMean = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}
auto saveMean = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};
Expand Down Expand Up @@ -270,11 +270,11 @@ struct verify_forward_train_bn_spatial
runMean = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};
runVar = tensor<U>{rs_n_batch, rs_channels, rs_height, rs_width};

const U Data_scale = static_cast<U>(0.001);
const double Data_scale = 0.001;
for(std::size_t i = 0; i < runMean.desc.GetElementSize(); i++)
{
runMean[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned(Data_scale, 100);
runMean[i] = prng::gen_descreet_uniform_sign<U>(Data_scale, 100);
runVar[i] = prng::gen_descreet_unsigned<U>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -1150,15 +1150,15 @@ struct batch_norm_spatial_driver : test_driver
scale = tensor<PREC_TYPE>{ssn, ssc, ssh, ssw};
shift = tensor<PREC_TYPE>{ssn, ssc, ssh, ssw};

const PREC_TYPE Data_scale = static_cast<PREC_TYPE>(1e-4);
const double Data_scale = 1e-4;
for(std::size_t i = 0; i < scale.desc.GetElementSize(); i++)
{
scale[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
scale[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
shift[i] = prng::gen_descreet_uniform_sign<PREC_TYPE>(Data_scale, 100);
}
for(std::size_t i = 0; i < input.desc.GetElementSize(); i++)
{
input[i] = prng::gen_descreet_uniform_sign(static_cast<T>(1e-5), 100);
input[i] = prng::gen_descreet_uniform_sign<T>(1e-5, 100);
}
}

Expand Down
2 changes: 1 addition & 1 deletion test/cba_inference.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ struct cba_fusion_driver : test_driver
bias = tensor<T>{1, output.desc.GetLengths()[1], 1, 1};
for(std::size_t i = 0; i < bias.desc.GetElementSize(); i++)
{
bias[i] = prng::gen_descreet_uniform_sign(static_cast<T>(0.1), 100);
bias[i] = prng::gen_descreet_uniform_sign<T>(0.1, 100);
}
}

Expand Down
12 changes: 6 additions & 6 deletions test/gru_common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2945,7 +2945,7 @@ struct gru_basic_driver : test_driver

void run()
{
const T Data_scale = static_cast<T>(0.001);
const double Data_scale = 0.001;
#if(MIOPEN_BACKEND_OPENCL == 1)
if(type == miopenHalf)
exit(EXIT_SUCCESS); // NOLINT (concurrency-mt-unsafe)
Expand Down Expand Up @@ -3058,7 +3058,7 @@ struct gru_basic_driver : test_driver
std::vector<T> input(in_sz);
for(std::size_t i = 0; i < in_sz; i++)
{
input[i] = prng::gen_descreet_unsigned(Data_scale, 100);
input[i] = prng::gen_descreet_unsigned<T>(Data_scale, 100);
}

std::size_t hx_sz = ((dirMode != 0) ? 2ULL : 1ULL) * hiddenSize * batchSize * numLayers;
Expand All @@ -3076,7 +3076,7 @@ struct gru_basic_driver : test_driver
std::vector<T> weights(wei_sz);
for(std::size_t i = 0; i < wei_sz; i++)
{
weights[i] = prng::gen_descreet_uniform_sign(Data_scale, 100);
weights[i] = prng::gen_descreet_uniform_sign<T>(Data_scale, 100);
}

#if(MIO_GRU_TEST_DEBUG > 0)
Expand All @@ -3093,15 +3093,15 @@ struct gru_basic_driver : test_driver
{
for(std::size_t i = 0; i < hx_sz; i++)
{
hx[i] = prng::gen_descreet_unsigned(Data_scale, 100);
hx[i] = prng::gen_descreet_unsigned<T>(Data_scale, 100);
}
}

if(!nodhy)
{
for(std::size_t i = 0; i < hx_sz; i++)
{
dhyin[i] = prng::gen_descreet_unsigned(Data_scale, 100);
dhyin[i] = prng::gen_descreet_unsigned<T>(Data_scale, 100);
}
}

Expand Down Expand Up @@ -3165,7 +3165,7 @@ struct gru_basic_driver : test_driver
std::vector<T> dyin(yin.size());
for(std::size_t i = 0; i < yin.size(); i++)
{
dyin[i] = prng::gen_descreet_unsigned(Data_scale, 100);
dyin[i] = prng::gen_descreet_unsigned<T>(Data_scale, 100);
}

#if(MIO_GRU_TEST_DEBUG > 0)
Expand Down
7 changes: 3 additions & 4 deletions test/gtest/bn.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,9 @@ struct BNBwdTest : public ::testing::TestWithParam<std::tuple<BNTestCase, miopen
DscaleDbiasDataType,
MeanVarDataType>(bn_bwd_test_data);

// using tolerance = 1e-4 since this the tolerance CK uses
test::CompareTensor<DxDataType>(bn_bwd_test_data.output, bn_bwd_test_data.ref_out, 1e-4);
test::CompareTensor<DxDataType>(bn_bwd_test_data.dScale, bn_bwd_test_data.dScale_ref, 1e-4);
test::CompareTensor<DxDataType>(bn_bwd_test_data.dBias, bn_bwd_test_data.dBias_ref, 1e-4);
test::CompareTensor<DxDataType>(bn_bwd_test_data.output, bn_bwd_test_data.ref_out, 5e-4);
test::CompareTensor<DxDataType>(bn_bwd_test_data.dScale, bn_bwd_test_data.dScale_ref, 5e-4);
test::CompareTensor<DxDataType>(bn_bwd_test_data.dBias, bn_bwd_test_data.dBias_ref, 5e-4);
}

BNTestCase bn_config;
Expand Down
30 changes: 11 additions & 19 deletions test/gtest/bn_test_data.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,8 @@ struct BNTestData

void InitTensorsWithRandValue()
{
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_int_distribution<> d{0, 100};
auto gen_value = [&](auto...) {
return 1e-2 * static_cast<XDataType>(d(gen)) * ((d(gen) % 2 == 1) ? -1 : 1);
};
input.generate(gen_value);
input.generate(
[](auto...) { return prng::gen_descreet_uniform_sign<XDataType>(1e-2, 100); });
}

void SetDirection() { direction = bn_config.Direction; }
Expand Down Expand Up @@ -199,17 +194,16 @@ struct BNInferTestData : public BNTestData<XDataType, YDataType, TConfig>

void InitTensorsWithRandValue()
{
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_int_distribution<> d{0, 100};
auto gen_value = [&](auto...) {
return 1e-2 * static_cast<ScaleDataType>(d(gen)) * ((d(gen) % 2 == 1) ? -1 : 1);
auto gen_value = [](auto...) {
return prng::gen_descreet_uniform_sign<ScaleDataType>(1e-2, 100);
};
scale.generate(gen_value);
shift.generate(gen_value);
estMean.generate(gen_value);

auto gen_var = [&](auto...) { return 1e-2 * (static_cast<MeanVarDataType>(d(gen)) + 1); };
auto gen_var = [](auto...) {
return static_cast<MeanVarDataType>(1e-2 * (prng::gen_0_to_B(100) + 1));
};
estVariance.generate(gen_var);
}
void WriteToGPU()
Expand Down Expand Up @@ -292,15 +286,14 @@ struct BNBwdTestData : public BNTestData<XDataType, DyDataType, TConfig>
void InitTensorsWithRandValue()
{
auto gen_value = [](auto...) {
return prng::gen_descreet_uniform_sign(static_cast<ScaleDataType>(1e-2), 100);
return prng::gen_descreet_uniform_sign<ScaleDataType>(1e-2, 100);
};
dy.generate(gen_value);
bnScale.generate(gen_value);
savedMean.generate(gen_value);

auto gen_var = [](auto...) {
return static_cast<MeanVarDataType>(1e-2) *
static_cast<MeanVarDataType>(prng::gen_0_to_B(100) + 1);
return static_cast<MeanVarDataType>(1e-2 * (prng::gen_0_to_B(100) + 1));
};
savedInvVar.generate(gen_var);

Expand Down Expand Up @@ -390,14 +383,13 @@ struct BNFwdTrainTestData : public BNTestData<XDataType, YDataType, TConfig>
void InitTensorsWithRandValue()
{
auto gen_value = [](auto...) {
return prng::gen_descreet_uniform_sign(static_cast<ScaleDataType>(1e-2), 100);
return prng::gen_descreet_uniform_sign<ScaleDataType>(1e-2, 100);
};
scale.generate(gen_value);
shift.generate(gen_value);

auto gen_var = [](auto...) {
return static_cast<MeanVarDataType>(1e-2) *
static_cast<MeanVarDataType>(prng::gen_0_to_B(100) + 1);
return static_cast<MeanVarDataType>(1e-2 * (prng::gen_0_to_B(100) + 1));
};
runMean.generate(gen_var);
runVariance.generate(gen_var);
Expand Down
7 changes: 3 additions & 4 deletions test/gtest/group_conv3d_bwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,9 @@ struct ConvBwdSolverTest
weights = tensor<T>{tensor_layout, conv_config.GetWeights()};
SetTensorLayout(input.desc);
SetTensorLayout(weights.desc);
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_real_distribution<> d{-3, 3};
auto gen_value = [&](auto...) { return d(gen); };
auto gen_value = [](auto...) {
return prng::gen_A_to_B(static_cast<T>(-3.0), static_cast<T>(3.0));
};
std::fill(input.begin(), input.end(), std::numeric_limits<double>::quiet_NaN());
weights.generate(gen_value);
conv_desc = conv_config.GetConv();
Expand Down
7 changes: 3 additions & 4 deletions test/gtest/group_conv3d_fwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,9 @@ struct ConvFwdSolverTest
weights = tensor<T>{tensor_layout, conv_config.GetWeights()};
SetTensorLayout(input.desc);
SetTensorLayout(weights.desc);
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_real_distribution<> d{-3, 3};
auto gen_value = [&](auto...) { return d(gen); };
auto gen_value = [](auto...) {
return prng::gen_A_to_B(static_cast<T>(-3.0), static_cast<T>(3.0));
};
input.generate(gen_value);
weights.generate(gen_value);
conv_desc = conv_config.GetConv();
Expand Down
8 changes: 4 additions & 4 deletions test/gtest/group_conv3d_wrw.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ struct ConvWrwSolverTest
std::tie(algo, conv_config, tensor_layout) = GetParam();
input = tensor<T>{tensor_layout, conv_config.GetInput()};
weights = tensor<T>{tensor_layout, conv_config.GetWeights()};
std::random_device rd{};
std::mt19937 gen{rd()};
std::uniform_real_distribution<> d{-3, 3};
auto gen_value = [&](auto...) { return d(gen); };

auto gen_value = [](auto...) {
return prng::gen_A_to_B(static_cast<T>(-3.0), static_cast<T>(3.0));
};
input.generate(gen_value);

std::fill(weights.begin(), weights.end(), 0);
Expand Down
Loading

0 comments on commit a6ae364

Please sign in to comment.