2 include(CheckIncludeFiles)
4 # Setup the inference test framework
5 set(inference_test_sources
6 ClassifierTestCaseData.hpp
11 InferenceTestImage.hpp
12 InferenceTestImage.cpp)
14 add_library_ex(inferenceTest STATIC ${inference_test_sources})
15 target_include_directories(inferenceTest PRIVATE ../src/armnnUtils)
16 target_include_directories(inferenceTest PRIVATE ../src/backends)
17 target_include_directories(inferenceTest PRIVATE ../third-party/stb)
19 if(BUILD_CAFFE_PARSER)
20 macro(CaffeParserTest testName sources)
21 add_executable_ex(${testName} ${sources})
22 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
23 target_include_directories(${testName} PRIVATE ../src/backends)
24 set_target_properties(${testName} PROPERTIES COMPILE_FLAGS "${CAFFE_PARSER_TEST_ADDITIONAL_COMPILE_FLAGS}")
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 target_link_libraries(${testName}
31 ${Boost_SYSTEM_LIBRARY}
32 ${Boost_PROGRAM_OPTIONS_LIBRARY})
33 addDllCopyCommands(${testName})
36 set(CaffeCifar10AcrossChannels-Armnn_sources
37 CaffeCifar10AcrossChannels-Armnn/CaffeCifar10AcrossChannels-Armnn.cpp
40 CaffeParserTest(CaffeCifar10AcrossChannels-Armnn "${CaffeCifar10AcrossChannels-Armnn_sources}")
42 set(CaffeMnist-Armnn_sources
43 CaffeMnist-Armnn/CaffeMnist-Armnn.cpp
46 CaffeParserTest(CaffeMnist-Armnn "${CaffeMnist-Armnn_sources}")
48 set(CaffeAlexNet-Armnn_sources
49 CaffeAlexNet-Armnn/CaffeAlexNet-Armnn.cpp
51 CaffePreprocessor.cpp)
52 CaffeParserTest(CaffeAlexNet-Armnn "${CaffeAlexNet-Armnn_sources}")
54 set(MultipleNetworksCifar10_SRC
55 MultipleNetworksCifar10/MultipleNetworksCifar10.cpp
58 CaffeParserTest(MultipleNetworksCifar10 "${MultipleNetworksCifar10_SRC}")
60 set(CaffeResNet-Armnn_sources
61 CaffeResNet-Armnn/CaffeResNet-Armnn.cpp
63 CaffePreprocessor.cpp)
64 CaffeParserTest(CaffeResNet-Armnn "${CaffeResNet-Armnn_sources}")
66 set(CaffeVGG-Armnn_sources
67 CaffeVGG-Armnn/CaffeVGG-Armnn.cpp
69 CaffePreprocessor.cpp)
70 CaffeParserTest(CaffeVGG-Armnn "${CaffeVGG-Armnn_sources}")
72 set(CaffeInception_BN-Armnn_sources
73 CaffeInception_BN-Armnn/CaffeInception_BN-Armnn.cpp
75 CaffePreprocessor.cpp)
76 CaffeParserTest(CaffeInception_BN-Armnn "${CaffeInception_BN-Armnn_sources}")
78 set(CaffeYolo-Armnn_sources
79 CaffeYolo-Armnn/CaffeYolo-Armnn.cpp
82 YoloInferenceTest.hpp)
83 CaffeParserTest(CaffeYolo-Armnn "${CaffeYolo-Armnn_sources}")
87 macro(TfParserTest testName sources)
88 add_executable_ex(${testName} ${sources})
89 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
90 target_include_directories(${testName} PRIVATE ../src/backends)
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})
96 target_link_libraries(${testName}
97 ${Boost_SYSTEM_LIBRARY}
98 ${Boost_PROGRAM_OPTIONS_LIBRARY})
99 addDllCopyCommands(${testName})
102 set(TfMnist-Armnn_sources
103 TfMnist-Armnn/TfMnist-Armnn.cpp
106 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
108 set(TfCifar10-Armnn_sources
109 TfCifar10-Armnn/TfCifar10-Armnn.cpp
112 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
114 set(TfMobileNet-Armnn_sources
115 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
116 ImagePreprocessor.hpp
117 ImagePreprocessor.cpp)
118 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
120 set(TfInceptionV3-Armnn_sources
121 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
122 ImagePreprocessor.hpp
123 ImagePreprocessor.cpp)
124 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
126 set(TfResNext-Armnn_sources
127 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
128 CaffePreprocessor.hpp
129 CaffePreprocessor.cpp)
130 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
133 if (BUILD_TF_LITE_PARSER)
134 macro(TfLiteParserTest testName sources)
135 add_executable_ex(${testName} ${sources})
136 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
137 target_include_directories(${testName} PRIVATE ../src/backends)
139 target_link_libraries(${testName} inferenceTest)
140 target_link_libraries(${testName} armnnTfLiteParser)
141 target_link_libraries(${testName} armnn)
142 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
143 target_link_libraries(${testName}
144 ${Boost_SYSTEM_LIBRARY}
145 ${Boost_PROGRAM_OPTIONS_LIBRARY})
146 addDllCopyCommands(${testName})
149 set(TfLiteMobilenetQuantized-Armnn_sources
150 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
151 ImagePreprocessor.hpp
152 ImagePreprocessor.cpp)
153 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
155 set(TfLiteMobileNetSsd-Armnn_sources
156 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
157 MobileNetSsdDatabase.hpp
158 MobileNetSsdInferenceTest.hpp
159 ObjectDetectionCommon.hpp)
160 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
162 set(TfLiteMobilenetV2Quantized-Armnn_sources
163 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
164 ImagePreprocessor.hpp
165 ImagePreprocessor.cpp)
166 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
168 set(TfLiteVGG16Quantized-Armnn_sources
169 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
170 ImagePreprocessor.hpp
171 ImagePreprocessor.cpp)
172 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
174 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
175 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
176 ImagePreprocessor.hpp
177 ImagePreprocessor.cpp)
178 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
180 set(TfLiteInceptionV3Quantized-Armnn_sources
181 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
182 ImagePreprocessor.hpp
183 ImagePreprocessor.cpp)
184 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
186 set(TfLiteInceptionV4Quantized-Armnn_sources
187 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
188 ImagePreprocessor.hpp
189 ImagePreprocessor.cpp)
190 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
192 set(TfLiteResNetV2-Armnn_sources
193 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
194 ImagePreprocessor.hpp
195 ImagePreprocessor.cpp)
196 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
198 set(TfLiteResNetV2-50-Quantized-Armnn_sources
199 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
200 ImagePreprocessor.hpp
201 ImagePreprocessor.cpp)
202 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
204 set(TfLiteMnasNet-Armnn_sources
205 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
206 ImagePreprocessor.hpp
207 ImagePreprocessor.cpp)
208 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
211 set(TfLiteYoloV3Big-Armnn_sources
212 TfLiteYoloV3Big-Armnn/NMS.cpp
213 TfLiteYoloV3Big-Armnn/NMS.hpp
214 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
215 ImagePreprocessor.hpp
216 ImagePreprocessor.cpp)
217 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
220 if (BUILD_ONNX_PARSER)
221 macro(OnnxParserTest testName sources)
222 add_executable_ex(${testName} ${sources})
223 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
224 target_include_directories(${testName} PRIVATE ../src/backends)
226 target_link_libraries(${testName} inferenceTest)
227 target_link_libraries(${testName} armnnOnnxParser)
228 target_link_libraries(${testName} armnn)
229 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
230 target_link_libraries(${testName}
231 ${Boost_SYSTEM_LIBRARY}
232 ${Boost_PROGRAM_OPTIONS_LIBRARY})
233 addDllCopyCommands(${testName})
236 set(OnnxMnist-Armnn_sources
237 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
240 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
242 set(OnnxMobileNet-Armnn_sources
243 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
244 ImagePreprocessor.hpp
245 ImagePreprocessor.cpp)
246 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
249 if (BUILD_ARMNN_SERIALIZER OR BUILD_CAFFE_PARSER OR BUILD_TF_PARSER OR BUILD_TF_LITE_PARSER OR BUILD_ONNX_PARSER)
250 set(ExecuteNetwork_sources
251 ExecuteNetwork/ExecuteNetwork.cpp)
253 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
254 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
255 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
256 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
258 if (BUILD_ARMNN_SERIALIZER)
259 target_link_libraries(ExecuteNetwork armnnSerializer)
261 if (BUILD_CAFFE_PARSER)
262 target_link_libraries(ExecuteNetwork armnnCaffeParser)
265 target_link_libraries(ExecuteNetwork armnnTfParser)
268 if (BUILD_TF_LITE_PARSER)
269 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
271 if (BUILD_ONNX_PARSER)
272 target_link_libraries(ExecuteNetwork armnnOnnxParser)
275 target_link_libraries(ExecuteNetwork armnn)
276 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
277 target_link_libraries(ExecuteNetwork
278 ${Boost_SYSTEM_LIBRARY}
279 ${Boost_PROGRAM_OPTIONS_LIBRARY})
280 addDllCopyCommands(ExecuteNetwork)
283 if(BUILD_ACCURACY_TOOL)
284 macro(AccuracyTool executorName)
285 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
286 if (BUILD_ARMNN_SERIALIZER)
287 target_link_libraries(${executorName} armnnSerializer)
289 if (BUILD_CAFFE_PARSER)
290 target_link_libraries(${executorName} armnnCaffeParser)
293 target_link_libraries(${executorName} armnnTfParser)
295 if (BUILD_TF_LITE_PARSER)
296 target_link_libraries(${executorName} armnnTfLiteParser)
298 if (BUILD_ONNX_PARSER)
299 target_link_libraries(${executorName} armnnOnnxParser)
301 target_link_libraries(${executorName}
302 ${Boost_SYSTEM_LIBRARY}
303 ${Boost_PROGRAM_OPTIONS_LIBRARY})
304 addDllCopyCommands(${executorName})
307 set(ModelAccuracyTool-Armnn_sources
308 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
310 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
311 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
312 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
313 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
314 target_link_libraries(ModelAccuracyTool inferenceTest)
315 target_link_libraries(ModelAccuracyTool armnn)
316 target_link_libraries(ModelAccuracyTool armnnSerializer)
317 AccuracyTool(ModelAccuracyTool)
320 if(BUILD_ARMNN_QUANTIZER)
321 macro(ImageTensorExecutor executorName)
322 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
323 target_link_libraries(${executorName}
324 ${Boost_SYSTEM_LIBRARY}
325 ${Boost_PROGRAM_OPTIONS_LIBRARY})
326 addDllCopyCommands(${executorName})
329 set(ImageTensorGenerator_sources
330 InferenceTestImage.hpp
331 InferenceTestImage.cpp
332 ImageTensorGenerator/ImageTensorGenerator.cpp)
334 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
335 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
336 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
338 target_link_libraries(ImageTensorGenerator armnn)
339 ImageTensorExecutor(ImageTensorGenerator)
341 set(ImageCSVFileGenerator_sources
342 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
344 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
345 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
346 ImageTensorExecutor(ImageCSVFileGenerator)