IVGCVSW-7880 Add check for FP16 backend support
* Check if preferred backends have FP16 support before enable fp16-turbo-mode
* Unit tests
* Replaced global gpuAccCapabilities with getter method construction
* Replaced deprecated function call in SL shim
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Change-Id: If29b62b330ca8987de8acf6408db11daf25ca0b5
diff --git a/src/backends/cl/test/ClOptimizedNetworkTests.cpp b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
index 3d4341d..9d721c0 100644
--- a/src/backends/cl/test/ClOptimizedNetworkTests.cpp
+++ b/src/backends/cl/test/ClOptimizedNetworkTests.cpp
@@ -11,6 +11,7 @@
#include <cl/ClWorkloadFactory.hpp>
#include <cl/ClBackendContext.hpp>
+#include <arm_compute/core/CL/CLKernelLibrary.h>
#include <armnnUtils/Filesystem.hpp>
@@ -94,15 +95,28 @@
const armnn::Graph& graph = GetGraphForTesting(optimizedNet.get());
- // Tests that all layers are present in the graph.
- CHECK(graph.GetNumLayers() == 5);
+ if(arm_compute::CLKernelLibrary::get().fp16_supported())
+ {
+ // Tests that all layers are present in the graph.
+ CHECK(graph.GetNumLayers() == 5);
- // Tests that the vertices exist and have correct names.
- CHECK(GraphHasNamedLayer(graph, "input layer"));
- CHECK(GraphHasNamedLayer(graph, "convert_fp32_to_fp16-0-input layer"));
- CHECK(GraphHasNamedLayer(graph, "activation layer"));
- CHECK(GraphHasNamedLayer(graph, "convert_fp16_to_fp32-0-output layer"));
- CHECK(GraphHasNamedLayer(graph, "output layer"));
+ // Tests that the vertices exist and have correct names.
+ CHECK(GraphHasNamedLayer(graph, "input layer"));
+ CHECK(GraphHasNamedLayer(graph, "convert_fp32_to_fp16-0-input layer"));
+ CHECK(GraphHasNamedLayer(graph, "activation layer"));
+ CHECK(GraphHasNamedLayer(graph, "convert_fp16_to_fp32-0-output layer"));
+ CHECK(GraphHasNamedLayer(graph, "output layer"));
+ }
+ else
+ {
+ // Tests that all layers except for conversion layers are present in the graph.
+ CHECK(graph.GetNumLayers() == 3);
+
+ // Tests that the vertices exist and have correct names.
+ CHECK(GraphHasNamedLayer(graph, "input layer"));
+ CHECK(GraphHasNamedLayer(graph, "activation layer"));
+ CHECK(GraphHasNamedLayer(graph, "output layer"));
+ }
}
TEST_CASE("FastMathEnabledTestOnGpuAcc")