blob: b7a6d747e02e99b4e8319d2e69b858ca49caa66f [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001# UnitTests
2include(CheckIncludeFiles)
3
4include_directories(SYSTEM "${THIRD_PARTY_INCLUDE_DIRS}")
5
6# Setup the inference test framework
7set(inference_test_sources
8 ClassifierTestCaseData.hpp
9 InferenceModel.hpp
10 InferenceTest.hpp
11 InferenceTest.inl
12 InferenceTest.cpp
13 InferenceTestImage.hpp
14 InferenceTestImage.cpp)
15add_library_ex(inferenceTest STATIC ${inference_test_sources})
16target_include_directories(inferenceTest PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000017target_include_directories(inferenceTest PRIVATE ../src/backends)
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})
30 if(OPENCL_LIBRARIES)
31 target_link_libraries(${testName} ${OPENCL_LIBRARIES})
32 endif()
33 target_link_libraries(${testName}
34 ${Boost_SYSTEM_LIBRARY}
35 ${Boost_FILESYSTEM_LIBRARY}
36 ${Boost_PROGRAM_OPTIONS_LIBRARY})
37 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})
100 if(OPENCL_LIBRARIES)
101 target_link_libraries(${testName} ${OPENCL_LIBRARIES})
102 endif()
103 target_link_libraries(${testName}
104 ${Boost_SYSTEM_LIBRARY}
105 ${Boost_FILESYSTEM_LIBRARY}
106 ${Boost_PROGRAM_OPTIONS_LIBRARY})
107 addDllCopyCommands(${testName})
108 endmacro()
109
110 set(TfMnist-Armnn_sources
111 TfMnist-Armnn/TfMnist-Armnn.cpp
112 MnistDatabase.hpp
113 MnistDatabase.cpp)
114 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
115
116 set(TfCifar10-Armnn_sources
117 TfCifar10-Armnn/TfCifar10-Armnn.cpp
118 Cifar10Database.hpp
119 Cifar10Database.cpp)
120 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
121
122 set(TfMobileNet-Armnn_sources
123 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100124 ImagePreprocessor.hpp
125 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100126 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
127
128 set(TfInceptionV3-Armnn_sources
129 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100130 ImagePreprocessor.hpp
131 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +0100132 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +0100133
134 set(TfResNext-Armnn_sources
135 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +0100136 CaffePreprocessor.hpp
137 CaffePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +0100138 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +0100139endif()
140
telsoa01c577f2c2018-08-31 09:22:23 +0100141if (BUILD_TF_LITE_PARSER)
142 macro(TfLiteParserTest testName sources)
143 add_executable_ex(${testName} ${sources})
144 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000145 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100146
147 target_link_libraries(${testName} inferenceTest)
148 target_link_libraries(${testName} armnnTfLiteParser)
149 target_link_libraries(${testName} armnn)
150 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
151 if(OPENCL_LIBRARIES)
152 target_link_libraries(${testName} ${OPENCL_LIBRARIES})
153 endif()
154 target_link_libraries(${testName}
155 ${Boost_SYSTEM_LIBRARY}
156 ${Boost_FILESYSTEM_LIBRARY}
157 ${Boost_PROGRAM_OPTIONS_LIBRARY})
158 addDllCopyCommands(${testName})
159 endmacro()
160
161 set(TfLiteMobilenetQuantized-Armnn_sources
162 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
163 ImagePreprocessor.hpp
164 ImagePreprocessor.cpp)
165 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100166
Aron Virginas-Tard089b742019-01-29 11:09:51 +0000167 set(TfLiteMobileNetSsd-Armnn_sources
168 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
169 MobileNetSsdDatabase.hpp
170 MobileNetSsdInferenceTest.hpp
171 ObjectDetectionCommon.hpp)
172 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
173
Bruno Goncalves06304112018-12-27 16:13:58 -0200174 set(TfLiteMobilenetV2Quantized-Armnn_sources
175 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
176 ImagePreprocessor.hpp
177 ImagePreprocessor.cpp)
178 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
179
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +0100180 set(TfLiteVGG16Quantized-Armnn_sources
181 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
182 ImagePreprocessor.hpp
183 ImagePreprocessor.cpp)
184 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200185
186 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
205 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
206 ImagePreprocessor.hpp
207 ImagePreprocessor.cpp)
208 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}")
telsoa01c577f2c2018-08-31 09:22:23 +0100215endif()
216
217if (BUILD_ONNX_PARSER)
218 macro(OnnxParserTest testName sources)
219 add_executable_ex(${testName} ${sources})
220 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000221 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100222
223 target_link_libraries(${testName} inferenceTest)
224 target_link_libraries(${testName} armnnOnnxParser)
225 target_link_libraries(${testName} armnn)
226 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
227 if(OPENCL_LIBRARIES)
228 target_link_libraries(${testName} ${OPENCL_LIBRARIES})
229 endif()
230 target_link_libraries(${testName}
231 ${Boost_SYSTEM_LIBRARY}
232 ${Boost_FILESYSTEM_LIBRARY}
233 ${Boost_PROGRAM_OPTIONS_LIBRARY})
234 addDllCopyCommands(${testName})
235 endmacro()
236
237 set(OnnxMnist-Armnn_sources
238 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
239 MnistDatabase.hpp
240 MnistDatabase.cpp)
241 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
242
243 set(OnnxMobileNet-Armnn_sources
244 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
245 ImagePreprocessor.hpp
246 ImagePreprocessor.cpp)
247 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
248endif()
249
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000250if (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 +0000251 set(ExecuteNetwork_sources
252 ExecuteNetwork/ExecuteNetwork.cpp)
253
254 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100255 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100256 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000257 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
telsoa014fcda012018-03-09 14:13:49 +0000258
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000259 if (BUILD_ARMNN_SERIALIZER)
260 target_link_libraries(ExecuteNetwork armnnSerializer)
261 endif()
telsoa014fcda012018-03-09 14:13:49 +0000262 if (BUILD_CAFFE_PARSER)
263 target_link_libraries(ExecuteNetwork armnnCaffeParser)
264 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100265 if (BUILD_TF_PARSER)
266 target_link_libraries(ExecuteNetwork armnnTfParser)
267 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100268
269 if (BUILD_TF_LITE_PARSER)
270 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
271 endif()
272 if (BUILD_ONNX_PARSER)
273 target_link_libraries(ExecuteNetwork armnnOnnxParser)
274 endif()
275
telsoa014fcda012018-03-09 14:13:49 +0000276 target_link_libraries(ExecuteNetwork armnn)
277 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
278 if(OPENCL_LIBRARIES)
279 target_link_libraries(ExecuteNetwork ${OPENCL_LIBRARIES})
280 endif()
281 target_link_libraries(ExecuteNetwork
282 ${Boost_SYSTEM_LIBRARY}
283 ${Boost_FILESYSTEM_LIBRARY}
284 ${Boost_PROGRAM_OPTIONS_LIBRARY})
285 addDllCopyCommands(ExecuteNetwork)
286endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100287
288if(BUILD_ARMNN_QUANTIZER)
289 macro(ImageTensorExecutor executorName)
290 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
291 if(OPENCL_LIBRARIES)
292 target_link_libraries(${executorName} ${OPENCL_LIBRARIES})
293 endif()
294 target_link_libraries(${executorName}
295 ${Boost_SYSTEM_LIBRARY}
296 ${Boost_FILESYSTEM_LIBRARY}
297 ${Boost_PROGRAM_OPTIONS_LIBRARY})
298 addDllCopyCommands(${executorName})
299 endmacro()
300
301 set(ImageTensorGenerator_sources
302 InferenceTestImage.hpp
303 InferenceTestImage.cpp
304 ImageTensorGenerator/ImageTensorGenerator.cpp)
305
306 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
307 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
308 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
309
310 target_link_libraries(ImageTensorGenerator armnn)
311 ImageTensorExecutor(ImageTensorGenerator)
312
313 set(ImageCSVFileGenerator_sources
314 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
315
316 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
317 ImageTensorExecutor(ImageCSVFileGenerator)
318endif()