blob: 5bbec11158da7f02313f9368e396a41b5ad51cb2 [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 target_link_libraries(${testName}
31 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +010032 ${Boost_PROGRAM_OPTIONS_LIBRARY}
33 ${Boost_FILESYSTEM_LIBRARY})
telsoa014fcda012018-03-09 14:13:49 +000034 addDllCopyCommands(${testName})
35 endmacro()
36
37 set(CaffeCifar10AcrossChannels-Armnn_sources
38 CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
39 Cifar10Database.hpp
40 Cifar10Database.cpp)
41 CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
42
43 set(CaffeMnist-Armnn_sources
44 CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
45 MnistDatabase.hpp
46 MnistDatabase.cpp)
47 CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
48
49 set(CaffeAlexNet-Armnn_sources
50 CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010051 CaffePreprocessor.hpp
52 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000053 CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
54
55 set(MultipleNetworksCifar10_SRC
56 MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
57 Cifar10Database.hpp
58 Cifar10Database.cpp)
59 CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
60
61 set(CaffeResNet-Armnn_sources
62 CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010063 CaffePreprocessor.hpp
64 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000065 CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
66
67 set(CaffeVGG-Armnn_sources
68 CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010069 CaffePreprocessor.hpp
70 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000071 CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
72
73 set(CaffeInception_BN-Armnn_sources
74 CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010075 CaffePreprocessor.hpp
76 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000077 CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
78
79 set(CaffeYolo-Armnn_sources
80 CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
81 YoloDatabase.hpp
82 YoloDatabase.cpp
83 YoloInferenceTest.hpp)
84 CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
85endif()
86
surmeh01bceff2f2018-03-29 16:29:27 +010087if(BUILD_TF_PARSER)
88 macro(TfParserTest testName sources)
89 add_executable_ex(${testName} ${sources})
90 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000091 target_include_directories(${testName} PRIVATE ../src/backends)
surmeh01bceff2f2018-03-29 16:29:27 +010092
93 target_link_libraries(${testName} inferenceTest)
94 target_link_libraries(${testName} armnnTfParser)
95 target_link_libraries(${testName} armnn)
96 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
surmeh01bceff2f2018-03-29 16:29:27 +010097 target_link_libraries(${testName}
98 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +010099 ${Boost_PROGRAM_OPTIONS_LIBRARY}
100 ${Boost_FILESYSTEM_LIBRARY})
surmeh01bceff2f2018-03-29 16:29:27 +0100101 addDllCopyCommands(${testName})
102 endmacro()
103
104 set(TfMnist-Armnn_sources
105 TfMnist-Armnn/TfMnist-Armnn.cpp
106 MnistDatabase.hpp
107 MnistDatabase.cpp)
108 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
109
110 set(TfCifar10-Armnn_sources
111 TfCifar10-Armnn/TfCifar10-Armnn.cpp
112 Cifar10Database.hpp
113 Cifar10Database.cpp)
114 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
115
116 set(TfMobileNet-Armnn_sources
117 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100118 ImagePreprocessor.hpp
119 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100120 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
121
122 set(TfInceptionV3-Armnn_sources
123 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100124 ImagePreprocessor.hpp
125 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100126 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +0100127
128 set(TfResNext-Armnn_sources
129 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100130 CaffePreprocessor.hpp
131 CaffePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +0100132 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +0100133endif()
134
telsoa01c577f2c2018-08-31 09:22:23 +0100135if (BUILD_TF_LITE_PARSER)
136 macro(TfLiteParserTest testName sources)
137 add_executable_ex(${testName} ${sources})
138 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000139 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100140
141 target_link_libraries(${testName} inferenceTest)
142 target_link_libraries(${testName} armnnTfLiteParser)
143 target_link_libraries(${testName} armnn)
144 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100145 target_link_libraries(${testName}
146 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100147 ${Boost_PROGRAM_OPTIONS_LIBRARY}
148 ${Boost_FILESYSTEM_LIBRARY})
telsoa01c577f2c2018-08-31 09:22:23 +0100149 addDllCopyCommands(${testName})
150 endmacro()
151
152 set(TfLiteMobilenetQuantized-Armnn_sources
153 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
154 ImagePreprocessor.hpp
155 ImagePreprocessor.cpp)
156 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100157
Aron Virginas-Tard089b742019-01-29 11:09:51 +0000158 set(TfLiteMobileNetSsd-Armnn_sources
159 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
160 MobileNetSsdDatabase.hpp
161 MobileNetSsdInferenceTest.hpp
162 ObjectDetectionCommon.hpp)
163 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
164
Bruno Goncalves06304112018-12-27 16:13:58 -0200165 set(TfLiteMobilenetV2Quantized-Armnn_sources
166 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
167 ImagePreprocessor.hpp
168 ImagePreprocessor.cpp)
169 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
170
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100171 set(TfLiteVGG16Quantized-Armnn_sources
172 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
173 ImagePreprocessor.hpp
174 ImagePreprocessor.cpp)
175 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200176
David Monahana820e022019-04-23 11:03:38 +0100177 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
178 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
179 ImagePreprocessor.hpp
180 ImagePreprocessor.cpp)
181 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
182
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200183 set(TfLiteInceptionV3Quantized-Armnn_sources
184 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
185 ImagePreprocessor.hpp
186 ImagePreprocessor.cpp)
187 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -0200188
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -0200189 set(TfLiteInceptionV4Quantized-Armnn_sources
190 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
191 ImagePreprocessor.hpp
192 ImagePreprocessor.cpp)
193 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
194
Bruno Goncalves8f293382018-12-27 16:15:38 -0200195 set(TfLiteResNetV2-Armnn_sources
196 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
197 ImagePreprocessor.hpp
198 ImagePreprocessor.cpp)
199 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -0200200
Nina Drozd472d4e02019-04-15 17:18:36 +0100201 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +0100202 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
203 ImagePreprocessor.hpp
204 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +0100205 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
206
Bruno Goncalves61980d42018-12-28 10:08:26 -0200207 set(TfLiteMnasNet-Armnn_sources
208 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
209 ImagePreprocessor.hpp
210 ImagePreprocessor.cpp)
211 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +0100212
213
214 set(TfLiteYoloV3Big-Armnn_sources
215 TfLiteYoloV3Big-Armnn/NMS.cpp
216 TfLiteYoloV3Big-Armnn/NMS.hpp
217 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
218 ImagePreprocessor.hpp
219 ImagePreprocessor.cpp)
220 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
telsoa01c577f2c2018-08-31 09:22:23 +0100221endif()
222
223if (BUILD_ONNX_PARSER)
224 macro(OnnxParserTest testName sources)
225 add_executable_ex(${testName} ${sources})
226 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000227 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100228
229 target_link_libraries(${testName} inferenceTest)
230 target_link_libraries(${testName} armnnOnnxParser)
231 target_link_libraries(${testName} armnn)
232 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100233 target_link_libraries(${testName}
234 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100235 ${Boost_PROGRAM_OPTIONS_LIBRARY}
236 ${Boost_FILESYSTEM_LIBRARY})
telsoa01c577f2c2018-08-31 09:22:23 +0100237 addDllCopyCommands(${testName})
238 endmacro()
239
240 set(OnnxMnist-Armnn_sources
241 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
242 MnistDatabase.hpp
243 MnistDatabase.cpp)
244 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
245
246 set(OnnxMobileNet-Armnn_sources
247 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
248 ImagePreprocessor.hpp
249 ImagePreprocessor.cpp)
250 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
251endif()
252
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000253if (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 +0000254 set(ExecuteNetwork_sources
255 ExecuteNetwork/ExecuteNetwork.cpp)
256
257 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100258 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100259 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000260 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
telsoa014fcda012018-03-09 14:13:49 +0000261
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000262 if (BUILD_ARMNN_SERIALIZER)
263 target_link_libraries(ExecuteNetwork armnnSerializer)
264 endif()
telsoa014fcda012018-03-09 14:13:49 +0000265 if (BUILD_CAFFE_PARSER)
266 target_link_libraries(ExecuteNetwork armnnCaffeParser)
267 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100268 if (BUILD_TF_PARSER)
269 target_link_libraries(ExecuteNetwork armnnTfParser)
270 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100271
272 if (BUILD_TF_LITE_PARSER)
273 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
274 endif()
275 if (BUILD_ONNX_PARSER)
276 target_link_libraries(ExecuteNetwork armnnOnnxParser)
277 endif()
278
telsoa014fcda012018-03-09 14:13:49 +0000279 target_link_libraries(ExecuteNetwork armnn)
280 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
telsoa014fcda012018-03-09 14:13:49 +0000281 target_link_libraries(ExecuteNetwork
282 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100283 ${Boost_PROGRAM_OPTIONS_LIBRARY}
284 ${Boost_FILESYSTEM_LIBRARY})
telsoa014fcda012018-03-09 14:13:49 +0000285 addDllCopyCommands(ExecuteNetwork)
286endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100287
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100288if(BUILD_ACCURACY_TOOL)
289 macro(AccuracyTool executorName)
290 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100291 if (BUILD_ARMNN_SERIALIZER)
292 target_link_libraries(${executorName} armnnSerializer)
293 endif()
294 if (BUILD_CAFFE_PARSER)
295 target_link_libraries(${executorName} armnnCaffeParser)
296 endif()
297 if (BUILD_TF_PARSER)
298 target_link_libraries(${executorName} armnnTfParser)
299 endif()
300 if (BUILD_TF_LITE_PARSER)
301 target_link_libraries(${executorName} armnnTfLiteParser)
302 endif()
303 if (BUILD_ONNX_PARSER)
304 target_link_libraries(${executorName} armnnOnnxParser)
305 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100306 target_link_libraries(${executorName}
307 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100308 ${Boost_PROGRAM_OPTIONS_LIBRARY}
309 ${Boost_FILESYSTEM_LIBRARY})
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100310 addDllCopyCommands(${executorName})
311 endmacro()
312
313 set(ModelAccuracyTool-Armnn_sources
314 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
315
316 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
317 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
318 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
319 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
320 target_link_libraries(ModelAccuracyTool inferenceTest)
321 target_link_libraries(ModelAccuracyTool armnn)
322 target_link_libraries(ModelAccuracyTool armnnSerializer)
323 AccuracyTool(ModelAccuracyTool)
324endif()
325
Sadik Armagan8271f812019-04-19 09:55:06 +0100326if(BUILD_ARMNN_QUANTIZER)
327 macro(ImageTensorExecutor executorName)
328 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100329 target_link_libraries(${executorName}
330 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100331 ${Boost_PROGRAM_OPTIONS_LIBRARY}
332 ${Boost_FILESYSTEM_LIBRARY})
Sadik Armagan8271f812019-04-19 09:55:06 +0100333 addDllCopyCommands(${executorName})
334 endmacro()
335
336 set(ImageTensorGenerator_sources
337 InferenceTestImage.hpp
338 InferenceTestImage.cpp
339 ImageTensorGenerator/ImageTensorGenerator.cpp)
340
341 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
342 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
343 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
344
345 target_link_libraries(ImageTensorGenerator armnn)
346 ImageTensorExecutor(ImageTensorGenerator)
347
348 set(ImageCSVFileGenerator_sources
349 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
350
351 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100352 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100353 ImageTensorExecutor(ImageCSVFileGenerator)
354endif()