Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests] remove direct std::random_device usage. #2397

Merged
merged 16 commits into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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;
CAHEK7 marked this conversation as resolved.
Show resolved Hide resolved
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;
CAHEK7 marked this conversation as resolved.
Show resolved Hide resolved
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