blob: b3496b42ee20c92150dd8df43465bf26e0325e3e [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
Jan Eilersba3ef182020-09-25 08:36:44 +010019# Link fmt third-party library
20target_link_libraries(inferenceTest fmt)
21
telsoa014fcda012018-03-09 14:13:49 +000022if(BUILD_CAFFE_PARSER)
23 macro(CaffeParserTest testName sources)
24 add_executable_ex(${testName} ${sources})
25 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000026 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa014fcda012018-03-09 14:13:49 +000027 set_target_properties(${testName} PROPERTIES COMPILE_FLAGS "${CAFFE_PARSER_TEST_ADDITIONAL_COMPILE_FLAGS}")
28
29 target_link_libraries(${testName} inferenceTest)
30 target_link_libraries(${testName} armnnCaffeParser)
31 target_link_libraries(${testName} armnn)
32 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa014fcda012018-03-09 14:13:49 +000033 target_link_libraries(${testName}
34 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +010035 ${Boost_PROGRAM_OPTIONS_LIBRARY}
36 ${Boost_FILESYSTEM_LIBRARY})
telsoa014fcda012018-03-09 14:13:49 +000037 addDllCopyCommands(${testName})
38 endmacro()
39
40 set(CaffeCifar10AcrossChannels-Armnn_sources
41 CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
42 Cifar10Database.hpp
43 Cifar10Database.cpp)
44 CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
45
46 set(CaffeMnist-Armnn_sources
47 CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
48 MnistDatabase.hpp
49 MnistDatabase.cpp)
50 CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
51
52 set(CaffeAlexNet-Armnn_sources
53 CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010054 CaffePreprocessor.hpp
55 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000056 CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
57
58 set(MultipleNetworksCifar10_SRC
59 MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
60 Cifar10Database.hpp
61 Cifar10Database.cpp)
62 CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
63
64 set(CaffeResNet-Armnn_sources
65 CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010066 CaffePreprocessor.hpp
67 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000068 CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
69
70 set(CaffeVGG-Armnn_sources
71 CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010072 CaffePreprocessor.hpp
73 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000074 CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
75
76 set(CaffeInception_BN-Armnn_sources
77 CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010078 CaffePreprocessor.hpp
79 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000080 CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
81
82 set(CaffeYolo-Armnn_sources
83 CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
84 YoloDatabase.hpp
85 YoloDatabase.cpp
86 YoloInferenceTest.hpp)
87 CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
88endif()
89
surmeh01bceff2f2018-03-29 16:29:27 +010090if(BUILD_TF_PARSER)
91 macro(TfParserTest testName sources)
92 add_executable_ex(${testName} ${sources})
93 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000094 target_include_directories(${testName} PRIVATE ../src/backends)
surmeh01bceff2f2018-03-29 16:29:27 +010095
96 target_link_libraries(${testName} inferenceTest)
97 target_link_libraries(${testName} armnnTfParser)
98 target_link_libraries(${testName} armnn)
99 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
surmeh01bceff2f2018-03-29 16:29:27 +0100100 target_link_libraries(${testName}
101 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100102 ${Boost_PROGRAM_OPTIONS_LIBRARY}
103 ${Boost_FILESYSTEM_LIBRARY})
surmeh01bceff2f2018-03-29 16:29:27 +0100104 addDllCopyCommands(${testName})
105 endmacro()
106
107 set(TfMnist-Armnn_sources
108 TfMnist-Armnn/TfMnist-Armnn.cpp
109 MnistDatabase.hpp
110 MnistDatabase.cpp)
111 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
112
113 set(TfCifar10-Armnn_sources
114 TfCifar10-Armnn/TfCifar10-Armnn.cpp
115 Cifar10Database.hpp
116 Cifar10Database.cpp)
117 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
118
119 set(TfMobileNet-Armnn_sources
120 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100121 ImagePreprocessor.hpp
122 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100123 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
124
125 set(TfInceptionV3-Armnn_sources
126 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100127 ImagePreprocessor.hpp
128 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100129 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +0100130
131 set(TfResNext-Armnn_sources
132 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100133 CaffePreprocessor.hpp
134 CaffePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +0100135 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +0100136endif()
137
telsoa01c577f2c2018-08-31 09:22:23 +0100138if (BUILD_TF_LITE_PARSER)
139 macro(TfLiteParserTest testName sources)
140 add_executable_ex(${testName} ${sources})
141 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000142 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100143
144 target_link_libraries(${testName} inferenceTest)
145 target_link_libraries(${testName} armnnTfLiteParser)
146 target_link_libraries(${testName} armnn)
147 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100148 target_link_libraries(${testName}
149 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100150 ${Boost_PROGRAM_OPTIONS_LIBRARY}
151 ${Boost_FILESYSTEM_LIBRARY})
telsoa01c577f2c2018-08-31 09:22:23 +0100152 addDllCopyCommands(${testName})
153 endmacro()
154
155 set(TfLiteMobilenetQuantized-Armnn_sources
156 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
157 ImagePreprocessor.hpp
158 ImagePreprocessor.cpp)
159 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100160
Aron Virginas-Tard089b742019-01-29 11:09:51 +0000161 set(TfLiteMobileNetSsd-Armnn_sources
162 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
163 MobileNetSsdDatabase.hpp
164 MobileNetSsdInferenceTest.hpp
165 ObjectDetectionCommon.hpp)
166 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
167
Bruno Goncalves06304112018-12-27 16:13:58 -0200168 set(TfLiteMobilenetV2Quantized-Armnn_sources
169 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
170 ImagePreprocessor.hpp
171 ImagePreprocessor.cpp)
172 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
173
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100174 set(TfLiteVGG16Quantized-Armnn_sources
175 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
176 ImagePreprocessor.hpp
177 ImagePreprocessor.cpp)
178 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200179
David Monahana820e022019-04-23 11:03:38 +0100180 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
181 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
182 ImagePreprocessor.hpp
183 ImagePreprocessor.cpp)
184 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
185
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200186 set(TfLiteInceptionV3Quantized-Armnn_sources
187 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
188 ImagePreprocessor.hpp
189 ImagePreprocessor.cpp)
190 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -0200191
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -0200192 set(TfLiteInceptionV4Quantized-Armnn_sources
193 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
194 ImagePreprocessor.hpp
195 ImagePreprocessor.cpp)
196 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
197
Bruno Goncalves8f293382018-12-27 16:15:38 -0200198 set(TfLiteResNetV2-Armnn_sources
199 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
200 ImagePreprocessor.hpp
201 ImagePreprocessor.cpp)
202 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -0200203
Nina Drozd472d4e02019-04-15 17:18:36 +0100204 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +0100205 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
206 ImagePreprocessor.hpp
207 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +0100208 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
209
Bruno Goncalves61980d42018-12-28 10:08:26 -0200210 set(TfLiteMnasNet-Armnn_sources
211 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
212 ImagePreprocessor.hpp
213 ImagePreprocessor.cpp)
214 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +0100215
216
217 set(TfLiteYoloV3Big-Armnn_sources
218 TfLiteYoloV3Big-Armnn/NMS.cpp
219 TfLiteYoloV3Big-Armnn/NMS.hpp
220 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
221 ImagePreprocessor.hpp
222 ImagePreprocessor.cpp)
223 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
telsoa01c577f2c2018-08-31 09:22:23 +0100224endif()
225
226if (BUILD_ONNX_PARSER)
227 macro(OnnxParserTest testName sources)
228 add_executable_ex(${testName} ${sources})
229 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000230 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100231
232 target_link_libraries(${testName} inferenceTest)
233 target_link_libraries(${testName} armnnOnnxParser)
234 target_link_libraries(${testName} armnn)
235 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100236 target_link_libraries(${testName}
237 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100238 ${Boost_PROGRAM_OPTIONS_LIBRARY}
239 ${Boost_FILESYSTEM_LIBRARY})
telsoa01c577f2c2018-08-31 09:22:23 +0100240 addDllCopyCommands(${testName})
241 endmacro()
242
243 set(OnnxMnist-Armnn_sources
244 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
245 MnistDatabase.hpp
246 MnistDatabase.cpp)
247 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
248
249 set(OnnxMobileNet-Armnn_sources
250 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
251 ImagePreprocessor.hpp
252 ImagePreprocessor.cpp)
253 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
254endif()
255
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000256if (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 +0000257 set(ExecuteNetwork_sources
258 ExecuteNetwork/ExecuteNetwork.cpp)
259
260 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100261 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100262 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000263 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
telsoa014fcda012018-03-09 14:13:49 +0000264
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000265 if (BUILD_ARMNN_SERIALIZER)
266 target_link_libraries(ExecuteNetwork armnnSerializer)
267 endif()
telsoa014fcda012018-03-09 14:13:49 +0000268 if (BUILD_CAFFE_PARSER)
269 target_link_libraries(ExecuteNetwork armnnCaffeParser)
270 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100271 if (BUILD_TF_PARSER)
272 target_link_libraries(ExecuteNetwork armnnTfParser)
273 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100274
275 if (BUILD_TF_LITE_PARSER)
276 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
277 endif()
278 if (BUILD_ONNX_PARSER)
279 target_link_libraries(ExecuteNetwork armnnOnnxParser)
280 endif()
281
telsoa014fcda012018-03-09 14:13:49 +0000282 target_link_libraries(ExecuteNetwork armnn)
283 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
telsoa014fcda012018-03-09 14:13:49 +0000284 target_link_libraries(ExecuteNetwork
285 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100286 ${Boost_PROGRAM_OPTIONS_LIBRARY}
287 ${Boost_FILESYSTEM_LIBRARY})
telsoa014fcda012018-03-09 14:13:49 +0000288 addDllCopyCommands(ExecuteNetwork)
289endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100290
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100291if(BUILD_ACCURACY_TOOL)
292 macro(AccuracyTool executorName)
293 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100294 if (BUILD_ARMNN_SERIALIZER)
295 target_link_libraries(${executorName} armnnSerializer)
296 endif()
297 if (BUILD_CAFFE_PARSER)
298 target_link_libraries(${executorName} armnnCaffeParser)
299 endif()
300 if (BUILD_TF_PARSER)
301 target_link_libraries(${executorName} armnnTfParser)
302 endif()
303 if (BUILD_TF_LITE_PARSER)
304 target_link_libraries(${executorName} armnnTfLiteParser)
305 endif()
306 if (BUILD_ONNX_PARSER)
307 target_link_libraries(${executorName} armnnOnnxParser)
308 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100309 target_link_libraries(${executorName}
310 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100311 ${Boost_PROGRAM_OPTIONS_LIBRARY}
312 ${Boost_FILESYSTEM_LIBRARY})
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100313 addDllCopyCommands(${executorName})
314 endmacro()
315
316 set(ModelAccuracyTool-Armnn_sources
317 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
318
319 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
320 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
321 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
322 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
323 target_link_libraries(ModelAccuracyTool inferenceTest)
324 target_link_libraries(ModelAccuracyTool armnn)
325 target_link_libraries(ModelAccuracyTool armnnSerializer)
326 AccuracyTool(ModelAccuracyTool)
327endif()
328
Sadik Armagan8271f812019-04-19 09:55:06 +0100329if(BUILD_ARMNN_QUANTIZER)
330 macro(ImageTensorExecutor executorName)
331 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100332 target_link_libraries(${executorName}
333 ${Boost_SYSTEM_LIBRARY}
Jim Flynnd858eff2020-08-14 11:07:21 +0100334 ${Boost_PROGRAM_OPTIONS_LIBRARY}
335 ${Boost_FILESYSTEM_LIBRARY})
Sadik Armagan8271f812019-04-19 09:55:06 +0100336 addDllCopyCommands(${executorName})
337 endmacro()
338
339 set(ImageTensorGenerator_sources
340 InferenceTestImage.hpp
341 InferenceTestImage.cpp
342 ImageTensorGenerator/ImageTensorGenerator.cpp)
343
344 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
345 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
346 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
347
348 target_link_libraries(ImageTensorGenerator armnn)
349 ImageTensorExecutor(ImageTensorGenerator)
350
351 set(ImageCSVFileGenerator_sources
352 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
353
354 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100355 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100356 ImageTensorExecutor(ImageCSVFileGenerator)
357endif()