"test/srt/git@developer.sourcefind.cn:change/sglang.git" did not exist on "b6c14ec0b4f3d7f744c734a3835298b3242a2b90"
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
...@@ -51,7 +51,7 @@ TEST_CASE(fill_static_int) ...@@ -51,7 +51,7 @@ TEST_CASE(fill_static_int)
std::vector<int64_t> results_vector; std::vector<int64_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()); });
std::vector<int64_t> gold(48, 3); std::vector<int64_t> gold(48, 3);
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(fill_dyn_float) TEST_CASE(fill_dyn_float)
...@@ -75,7 +75,7 @@ TEST_CASE(fill_dyn_float) ...@@ -75,7 +75,7 @@ TEST_CASE(fill_dyn_float)
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> gold(72, 7.36); std::vector<float> gold(72, 7.36);
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(fill_var_default_value) TEST_CASE(fill_var_default_value)
...@@ -98,5 +98,5 @@ TEST_CASE(fill_var_default_value) ...@@ -98,5 +98,5 @@ TEST_CASE(fill_var_default_value)
std::vector<int64_t> results_vector; std::vector<int64_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()); });
std::vector<int64_t> gold(48, 2); std::vector<int64_t> gold(48, 2);
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(floor_test) ...@@ -45,7 +45,7 @@ TEST_CASE(floor_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 floor(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return floor(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(floor_dyn_test) TEST_CASE(floor_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(floor_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(floor_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 floor(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return floor(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(fmod_test) ...@@ -45,7 +45,7 @@ TEST_CASE(fmod_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{-1, 0, -3}; std::vector<float> gold{-1, 0, -3};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(fmod_dyn_test) TEST_CASE(fmod_dyn_test)
...@@ -73,7 +73,7 @@ TEST_CASE(fmod_dyn_test) ...@@ -73,7 +73,7 @@ TEST_CASE(fmod_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{-1, 0, -3}; std::vector<float> gold{-1, 0, -3};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(fmod_float_test) TEST_CASE(fmod_float_test)
...@@ -92,5 +92,5 @@ TEST_CASE(fmod_float_test) ...@@ -92,5 +92,5 @@ TEST_CASE(fmod_float_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{-1.2f, 0.5f, -3.3f}; std::vector<float> gold{-1.2f, 0.5f, -3.3f};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -52,7 +52,7 @@ TEST_CASE(gather_non_std_test) ...@@ -52,7 +52,7 @@ TEST_CASE(gather_non_std_test)
0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f, 0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f}; 0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f, 0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f};
std::vector<float> res_data; std::vector<float> res_data;
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
} }
...@@ -75,7 +75,7 @@ TEST_CASE(gather_test_1) ...@@ -75,7 +75,7 @@ TEST_CASE(gather_test_1)
std::vector<float> res_data(4 * 5); std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f}; std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_2) TEST_CASE(gather_test_2)
...@@ -97,7 +97,7 @@ TEST_CASE(gather_test_2) ...@@ -97,7 +97,7 @@ TEST_CASE(gather_test_2)
std::vector<float> res_data(4 * 5); std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f}; std::vector<float> golden = {0.5f, 1.5f, 2.5f, 6.5f, 7.5f, 8.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_3) TEST_CASE(gather_test_3)
...@@ -119,7 +119,7 @@ TEST_CASE(gather_test_3) ...@@ -119,7 +119,7 @@ TEST_CASE(gather_test_3)
std::vector<float> res_data(4 * 5); std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f}; std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_4) TEST_CASE(gather_test_4)
...@@ -141,7 +141,7 @@ TEST_CASE(gather_test_4) ...@@ -141,7 +141,7 @@ TEST_CASE(gather_test_4)
std::vector<float> res_data(4 * 5); std::vector<float> res_data(4 * 5);
std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f}; std::vector<float> golden = {0.5f, 2.5f, 3.5f, 5.5f, 6.5f, 8.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_5) TEST_CASE(gather_test_5)
...@@ -164,7 +164,7 @@ TEST_CASE(gather_test_5) ...@@ -164,7 +164,7 @@ TEST_CASE(gather_test_5)
std::vector<float> res_data{}; std::vector<float> res_data{};
std::vector<float> golden = {0.5f, 3.5f, 6.5f}; std::vector<float> golden = {0.5f, 3.5f, 6.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_6) TEST_CASE(gather_test_6)
...@@ -187,7 +187,7 @@ TEST_CASE(gather_test_6) ...@@ -187,7 +187,7 @@ TEST_CASE(gather_test_6)
std::vector<float> res_data{}; std::vector<float> res_data{};
std::vector<float> golden = {0.5f, 3.5f, 6.5f}; std::vector<float> golden = {0.5f, 3.5f, 6.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_test_7) TEST_CASE(gather_test_7)
...@@ -210,7 +210,7 @@ TEST_CASE(gather_test_7) ...@@ -210,7 +210,7 @@ TEST_CASE(gather_test_7)
std::vector<float> res_data{}; std::vector<float> res_data{};
std::vector<float> golden = {0.5f}; std::vector<float> golden = {0.5f};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, golden)); EXPECT(migraphx::verify::verify_rms_range(res_data, golden));
} }
TEST_CASE(gather_dyn_test0) TEST_CASE(gather_dyn_test0)
...@@ -243,7 +243,7 @@ TEST_CASE(gather_dyn_test0) ...@@ -243,7 +243,7 @@ TEST_CASE(gather_dyn_test0)
std::vector<int> gold = {1, 2, 4, 5}; std::vector<int> gold = {1, 2, 4, 5};
std::vector<int> results_vector(2 * 1 * 2); std::vector<int> results_vector(2 * 1 * 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));
migraphx::shape sfinal{migraphx::shape::int32_type, {2, 1, 2}}; migraphx::shape sfinal{migraphx::shape::int32_type, {2, 1, 2}};
EXPECT(result.get_shape() == sfinal); EXPECT(result.get_shape() == sfinal);
} }
...@@ -280,7 +280,7 @@ TEST_CASE(gather_dyn_test1) ...@@ -280,7 +280,7 @@ TEST_CASE(gather_dyn_test1)
std::vector<int> results_vector(1 * 2 * 4); std::vector<int> results_vector(1 * 2 * 4);
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));
migraphx::shape sfinal{migraphx::shape::int32_type, {1, 2, 4}}; migraphx::shape sfinal{migraphx::shape::int32_type, {1, 2, 4}};
EXPECT(result.get_shape() == sfinal); EXPECT(result.get_shape() == sfinal);
} }
...@@ -52,7 +52,7 @@ TEST_CASE(gathernd_test_1) ...@@ -52,7 +52,7 @@ TEST_CASE(gathernd_test_1)
std::vector<float> gold{0, 3}; std::vector<float> gold{0, 3};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_test_2) TEST_CASE(gathernd_test_2)
...@@ -77,7 +77,7 @@ TEST_CASE(gathernd_test_2) ...@@ -77,7 +77,7 @@ TEST_CASE(gathernd_test_2)
std::vector<float> gold{2, 3, 0, 1}; std::vector<float> gold{2, 3, 0, 1};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_test_3) TEST_CASE(gathernd_test_3)
...@@ -102,7 +102,7 @@ TEST_CASE(gathernd_test_3) ...@@ -102,7 +102,7 @@ TEST_CASE(gathernd_test_3)
std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5}; std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_test_4) TEST_CASE(gathernd_test_4)
...@@ -128,7 +128,7 @@ TEST_CASE(gathernd_test_4) ...@@ -128,7 +128,7 @@ TEST_CASE(gathernd_test_4)
std::vector<float> gold{0, 1, 2, 3, 4, 5, 18, 19, 20, 21, 22, 23}; std::vector<float> gold{0, 1, 2, 3, 4, 5, 18, 19, 20, 21, 22, 23};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_test_5) TEST_CASE(gathernd_test_5)
...@@ -155,7 +155,7 @@ TEST_CASE(gathernd_test_5) ...@@ -155,7 +155,7 @@ TEST_CASE(gathernd_test_5)
std::vector<float> gold{0, 4, 8, 11, 13, 15}; std::vector<float> gold{0, 4, 8, 11, 13, 15};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_test_6) TEST_CASE(gathernd_test_6)
...@@ -215,7 +215,7 @@ TEST_CASE(gathernd_dynamic0) ...@@ -215,7 +215,7 @@ TEST_CASE(gathernd_dynamic0)
std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5}; std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_dynamic1) TEST_CASE(gathernd_dynamic1)
...@@ -251,7 +251,7 @@ TEST_CASE(gathernd_dynamic1) ...@@ -251,7 +251,7 @@ TEST_CASE(gathernd_dynamic1)
std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5}; std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_dynamic2) TEST_CASE(gathernd_dynamic2)
...@@ -287,7 +287,7 @@ TEST_CASE(gathernd_dynamic2) ...@@ -287,7 +287,7 @@ TEST_CASE(gathernd_dynamic2)
std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5}; std::vector<float> gold{3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 4, 5};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_dynamic3) TEST_CASE(gathernd_dynamic3)
...@@ -323,7 +323,7 @@ TEST_CASE(gathernd_dynamic3) ...@@ -323,7 +323,7 @@ TEST_CASE(gathernd_dynamic3)
std::vector<float> res_data{}; std::vector<float> res_data{};
std::vector<float> gold{1, 0, 3, 4}; std::vector<float> gold{1, 0, 3, 4};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_dynamic4) TEST_CASE(gathernd_dynamic4)
...@@ -358,7 +358,7 @@ TEST_CASE(gathernd_dynamic4) ...@@ -358,7 +358,7 @@ TEST_CASE(gathernd_dynamic4)
std::vector<float> res_data{}; std::vector<float> res_data{};
std::vector<float> gold{5}; std::vector<float> gold{5};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_negative_index_test_1) TEST_CASE(gathernd_negative_index_test_1)
...@@ -383,7 +383,7 @@ TEST_CASE(gathernd_negative_index_test_1) ...@@ -383,7 +383,7 @@ TEST_CASE(gathernd_negative_index_test_1)
std::vector<float> gold{2, 3, 0, 1}; std::vector<float> gold{2, 3, 0, 1};
result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); }); result.visit([&](auto output) { res_data.assign(output.begin(), output.end()); });
EXPECT(migraphx::verify::verify_range(res_data, gold)); EXPECT(migraphx::verify::verify_rms_range(res_data, gold));
} }
TEST_CASE(gathernd_negative_index_test_2) TEST_CASE(gathernd_negative_index_test_2)
......
...@@ -40,14 +40,14 @@ TEST_CASE(im2col_3x3_no_pad_identity_test) ...@@ -40,14 +40,14 @@ TEST_CASE(im2col_3x3_no_pad_identity_test)
std::size_t channels = 1; std::size_t channels = 1;
std::vector<int32_t> weights(channels * f[0] * f[1]); std::vector<int32_t> weights(channels * f[0] * f[1]);
std::vector<int32_t> input(channels * size[0] * size[1]); std::vector<int32_t> gold(channels * size[0] * size[1]);
std::iota(input.begin(), input.end(), 0); std::iota(gold.begin(), gold.end(), 0);
migraphx::program p; migraphx::program p;
auto* mm = p.get_main_module(); auto* mm = p.get_main_module();
migraphx::shape s_image{migraphx::shape::int32_type, {1, channels, size[0], size[1]}}; migraphx::shape s_image{migraphx::shape::int32_type, {1, channels, size[0], size[1]}};
migraphx::shape s_weights{migraphx::shape::int32_type, {1, channels, f[0], f[1]}}; migraphx::shape s_weights{migraphx::shape::int32_type, {1, channels, f[0], f[1]}};
auto l_image = mm->add_literal(migraphx::literal{s_image, input}); auto l_image = mm->add_literal(migraphx::literal{s_image, gold});
auto l_weights = mm->add_literal(migraphx::literal{s_weights, weights}); auto l_weights = mm->add_literal(migraphx::literal{s_weights, weights});
mm->add_instruction( mm->add_instruction(
migraphx::make_op("im2col", migraphx::make_op("im2col",
...@@ -61,7 +61,7 @@ TEST_CASE(im2col_3x3_no_pad_identity_test) ...@@ -61,7 +61,7 @@ TEST_CASE(im2col_3x3_no_pad_identity_test)
std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1; std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1;
std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width); std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width);
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, input)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(im2col_3x3_no_pad_test) TEST_CASE(im2col_3x3_no_pad_test)
...@@ -91,14 +91,14 @@ TEST_CASE(im2col_3x3_no_pad_test) ...@@ -91,14 +91,14 @@ TEST_CASE(im2col_3x3_no_pad_test)
p.compile(migraphx::make_target("ref")); p.compile(migraphx::make_target("ref"));
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<int> correct = {0, 1, 2, 4, 5, 6, 8, 9, 10, 1, 2, 3, 5, 6, 7, 9, 10, 11, std::vector<int> gold = {0, 1, 2, 4, 5, 6, 8, 9, 10, 1, 2, 3, 5, 6, 7, 9, 10, 11,
4, 5, 6, 8, 9, 10, 12, 13, 14, 5, 6, 7, 9, 10, 11, 13, 14, 15}; 4, 5, 6, 8, 9, 10, 12, 13, 14, 5, 6, 7, 9, 10, 11, 13, 14, 15};
std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1; std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1;
std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1; std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1;
std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width); std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width);
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, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(im2col_3x3_stride_2_no_pad_test) TEST_CASE(im2col_3x3_stride_2_no_pad_test)
...@@ -128,15 +128,15 @@ TEST_CASE(im2col_3x3_stride_2_no_pad_test) ...@@ -128,15 +128,15 @@ TEST_CASE(im2col_3x3_stride_2_no_pad_test)
p.compile(migraphx::make_target("ref")); p.compile(migraphx::make_target("ref"));
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<int> correct = {0, 1, 2, 6, 7, 8, 12, 13, 14, 2, 3, 4, std::vector<int> gold = {0, 1, 2, 6, 7, 8, 12, 13, 14, 2, 3, 4,
8, 9, 10, 14, 15, 16, 12, 13, 14, 18, 19, 20, 8, 9, 10, 14, 15, 16, 12, 13, 14, 18, 19, 20,
24, 25, 26, 14, 15, 16, 20, 21, 22, 26, 27, 28}; 24, 25, 26, 14, 15, 16, 20, 21, 22, 26, 27, 28};
std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1; std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1;
std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1; std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1;
std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width); std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width);
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, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(im2col_3x3_with_channels_identity_test) TEST_CASE(im2col_3x3_with_channels_identity_test)
...@@ -149,14 +149,14 @@ TEST_CASE(im2col_3x3_with_channels_identity_test) ...@@ -149,14 +149,14 @@ TEST_CASE(im2col_3x3_with_channels_identity_test)
std::size_t channels = 2; std::size_t channels = 2;
std::vector<int32_t> weights(channels * f[0] * f[1]); std::vector<int32_t> weights(channels * f[0] * f[1]);
std::vector<int32_t> input(channels * size[0] * size[1]); std::vector<int32_t> gold(channels * size[0] * size[1]);
std::iota(input.begin(), input.end(), 0); std::iota(gold.begin(), gold.end(), 0);
migraphx::program p; migraphx::program p;
auto* mm = p.get_main_module(); auto* mm = p.get_main_module();
migraphx::shape s_image{migraphx::shape::int32_type, {1, channels, size[0], size[1]}}; migraphx::shape s_image{migraphx::shape::int32_type, {1, channels, size[0], size[1]}};
migraphx::shape s_weights{migraphx::shape::int32_type, {1, channels, f[0], f[1]}}; migraphx::shape s_weights{migraphx::shape::int32_type, {1, channels, f[0], f[1]}};
auto l_image = mm->add_literal(migraphx::literal{s_image, input}); auto l_image = mm->add_literal(migraphx::literal{s_image, gold});
auto l_weights = mm->add_literal(migraphx::literal{s_weights, weights}); auto l_weights = mm->add_literal(migraphx::literal{s_weights, weights});
mm->add_instruction( mm->add_instruction(
migraphx::make_op("im2col", migraphx::make_op("im2col",
...@@ -170,7 +170,7 @@ TEST_CASE(im2col_3x3_with_channels_identity_test) ...@@ -170,7 +170,7 @@ TEST_CASE(im2col_3x3_with_channels_identity_test)
std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1; std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1;
std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width); std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width);
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, input)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(im2col_3x3_with_padding_test) TEST_CASE(im2col_3x3_with_padding_test)
...@@ -200,12 +200,12 @@ TEST_CASE(im2col_3x3_with_padding_test) ...@@ -200,12 +200,12 @@ TEST_CASE(im2col_3x3_with_padding_test)
p.compile(migraphx::make_target("ref")); p.compile(migraphx::make_target("ref"));
auto result = p.eval({}).back(); auto result = p.eval({}).back();
std::vector<int> correct = {0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 1, 0, 2, 3, 0, std::vector<int> gold = {0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 1, 0, 2, 3, 0,
0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0}; 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0};
std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1; std::size_t col_height = (size[0] - f[0] + 2 * padding[0]) / stride[0] + 1;
std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1; std::size_t col_width = (size[1] - f[1] + 2 * padding[1]) / stride[1] + 1;
std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width); std::vector<float> results_vector(channels * f[0] * f[1] * col_height * col_width);
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, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,8 +45,8 @@ TEST_CASE(isnan_test) ...@@ -45,8 +45,8 @@ TEST_CASE(isnan_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, 1, 1, 0, 0}; std::vector<float> gold = {0, 0, 1, 1, 0, 0};
EXPECT(migraphx::verify::verify_range(results_vector, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
// half test // half test
...@@ -64,8 +64,8 @@ TEST_CASE(isnan_test) ...@@ -64,8 +64,8 @@ TEST_CASE(isnan_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, 1, 1, 0, 0}; std::vector<float> gold = {0, 0, 1, 1, 0, 0};
EXPECT(migraphx::verify::verify_range(results_vector, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
} }
...@@ -86,6 +86,6 @@ TEST_CASE(isnan_dyn_test) ...@@ -86,6 +86,6 @@ TEST_CASE(isnan_dyn_test)
auto result = p.eval(params0).back(); auto result = p.eval(params0).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, 1, 1, 0, 0}; std::vector<float> gold = {0, 0, 1, 1, 0, 0};
EXPECT(migraphx::verify::verify_range(results_vector, correct)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -42,5 +42,5 @@ TEST_CASE(leaky_relu_test) ...@@ -42,5 +42,5 @@ TEST_CASE(leaky_relu_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.01f, 0.f, 1.f}; std::vector<float> gold = {-0.01f, 0.f, 1.f};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(log_test) ...@@ -45,7 +45,7 @@ TEST_CASE(log_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 logf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return logf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(log_dyn_test) TEST_CASE(log_dyn_test)
...@@ -68,5 +68,5 @@ TEST_CASE(log_dyn_test) ...@@ -68,5 +68,5 @@ TEST_CASE(log_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 logf(n); }); gold.begin(), gold.end(), gold.begin(), [](float n) -> float { return logf(n); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -49,7 +49,7 @@ TEST_CASE(logical_and_test) ...@@ -49,7 +49,7 @@ TEST_CASE(logical_and_test)
data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool { data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool {
return n1 and n2; return n1 and n2;
}); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(logical_and_dyn_test) TEST_CASE(logical_and_dyn_test)
...@@ -78,5 +78,5 @@ TEST_CASE(logical_and_dyn_test) ...@@ -78,5 +78,5 @@ TEST_CASE(logical_and_dyn_test)
right_data.begin(), right_data.begin(),
gold.begin(), gold.begin(),
[](bool n1, bool n2) -> bool { return n1 and n2; }); [](bool n1, bool n2) -> bool { return n1 and n2; });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -49,7 +49,7 @@ TEST_CASE(logical_or_test) ...@@ -49,7 +49,7 @@ TEST_CASE(logical_or_test)
data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool { data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool {
return n1 or n2; return n1 or n2;
}); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(logical_or_dyn_test) TEST_CASE(logical_or_dyn_test)
...@@ -78,5 +78,5 @@ TEST_CASE(logical_or_dyn_test) ...@@ -78,5 +78,5 @@ TEST_CASE(logical_or_dyn_test)
right_data.begin(), right_data.begin(),
gold.begin(), gold.begin(),
[](bool n1, bool n2) -> bool { return n1 or n2; }); [](bool n1, bool n2) -> bool { return n1 or n2; });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -49,7 +49,7 @@ TEST_CASE(logical_xor_test) ...@@ -49,7 +49,7 @@ TEST_CASE(logical_xor_test)
data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool { data1.begin(), data1.end(), data2.begin(), gold.begin(), [](bool n1, bool n2) -> bool {
return n1 ^ n2; return n1 ^ n2;
}); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(logical_xor_dyn_test) TEST_CASE(logical_xor_dyn_test)
...@@ -78,5 +78,5 @@ TEST_CASE(logical_xor_dyn_test) ...@@ -78,5 +78,5 @@ TEST_CASE(logical_xor_dyn_test)
right_data.begin(), right_data.begin(),
gold.begin(), gold.begin(),
[](bool n1, bool n2) -> bool { return n1 ^ n2; }); [](bool n1, bool n2) -> bool { return n1 ^ n2; });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -61,7 +61,7 @@ TEST_CASE(logsoftmax_test_axis_0) ...@@ -61,7 +61,7 @@ TEST_CASE(logsoftmax_test_axis_0)
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()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); EXPECT(migraphx::verify::verify_rms_range(results_vector, s));
} }
TEST_CASE(logsoftmax_test_axis_1) TEST_CASE(logsoftmax_test_axis_1)
...@@ -95,7 +95,7 @@ TEST_CASE(logsoftmax_test_axis_1) ...@@ -95,7 +95,7 @@ TEST_CASE(logsoftmax_test_axis_1)
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()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); EXPECT(migraphx::verify::verify_rms_range(results_vector, s));
} }
TEST_CASE(logsoftmax_test_axis_2) TEST_CASE(logsoftmax_test_axis_2)
...@@ -129,7 +129,7 @@ TEST_CASE(logsoftmax_test_axis_2) ...@@ -129,7 +129,7 @@ TEST_CASE(logsoftmax_test_axis_2)
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()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); EXPECT(migraphx::verify::verify_rms_range(results_vector, s));
} }
TEST_CASE(logsoftmax_test_axis_3) TEST_CASE(logsoftmax_test_axis_3)
...@@ -163,5 +163,5 @@ TEST_CASE(logsoftmax_test_axis_3) ...@@ -163,5 +163,5 @@ TEST_CASE(logsoftmax_test_axis_3)
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()); });
EXPECT(migraphx::verify::verify_range(results_vector, s)); EXPECT(migraphx::verify::verify_rms_range(results_vector, s));
} }
...@@ -43,5 +43,5 @@ TEST_CASE(lrn_test) ...@@ -43,5 +43,5 @@ TEST_CASE(lrn_test)
std::vector<float> results_vector(5); std::vector<float> results_vector(5);
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 = {-2 / 1.000075, 1 / 1.00009, 0 / 1.000145, 1 / 1.00009, 2 / 1.000075}; std::vector<float> gold = {-2 / 1.000075, 1 / 1.00009, 0 / 1.000145, 1 / 1.00009, 2 / 1.000075};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(max_test) ...@@ -45,7 +45,7 @@ TEST_CASE(max_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{7, 8, 9}; std::vector<float> gold{7, 8, 9};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(max_dyn_test) TEST_CASE(max_dyn_test)
...@@ -73,5 +73,5 @@ TEST_CASE(max_dyn_test) ...@@ -73,5 +73,5 @@ TEST_CASE(max_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{7, 8, 9}; std::vector<float> gold{7, 8, 9};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(min_test) ...@@ -45,7 +45,7 @@ TEST_CASE(min_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{1, 4, 3}; std::vector<float> gold{1, 4, 3};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(min_dyn_test) TEST_CASE(min_dyn_test)
...@@ -73,5 +73,5 @@ TEST_CASE(min_dyn_test) ...@@ -73,5 +73,5 @@ TEST_CASE(min_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{1, 4, 3}; std::vector<float> gold{1, 4, 3};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(mod_test) ...@@ -45,7 +45,7 @@ TEST_CASE(mod_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{0, 0, 2}; std::vector<float> gold{0, 0, 2};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(mod_dyn_test) TEST_CASE(mod_dyn_test)
...@@ -73,7 +73,7 @@ TEST_CASE(mod_dyn_test) ...@@ -73,7 +73,7 @@ TEST_CASE(mod_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{0, 0, 2}; std::vector<float> gold{0, 0, 2};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(mod_float_test) TEST_CASE(mod_float_test)
...@@ -92,5 +92,5 @@ TEST_CASE(mod_float_test) ...@@ -92,5 +92,5 @@ TEST_CASE(mod_float_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{1.0f, 2.5f, 2.0f}; std::vector<float> gold{1.0f, 2.5f, 2.0f};
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -49,7 +49,7 @@ TEST_CASE(mul_test) ...@@ -49,7 +49,7 @@ TEST_CASE(mul_test)
data1.begin(), data1.end(), data2.begin(), gold.begin(), [](float n1, float n2) -> float { data1.begin(), data1.end(), data2.begin(), gold.begin(), [](float n1, float n2) -> float {
return n1 * n2; return n1 * n2;
}); });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
TEST_CASE(mul_dyn_test) TEST_CASE(mul_dyn_test)
...@@ -78,5 +78,5 @@ TEST_CASE(mul_dyn_test) ...@@ -78,5 +78,5 @@ TEST_CASE(mul_dyn_test)
y_data.begin(), y_data.begin(),
gold.begin(), gold.begin(),
[](float n1, float n2) -> float { return n1 * n2; }); [](float n1, float n2) -> float { return n1 * n2; });
EXPECT(migraphx::verify::verify_range(results_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(results_vector, gold));
} }
...@@ -78,5 +78,6 @@ TEST_CASE(multinomial_test) ...@@ -78,5 +78,6 @@ TEST_CASE(multinomial_test)
std::transform(res_dist.begin(), res_dist.end(), res_norm.begin(), [&](auto n) { std::transform(res_dist.begin(), res_dist.end(), res_norm.begin(), [&](auto n) {
return static_cast<double>(n) / res_dist_sum; return static_cast<double>(n) / res_dist_sum;
}); });
EXPECT(migraphx::verify::verify_range(norm, res_norm, 100000)); EXPECT(migraphx::verify::verify_range_with_tolerance(
res_norm, migraphx::verify::expected{norm}, migraphx::verify::tolerance{0.01}));
} }
...@@ -45,7 +45,7 @@ TEST_CASE(neg_test) ...@@ -45,7 +45,7 @@ TEST_CASE(neg_test)
result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = data; std::vector<float> gold = data;
std::transform(gold.begin(), gold.end(), gold.begin(), std::negate<float>()); std::transform(gold.begin(), gold.end(), gold.begin(), std::negate<float>());
EXPECT(migraphx::verify::verify_range(result_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(result_vector, gold));
} }
TEST_CASE(neg_dyn_test) TEST_CASE(neg_dyn_test)
...@@ -67,5 +67,5 @@ TEST_CASE(neg_dyn_test) ...@@ -67,5 +67,5 @@ TEST_CASE(neg_dyn_test)
result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { result_vector.assign(output.begin(), output.end()); });
std::vector<float> gold = a; std::vector<float> gold = a;
std::transform(gold.begin(), gold.end(), gold.begin(), std::negate<float>()); std::transform(gold.begin(), gold.end(), gold.begin(), std::negate<float>());
EXPECT(migraphx::verify::verify_range(result_vector, gold)); EXPECT(migraphx::verify::verify_rms_range(result_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