aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2024-03-21 13:38:09 +0000
committerEric Kunze <eric.kunze@arm.com>2024-03-26 15:36:39 +0000
commit42e183cae08b301083416481e7bac92f04f0ce21 (patch)
treecb9525ee25422649d68fd9784478c68d0f707e9a
parent8746026555c37c8d208fcbedeb04d0ae6d25d53e (diff)
downloadreference_model-42e183cae08b301083416481e7bac92f04f0ce21.tar.gz
Compliance Test Set 3 data fix
Make sure the magnitude bias check is not positively biased Update unit tests Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: I00a9470b5e3233ad65360400ed312b0a354130f1
-rw-r--r--reference_model/src/generate/generate_dot_product_states.cc9
-rw-r--r--reference_model/test/generate_tests.cpp16
2 files changed, 16 insertions, 9 deletions
diff --git a/reference_model/src/generate/generate_dot_product_states.cc b/reference_model/src/generate/generate_dot_product_states.cc
index 4b435ca..f372bde 100644
--- a/reference_model/src/generate/generate_dot_product_states.cc
+++ b/reference_model/src/generate/generate_dot_product_states.cc
@@ -195,7 +195,14 @@ public:
const float s0 = _set_data();
const float s1 = _set_data();
if (_p != P2)
- return k == 0 ? 16.f : std::exp(2 * s0) * s1;
+ if (k == 0)
+ {
+ return s0 < 0 ? -16.f : +16.f;
+ }
+ else
+ {
+ return std::exp(2 * s0) * s1;
+ }
else
return 0.f;
}
diff --git a/reference_model/test/generate_tests.cpp b/reference_model/test/generate_tests.cpp
index 294705c..73db631 100644
--- a/reference_model/test/generate_tests.cpp
+++ b/reference_model/test/generate_tests.cpp
@@ -268,12 +268,12 @@ TEST_CASE("positive - FP32 matmul dot product (first 3 values)")
SUBCASE("matmul, set 3, param 0")
{
// NOTE: Python test script produced 0xbf256686 - so off by 1
- std::vector<uint32_t> expected = { 0x41800000, 0xbf256685, 0x41800000 };
+ std::vector<uint32_t> expected = { 0xc1800000, 0xbf256685, 0xc1800000 };
matmul_test_FP32(tosaName, tosaElements, templateJsonCfg, "3", 0, expected);
}
SUBCASE("matmul, set 3, param 1")
{
- std::vector<uint32_t> expected = { 0x41800000, 0x41800000, 0x41800000 };
+ std::vector<uint32_t> expected = { 0x41800000, 0x41800000, 0xc1800000 };
matmul_test_FP32(tosaName, tosaElements, templateJsonCfg, "3", 1, expected);
}
SUBCASE("matmul, set 4, param 0")
@@ -578,7 +578,7 @@ TEST_CASE("positive - FP32 reduce_sum dot product (values 6,7 & 8)")
}
SUBCASE("reduce_sum, set 3, param 0")
{
- std::vector<uint32_t> expected = { 0x41800000, 0xbe9f659e, 0xbfaca78c };
+ std::vector<uint32_t> expected = { 0xc1800000, 0xbe9f659e, 0xbfaca78c };
reduce_sum_test_FP32(tosaName, tosaElements, templateJsonCfg, "3", expected);
}
SUBCASE("reduce_sum, set 4, param 0")
@@ -820,7 +820,7 @@ TEST_CASE("positive - FP32 avg_pool2d dot product (first 3 values)")
SUBCASE("avg_pool2d, set 3, param 0")
{
// NOTE: Python test script produced 0xbf256686,0x3e1e8d3b - so off by 1
- std::vector<uint32_t> expected = { 0x41800000, 0xbf256685, 0x3e1e8d3b };
+ std::vector<uint32_t> expected = { 0xc1800000, 0xbf256685, 0x3e1e8d3b };
avg_pool2d_test_FP32(tosaName, tosaElements, templateJsonCfg, "3", expected);
}
SUBCASE("avg_pool2d, set 4, param 0")
@@ -1020,12 +1020,12 @@ TEST_CASE("positive - FP16 depthwise_conv2d dot product (first 3 values)")
}
SUBCASE("depthwise_conv2d, set 3, param 0")
{
- std::vector<uint16_t> expected = { 0x4c00, 0x4c00, 0x4c00 };
+ std::vector<uint16_t> expected = { 0xcc00, 0x4c00, 0xcc00 };
depthwise_conv2d_test_FP16(tosaName, tosaElements, templateJsonCfg, "3", 0, expected);
}
SUBCASE("depthwise_conv2d, set 3, param 1")
{
- std::vector<uint16_t> expected = { 0x4c00, 0x4c00, 0x4c00 };
+ std::vector<uint16_t> expected = { 0x4c00, 0x4c00, 0xcc00 };
depthwise_conv2d_test_FP16(tosaName, tosaElements, templateJsonCfg, "3", 1, expected);
}
SUBCASE("depthwise_conv2d, set 3, param 2")
@@ -1337,7 +1337,7 @@ TEST_CASE("positive - FP16 conv3d dot product (first 3 values)")
}
SUBCASE("conv3d, set 3, param 0")
{
- std::vector<uint16_t> expected = { 0x4c00, 0xb92b, 0x30f4 };
+ std::vector<uint16_t> expected = { 0xcc00, 0xb92b, 0x30f4 };
conv3d_test_FP16(tosaName, tosaElements, templateJsonCfg, "3", 0, expected);
}
SUBCASE("conv3d, set 3, param 1")
@@ -1541,7 +1541,7 @@ TEST_CASE("positive - FP32 rfft2d dot product (values -8, -7 & -6 from the end)"
}
SUBCASE("fft2d, set 3, real")
{
- std::vector<uint32_t> expected = { 0x41800000, 0xbf6d219b, 0x3f2bd153 };
+ std::vector<uint32_t> expected = { 0xc1800000, 0xbf6d219b, 0x3f2bd153 };
fft2d_test_FP32(tosaNameReal, tosaElements, templateJsonCfg, "3", expected);
}
SUBCASE("fft2d, set 4, real")