blob: 135f6497be3128f9c61a093327c2edf0ac7d2f35 [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
19if(BUILD_CAFFE_PARSER)
20 macro(CaffeParserTest 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)
telsoa014fcda012018-03-09 14:13:49 +000024 set_target_properties(${testName} PROPERTIES COMPILE_FLAGS "${CAFFE_PARSER_TEST_ADDITIONAL_COMPILE_FLAGS}")
25
26 target_link_libraries(${testName} inferenceTest)
27 target_link_libraries(${testName} armnnCaffeParser)
28 target_link_libraries(${testName} armnn)
29 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa014fcda012018-03-09 14:13:49 +000030 addDllCopyCommands(${testName})
31 endmacro()
32
33 set(CaffeCifar10AcrossChannels-Armnn_sources
34 CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
35 Cifar10Database.hpp
36 Cifar10Database.cpp)
37 CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
38
39 set(CaffeMnist-Armnn_sources
40 CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
41 MnistDatabase.hpp
42 MnistDatabase.cpp)
43 CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
44
45 set(CaffeAlexNet-Armnn_sources
46 CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010047 CaffePreprocessor.hpp
48 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000049 CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
50
51 set(MultipleNetworksCifar10_SRC
52 MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
53 Cifar10Database.hpp
54 Cifar10Database.cpp)
55 CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
56
57 set(CaffeResNet-Armnn_sources
58 CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010059 CaffePreprocessor.hpp
60 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000061 CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
62
63 set(CaffeVGG-Armnn_sources
64 CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010065 CaffePreprocessor.hpp
66 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000067 CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
68
69 set(CaffeInception_BN-Armnn_sources
70 CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010071 CaffePreprocessor.hpp
72 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000073 CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
74
75 set(CaffeYolo-Armnn_sources
76 CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
77 YoloDatabase.hpp
78 YoloDatabase.cpp
79 YoloInferenceTest.hpp)
80 CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
81endif()
82
surmeh01bceff2f2018-03-29 16:29:27 +010083if(BUILD_TF_PARSER)
84 macro(TfParserTest testName sources)
85 add_executable_ex(${testName} ${sources})
86 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000087 target_include_directories(${testName} PRIVATE ../src/backends)
surmeh01bceff2f2018-03-29 16:29:27 +010088
89 target_link_libraries(${testName} inferenceTest)
90 target_link_libraries(${testName} armnnTfParser)
91 target_link_libraries(${testName} armnn)
92 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
surmeh01bceff2f2018-03-29 16:29:27 +010093 addDllCopyCommands(${testName})
94 endmacro()
95
96 set(TfMnist-Armnn_sources
97 TfMnist-Armnn/TfMnist-Armnn.cpp
98 MnistDatabase.hpp
99 MnistDatabase.cpp)
100 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
101
102 set(TfCifar10-Armnn_sources
103 TfCifar10-Armnn/TfCifar10-Armnn.cpp
104 Cifar10Database.hpp
105 Cifar10Database.cpp)
106 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
107
108 set(TfMobileNet-Armnn_sources
109 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100110 ImagePreprocessor.hpp
111 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100112 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
113
114 set(TfInceptionV3-Armnn_sources
115 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100116 ImagePreprocessor.hpp
117 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100118 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +0100119
120 set(TfResNext-Armnn_sources
121 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100122 CaffePreprocessor.hpp
123 CaffePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +0100124 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +0100125endif()
126
telsoa01c577f2c2018-08-31 09:22:23 +0100127if (BUILD_TF_LITE_PARSER)
128 macro(TfLiteParserTest testName sources)
129 add_executable_ex(${testName} ${sources})
130 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000131 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100132
133 target_link_libraries(${testName} inferenceTest)
134 target_link_libraries(${testName} armnnTfLiteParser)
135 target_link_libraries(${testName} armnn)
136 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100137 addDllCopyCommands(${testName})
138 endmacro()
139
Jim Flynn27a9bd92020-11-12 15:48:34 +0000140 set(TfLiteBenchmark-Armnn_sources
141 TfLiteBenchmark-Armnn/TfLiteBenchmark-Armnn.cpp)
142 TfLiteParserTest(TfLiteBenchmark-Armnn "${TfLiteBenchmark-Armnn_sources}")
143
telsoa01c577f2c2018-08-31 09:22:23 +0100144 set(TfLiteMobilenetQuantized-Armnn_sources
145 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
146 ImagePreprocessor.hpp
147 ImagePreprocessor.cpp)
148 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100149
Aron Virginas-Tard089b742019-01-29 11:09:51 +0000150 set(TfLiteMobileNetSsd-Armnn_sources
151 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
152 MobileNetSsdDatabase.hpp
153 MobileNetSsdInferenceTest.hpp
154 ObjectDetectionCommon.hpp)
155 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
156
Bruno Goncalves06304112018-12-27 16:13:58 -0200157 set(TfLiteMobilenetV2Quantized-Armnn_sources
158 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
159 ImagePreprocessor.hpp
160 ImagePreprocessor.cpp)
161 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
162
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100163 set(TfLiteVGG16Quantized-Armnn_sources
164 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
165 ImagePreprocessor.hpp
166 ImagePreprocessor.cpp)
167 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200168
David Monahana820e022019-04-23 11:03:38 +0100169 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
170 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
171 ImagePreprocessor.hpp
172 ImagePreprocessor.cpp)
173 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
174
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200175 set(TfLiteInceptionV3Quantized-Armnn_sources
176 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
177 ImagePreprocessor.hpp
178 ImagePreprocessor.cpp)
179 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -0200180
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -0200181 set(TfLiteInceptionV4Quantized-Armnn_sources
182 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
183 ImagePreprocessor.hpp
184 ImagePreprocessor.cpp)
185 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
186
Bruno Goncalves8f293382018-12-27 16:15:38 -0200187 set(TfLiteResNetV2-Armnn_sources
188 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
189 ImagePreprocessor.hpp
190 ImagePreprocessor.cpp)
191 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -0200192
Nina Drozd472d4e02019-04-15 17:18:36 +0100193 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +0100194 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
195 ImagePreprocessor.hpp
196 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +0100197 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
198
Bruno Goncalves61980d42018-12-28 10:08:26 -0200199 set(TfLiteMnasNet-Armnn_sources
200 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
201 ImagePreprocessor.hpp
202 ImagePreprocessor.cpp)
203 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +0100204
205
206 set(TfLiteYoloV3Big-Armnn_sources
207 TfLiteYoloV3Big-Armnn/NMS.cpp
208 TfLiteYoloV3Big-Armnn/NMS.hpp
209 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
210 ImagePreprocessor.hpp
211 ImagePreprocessor.cpp)
212 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
telsoa01c577f2c2018-08-31 09:22:23 +0100213endif()
214
215if (BUILD_ONNX_PARSER)
216 macro(OnnxParserTest testName sources)
217 add_executable_ex(${testName} ${sources})
218 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000219 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100220
221 target_link_libraries(${testName} inferenceTest)
222 target_link_libraries(${testName} armnnOnnxParser)
223 target_link_libraries(${testName} armnn)
224 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100225 addDllCopyCommands(${testName})
226 endmacro()
227
228 set(OnnxMnist-Armnn_sources
229 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
230 MnistDatabase.hpp
231 MnistDatabase.cpp)
232 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
233
234 set(OnnxMobileNet-Armnn_sources
235 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
236 ImagePreprocessor.hpp
237 ImagePreprocessor.cpp)
238 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
239endif()
240
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000241if (BUILD_ARMNN_SERIALIZER OR BUILD_CAFFE_PARSER OR BUILD_TF_PARSER OR BUILD_TF_LITE_PARSER OR BUILD_ONNX_PARSER)
telsoa014fcda012018-03-09 14:13:49 +0000242 set(ExecuteNetwork_sources
Jan Eilers45274902020-10-15 18:34:43 +0100243 ExecuteNetwork/ExecuteNetwork.cpp
244 ExecuteNetwork/ExecuteNetworkProgramOptions.cpp
245 ExecuteNetwork/ExecuteNetworkProgramOptions.hpp
246 ExecuteNetwork/ExecuteNetworkParams.cpp
247 ExecuteNetwork/ExecuteNetworkParams.hpp
248 NetworkExecutionUtils/NetworkExecutionUtils.cpp
249 NetworkExecutionUtils/NetworkExecutionUtils.hpp)
telsoa014fcda012018-03-09 14:13:49 +0000250
251 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100252 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100253 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000254 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
Jan Eilers45274902020-10-15 18:34:43 +0100255 target_include_directories(ExecuteNetwork PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
telsoa014fcda012018-03-09 14:13:49 +0000256
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000257 if (BUILD_ARMNN_SERIALIZER)
258 target_link_libraries(ExecuteNetwork armnnSerializer)
259 endif()
telsoa014fcda012018-03-09 14:13:49 +0000260 if (BUILD_CAFFE_PARSER)
261 target_link_libraries(ExecuteNetwork armnnCaffeParser)
262 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100263 if (BUILD_TF_PARSER)
264 target_link_libraries(ExecuteNetwork armnnTfParser)
265 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100266
267 if (BUILD_TF_LITE_PARSER)
268 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
269 endif()
270 if (BUILD_ONNX_PARSER)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000271 target_link_libraries(ExecuteNetwork armnnOnnxParser)
telsoa01c577f2c2018-08-31 09:22:23 +0100272 endif()
Sadik Armagan5d03e312020-11-17 16:43:56 +0000273 if (BUILD_ARMNN_TFLITE_DELEGATE)
274 target_link_libraries(ExecuteNetwork ArmnnDelegate::ArmnnDelegate)
275 endif()
telsoa014fcda012018-03-09 14:13:49 +0000276 target_link_libraries(ExecuteNetwork armnn)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000277
278 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
279 addDllCopyCommands(ExecuteNetwork)
telsoa014fcda012018-03-09 14:13:49 +0000280endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100281
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100282if(BUILD_ACCURACY_TOOL)
283 macro(AccuracyTool executorName)
284 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100285 if (BUILD_ARMNN_SERIALIZER)
286 target_link_libraries(${executorName} armnnSerializer)
287 endif()
288 if (BUILD_CAFFE_PARSER)
289 target_link_libraries(${executorName} armnnCaffeParser)
290 endif()
291 if (BUILD_TF_PARSER)
292 target_link_libraries(${executorName} armnnTfParser)
293 endif()
294 if (BUILD_TF_LITE_PARSER)
295 target_link_libraries(${executorName} armnnTfLiteParser)
296 endif()
297 if (BUILD_ONNX_PARSER)
298 target_link_libraries(${executorName} armnnOnnxParser)
299 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100300 addDllCopyCommands(${executorName})
301 endmacro()
302
303 set(ModelAccuracyTool-Armnn_sources
304 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
305
306 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
307 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
308 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
309 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
310 target_link_libraries(ModelAccuracyTool inferenceTest)
311 target_link_libraries(ModelAccuracyTool armnn)
312 target_link_libraries(ModelAccuracyTool armnnSerializer)
313 AccuracyTool(ModelAccuracyTool)
314endif()
315
Sadik Armagan8271f812019-04-19 09:55:06 +0100316if(BUILD_ARMNN_QUANTIZER)
317 macro(ImageTensorExecutor executorName)
318 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100319 addDllCopyCommands(${executorName})
320 endmacro()
321
322 set(ImageTensorGenerator_sources
323 InferenceTestImage.hpp
324 InferenceTestImage.cpp
325 ImageTensorGenerator/ImageTensorGenerator.cpp)
326
327 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
328 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
329 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
330
331 target_link_libraries(ImageTensorGenerator armnn)
332 ImageTensorExecutor(ImageTensorGenerator)
333
334 set(ImageCSVFileGenerator_sources
335 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
336
337 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100338 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100339 ImageTensorExecutor(ImageCSVFileGenerator)
340endif()