blob: 4cb324f2c7ff293f8b367375d7f309f843e9b138 [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001# UnitTests
2include(CheckIncludeFiles)
3
telsoa014fcda012018-03-09 14:13:49 +00004# Setup the inference test framework
5set(inference_test_sources
6 ClassifierTestCaseData.hpp
7 InferenceModel.hpp
8 InferenceTest.hpp
9 InferenceTest.inl
10 InferenceTest.cpp
11 InferenceTestImage.hpp
12 InferenceTestImage.cpp)
Sadik Armagan93e2e402019-05-02 09:31:38 +010013
telsoa014fcda012018-03-09 14:13:49 +000014add_library_ex(inferenceTest STATIC ${inference_test_sources})
15target_include_directories(inferenceTest PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000016target_include_directories(inferenceTest PRIVATE ../src/backends)
Sadik Armagan93e2e402019-05-02 09:31:38 +010017target_include_directories(inferenceTest PRIVATE ../third-party/stb)
telsoa014fcda012018-03-09 14:13:49 +000018
telsoa01c577f2c2018-08-31 09:22:23 +010019if (BUILD_TF_LITE_PARSER)
20 macro(TfLiteParserTest testName sources)
21 add_executable_ex(${testName} ${sources})
22 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000023 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +010024
25 target_link_libraries(${testName} inferenceTest)
26 target_link_libraries(${testName} armnnTfLiteParser)
27 target_link_libraries(${testName} armnn)
28 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +010029 addDllCopyCommands(${testName})
30 endmacro()
31
Jim Flynn27a9bd92020-11-12 15:48:34 +000032 set(TfLiteBenchmark-Armnn_sources
33 TfLiteBenchmark-Armnn/TfLiteBenchmark-Armnn.cpp)
34 TfLiteParserTest(TfLiteBenchmark-Armnn "${TfLiteBenchmark-Armnn_sources}")
35
telsoa01c577f2c2018-08-31 09:22:23 +010036 set(TfLiteMobilenetQuantized-Armnn_sources
37 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
38 ImagePreprocessor.hpp
39 ImagePreprocessor.cpp)
40 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +010041
Aron Virginas-Tard089b742019-01-29 11:09:51 +000042 set(TfLiteMobileNetSsd-Armnn_sources
43 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
44 MobileNetSsdDatabase.hpp
45 MobileNetSsdInferenceTest.hpp
46 ObjectDetectionCommon.hpp)
47 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
48
Bruno Goncalves06304112018-12-27 16:13:58 -020049 set(TfLiteMobilenetV2Quantized-Armnn_sources
50 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
51 ImagePreprocessor.hpp
52 ImagePreprocessor.cpp)
53 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
54
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +010055 set(TfLiteVGG16Quantized-Armnn_sources
56 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
57 ImagePreprocessor.hpp
58 ImagePreprocessor.cpp)
59 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -020060
David Monahana820e022019-04-23 11:03:38 +010061 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
62 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
63 ImagePreprocessor.hpp
64 ImagePreprocessor.cpp)
65 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
66
Bruno Goncalvesc981df32018-12-27 16:15:01 -020067 set(TfLiteInceptionV3Quantized-Armnn_sources
68 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
69 ImagePreprocessor.hpp
70 ImagePreprocessor.cpp)
71 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -020072
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -020073 set(TfLiteInceptionV4Quantized-Armnn_sources
74 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
75 ImagePreprocessor.hpp
76 ImagePreprocessor.cpp)
77 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
78
Bruno Goncalves8f293382018-12-27 16:15:38 -020079 set(TfLiteResNetV2-Armnn_sources
80 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
81 ImagePreprocessor.hpp
82 ImagePreprocessor.cpp)
83 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -020084
Nina Drozd472d4e02019-04-15 17:18:36 +010085 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +010086 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
87 ImagePreprocessor.hpp
88 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +010089 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
90
Bruno Goncalves61980d42018-12-28 10:08:26 -020091 set(TfLiteMnasNet-Armnn_sources
92 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
93 ImagePreprocessor.hpp
94 ImagePreprocessor.cpp)
95 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +010096
97
98 set(TfLiteYoloV3Big-Armnn_sources
99 TfLiteYoloV3Big-Armnn/NMS.cpp
100 TfLiteYoloV3Big-Armnn/NMS.hpp
101 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
102 ImagePreprocessor.hpp
103 ImagePreprocessor.cpp)
104 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
Nikhil Raj5d955cf2021-04-19 16:59:48 +0100105
106
107
telsoa01c577f2c2018-08-31 09:22:23 +0100108endif()
109
110if (BUILD_ONNX_PARSER)
111 macro(OnnxParserTest testName sources)
112 add_executable_ex(${testName} ${sources})
113 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000114 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100115
116 target_link_libraries(${testName} inferenceTest)
117 target_link_libraries(${testName} armnnOnnxParser)
118 target_link_libraries(${testName} armnn)
119 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100120 addDllCopyCommands(${testName})
121 endmacro()
122
123 set(OnnxMnist-Armnn_sources
124 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
125 MnistDatabase.hpp
126 MnistDatabase.cpp)
127 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
128
129 set(OnnxMobileNet-Armnn_sources
130 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
131 ImagePreprocessor.hpp
132 ImagePreprocessor.cpp)
133 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
134endif()
135
Jan Eilers17d34da2021-12-08 16:15:12 +0000136if (BUILD_ARMNN_SERIALIZER
137 OR BUILD_TF_PARSER
138 OR BUILD_TF_LITE_PARSER
139 OR BUILD_ONNX_PARSER
140 OR BUILD_ARMNN_TFLITE_DELEGATE)
telsoa014fcda012018-03-09 14:13:49 +0000141 set(ExecuteNetwork_sources
Jan Eilers45274902020-10-15 18:34:43 +0100142 ExecuteNetwork/ExecuteNetwork.cpp
143 ExecuteNetwork/ExecuteNetworkProgramOptions.cpp
144 ExecuteNetwork/ExecuteNetworkProgramOptions.hpp
145 ExecuteNetwork/ExecuteNetworkParams.cpp
146 ExecuteNetwork/ExecuteNetworkParams.hpp
147 NetworkExecutionUtils/NetworkExecutionUtils.cpp
148 NetworkExecutionUtils/NetworkExecutionUtils.hpp)
telsoa014fcda012018-03-09 14:13:49 +0000149
150 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100151 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100152 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000153 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
Jan Eilers45274902020-10-15 18:34:43 +0100154 target_include_directories(ExecuteNetwork PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
telsoa014fcda012018-03-09 14:13:49 +0000155
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000156 if (BUILD_ARMNN_SERIALIZER)
157 target_link_libraries(ExecuteNetwork armnnSerializer)
158 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100159
160 if (BUILD_TF_LITE_PARSER)
161 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
162 endif()
163 if (BUILD_ONNX_PARSER)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000164 target_link_libraries(ExecuteNetwork armnnOnnxParser)
telsoa01c577f2c2018-08-31 09:22:23 +0100165 endif()
Sadik Armagan5d03e312020-11-17 16:43:56 +0000166 if (BUILD_ARMNN_TFLITE_DELEGATE)
167 target_link_libraries(ExecuteNetwork ArmnnDelegate::ArmnnDelegate)
168 endif()
telsoa014fcda012018-03-09 14:13:49 +0000169 target_link_libraries(ExecuteNetwork armnn)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000170
171 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
172 addDllCopyCommands(ExecuteNetwork)
telsoa014fcda012018-03-09 14:13:49 +0000173endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100174
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100175if(BUILD_ACCURACY_TOOL)
176 macro(AccuracyTool executorName)
177 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100178 if (BUILD_ARMNN_SERIALIZER)
179 target_link_libraries(${executorName} armnnSerializer)
180 endif()
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100181 if (BUILD_TF_LITE_PARSER)
182 target_link_libraries(${executorName} armnnTfLiteParser)
183 endif()
184 if (BUILD_ONNX_PARSER)
185 target_link_libraries(${executorName} armnnOnnxParser)
186 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100187 addDllCopyCommands(${executorName})
188 endmacro()
189
190 set(ModelAccuracyTool-Armnn_sources
191 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
192
193 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
194 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
195 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
196 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
197 target_link_libraries(ModelAccuracyTool inferenceTest)
198 target_link_libraries(ModelAccuracyTool armnn)
199 target_link_libraries(ModelAccuracyTool armnnSerializer)
200 AccuracyTool(ModelAccuracyTool)
201endif()
202
Kevin May4a621c432021-04-22 16:51:18 +0100203if(BUILD_ACCURACY_TOOL)
Sadik Armagan8271f812019-04-19 09:55:06 +0100204 macro(ImageTensorExecutor executorName)
205 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100206 addDllCopyCommands(${executorName})
207 endmacro()
208
209 set(ImageTensorGenerator_sources
210 InferenceTestImage.hpp
211 InferenceTestImage.cpp
212 ImageTensorGenerator/ImageTensorGenerator.cpp)
213
214 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
215 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
216 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
217
218 target_link_libraries(ImageTensorGenerator armnn)
219 ImageTensorExecutor(ImageTensorGenerator)
220
221 set(ImageCSVFileGenerator_sources
222 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
223
224 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100225 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100226 ImageTensorExecutor(ImageCSVFileGenerator)
227endif()
Jim Flynne1fdd282021-10-26 21:26:10 +0100228
229if(BUILD_MEMORY_STRATEGY_BENCHMARK)
230 add_subdirectory(MemoryStrategyBenchmark)
231endif()