IVGCVSW-7214 Disable BF16-Turbo-Mode and remove conversion layers
- Remove Bf16ToFp32 Conversion Layer
- Remove Fp32ToBf16 Conversion Layer
- Remove B16 Conversion tests
* Throw exception if m_ReduceFp32ToBf16 optimzer option is set to true
* Provide comments to enable fast math in order to use bf16
* Update docs to inform users to enable fast math for bf16
Execute Network Changes
* Require bf16_turbo_mode to also have fast_math_enabled set to true
- Remove setting m_ReduceFp32ToBf16 optimizer option
Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Change-Id: Ibaa6da9d29c96a1ce32ff5196b0847fde9f04a1c
diff --git a/src/backends/reference/test/RefLayerSupportTests.cpp b/src/backends/reference/test/RefLayerSupportTests.cpp
index 9a27c7c..e671496 100644
--- a/src/backends/reference/test/RefLayerSupportTests.cpp
+++ b/src/backends/reference/test/RefLayerSupportTests.cpp
@@ -49,12 +49,6 @@
CHECK(supportChecker.IsAdditionSupported(in0, in1, out, reasonNotSupported));
}
-TEST_CASE("IsLayerSupportedBFloat16Reference")
-{
- armnn::RefWorkloadFactory factory;
- IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::BFloat16>(&factory);
-}
-
TEST_CASE("IsLayerSupportedFloat16Reference")
{
armnn::RefWorkloadFactory factory;
@@ -117,70 +111,6 @@
CHECK_EQ(reasonIfUnsupported, "Layer is not supported with float16 data type output");
}
-TEST_CASE("IsConvertBf16ToFp32SupportedReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertBf16ToFp32Layer,
- armnn::DataType::BFloat16, armnn::DataType::Float32>(reasonIfUnsupported);
-
- CHECK(result);
-}
-
-TEST_CASE("IsConvertBf16ToFp32SupportedFp32InputReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertBf16ToFp32Layer,
- armnn::DataType::Float32, armnn::DataType::Float32>(reasonIfUnsupported);
-
- CHECK(!result);
- CHECK_EQ(reasonIfUnsupported, "Reference for ConvertBf16ToFp32 layer: input type not supported\n");
-}
-
-TEST_CASE("IsConvertBf16ToFp32SupportedBf16OutputReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertBf16ToFp32Layer,
- armnn::DataType::BFloat16, armnn::DataType::BFloat16>(reasonIfUnsupported);
-
- CHECK(!result);
- CHECK_EQ(reasonIfUnsupported, "Reference for ConvertBf16ToFp32 layer: output type not supported\n");
-}
-
-TEST_CASE("IsConvertFp32ToBf16SupportedReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertFp32ToBf16Layer,
- armnn::DataType::Float32, armnn::DataType::BFloat16>(reasonIfUnsupported);
-
- CHECK(result);
-}
-
-TEST_CASE("IsConvertFp32ToBf16SupportedBf16InputReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertFp32ToBf16Layer,
- armnn::DataType::BFloat16, armnn::DataType::BFloat16>(reasonIfUnsupported);
-
- CHECK(!result);
- CHECK_EQ(reasonIfUnsupported, "Reference for ConvertFp32ToBf16 layer: input type not supported\n");
-}
-
-TEST_CASE("IsConvertFp32ToBf16SupportedFp32OutputReference")
-{
- std::string reasonIfUnsupported;
-
- bool result = IsConvertLayerSupportedTests<armnn::RefWorkloadFactory, armnn::ConvertFp32ToBf16Layer,
- armnn::DataType::Float32, armnn::DataType::Float32>(reasonIfUnsupported);
-
- CHECK(!result);
- CHECK_EQ(reasonIfUnsupported, "Reference for ConvertFp32ToBf16 layer: output type not supported\n");
-}
-
TEST_CASE("IsConvertFp32ToFp16SupportedReference")
{
std::string reasonIfUnsupported;
@@ -271,7 +201,9 @@
result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
armnn::DataType::BFloat16>(reasonIfUnsupported);
- CHECK(result);
+ CHECK(!result);
+ CHECK(reasonIfUnsupported.find("Reference constant: output is not a supported type.") != std::string::npos);
+
}
}