Unverified Commit 69d8d789 authored by Umang Yadav's avatar Umang Yadav Committed by GitHub
Browse files

Add options to set tolerances inside MIGraphX driver (#2213)

MIGraphX verification by default uses normalized RMS error as the basis for the verification.  This change adds some logic to allow migraphx to do "np.allclose" type of elementwise verification using atol and rtol.

Commit also includes changes to consistently pass "gold" or "expected" results as the second argument for "verify_range()" calls.  Default RMS tolerance inside driver is set to 0.001 which IMO is high for FP32 compared to what we had earlier. Need better defaults
parent e12032fb
...@@ -47,7 +47,7 @@ TEST_CASE(argmin_test_0) ...@@ -47,7 +47,7 @@ TEST_CASE(argmin_test_0)
std::vector<int64_t> result_vec; std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(result_vec, res_gold)); EXPECT(migraphx::verify::verify_rms_range(result_vec, res_gold));
} }
TEST_CASE(argmin_test_1) TEST_CASE(argmin_test_1)
...@@ -66,7 +66,7 @@ TEST_CASE(argmin_test_1) ...@@ -66,7 +66,7 @@ TEST_CASE(argmin_test_1)
std::vector<int64_t> result_vec; std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(result_vec, res_gold)); EXPECT(migraphx::verify::verify_rms_range(result_vec, res_gold));
} }
TEST_CASE(argmin_test_2) TEST_CASE(argmin_test_2)
...@@ -85,7 +85,7 @@ TEST_CASE(argmin_test_2) ...@@ -85,7 +85,7 @@ TEST_CASE(argmin_test_2)
std::vector<int64_t> result_vec; std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(result_vec, res_gold)); EXPECT(migraphx::verify::verify_rms_range(result_vec, res_gold));
} }
TEST_CASE(argmin_test_neg_1) TEST_CASE(argmin_test_neg_1)
...@@ -104,7 +104,7 @@ TEST_CASE(argmin_test_neg_1) ...@@ -104,7 +104,7 @@ TEST_CASE(argmin_test_neg_1)
std::vector<int64_t> result_vec; std::vector<int64_t> result_vec;
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(result_vec, res_gold)); EXPECT(migraphx::verify::verify_rms_range(result_vec, res_gold));
} }
TEST_CASE(argmin_test_nonstd_shape) TEST_CASE(argmin_test_nonstd_shape)
...@@ -123,5 +123,5 @@ TEST_CASE(argmin_test_nonstd_shape) ...@@ -123,5 +123,5 @@ TEST_CASE(argmin_test_nonstd_shape)
result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vec.assign(output.begin(), output.end()); });
std::vector<int64_t> res_gold_vec; std::vector<int64_t> res_gold_vec;
res_gold.visit([&](auto output) { res_gold_vec.assign(output.begin(), output.end()); }); res_gold.visit([&](auto output) { res_gold_vec.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(result_vec, res_gold_vec)); EXPECT(migraphx::verify::verify_rms_range(result_vec, res_gold_vec));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(asin_test) ...@@ -45,7 +45,7 @@ TEST_CASE(asin_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(asin_dyn_test) TEST_CASE(asin_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(asin_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(asin_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(asinh_test) ...@@ -45,7 +45,7 @@ TEST_CASE(asinh_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinhf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinhf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(asinh_dyn_test) TEST_CASE(asinh_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(asinh_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(asinh_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinhf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return asinhf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(atan_test) ...@@ -45,7 +45,7 @@ TEST_CASE(atan_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(atan_dyn_test) TEST_CASE(atan_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(atan_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(atan_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(atanh_test) ...@@ -45,7 +45,7 @@ TEST_CASE(atanh_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanhf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanhf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(atanh_dyn_test) TEST_CASE(atanh_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(atanh_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(atanh_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanhf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return atanhf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -114,6 +114,6 @@ TEST_CASE(isnan_broadcast_test) ...@@ -114,6 +114,6 @@ TEST_CASE(isnan_broadcast_test)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> correct = {0, 0, 0, 0, 1, 1}; std::vector<float> gold = {0, 0, 0, 0, 1, 1};
EXPECT(migraphx::verify::verify_range(results_vector, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(ceil_test) ...@@ -45,7 +45,7 @@ TEST_CASE(ceil_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return std::ceil(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return std::ceil(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(ceil_dyn_test) TEST_CASE(ceil_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(ceil_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(ceil_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return std::ceil(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return std::ceil(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -48,7 +48,7 @@ TEST_CASE(clip_test) ...@@ -48,7 +48,7 @@ TEST_CASE(clip_test)
std::vector<float> results_vector(3); std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0.0, 0.0, 6.0}; std::vector<float> gold = {0.0, 0.0, 6.0};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(clip_dyn_test) TEST_CASE(clip_dyn_test)
...@@ -73,5 +73,5 @@ TEST_CASE(clip_dyn_test) ...@@ -73,5 +73,5 @@ TEST_CASE(clip_dyn_test)
std::vector<float> results_vector(3); std::vector<float> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0.0, 0.0, 6.0}; std::vector<float> gold = {0.0, 0.0, 6.0};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -50,11 +50,11 @@ TEST_CASE(concat_test_1) ...@@ -50,11 +50,11 @@ TEST_CASE(concat_test_1)
std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20}; std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20};
std::vector<int> results_vector(2 * 6); std::vector<int> results_vector(2 * 6);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
EXPECT(migraphx::verify::verify_range(result.get_shape().lens(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().lens(),
std::vector<std::size_t>({2, 6}))); std::vector<std::size_t>({2, 6})));
EXPECT(migraphx::verify::verify_range(result.get_shape().strides(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().strides(),
std::vector<std::size_t>({6, 1}))); std::vector<std::size_t>({6, 1})));
} }
TEST_CASE(concat_test_2) TEST_CASE(concat_test_2)
...@@ -77,11 +77,11 @@ TEST_CASE(concat_test_2) ...@@ -77,11 +77,11 @@ TEST_CASE(concat_test_2)
std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20}; std::vector<int> gold = {0, 1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 20};
std::vector<int> results_vector(2 * 6); std::vector<int> results_vector(2 * 6);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
EXPECT(migraphx::verify::verify_range(result.get_shape().lens(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().lens(),
std::vector<std::size_t>({2, 6}))); std::vector<std::size_t>({2, 6})));
EXPECT(migraphx::verify::verify_range(result.get_shape().strides(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().strides(),
std::vector<std::size_t>({6, 1}))); std::vector<std::size_t>({6, 1})));
} }
TEST_CASE(concat_test_3) TEST_CASE(concat_test_3)
...@@ -104,11 +104,11 @@ TEST_CASE(concat_test_3) ...@@ -104,11 +104,11 @@ TEST_CASE(concat_test_3)
std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
std::vector<int> results_vector(6 * 2); std::vector<int> results_vector(6 * 2);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
EXPECT(migraphx::verify::verify_range(result.get_shape().lens(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().lens(),
std::vector<std::size_t>({6, 2}))); std::vector<std::size_t>({6, 2})));
EXPECT(migraphx::verify::verify_range(result.get_shape().strides(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().strides(),
std::vector<std::size_t>({2, 1}))); std::vector<std::size_t>({2, 1})));
} }
TEST_CASE(concat_test_4) TEST_CASE(concat_test_4)
...@@ -131,11 +131,11 @@ TEST_CASE(concat_test_4) ...@@ -131,11 +131,11 @@ TEST_CASE(concat_test_4)
std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; std::vector<int> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
std::vector<int> results_vector(6 * 2); std::vector<int> results_vector(6 * 2);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
EXPECT(migraphx::verify::verify_range(result.get_shape().lens(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().lens(),
std::vector<std::size_t>({6, 2}))); std::vector<std::size_t>({6, 2})));
EXPECT(migraphx::verify::verify_range(result.get_shape().strides(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().strides(),
std::vector<std::size_t>({2, 1}))); std::vector<std::size_t>({2, 1})));
} }
TEST_CASE(concat_dyn_test) TEST_CASE(concat_dyn_test)
...@@ -169,7 +169,7 @@ TEST_CASE(concat_dyn_test) ...@@ -169,7 +169,7 @@ TEST_CASE(concat_dyn_test)
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; std::vector<float> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
EXPECT(migraphx::verify::verify_range(result.get_shape().lens(), EXPECT(migraphx::verify::verify_rms_range(result.get_shape().lens(),
std::vector<std::size_t>({6, 2}))); std::vector<std::size_t>({6, 2})));
} }
...@@ -50,7 +50,7 @@ TEST_CASE(contiguous_test) ...@@ -50,7 +50,7 @@ TEST_CASE(contiguous_test)
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; std::vector<float> gold = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(contiguous_param_test) TEST_CASE(contiguous_param_test)
...@@ -74,7 +74,7 @@ TEST_CASE(contiguous_param_test) ...@@ -74,7 +74,7 @@ TEST_CASE(contiguous_param_test)
std::vector<float> results_vector(12); std::vector<float> results_vector(12);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11}; std::vector<float> gold = {0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(contiguous_dyn_test) TEST_CASE(contiguous_dyn_test)
...@@ -100,5 +100,5 @@ TEST_CASE(contiguous_dyn_test) ...@@ -100,5 +100,5 @@ TEST_CASE(contiguous_dyn_test)
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11}; std::vector<float> gold = {0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -78,23 +78,6 @@ TEST_CASE(conv_dyn_batch_test) ...@@ -78,23 +78,6 @@ TEST_CASE(conv_dyn_batch_test)
-0.06269585, 0.18658121, -0.03944227, 0.0111798, -0.17731084, 0.11789055, -0.09982193, -0.06269585, 0.18658121, -0.03944227, 0.0111798, -0.17731084, 0.11789055, -0.09982193,
0.08142821, 0.0729029, 0.11303909, 0.12735154, 0.03885292}; 0.08142821, 0.0729029, 0.11303909, 0.12735154, 0.03885292};
std::vector<float> sol = {-0.20817225,
0.87965256,
0.14958936,
-1.24887264,
-0.06540672,
0.20778663,
0.40456355,
-0.99900877,
0.4917807,
0.1994698,
0.64205718,
0.37798831,
-0.25315839,
0.44276932,
-0.16138598,
0.79344082};
migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {2, 3, 4, 4}}; migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {2, 3, 4, 4}};
migraphx::parameter_map params0; migraphx::parameter_map params0;
...@@ -104,8 +87,23 @@ TEST_CASE(conv_dyn_batch_test) ...@@ -104,8 +87,23 @@ TEST_CASE(conv_dyn_batch_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).back();
std::vector<float> results_vector(64); std::vector<float> results_vector(64);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {-0.20817225,
EXPECT(migraphx::verify::verify_range(results_vector, sol)); 0.87965256,
0.14958936,
-1.24887264,
-0.06540672,
0.20778663,
0.40456355,
-0.99900877,
0.4917807,
0.1994698,
0.64205718,
0.37798831,
-0.25315839,
0.44276932,
-0.16138598,
0.79344082};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv_dyn_img_shape_test) TEST_CASE(conv_dyn_img_shape_test)
...@@ -139,8 +137,6 @@ TEST_CASE(conv_dyn_img_shape_test) ...@@ -139,8 +137,6 @@ TEST_CASE(conv_dyn_img_shape_test)
0.15479768, 0.46534674, 0.16970931, 0.49704618, 0.07062198, 0.01678321, 0.15479768, 0.46534674, 0.16970931, 0.49704618, 0.07062198, 0.01678321,
0.53150934, 0.39244495, 0.9963813}; 0.53150934, 0.39244495, 0.9963813};
std::vector<float> sol = {6.1329393, 4.3199925, 5.448438, 3.8497565};
migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {1, 3, 4, 4}}; migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {1, 3, 4, 4}};
migraphx::parameter_map params0; migraphx::parameter_map params0;
...@@ -151,7 +147,9 @@ TEST_CASE(conv_dyn_img_shape_test) ...@@ -151,7 +147,9 @@ TEST_CASE(conv_dyn_img_shape_test)
std::vector<float> results_vector(72); std::vector<float> results_vector(72);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); std::vector<float> gold = {6.1329393, 4.3199925, 5.448438, 3.8497565};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
a = {0.95600171, 0.20768181, 0.82844489, 0.14928212, 0.51280462, 0.1359196, 0.68903648, a = {0.95600171, 0.20768181, 0.82844489, 0.14928212, 0.51280462, 0.1359196, 0.68903648,
0.84174772, 0.425509, 0.956926, 0.82533291, 0.33821531, 0.57576055, 0.75330186, 0.84174772, 0.425509, 0.956926, 0.82533291, 0.33821531, 0.57576055, 0.75330186,
...@@ -172,18 +170,18 @@ TEST_CASE(conv_dyn_img_shape_test) ...@@ -172,18 +170,18 @@ TEST_CASE(conv_dyn_img_shape_test)
0.14407301, 0.80968594, 0.38216188, 0.35692557, 0.2568538, 0.83587388, 0.43654904, 0.14407301, 0.80968594, 0.38216188, 0.35692557, 0.2568538, 0.83587388, 0.43654904,
0.04974508, 0.80375029, 0.25350374, 0.1820275, 0.23369029, 0.54358755}; 0.04974508, 0.80375029, 0.25350374, 0.1820275, 0.23369029, 0.54358755};
sol = {6.305986, gold = {6.305986,
5.564665, 5.564665,
6.122996, 6.122996,
5.7262855, 5.7262855,
5.5546584, 5.5546584,
5.779489, 5.779489,
5.798161, 5.798161,
5.160476, 5.160476,
6.702436, 6.702436,
5.4851074, 5.4851074,
6.227567, 6.227567,
5.2016754}; 5.2016754};
migraphx::shape input_fixed_shape1{migraphx::shape::float_type, {1, 3, 6, 5}}; migraphx::shape input_fixed_shape1{migraphx::shape::float_type, {1, 3, 6, 5}};
migraphx::parameter_map params1; migraphx::parameter_map params1;
...@@ -193,7 +191,7 @@ TEST_CASE(conv_dyn_img_shape_test) ...@@ -193,7 +191,7 @@ TEST_CASE(conv_dyn_img_shape_test)
result = p.eval(params1).back(); result = p.eval(params1).back();
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv_dyn_weights_shape_test) TEST_CASE(conv_dyn_weights_shape_test)
...@@ -221,27 +219,18 @@ TEST_CASE(conv_dyn_weights_shape_test) ...@@ -221,27 +219,18 @@ TEST_CASE(conv_dyn_weights_shape_test)
0.77388606, 0.1752363, 0.74631394, 0.24604889, 0.53600244, 0.22116457, 0.77388606, 0.1752363, 0.74631394, 0.24604889, 0.53600244, 0.22116457,
0.81217463, 0.10789447, 0.43083784, 0.63371852, 0.69742316, 0.09536905}; 0.81217463, 0.10789447, 0.43083784, 0.63371852, 0.69742316, 0.09536905};
std::vector<float> c = {0.98411968, std::vector<float> c = {0.98411968,
0.2899219, 0.2899219,
0.44638833, 0.44638833,
0.30390816, 0.30390816,
0.03989896, 0.03989896,
0.2445332, 0.2445332,
0.32700131, 0.32700131,
0.57517075, 0.57517075,
0.06956476, 0.06956476,
0.93079306, 0.93079306,
0.19882314, 0.19882314,
0.52940601}; 0.52940601};
std::vector<float> sol = {1.9939406,
2.2703054,
1.8896171,
2.062202,
2.3035214,
1.629366,
2.1606991,
2.1917608,
1.6797699};
migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}}; migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}};
...@@ -252,14 +241,23 @@ TEST_CASE(conv_dyn_weights_shape_test) ...@@ -252,14 +241,23 @@ TEST_CASE(conv_dyn_weights_shape_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).back();
std::vector<float> results_vector(72); std::vector<float> results_vector(72);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = {1.9939406,
EXPECT(migraphx::verify::verify_range(results_vector, sol)); 2.2703054,
1.8896171,
c = {0.98411968, 0.2899219, 0.44638833, 0.30390816, 0.03989896, 0.2445332, 0.32700131, 2.062202,
0.57517075, 0.06956476, 0.93079306, 0.19882314, 0.52940601, 0.35624753, 0.35938406, 2.3035214,
0.9111428, 0.88923574, 0.61040283, 0.2797513, 0.15479768, 0.46534674, 0.16970931, 1.629366,
0.49704618, 0.07062198, 0.01678321, 0.53150934, 0.39244495, 0.9963813}; 2.1606991,
sol = {6.1329393, 4.3199925, 5.448438, 3.8497565}; 2.1917608,
1.6797699};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
c = {0.98411968, 0.2899219, 0.44638833, 0.30390816, 0.03989896, 0.2445332, 0.32700131,
0.57517075, 0.06956476, 0.93079306, 0.19882314, 0.52940601, 0.35624753, 0.35938406,
0.9111428, 0.88923574, 0.61040283, 0.2797513, 0.15479768, 0.46534674, 0.16970931,
0.49704618, 0.07062198, 0.01678321, 0.53150934, 0.39244495, 0.9963813};
gold = {6.1329393, 4.3199925, 5.448438, 3.8497565};
migraphx::shape weights_fixed_shape1{migraphx::shape::float_type, {1, 3, 3, 3}}; migraphx::shape weights_fixed_shape1{migraphx::shape::float_type, {1, 3, 3, 3}};
migraphx::parameter_map params1; migraphx::parameter_map params1;
...@@ -269,7 +267,7 @@ TEST_CASE(conv_dyn_weights_shape_test) ...@@ -269,7 +267,7 @@ TEST_CASE(conv_dyn_weights_shape_test)
result = p.eval(params1).back(); result = p.eval(params1).back();
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv_dyn_img_same_upper_test) TEST_CASE(conv_dyn_img_same_upper_test)
...@@ -313,23 +311,6 @@ TEST_CASE(conv_dyn_img_same_upper_test) ...@@ -313,23 +311,6 @@ TEST_CASE(conv_dyn_img_same_upper_test)
7.9253986e-02, 7.3943835e-01, 1.7813577e-01, 1.0780835e-01, 4.2304707e-01, 7.9253986e-02, 7.3943835e-01, 1.7813577e-01, 1.0780835e-01, 4.2304707e-01,
4.0084350e-01, 1.1114500e-01, 4.4846520e-01, 5.0109702e-01}; 4.0084350e-01, 1.1114500e-01, 4.4846520e-01, 5.0109702e-01};
std::vector<float> sol = {3.013387,
3.7111127,
4.2946506,
3.579301,
4.5306826,
6.1262493,
6.332169,
4.495293,
4.46013,
6.0938954,
5.848162,
4.514299,
2.9587686,
4.117671,
3.5187216,
2.3236327};
migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {1, 3, 4, 4}}; migraphx::shape input_fixed_shape0{migraphx::shape::float_type, {1, 3, 4, 4}};
migraphx::parameter_map params0; migraphx::parameter_map params0;
...@@ -339,7 +320,23 @@ TEST_CASE(conv_dyn_img_same_upper_test) ...@@ -339,7 +320,23 @@ TEST_CASE(conv_dyn_img_same_upper_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).back();
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); std::vector<float> gold = {3.013387,
3.7111127,
4.2946506,
3.579301,
4.5306826,
6.1262493,
6.332169,
4.495293,
4.46013,
6.0938954,
5.848162,
4.514299,
2.9587686,
4.117671,
3.5187216,
2.3236327};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv_dyn_kernel_same_upper_test) TEST_CASE(conv_dyn_kernel_same_upper_test)
...@@ -361,47 +358,31 @@ TEST_CASE(conv_dyn_kernel_same_upper_test) ...@@ -361,47 +358,31 @@ TEST_CASE(conv_dyn_kernel_same_upper_test)
p.compile(migraphx::make_target("ref")); p.compile(migraphx::make_target("ref"));
std::vector<float> a = {0.63321185, 0.6466339, 0.8515352, 0.44240063, 0.5018913, 0.5068494, std::vector<float> a = {0.63321185, 0.6466339, 0.8515352, 0.44240063, 0.5018913, 0.5068494,
0.75330657, 0.7383877, 0.15870683, 0.8171611, 0.56118083, 0.87004256, 0.75330657, 0.7383877, 0.15870683, 0.8171611, 0.56118083, 0.87004256,
0.24401724, 0.8815178, 0.4222333, 0.27191755, 0.24401724, 0.8815178, 0.4222333, 0.27191755,
0.41633207, 0.2460619, 0.32004243, 0.6962248, 0.12284133, 0.2620491, 0.41633207, 0.2460619, 0.32004243, 0.6962248, 0.12284133, 0.2620491,
0.96931046, 0.6030955, 0.7623861, 0.2395751, 0.61440414, 0.577285, 0.96931046, 0.6030955, 0.7623861, 0.2395751, 0.61440414, 0.577285,
0.80087787, 0.12776066, 0.26566318, 0.46569306, 0.80087787, 0.12776066, 0.26566318, 0.46569306,
0.96701574, 0.3850145, 0.14165345, 0.5887347, 0.7152134, 0.5295342, 0.96701574, 0.3850145, 0.14165345, 0.5887347, 0.7152134, 0.5295342,
0.6303507, 0.4037548, 0.18556239, 0.79416305, 0.29107493, 0.18770285, 0.6303507, 0.4037548, 0.18556239, 0.79416305, 0.29107493, 0.18770285,
0.6870904, 0.30701008, 0.314684, 0.91075855}; 0.6870904, 0.30701008, 0.314684, 0.91075855};
std::vector<float> c = {2.8150102e-01, std::vector<float> c = {2.8150102e-01,
3.3198616e-01, 3.3198616e-01,
9.5149356e-01, 9.5149356e-01,
7.4039467e-02, 7.4039467e-02,
9.6555042e-01, 9.6555042e-01,
2.8815505e-01, 2.8815505e-01,
2.5100240e-01, 2.5100240e-01,
5.2186239e-01, 5.2186239e-01,
2.3850012e-01, 2.3850012e-01,
8.2963020e-01, 8.2963020e-01,
3.0763101e-04, 3.0763101e-04,
6.7026985e-01}; 6.7026985e-01};
std::vector<float> sol = {2.453681,
2.536207,
3.0187201,
1.7912633,
2.1738236,
2.9695358,
3.2319589,
1.859269,
2.5953722,
2.50734,
2.7736917,
1.2229807,
1.5900216,
0.9225286,
1.43048,
0.74341124};
migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}}; migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}};
...@@ -412,7 +393,23 @@ TEST_CASE(conv_dyn_kernel_same_upper_test) ...@@ -412,7 +393,23 @@ TEST_CASE(conv_dyn_kernel_same_upper_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).back();
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); std::vector<float> gold = {2.453681,
2.536207,
3.0187201,
1.7912633,
2.1738236,
2.9695358,
3.2319589,
1.859269,
2.5953722,
2.50734,
2.7736917,
1.2229807,
1.5900216,
0.9225286,
1.43048,
0.74341124};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv_dyn_kernel_same_lower_test) TEST_CASE(conv_dyn_kernel_same_lower_test)
...@@ -434,47 +431,31 @@ TEST_CASE(conv_dyn_kernel_same_lower_test) ...@@ -434,47 +431,31 @@ TEST_CASE(conv_dyn_kernel_same_lower_test)
p.compile(migraphx::make_target("ref")); p.compile(migraphx::make_target("ref"));
std::vector<float> a = {0.63321185, 0.6466339, 0.8515352, 0.44240063, 0.5018913, 0.5068494, std::vector<float> a = {0.63321185, 0.6466339, 0.8515352, 0.44240063, 0.5018913, 0.5068494,
0.75330657, 0.7383877, 0.15870683, 0.8171611, 0.56118083, 0.87004256, 0.75330657, 0.7383877, 0.15870683, 0.8171611, 0.56118083, 0.87004256,
0.24401724, 0.8815178, 0.4222333, 0.27191755, 0.24401724, 0.8815178, 0.4222333, 0.27191755,
0.41633207, 0.2460619, 0.32004243, 0.6962248, 0.12284133, 0.2620491, 0.41633207, 0.2460619, 0.32004243, 0.6962248, 0.12284133, 0.2620491,
0.96931046, 0.6030955, 0.7623861, 0.2395751, 0.61440414, 0.577285, 0.96931046, 0.6030955, 0.7623861, 0.2395751, 0.61440414, 0.577285,
0.80087787, 0.12776066, 0.26566318, 0.46569306, 0.80087787, 0.12776066, 0.26566318, 0.46569306,
0.96701574, 0.3850145, 0.14165345, 0.5887347, 0.7152134, 0.5295342, 0.96701574, 0.3850145, 0.14165345, 0.5887347, 0.7152134, 0.5295342,
0.6303507, 0.4037548, 0.18556239, 0.79416305, 0.29107493, 0.18770285, 0.6303507, 0.4037548, 0.18556239, 0.79416305, 0.29107493, 0.18770285,
0.6870904, 0.30701008, 0.314684, 0.91075855}; 0.6870904, 0.30701008, 0.314684, 0.91075855};
std::vector<float> c = {2.8150102e-01, std::vector<float> c = {2.8150102e-01,
3.3198616e-01, 3.3198616e-01,
9.5149356e-01, 9.5149356e-01,
7.4039467e-02, 7.4039467e-02,
9.6555042e-01, 9.6555042e-01,
2.8815505e-01, 2.8815505e-01,
2.5100240e-01, 2.5100240e-01,
5.2186239e-01, 5.2186239e-01,
2.3850012e-01, 2.3850012e-01,
8.2963020e-01, 8.2963020e-01,
3.0763101e-04, 3.0763101e-04,
6.7026985e-01}; 6.7026985e-01};
std::vector<float> sol = {0.91231215,
1.1416453,
1.00216,
1.6813052,
1.7131033,
2.453681,
2.536207,
3.0187201,
1.3293691,
2.1738236,
2.9695358,
3.2319589,
1.3228729,
2.5953722,
2.50734,
2.7736917};
migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}}; migraphx::shape weight_fixed_shape0{migraphx::shape::float_type, {1, 3, 2, 2}};
...@@ -485,7 +466,24 @@ TEST_CASE(conv_dyn_kernel_same_lower_test) ...@@ -485,7 +466,24 @@ TEST_CASE(conv_dyn_kernel_same_lower_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).back();
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, sol)); std::vector<float> gold = {0.91231215,
1.1416453,
1.00216,
1.6813052,
1.7131033,
2.453681,
2.536207,
3.0187201,
1.3293691,
2.1738236,
2.9695358,
3.2319589,
1.3228729,
2.5953722,
2.50734,
2.7736917};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv2d_padding_stride_test) TEST_CASE(conv2d_padding_stride_test)
...@@ -518,23 +516,6 @@ TEST_CASE(conv2d_padding_stride_test) ...@@ -518,23 +516,6 @@ TEST_CASE(conv2d_padding_stride_test)
-0.06269585, 0.18658121, -0.03944227, 0.0111798, -0.17731084, 0.11789055, -0.09982193, -0.06269585, 0.18658121, -0.03944227, 0.0111798, -0.17731084, 0.11789055, -0.09982193,
0.08142821, 0.0729029, 0.11303909, 0.12735154, 0.03885292}; 0.08142821, 0.0729029, 0.11303909, 0.12735154, 0.03885292};
std::vector<float> s = {-0.20817225,
0.87965256,
0.14958936,
-1.24887264,
-0.06540672,
0.20778663,
0.40456355,
-0.99900877,
0.4917807,
0.1994698,
0.64205718,
0.37798831,
-0.25315839,
0.44276932,
-0.16138598,
0.79344082};
migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}}; migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
...@@ -548,7 +529,24 @@ TEST_CASE(conv2d_padding_stride_test) ...@@ -548,7 +529,24 @@ TEST_CASE(conv2d_padding_stride_test)
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); std::vector<float> gold = {-0.20817225,
0.87965256,
0.14958936,
-1.24887264,
-0.06540672,
0.20778663,
0.40456355,
-0.99900877,
0.4917807,
0.1994698,
0.64205718,
0.37798831,
-0.25315839,
0.44276932,
-0.16138598,
0.79344082};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv2d_padding_test) TEST_CASE(conv2d_padding_test)
...@@ -581,18 +579,6 @@ TEST_CASE(conv2d_padding_test) ...@@ -581,18 +579,6 @@ TEST_CASE(conv2d_padding_test)
0.14747436, -0.06199479, -0.01166052, -0.12432006, -0.04494537, -0.17581205, 0.09475745, 0.14747436, -0.06199479, -0.01166052, -0.12432006, -0.04494537, -0.17581205, 0.09475745,
0.1149437, -0.1014564, 0.0274073, -0.01323579, -0.11092556}; 0.1149437, -0.1014564, 0.0274073, -0.01323579, -0.11092556};
std::vector<float> s = {
-0.0201216, 0.40407312, -0.39005592, -0.0631946, 0.37963012, -0.64611685, 0.1349397,
-0.54113752, 0.28533003, 0.27667275, -0.16442731, -0.181494, 0.30564839, 0.58744538,
0.32015014, 0.24969585, -0.27367792, -0.53308117, 0.41236052, 0.26136363, -0.01489828,
0.57652152, -0.38506854, 0.119615, 0.0437076, 0.04779706, 0.57887721, 0.23126155,
0.05695833, -0.68200272, 0.02063358, -0.10267162, 0.8062973, -0.38149622, -0.40134856,
-0.03353126, 0.38991132, -0.3478111, 0.03661491, 0.25783631, 0.62772679, -0.1961118,
0.76423508, -0.36241418, -0.20994355, -0.12368261, -0.9406727, 0.02340185, -0.08793129,
-0.02471633, -0.58163726, -0.02211772, -0.42014724, 0.77525634, 0.504951, -0.20537445,
-0.20369984, -0.83037728, -1.40423918, -0.46160448, -0.22944322, 0.36074194, 0.49579027,
0.46527559};
migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}}; migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
...@@ -606,7 +592,18 @@ TEST_CASE(conv2d_padding_test) ...@@ -606,7 +592,18 @@ TEST_CASE(conv2d_padding_test)
std::vector<float> results_vector(64); std::vector<float> results_vector(64);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); std::vector<float> gold = {
-0.0201216, 0.40407312, -0.39005592, -0.0631946, 0.37963012, -0.64611685, 0.1349397,
-0.54113752, 0.28533003, 0.27667275, -0.16442731, -0.181494, 0.30564839, 0.58744538,
0.32015014, 0.24969585, -0.27367792, -0.53308117, 0.41236052, 0.26136363, -0.01489828,
0.57652152, -0.38506854, 0.119615, 0.0437076, 0.04779706, 0.57887721, 0.23126155,
0.05695833, -0.68200272, 0.02063358, -0.10267162, 0.8062973, -0.38149622, -0.40134856,
-0.03353126, 0.38991132, -0.3478111, 0.03661491, 0.25783631, 0.62772679, -0.1961118,
0.76423508, -0.36241418, -0.20994355, -0.12368261, -0.9406727, 0.02340185, -0.08793129,
-0.02471633, -0.58163726, -0.02211772, -0.42014724, 0.77525634, 0.504951, -0.20537445,
-0.20369984, -0.83037728, -1.40423918, -0.46160448, -0.22944322, 0.36074194, 0.49579027,
0.46527559};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv2d_test) TEST_CASE(conv2d_test)
...@@ -642,22 +639,6 @@ TEST_CASE(conv2d_test) ...@@ -642,22 +639,6 @@ TEST_CASE(conv2d_test)
1.61106288e-02, -1.35080189e-01, 1.49512306e-01, 3.86456847e-02, 1.29330024e-01, 1.61106288e-02, -1.35080189e-01, 1.49512306e-01, 3.86456847e-02, 1.29330024e-01,
-3.22975963e-02, -5.60784787e-02, -5.41997552e-02, 4.78562862e-02}; -3.22975963e-02, -5.60784787e-02, -5.41997552e-02, 4.78562862e-02};
std::vector<float> s = {0.27039781,
0.19105849,
-0.06339942,
-0.65087199,
0.40867025,
0.05063812,
-0.14907975,
0.49018705,
-0.49197209,
0.33236548,
-0.39374301,
0.16012701,
0.06574871,
0.71606487,
-0.55201721,
-0.46427044};
migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}}; migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
...@@ -670,7 +651,24 @@ TEST_CASE(conv2d_test) ...@@ -670,7 +651,24 @@ TEST_CASE(conv2d_test)
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, s));
std::vector<float> gold = {0.27039781,
0.19105849,
-0.06339942,
-0.65087199,
0.40867025,
0.05063812,
-0.14907975,
0.49018705,
-0.49197209,
0.33236548,
-0.39374301,
0.16012701,
0.06574871,
0.71606487,
-0.55201721,
-0.46427044};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(conv3d_test) TEST_CASE(conv3d_test)
...@@ -706,22 +704,6 @@ TEST_CASE(conv3d_test) ...@@ -706,22 +704,6 @@ TEST_CASE(conv3d_test)
1.61106288e-02, -1.35080189e-01, 1.49512306e-01, 3.86456847e-02, 1.29330024e-01, 1.61106288e-02, -1.35080189e-01, 1.49512306e-01, 3.86456847e-02, 1.29330024e-01,
-3.22975963e-02, -5.60784787e-02, -5.41997552e-02, 4.78562862e-02}; -3.22975963e-02, -5.60784787e-02, -5.41997552e-02, 4.78562862e-02};
std::vector<float> s = {0.27039781,
0.19105849,
-0.06339942,
-0.65087199,
0.40867025,
0.05063812,
-0.14907975,
0.49018705,
-0.49197209,
0.33236548,
-0.39374301,
0.16012701,
0.06574871,
0.71606487,
-0.55201721,
-0.46427044};
migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4, 1}}; migraphx::shape a_shape{migraphx::shape::float_type, {2, 3, 4, 4, 1}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
...@@ -738,5 +720,21 @@ TEST_CASE(conv3d_test) ...@@ -738,5 +720,21 @@ TEST_CASE(conv3d_test)
std::vector<float> results_vector(16); std::vector<float> results_vector(16);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); std::vector<float> gold = {0.27039781,
0.19105849,
-0.06339942,
-0.65087199,
0.40867025,
0.05063812,
-0.14907975,
0.49018705,
-0.49197209,
0.33236548,
-0.39374301,
0.16012701,
0.06574871,
0.71606487,
-0.55201721,
-0.46427044};
EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -52,7 +52,7 @@ TEST_CASE(convolution_backwards_1d) ...@@ -52,7 +52,7 @@ TEST_CASE(convolution_backwards_1d)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_2d) TEST_CASE(convolution_backwards_2d)
...@@ -75,7 +75,7 @@ TEST_CASE(convolution_backwards_2d) ...@@ -75,7 +75,7 @@ TEST_CASE(convolution_backwards_2d)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_3d) TEST_CASE(convolution_backwards_3d)
...@@ -113,7 +113,7 @@ TEST_CASE(convolution_backwards_3d) ...@@ -113,7 +113,7 @@ TEST_CASE(convolution_backwards_3d)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_padding1) TEST_CASE(convolution_backwards_padding1)
...@@ -139,7 +139,7 @@ TEST_CASE(convolution_backwards_padding1) ...@@ -139,7 +139,7 @@ TEST_CASE(convolution_backwards_padding1)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_padding2) TEST_CASE(convolution_backwards_padding2)
...@@ -165,7 +165,7 @@ TEST_CASE(convolution_backwards_padding2) ...@@ -165,7 +165,7 @@ TEST_CASE(convolution_backwards_padding2)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_2stride) TEST_CASE(convolution_backwards_2stride)
...@@ -192,7 +192,7 @@ TEST_CASE(convolution_backwards_2stride) ...@@ -192,7 +192,7 @@ TEST_CASE(convolution_backwards_2stride)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_2dilation) TEST_CASE(convolution_backwards_2dilation)
...@@ -219,7 +219,7 @@ TEST_CASE(convolution_backwards_2dilation) ...@@ -219,7 +219,7 @@ TEST_CASE(convolution_backwards_2dilation)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_dyn_batch1) TEST_CASE(convolution_backwards_dyn_batch1)
...@@ -247,7 +247,7 @@ TEST_CASE(convolution_backwards_dyn_batch1) ...@@ -247,7 +247,7 @@ TEST_CASE(convolution_backwards_dyn_batch1)
27, 15, 9, 20, 33, 24, 13, 6, 13, 21, 15, 8}; 27, 15, 9, 20, 33, 24, 13, 6, 13, 21, 15, 8};
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(convolution_backwards_dyn_batch2) TEST_CASE(convolution_backwards_dyn_batch2)
...@@ -288,5 +288,5 @@ TEST_CASE(convolution_backwards_dyn_batch2) ...@@ -288,5 +288,5 @@ TEST_CASE(convolution_backwards_dyn_batch2)
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(cos_test) ...@@ -45,7 +45,7 @@ TEST_CASE(cos_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return cosf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return cosf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(cos_dyn_test) TEST_CASE(cos_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(cos_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(cos_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return cosf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return cosf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(cosh_test) ...@@ -45,7 +45,7 @@ TEST_CASE(cosh_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return coshf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return coshf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(cosh_dyn_test) TEST_CASE(cosh_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(cosh_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(cosh_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return coshf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return coshf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -47,7 +47,7 @@ TEST_CASE(dimensions_of_test0) ...@@ -47,7 +47,7 @@ TEST_CASE(dimensions_of_test0)
std::vector<int64_t> results_vector(3); std::vector<int64_t> results_vector(3);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<int64_t> gold = {2, 3, 4}; std::vector<int64_t> gold = {2, 3, 4};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(dimensions_of_test1) TEST_CASE(dimensions_of_test1)
...@@ -67,5 +67,5 @@ TEST_CASE(dimensions_of_test1) ...@@ -67,5 +67,5 @@ TEST_CASE(dimensions_of_test1)
std::vector<int64_t> results_vector(2); std::vector<int64_t> results_vector(2);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<int64_t> gold = {4, 4}; std::vector<int64_t> gold = {4, 4};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -46,7 +46,7 @@ TEST_CASE(div_test) ...@@ -46,7 +46,7 @@ TEST_CASE(div_test)
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold(data1.size()); std::vector<float> gold(data1.size());
std::transform(data1.begin(), data1.end(), data2.begin(), gold.begin(), std::divides<float>()); std::transform(data1.begin(), data1.end(), data2.begin(), gold.begin(), std::divides<float>());
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(div_dyn_test) TEST_CASE(div_dyn_test)
...@@ -72,5 +72,5 @@ TEST_CASE(div_dyn_test) ...@@ -72,5 +72,5 @@ TEST_CASE(div_dyn_test)
std::vector<float> gold(x_data.size()); std::vector<float> gold(x_data.size());
std::transform( std::transform(
x_data.begin(), x_data.end(), y_data.begin(), gold.begin(), std::divides<float>()); x_data.begin(), x_data.end(), y_data.begin(), gold.begin(), std::divides<float>());
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -36,38 +36,27 @@ void dot_2d_test() ...@@ -36,38 +36,27 @@ void dot_2d_test()
{ {
migraphx::program p; migraphx::program p;
auto* mm = p.get_main_module(); auto* mm = p.get_main_module();
std::vector<T> a = {-0.00925222, 0.56250403, 0.70107397, 0.75402161, -0.505885, std::vector<T> a = {-0.00925222, 0.56250403, 0.70107397, 0.75402161, -0.505885,
1.33628943, -0.11413, -0.31270559, 1.59336732, -0.19361027, 1.33628943, -0.11413, -0.31270559, 1.59336732, -0.19361027,
-0.91620867, 0.40108416, -0.06969921, 0.68483471, -0.39906632, -0.91620867, 0.40108416, -0.06969921, 0.68483471, -0.39906632,
-1.66423624, 0.69040076, -1.31490171, -0.11282616, -0.79391814}; -1.66423624, 0.69040076, -1.31490171, -0.11282616, -0.79391814};
std::vector<float> b = {6.09568541e-01, std::vector<T> b = {6.09568541e-01,
-6.10527007e-01, -6.10527007e-01,
3.66646462e-01, 3.66646462e-01,
1.18951101e-01, 1.18951101e-01,
5.58777432e-01, 5.58777432e-01,
-3.21296298e-01, -3.21296298e-01,
-5.95997198e-01, -5.95997198e-01,
-5.01425721e-01, -5.01425721e-01,
-2.84606807e-01, -2.84606807e-01,
-5.73673557e-01, -5.73673557e-01,
-8.99430260e-01, -8.99430260e-01,
-4.25103093e-01, -4.25103093e-01,
1.53027987e+00, 1.53027987e+00,
-3.81407415e-04, -3.81407415e-04,
-3.29650255e-01}; -3.29650255e-01};
std::vector<float> c = {-1.56327541e+00,
-7.09570140e-01,
-5.37424982e-01,
-2.22994831e-01,
-2.15586437e+00,
2.09177941e-03,
-1.47279677e+00,
2.02627040e-01,
-6.04527691e-01,
-1.29885596e+00,
2.16294914e+00,
-1.48101497e-01};
migraphx::shape a_shape{migraphx::shape::get_type<T>{}, {4, 5}}; migraphx::shape a_shape{migraphx::shape::get_type<T>{}, {4, 5}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {5, 3}}; migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {5, 3}};
...@@ -77,7 +66,20 @@ void dot_2d_test() ...@@ -77,7 +66,20 @@ void dot_2d_test()
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<T> results_vector; std::vector<T> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(c, results_vector)); std::vector<T> gold = {-1.56327541e+00,
-7.09570140e-01,
-5.37424982e-01,
-2.22994831e-01,
-2.15586437e+00,
2.09177941e-03,
-1.47279677e+00,
2.02627040e-01,
-6.04527691e-01,
-1.29885596e+00,
2.16294914e+00,
-1.48101497e-01};
EXPECT(migraphx::verify::verify_range_with_tolerance(
results_vector, migraphx::verify::expected{gold}, migraphx::verify::tolerance{9e-6}));
} }
TEST_CASE_REGISTER(dot_2d_test<float>) TEST_CASE_REGISTER(dot_2d_test<float>)
TEST_CASE_REGISTER(dot_2d_test<double>) TEST_CASE_REGISTER(dot_2d_test<double>)
...@@ -87,38 +89,38 @@ void dot_4d_test() ...@@ -87,38 +89,38 @@ void dot_4d_test()
{ {
migraphx::program p; migraphx::program p;
auto* mm = p.get_main_module(); auto* mm = p.get_main_module();
std::vector<T> a = {-0.00925222, 0.56250403, 0.70107397, 0.75402161, -0.505885, std::vector<T> a = {-0.00925222, 0.56250403, 0.70107397, 0.75402161, -0.505885,
1.33628943, -0.11413, -0.31270559, 1.59336732, -0.19361027, 1.33628943, -0.11413, -0.31270559, 1.59336732, -0.19361027,
-0.91620867, 0.40108416, -0.06969921, 0.68483471, -0.39906632, -0.91620867, 0.40108416, -0.06969921, 0.68483471, -0.39906632,
-1.66423624, 0.69040076, -1.31490171, -0.11282616, -0.79391814}; -1.66423624, 0.69040076, -1.31490171, -0.11282616, -0.79391814};
std::vector<float> b = {6.09568541e-01, std::vector<T> b = {6.09568541e-01,
-6.10527007e-01, -6.10527007e-01,
3.66646462e-01, 3.66646462e-01,
1.18951101e-01, 1.18951101e-01,
5.58777432e-01, 5.58777432e-01,
-3.21296298e-01, -3.21296298e-01,
-5.95997198e-01, -5.95997198e-01,
-5.01425721e-01, -5.01425721e-01,
-2.84606807e-01, -2.84606807e-01,
-5.73673557e-01, -5.73673557e-01,
-8.99430260e-01, -8.99430260e-01,
-4.25103093e-01, -4.25103093e-01,
1.53027987e+00, 1.53027987e+00,
-3.81407415e-04, -3.81407415e-04,
-3.29650255e-01}; -3.29650255e-01};
std::vector<float> c = {-1.56327541e+00, std::vector<T> gold = {-1.56327541e+00,
-7.09570140e-01, -7.09570140e-01,
-5.37424982e-01, -5.37424982e-01,
-2.22994831e-01, -2.22994831e-01,
-2.15586437e+00, -2.15586437e+00,
2.09177941e-03, 2.09177941e-03,
-1.47279677e+00, -1.47279677e+00,
2.02627040e-01, 2.02627040e-01,
-6.04527691e-01, -6.04527691e-01,
-1.29885596e+00, -1.29885596e+00,
2.16294914e+00, 2.16294914e+00,
-1.48101497e-01}; -1.48101497e-01};
migraphx::shape a_shape{migraphx::shape::get_type<T>{}, {1, 1, 4, 5}}; migraphx::shape a_shape{migraphx::shape::get_type<T>{}, {1, 1, 4, 5}};
auto al = mm->add_literal(migraphx::literal{a_shape, a}); auto al = mm->add_literal(migraphx::literal{a_shape, a});
migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {1, 1, 5, 3}}; migraphx::shape b_shape{migraphx::shape::get_type<T>{}, {1, 1, 5, 3}};
...@@ -128,8 +130,10 @@ void dot_4d_test() ...@@ -128,8 +130,10 @@ void dot_4d_test()
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<T> results_vector; std::vector<T> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(c, results_vector)); EXPECT(migraphx::verify::verify_range_with_tolerance(
results_vector, migraphx::verify::expected{gold}, migraphx::verify::tolerance{9e-6}));
} }
TEST_CASE_REGISTER(dot_4d_test<float>) TEST_CASE_REGISTER(dot_4d_test<float>)
TEST_CASE_REGISTER(dot_4d_test<double>) TEST_CASE_REGISTER(dot_4d_test<double>)
...@@ -166,24 +170,24 @@ TEST_CASE(dot_3D_test) ...@@ -166,24 +170,24 @@ TEST_CASE(dot_3D_test)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {0.18208394, std::vector<float> gold = {0.18208394,
-0.49276402, -0.49276402,
0.87189133, 0.87189133,
0.75150114, 0.75150114,
-0.55909610, -0.55909610,
1.00521735, 1.00521735,
-0.95536130, -0.95536130,
2.27996211, 2.27996211,
0.06239879, 0.06239879,
0.74700068, 0.74700068,
-0.01570983, -0.01570983,
-0.85920856, -0.85920856,
-0.59070835, -0.59070835,
-1.70729902, -1.70729902,
0.40245487, 0.40245487,
1.80182751}; 1.80182751};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_3D_C_test0) TEST_CASE(dot_3D_C_test0)
...@@ -242,24 +246,24 @@ TEST_CASE(dot_3D_C_test0) ...@@ -242,24 +246,24 @@ TEST_CASE(dot_3D_C_test0)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {0.18208394, std::vector<float> gold = {0.18208394,
-0.49276402, -0.49276402,
0.87189133, 0.87189133,
0.75150114, 0.75150114,
-0.55909610, -0.55909610,
1.00521735, 1.00521735,
-0.95536130, -0.95536130,
2.27996211, 2.27996211,
0.06239879, 0.06239879,
0.74700068, 0.74700068,
-0.01570983, -0.01570983,
-0.85920856, -0.85920856,
-0.59070835, -0.59070835,
-1.70729902, -1.70729902,
0.40245487, 0.40245487,
1.80182751}; 1.80182751};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_3D_C_test1) TEST_CASE(dot_3D_C_test1)
...@@ -309,16 +313,16 @@ TEST_CASE(dot_3D_C_test1) ...@@ -309,16 +313,16 @@ TEST_CASE(dot_3D_C_test1)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {0.18208394, std::vector<float> gold = {0.18208394,
-0.49276402, -0.49276402,
0.87189133, 0.87189133,
0.75150114, 0.75150114,
-0.55909610, -0.55909610,
1.00521735, 1.00521735,
-0.95536130, -0.95536130,
2.27996211}; 2.27996211};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_4D_test1) TEST_CASE(dot_4D_test1)
...@@ -351,13 +355,13 @@ TEST_CASE(dot_4D_test1) ...@@ -351,13 +355,13 @@ TEST_CASE(dot_4D_test1)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {0.26735861, -4.30770895, 1.05257728, -1.19954265, 0.50493170, std::vector<float> gold = {0.26735861, -4.30770895, 1.05257728, -1.19954265, 0.50493170,
-0.18729756, 1.09137941, -1.09298312, 3.42956915, -0.41681939, -0.18729756, 1.09137941, -1.09298312, 3.42956915, -0.41681939,
0.17833257, 0.26040336, 0.15351280, 1.87632715, -0.63545406, 0.17833257, 0.26040336, 0.15351280, 1.87632715, -0.63545406,
-0.95467340, -1.74728628, -2.42477030, 0.76262372, 0.15539164, -0.95467340, -1.74728628, -2.42477030, 0.76262372, 0.15539164,
3.32281958, 0.96769613, 0.43727545, 2.43019906}; 3.32281958, 0.96769613, 0.43727545, 2.43019906};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_4D_alpha_beta_test) TEST_CASE(dot_4D_alpha_beta_test)
...@@ -405,13 +409,13 @@ TEST_CASE(dot_4D_alpha_beta_test) ...@@ -405,13 +409,13 @@ TEST_CASE(dot_4D_alpha_beta_test)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {-0.91147203, 0.47540785, -0.30313587, 0.43325099, -0.43711586, std::vector<float> gold = {-0.91147203, 0.47540785, -0.30313587, 0.43325099, -0.43711586,
0.50928632, 0.06919868, -0.80382802, -0.05125718, -0.06685650, 0.50928632, 0.06919868, -0.80382802, -0.05125718, -0.06685650,
-0.06972163, 0.32407764, 0.45677396, 0.25909489, 0.56911252, -0.06972163, 0.32407764, 0.45677396, 0.25909489, 0.56911252,
-0.17183724, 0.10858734, 0.39406289, 0.04662959, 1.07979824, -0.17183724, 0.10858734, 0.39406289, 0.04662959, 1.07979824,
0.40355016, 0.52410648, -0.31728447, 1.09550845}; 0.40355016, 0.52410648, -0.31728447, 1.09550845};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_4D_alpha_beta_C_test) TEST_CASE(dot_4D_alpha_beta_C_test)
...@@ -457,13 +461,13 @@ TEST_CASE(dot_4D_alpha_beta_C_test) ...@@ -457,13 +461,13 @@ TEST_CASE(dot_4D_alpha_beta_C_test)
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
std::vector<float> m_res = {-0.91147203, 0.47540785, -0.30313587, 0.43325099, -0.43711586, std::vector<float> gold = {-0.91147203, 0.47540785, -0.30313587, 0.43325099, -0.43711586,
0.50928632, 0.06919868, -0.80382802, -0.05125718, -0.06685650, 0.50928632, 0.06919868, -0.80382802, -0.05125718, -0.06685650,
-0.06972163, 0.32407764, 0.45677396, 0.25909489, 0.56911252, -0.06972163, 0.32407764, 0.45677396, 0.25909489, 0.56911252,
-0.17183724, 0.10858734, 0.39406289, 0.04662959, 1.07979824, -0.17183724, 0.10858734, 0.39406289, 0.04662959, 1.07979824,
0.40355016, 0.52410648, -0.31728447, 1.09550845}; 0.40355016, 0.52410648, -0.31728447, 1.09550845};
EXPECT(migraphx::verify::verify_range(m, m_res)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_2D_C_test0) TEST_CASE(dot_2D_C_test0)
...@@ -519,7 +523,7 @@ TEST_CASE(dot_2D_C_test0) ...@@ -519,7 +523,7 @@ TEST_CASE(dot_2D_C_test0)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vv_inner_product_1) TEST_CASE(dot_vv_inner_product_1)
...@@ -555,7 +559,7 @@ TEST_CASE(dot_vv_inner_product_1) ...@@ -555,7 +559,7 @@ TEST_CASE(dot_vv_inner_product_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vv_inner_product_2) TEST_CASE(dot_vv_inner_product_2)
...@@ -593,7 +597,7 @@ TEST_CASE(dot_vv_inner_product_2) ...@@ -593,7 +597,7 @@ TEST_CASE(dot_vv_inner_product_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vm_1) TEST_CASE(dot_vm_1)
...@@ -628,7 +632,7 @@ TEST_CASE(dot_vm_1) ...@@ -628,7 +632,7 @@ TEST_CASE(dot_vm_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vm_2) TEST_CASE(dot_vm_2)
...@@ -665,7 +669,7 @@ TEST_CASE(dot_vm_2) ...@@ -665,7 +669,7 @@ TEST_CASE(dot_vm_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vm_3) TEST_CASE(dot_vm_3)
...@@ -711,7 +715,7 @@ TEST_CASE(dot_vm_3) ...@@ -711,7 +715,7 @@ TEST_CASE(dot_vm_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_vm_4) TEST_CASE(dot_vm_4)
...@@ -758,7 +762,7 @@ TEST_CASE(dot_vm_4) ...@@ -758,7 +762,7 @@ TEST_CASE(dot_vm_4)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mv_1) TEST_CASE(dot_mv_1)
...@@ -795,7 +799,7 @@ TEST_CASE(dot_mv_1) ...@@ -795,7 +799,7 @@ TEST_CASE(dot_mv_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mv_2) TEST_CASE(dot_mv_2)
...@@ -834,7 +838,7 @@ TEST_CASE(dot_mv_2) ...@@ -834,7 +838,7 @@ TEST_CASE(dot_mv_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mv_3) TEST_CASE(dot_mv_3)
...@@ -878,7 +882,7 @@ TEST_CASE(dot_mv_3) ...@@ -878,7 +882,7 @@ TEST_CASE(dot_mv_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm1_1) TEST_CASE(dot_mm1_1)
...@@ -929,7 +933,7 @@ TEST_CASE(dot_mm1_1) ...@@ -929,7 +933,7 @@ TEST_CASE(dot_mm1_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm1_2) TEST_CASE(dot_mm1_2)
...@@ -982,7 +986,7 @@ TEST_CASE(dot_mm1_2) ...@@ -982,7 +986,7 @@ TEST_CASE(dot_mm1_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm2_1) TEST_CASE(dot_mm2_1)
...@@ -1024,7 +1028,7 @@ TEST_CASE(dot_mm2_1) ...@@ -1024,7 +1028,7 @@ TEST_CASE(dot_mm2_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm2_2) TEST_CASE(dot_mm2_2)
...@@ -1067,7 +1071,7 @@ TEST_CASE(dot_mm2_2) ...@@ -1067,7 +1071,7 @@ TEST_CASE(dot_mm2_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm2_3) TEST_CASE(dot_mm2_3)
...@@ -1116,7 +1120,7 @@ TEST_CASE(dot_mm2_3) ...@@ -1116,7 +1120,7 @@ TEST_CASE(dot_mm2_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_mm2_4) TEST_CASE(dot_mm2_4)
...@@ -1162,7 +1166,7 @@ TEST_CASE(dot_mm2_4) ...@@ -1162,7 +1166,7 @@ TEST_CASE(dot_mm2_4)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(dot_dyn_2D_test) TEST_CASE(dot_dyn_2D_test)
...@@ -1202,19 +1206,19 @@ TEST_CASE(dot_dyn_2D_test) ...@@ -1202,19 +1206,19 @@ TEST_CASE(dot_dyn_2D_test)
auto result = p.eval(params).back(); auto result = p.eval(params).back();
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> c = {-1.56327541e+00, std::vector<float> gold = {-1.56327541e+00,
-7.09570140e-01, -7.09570140e-01,
-5.37424982e-01, -5.37424982e-01,
-2.22994831e-01, -2.22994831e-01,
-2.15586437e+00, -2.15586437e+00,
2.09177941e-03, 2.09177941e-03,
-1.47279677e+00, -1.47279677e+00,
2.02627040e-01, 2.02627040e-01,
-6.04527691e-01, -6.04527691e-01,
-1.29885596e+00, -1.29885596e+00,
2.16294914e+00, 2.16294914e+00,
-1.48101497e-01}; -1.48101497e-01};
EXPECT(migraphx::verify::verify_range(c, results_vector)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(dot_dyn_4D_test) TEST_CASE(dot_dyn_4D_test)
...@@ -1256,19 +1260,19 @@ TEST_CASE(dot_dyn_4D_test) ...@@ -1256,19 +1260,19 @@ TEST_CASE(dot_dyn_4D_test)
auto result = p.eval(params).back(); auto result = p.eval(params).back();
std::vector<float> results_vector; std::vector<float> results_vector;
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> c = {-1.56327541e+00, std::vector<float> gold = {-1.56327541e+00,
-7.09570140e-01, -7.09570140e-01,
-5.37424982e-01, -5.37424982e-01,
-2.22994831e-01, -2.22994831e-01,
-2.15586437e+00, -2.15586437e+00,
2.09177941e-03, 2.09177941e-03,
-1.47279677e+00, -1.47279677e+00,
2.02627040e-01, 2.02627040e-01,
-6.04527691e-01, -6.04527691e-01,
-1.29885596e+00, -1.29885596e+00,
2.16294914e+00, 2.16294914e+00,
-1.48101497e-01}; -1.48101497e-01};
EXPECT(migraphx::verify::verify_range(c, results_vector)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(quant_dot_2args_multi4_1) TEST_CASE(quant_dot_2args_multi4_1)
...@@ -1295,7 +1299,7 @@ TEST_CASE(quant_dot_2args_multi4_1) ...@@ -1295,7 +1299,7 @@ TEST_CASE(quant_dot_2args_multi4_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_multi4_2) TEST_CASE(quant_dot_2args_multi4_2)
...@@ -1323,7 +1327,7 @@ TEST_CASE(quant_dot_2args_multi4_2) ...@@ -1323,7 +1327,7 @@ TEST_CASE(quant_dot_2args_multi4_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_multi4_3) TEST_CASE(quant_dot_2args_multi4_3)
...@@ -1351,7 +1355,7 @@ TEST_CASE(quant_dot_2args_multi4_3) ...@@ -1351,7 +1355,7 @@ TEST_CASE(quant_dot_2args_multi4_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_multi4_4) TEST_CASE(quant_dot_2args_multi4_4)
...@@ -1380,7 +1384,7 @@ TEST_CASE(quant_dot_2args_multi4_4) ...@@ -1380,7 +1384,7 @@ TEST_CASE(quant_dot_2args_multi4_4)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_general_1) TEST_CASE(quant_dot_2args_general_1)
...@@ -1405,7 +1409,7 @@ TEST_CASE(quant_dot_2args_general_1) ...@@ -1405,7 +1409,7 @@ TEST_CASE(quant_dot_2args_general_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_general_2) TEST_CASE(quant_dot_2args_general_2)
...@@ -1432,7 +1436,7 @@ TEST_CASE(quant_dot_2args_general_2) ...@@ -1432,7 +1436,7 @@ TEST_CASE(quant_dot_2args_general_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_general_3) TEST_CASE(quant_dot_2args_general_3)
...@@ -1460,7 +1464,7 @@ TEST_CASE(quant_dot_2args_general_3) ...@@ -1460,7 +1464,7 @@ TEST_CASE(quant_dot_2args_general_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_2args_general_4) TEST_CASE(quant_dot_2args_general_4)
...@@ -1488,7 +1492,7 @@ TEST_CASE(quant_dot_2args_general_4) ...@@ -1488,7 +1492,7 @@ TEST_CASE(quant_dot_2args_general_4)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_general_1) TEST_CASE(quant_dot_3args_general_1)
...@@ -1518,7 +1522,7 @@ TEST_CASE(quant_dot_3args_general_1) ...@@ -1518,7 +1522,7 @@ TEST_CASE(quant_dot_3args_general_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_general_2) TEST_CASE(quant_dot_3args_general_2)
...@@ -1546,7 +1550,7 @@ TEST_CASE(quant_dot_3args_general_2) ...@@ -1546,7 +1550,7 @@ TEST_CASE(quant_dot_3args_general_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_general_3) TEST_CASE(quant_dot_3args_general_3)
...@@ -1577,7 +1581,7 @@ TEST_CASE(quant_dot_3args_general_3) ...@@ -1577,7 +1581,7 @@ TEST_CASE(quant_dot_3args_general_3)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_general_4) TEST_CASE(quant_dot_3args_general_4)
...@@ -1608,7 +1612,7 @@ TEST_CASE(quant_dot_3args_general_4) ...@@ -1608,7 +1612,7 @@ TEST_CASE(quant_dot_3args_general_4)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_general_5) TEST_CASE(quant_dot_3args_general_5)
...@@ -1640,7 +1644,7 @@ TEST_CASE(quant_dot_3args_general_5) ...@@ -1640,7 +1644,7 @@ TEST_CASE(quant_dot_3args_general_5)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_batch_1) TEST_CASE(quant_dot_3args_batch_1)
...@@ -1674,7 +1678,7 @@ TEST_CASE(quant_dot_3args_batch_1) ...@@ -1674,7 +1678,7 @@ TEST_CASE(quant_dot_3args_batch_1)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
TEST_CASE(quant_dot_3args_batch_2) TEST_CASE(quant_dot_3args_batch_2)
...@@ -1713,5 +1717,5 @@ TEST_CASE(quant_dot_3args_batch_2) ...@@ -1713,5 +1717,5 @@ TEST_CASE(quant_dot_3args_batch_2)
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<float> m; std::vector<float> m;
result.visit([&](auto output) { m.assign(output.begin(), output.end()); }); result.visit([&](auto output) { m.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(m, gold)); EXPECT(migraphx::verify::verify_rms_range(m, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(elu_test) ...@@ -45,7 +45,7 @@ TEST_CASE(elu_test)
std::vector<float> results_vector(4); std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold{elu(alpha, -1), elu(alpha, 2), elu(alpha, -3), elu(alpha, 4)}; std::vector<float> gold{elu(alpha, -1), elu(alpha, 2), elu(alpha, -3), elu(alpha, 4)};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(elu_dyn_test) TEST_CASE(elu_dyn_test)
...@@ -67,5 +67,5 @@ TEST_CASE(elu_dyn_test) ...@@ -67,5 +67,5 @@ TEST_CASE(elu_dyn_test)
std::vector<float> results_vector(4); std::vector<float> results_vector(4);
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<float> gold{elu(alpha, -1), elu(alpha, 2), elu(alpha, -3), elu(alpha, 4)}; std::vector<float> gold{elu(alpha, -1), elu(alpha, 2), elu(alpha, -3), elu(alpha, 4)};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(erf_test) ...@@ -45,7 +45,7 @@ TEST_CASE(erf_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return erff(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return erff(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(erf_dyn_test) TEST_CASE(erf_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(erf_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(erf_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return erff(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return erff(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(exp_test) ...@@ -45,7 +45,7 @@ TEST_CASE(exp_test)
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return expf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return expf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(exp_dyn_test) TEST_CASE(exp_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(exp_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(exp_dyn_test)
std::vector<float> gold = input_data; std::vector<float> gold = input_data;
std::transform( std::transform(
gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return expf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return expf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment