blob: da757c2c82ab98904e2134cd48ab0d70a017a366 [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 addDllCopyCommands(${testName})
34 endmacro()
35
36 set(CaffeCifar10AcrossChannels-Armnn_sources
37 CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
38 Cifar10Database.hpp
39 Cifar10Database.cpp)
40 CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
41
42 set(CaffeMnist-Armnn_sources
43 CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
44 MnistDatabase.hpp
45 MnistDatabase.cpp)
46 CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
47
48 set(CaffeAlexNet-Armnn_sources
49 CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010050 CaffePreprocessor.hpp
51 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000052 CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
53
54 set(MultipleNetworksCifar10_SRC
55 MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
56 Cifar10Database.hpp
57 Cifar10Database.cpp)
58 CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
59
60 set(CaffeResNet-Armnn_sources
61 CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010062 CaffePreprocessor.hpp
63 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000064 CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
65
66 set(CaffeVGG-Armnn_sources
67 CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010068 CaffePreprocessor.hpp
69 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000070 CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
71
72 set(CaffeInception_BN-Armnn_sources
73 CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010074 CaffePreprocessor.hpp
75 CaffePreprocessor.cpp)
telsoa014fcda012018-03-09 14:13:49 +000076 CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
77
78 set(CaffeYolo-Armnn_sources
79 CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
80 YoloDatabase.hpp
81 YoloDatabase.cpp
82 YoloInferenceTest.hpp)
83 CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
84endif()
85
surmeh01bceff2f2018-03-29 16:29:27 +010086if(BUILD_TF_PARSER)
87 macro(TfParserTest testName sources)
88 add_executable_ex(${testName} ${sources})
89 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000090 target_include_directories(${testName} PRIVATE ../src/backends)
surmeh01bceff2f2018-03-29 16:29:27 +010091
92 target_link_libraries(${testName} inferenceTest)
93 target_link_libraries(${testName} armnnTfParser)
94 target_link_libraries(${testName} armnn)
95 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
surmeh01bceff2f2018-03-29 16:29:27 +010096 addDllCopyCommands(${testName})
97 endmacro()
98
99 set(TfMnist-Armnn_sources
100 TfMnist-Armnn/TfMnist-Armnn.cpp
101 MnistDatabase.hpp
102 MnistDatabase.cpp)
103 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
104
105 set(TfCifar10-Armnn_sources
106 TfCifar10-Armnn/TfCifar10-Armnn.cpp
107 Cifar10Database.hpp
108 Cifar10Database.cpp)
109 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
110
111 set(TfMobileNet-Armnn_sources
112 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100113 ImagePreprocessor.hpp
114 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100115 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
116
117 set(TfInceptionV3-Armnn_sources
118 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100119 ImagePreprocessor.hpp
120 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100121 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +0100122
123 set(TfResNext-Armnn_sources
124 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100125 CaffePreprocessor.hpp
126 CaffePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +0100127 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +0100128endif()
129
telsoa01c577f2c2018-08-31 09:22:23 +0100130if (BUILD_TF_LITE_PARSER)
131 macro(TfLiteParserTest testName sources)
132 add_executable_ex(${testName} ${sources})
133 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000134 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100135
136 target_link_libraries(${testName} inferenceTest)
137 target_link_libraries(${testName} armnnTfLiteParser)
138 target_link_libraries(${testName} armnn)
139 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100140 addDllCopyCommands(${testName})
141 endmacro()
142
143 set(TfLiteMobilenetQuantized-Armnn_sources
144 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
145 ImagePreprocessor.hpp
146 ImagePreprocessor.cpp)
147 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100148
Aron Virginas-Tard089b742019-01-29 11:09:51 +0000149 set(TfLiteMobileNetSsd-Armnn_sources
150 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
151 MobileNetSsdDatabase.hpp
152 MobileNetSsdInferenceTest.hpp
153 ObjectDetectionCommon.hpp)
154 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
155
Bruno Goncalves06304112018-12-27 16:13:58 -0200156 set(TfLiteMobilenetV2Quantized-Armnn_sources
157 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
158 ImagePreprocessor.hpp
159 ImagePreprocessor.cpp)
160 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
161
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100162 set(TfLiteVGG16Quantized-Armnn_sources
163 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
164 ImagePreprocessor.hpp
165 ImagePreprocessor.cpp)
166 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200167
David Monahana820e022019-04-23 11:03:38 +0100168 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
169 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
170 ImagePreprocessor.hpp
171 ImagePreprocessor.cpp)
172 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
173
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200174 set(TfLiteInceptionV3Quantized-Armnn_sources
175 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
176 ImagePreprocessor.hpp
177 ImagePreprocessor.cpp)
178 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -0200179
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -0200180 set(TfLiteInceptionV4Quantized-Armnn_sources
181 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
182 ImagePreprocessor.hpp
183 ImagePreprocessor.cpp)
184 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
185
Bruno Goncalves8f293382018-12-27 16:15:38 -0200186 set(TfLiteResNetV2-Armnn_sources
187 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
188 ImagePreprocessor.hpp
189 ImagePreprocessor.cpp)
190 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -0200191
Nina Drozd472d4e02019-04-15 17:18:36 +0100192 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +0100193 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
194 ImagePreprocessor.hpp
195 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +0100196 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
197
Bruno Goncalves61980d42018-12-28 10:08:26 -0200198 set(TfLiteMnasNet-Armnn_sources
199 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
200 ImagePreprocessor.hpp
201 ImagePreprocessor.cpp)
202 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +0100203
204
205 set(TfLiteYoloV3Big-Armnn_sources
206 TfLiteYoloV3Big-Armnn/NMS.cpp
207 TfLiteYoloV3Big-Armnn/NMS.hpp
208 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
209 ImagePreprocessor.hpp
210 ImagePreprocessor.cpp)
211 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
telsoa01c577f2c2018-08-31 09:22:23 +0100212endif()
213
214if (BUILD_ONNX_PARSER)
215 macro(OnnxParserTest testName sources)
216 add_executable_ex(${testName} ${sources})
217 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000218 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100219
220 target_link_libraries(${testName} inferenceTest)
221 target_link_libraries(${testName} armnnOnnxParser)
222 target_link_libraries(${testName} armnn)
223 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100224 addDllCopyCommands(${testName})
225 endmacro()
226
227 set(OnnxMnist-Armnn_sources
228 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
229 MnistDatabase.hpp
230 MnistDatabase.cpp)
231 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
232
233 set(OnnxMobileNet-Armnn_sources
234 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
235 ImagePreprocessor.hpp
236 ImagePreprocessor.cpp)
237 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
238endif()
239
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000240if (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 +0000241 set(ExecuteNetwork_sources
Jan Eilers45274902020-10-15 18:34:43 +0100242 ExecuteNetwork/ExecuteNetwork.cpp
243 ExecuteNetwork/ExecuteNetworkProgramOptions.cpp
244 ExecuteNetwork/ExecuteNetworkProgramOptions.hpp
245 ExecuteNetwork/ExecuteNetworkParams.cpp
246 ExecuteNetwork/ExecuteNetworkParams.hpp
247 NetworkExecutionUtils/NetworkExecutionUtils.cpp
248 NetworkExecutionUtils/NetworkExecutionUtils.hpp)
telsoa014fcda012018-03-09 14:13:49 +0000249
250 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100251 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100252 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000253 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
Jan Eilers45274902020-10-15 18:34:43 +0100254 target_include_directories(ExecuteNetwork PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
telsoa014fcda012018-03-09 14:13:49 +0000255
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000256 if (BUILD_ARMNN_SERIALIZER)
257 target_link_libraries(ExecuteNetwork armnnSerializer)
258 endif()
telsoa014fcda012018-03-09 14:13:49 +0000259 if (BUILD_CAFFE_PARSER)
260 target_link_libraries(ExecuteNetwork armnnCaffeParser)
261 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100262 if (BUILD_TF_PARSER)
263 target_link_libraries(ExecuteNetwork armnnTfParser)
264 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100265
266 if (BUILD_TF_LITE_PARSER)
267 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
268 endif()
269 if (BUILD_ONNX_PARSER)
270 target_link_libraries(ExecuteNetwork armnnOnnxParser)
271 endif()
272
telsoa014fcda012018-03-09 14:13:49 +0000273 target_link_libraries(ExecuteNetwork armnn)
274 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
telsoa014fcda012018-03-09 14:13:49 +0000275 addDllCopyCommands(ExecuteNetwork)
276endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100277
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100278if(BUILD_ACCURACY_TOOL)
279 macro(AccuracyTool executorName)
280 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100281 if (BUILD_ARMNN_SERIALIZER)
282 target_link_libraries(${executorName} armnnSerializer)
283 endif()
284 if (BUILD_CAFFE_PARSER)
285 target_link_libraries(${executorName} armnnCaffeParser)
286 endif()
287 if (BUILD_TF_PARSER)
288 target_link_libraries(${executorName} armnnTfParser)
289 endif()
290 if (BUILD_TF_LITE_PARSER)
291 target_link_libraries(${executorName} armnnTfLiteParser)
292 endif()
293 if (BUILD_ONNX_PARSER)
294 target_link_libraries(${executorName} armnnOnnxParser)
295 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100296 addDllCopyCommands(${executorName})
297 endmacro()
298
299 set(ModelAccuracyTool-Armnn_sources
300 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
301
302 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
303 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
304 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
305 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
306 target_link_libraries(ModelAccuracyTool inferenceTest)
307 target_link_libraries(ModelAccuracyTool armnn)
308 target_link_libraries(ModelAccuracyTool armnnSerializer)
309 AccuracyTool(ModelAccuracyTool)
310endif()
311
Sadik Armagan8271f812019-04-19 09:55:06 +0100312if(BUILD_ARMNN_QUANTIZER)
313 macro(ImageTensorExecutor executorName)
314 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100315 addDllCopyCommands(${executorName})
316 endmacro()
317
318 set(ImageTensorGenerator_sources
319 InferenceTestImage.hpp
320 InferenceTestImage.cpp
321 ImageTensorGenerator/ImageTensorGenerator.cpp)
322
323 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
324 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
325 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
326
327 target_link_libraries(ImageTensorGenerator armnn)
328 ImageTensorExecutor(ImageTensorGenerator)
329
330 set(ImageCSVFileGenerator_sources
331 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
332
333 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100334 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100335 ImageTensorExecutor(ImageCSVFileGenerator)
336endif()