blob: 0b2638461238ed65920bd1b5c9276afa39702a20 [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
surmeh01bceff2f2018-03-29 16:29:27 +010019if(BUILD_TF_PARSER)
20 macro(TfParserTest 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)
surmeh01bceff2f2018-03-29 16:29:27 +010024
25 target_link_libraries(${testName} inferenceTest)
26 target_link_libraries(${testName} armnnTfParser)
27 target_link_libraries(${testName} armnn)
28 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
surmeh01bceff2f2018-03-29 16:29:27 +010029 addDllCopyCommands(${testName})
30 endmacro()
31
32 set(TfMnist-Armnn_sources
33 TfMnist-Armnn/TfMnist-Armnn.cpp
34 MnistDatabase.hpp
35 MnistDatabase.cpp)
36 TfParserTest(TfMnist-Armnn "${TfMnist-Armnn_sources}")
37
38 set(TfCifar10-Armnn_sources
39 TfCifar10-Armnn/TfCifar10-Armnn.cpp
40 Cifar10Database.hpp
41 Cifar10Database.cpp)
42 TfParserTest(TfCifar10-Armnn "${TfCifar10-Armnn_sources}")
43
44 set(TfMobileNet-Armnn_sources
45 TfMobileNet-Armnn/TfMobileNet-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010046 ImagePreprocessor.hpp
47 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +010048 TfParserTest(TfMobileNet-Armnn "${TfMobileNet-Armnn_sources}")
49
50 set(TfInceptionV3-Armnn_sources
51 TfInceptionV3-Armnn/TfInceptionV3-Armnn.cpp
telsoa01c577f2c2018-08-31 09:22:23 +010052 ImagePreprocessor.hpp
53 ImagePreprocessor.cpp)
surmeh01bceff2f2018-03-29 16:29:27 +010054 TfParserTest(TfInceptionV3-Armnn "${TfInceptionV3-Armnn_sources}")
surmeh013537c2c2018-05-18 16:31:43 +010055
56 set(TfResNext-Armnn_sources
57 TfResNext_Quantized-Armnn/TfResNext_Quantized-Armnn.cpp
Nikhil Raj6dd178f2021-04-02 22:04:39 +010058 ImagePreprocessor.hpp
59 ImagePreprocessor.cpp)
surmeh013537c2c2018-05-18 16:31:43 +010060 TfParserTest(TfResNext-Armnn "${TfResNext-Armnn_sources}")
surmeh01bceff2f2018-03-29 16:29:27 +010061endif()
62
telsoa01c577f2c2018-08-31 09:22:23 +010063if (BUILD_TF_LITE_PARSER)
64 macro(TfLiteParserTest testName sources)
65 add_executable_ex(${testName} ${sources})
66 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +000067 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +010068
69 target_link_libraries(${testName} inferenceTest)
70 target_link_libraries(${testName} armnnTfLiteParser)
71 target_link_libraries(${testName} armnn)
72 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +010073 addDllCopyCommands(${testName})
74 endmacro()
75
Jim Flynn27a9bd92020-11-12 15:48:34 +000076 set(TfLiteBenchmark-Armnn_sources
77 TfLiteBenchmark-Armnn/TfLiteBenchmark-Armnn.cpp)
78 TfLiteParserTest(TfLiteBenchmark-Armnn "${TfLiteBenchmark-Armnn_sources}")
79
telsoa01c577f2c2018-08-31 09:22:23 +010080 set(TfLiteMobilenetQuantized-Armnn_sources
81 TfLiteMobilenetQuantized-Armnn/TfLiteMobilenetQuantized-Armnn.cpp
82 ImagePreprocessor.hpp
83 ImagePreprocessor.cpp)
84 TfLiteParserTest(TfLiteMobilenetQuantized-Armnn "${TfLiteMobilenetQuantized-Armnn_sources}")
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +010085
Aron Virginas-Tard089b742019-01-29 11:09:51 +000086 set(TfLiteMobileNetSsd-Armnn_sources
87 TfLiteMobileNetSsd-Armnn/TfLiteMobileNetSsd-Armnn.cpp
88 MobileNetSsdDatabase.hpp
89 MobileNetSsdInferenceTest.hpp
90 ObjectDetectionCommon.hpp)
91 TfLiteParserTest(TfLiteMobileNetSsd-Armnn "${TfLiteMobileNetSsd-Armnn_sources}")
92
Bruno Goncalves06304112018-12-27 16:13:58 -020093 set(TfLiteMobilenetV2Quantized-Armnn_sources
94 TfLiteMobilenetV2Quantized-Armnn/TfLiteMobilenetV2Quantized-Armnn.cpp
95 ImagePreprocessor.hpp
96 ImagePreprocessor.cpp)
97 TfLiteParserTest(TfLiteMobilenetV2Quantized-Armnn "${TfLiteMobilenetV2Quantized-Armnn_sources}")
98
Nattapat Chaimanowongd8eee592018-10-26 10:24:14 +010099 set(TfLiteVGG16Quantized-Armnn_sources
100 TfLiteVGG16Quantized-Armnn/TfLiteVGG16Quantized-Armnn.cpp
101 ImagePreprocessor.hpp
102 ImagePreprocessor.cpp)
103 TfLiteParserTest(TfLiteVGG16Quantized-Armnn "${TfLiteVGG16Quantized-Armnn_sources}")
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200104
David Monahana820e022019-04-23 11:03:38 +0100105 set(TfLiteMobileNetQuantizedSoftmax-Armnn_sources
106 TfLiteMobileNetQuantizedSoftmax-Armnn/TfLiteMobileNetQuantizedSoftmax-Armnn.cpp
107 ImagePreprocessor.hpp
108 ImagePreprocessor.cpp)
109 TfLiteParserTest(TfLiteMobileNetQuantizedSoftmax-Armnn "${TfLiteMobileNetQuantizedSoftmax-Armnn_sources}")
110
Bruno Goncalvesc981df32018-12-27 16:15:01 -0200111 set(TfLiteInceptionV3Quantized-Armnn_sources
112 TfLiteInceptionV3Quantized-Armnn/TfLiteInceptionV3Quantized-Armnn.cpp
113 ImagePreprocessor.hpp
114 ImagePreprocessor.cpp)
115 TfLiteParserTest(TfLiteInceptionV3Quantized-Armnn "${TfLiteInceptionV3Quantized-Armnn_sources}")
Bruno Goncalves8f293382018-12-27 16:15:38 -0200116
Bruno Goncalvesccbde0e2018-12-28 10:09:53 -0200117 set(TfLiteInceptionV4Quantized-Armnn_sources
118 TfLiteInceptionV4Quantized-Armnn/TfLiteInceptionV4Quantized-Armnn.cpp
119 ImagePreprocessor.hpp
120 ImagePreprocessor.cpp)
121 TfLiteParserTest(TfLiteInceptionV4Quantized-Armnn "${TfLiteInceptionV4Quantized-Armnn_sources}")
122
Bruno Goncalves8f293382018-12-27 16:15:38 -0200123 set(TfLiteResNetV2-Armnn_sources
124 TfLiteResNetV2-Armnn/TfLiteResNetV2-Armnn.cpp
125 ImagePreprocessor.hpp
126 ImagePreprocessor.cpp)
127 TfLiteParserTest(TfLiteResNetV2-Armnn "${TfLiteResNetV2-Armnn_sources}")
Bruno Goncalves61980d42018-12-28 10:08:26 -0200128
Nina Drozd472d4e02019-04-15 17:18:36 +0100129 set(TfLiteResNetV2-50-Quantized-Armnn_sources
David Monahana820e022019-04-23 11:03:38 +0100130 TfLiteResNetV2-50-Quantized-Armnn/TfLiteResNetV2-50-Quantized-Armnn.cpp
131 ImagePreprocessor.hpp
132 ImagePreprocessor.cpp)
Nina Drozd472d4e02019-04-15 17:18:36 +0100133 TfLiteParserTest(TfLiteResNetV2-50-Quantized-Armnn "${TfLiteResNetV2-50-Quantized-Armnn_sources}")
134
Bruno Goncalves61980d42018-12-28 10:08:26 -0200135 set(TfLiteMnasNet-Armnn_sources
136 TfLiteMnasNet-Armnn/TfLiteMnasNet-Armnn.cpp
137 ImagePreprocessor.hpp
138 ImagePreprocessor.cpp)
139 TfLiteParserTest(TfLiteMnasNet-Armnn "${TfLiteMnasNet-Armnn_sources}")
Derek Lambertid6cb30e2020-04-28 13:31:29 +0100140
141
142 set(TfLiteYoloV3Big-Armnn_sources
143 TfLiteYoloV3Big-Armnn/NMS.cpp
144 TfLiteYoloV3Big-Armnn/NMS.hpp
145 TfLiteYoloV3Big-Armnn/TfLiteYoloV3Big-Armnn.cpp
146 ImagePreprocessor.hpp
147 ImagePreprocessor.cpp)
148 TfLiteParserTest(TfLiteYoloV3Big-Armnn "${TfLiteYoloV3Big-Armnn_sources}")
telsoa01c577f2c2018-08-31 09:22:23 +0100149endif()
150
151if (BUILD_ONNX_PARSER)
152 macro(OnnxParserTest testName sources)
153 add_executable_ex(${testName} ${sources})
154 target_include_directories(${testName} PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000155 target_include_directories(${testName} PRIVATE ../src/backends)
telsoa01c577f2c2018-08-31 09:22:23 +0100156
157 target_link_libraries(${testName} inferenceTest)
158 target_link_libraries(${testName} armnnOnnxParser)
159 target_link_libraries(${testName} armnn)
160 target_link_libraries(${testName} ${CMAKE_THREAD_LIBS_INIT})
telsoa01c577f2c2018-08-31 09:22:23 +0100161 addDllCopyCommands(${testName})
162 endmacro()
163
164 set(OnnxMnist-Armnn_sources
165 OnnxMnist-Armnn/OnnxMnist-Armnn.cpp
166 MnistDatabase.hpp
167 MnistDatabase.cpp)
168 OnnxParserTest(OnnxMnist-Armnn "${OnnxMnist-Armnn_sources}")
169
170 set(OnnxMobileNet-Armnn_sources
171 OnnxMobileNet-Armnn/OnnxMobileNet-Armnn.cpp
172 ImagePreprocessor.hpp
173 ImagePreprocessor.cpp)
174 OnnxParserTest(OnnxMobileNet-Armnn "${OnnxMobileNet-Armnn_sources}")
175endif()
176
Nikhil Raj6dd178f2021-04-02 22:04:39 +0100177if (BUILD_ARMNN_SERIALIZER OR BUILD_TF_PARSER OR BUILD_TF_LITE_PARSER OR BUILD_ONNX_PARSER)
telsoa014fcda012018-03-09 14:13:49 +0000178 set(ExecuteNetwork_sources
Jan Eilers45274902020-10-15 18:34:43 +0100179 ExecuteNetwork/ExecuteNetwork.cpp
180 ExecuteNetwork/ExecuteNetworkProgramOptions.cpp
181 ExecuteNetwork/ExecuteNetworkProgramOptions.hpp
182 ExecuteNetwork/ExecuteNetworkParams.cpp
183 ExecuteNetwork/ExecuteNetworkParams.hpp
184 NetworkExecutionUtils/NetworkExecutionUtils.cpp
185 NetworkExecutionUtils/NetworkExecutionUtils.hpp)
telsoa014fcda012018-03-09 14:13:49 +0000186
187 add_executable_ex(ExecuteNetwork ${ExecuteNetwork_sources})
telsoa01c577f2c2018-08-31 09:22:23 +0100188 target_include_directories(ExecuteNetwork PRIVATE ../src/armnn)
Aron Virginas-Tar5cc8e562018-10-23 15:14:46 +0100189 target_include_directories(ExecuteNetwork PRIVATE ../src/armnnUtils)
David Beck1b61be52018-11-08 09:19:14 +0000190 target_include_directories(ExecuteNetwork PRIVATE ../src/backends)
Jan Eilers45274902020-10-15 18:34:43 +0100191 target_include_directories(ExecuteNetwork PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
telsoa014fcda012018-03-09 14:13:49 +0000192
Aron Virginas-Tar64e4ccb2019-02-12 11:27:53 +0000193 if (BUILD_ARMNN_SERIALIZER)
194 target_link_libraries(ExecuteNetwork armnnSerializer)
195 endif()
surmeh01bceff2f2018-03-29 16:29:27 +0100196 if (BUILD_TF_PARSER)
197 target_link_libraries(ExecuteNetwork armnnTfParser)
198 endif()
telsoa01c577f2c2018-08-31 09:22:23 +0100199
200 if (BUILD_TF_LITE_PARSER)
201 target_link_libraries(ExecuteNetwork armnnTfLiteParser)
202 endif()
203 if (BUILD_ONNX_PARSER)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000204 target_link_libraries(ExecuteNetwork armnnOnnxParser)
telsoa01c577f2c2018-08-31 09:22:23 +0100205 endif()
Sadik Armagan5d03e312020-11-17 16:43:56 +0000206 if (BUILD_ARMNN_TFLITE_DELEGATE)
207 target_link_libraries(ExecuteNetwork ArmnnDelegate::ArmnnDelegate)
208 endif()
telsoa014fcda012018-03-09 14:13:49 +0000209 target_link_libraries(ExecuteNetwork armnn)
Sadik Armagan5d03e312020-11-17 16:43:56 +0000210
211 target_link_libraries(ExecuteNetwork ${CMAKE_THREAD_LIBS_INIT})
212 addDllCopyCommands(ExecuteNetwork)
telsoa014fcda012018-03-09 14:13:49 +0000213endif()
Sadik Armagan8271f812019-04-19 09:55:06 +0100214
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100215if(BUILD_ACCURACY_TOOL)
216 macro(AccuracyTool executorName)
217 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100218 if (BUILD_ARMNN_SERIALIZER)
219 target_link_libraries(${executorName} armnnSerializer)
220 endif()
Francis Murtaghbee4bc92019-06-18 12:30:37 +0100221 if (BUILD_TF_PARSER)
222 target_link_libraries(${executorName} armnnTfParser)
223 endif()
224 if (BUILD_TF_LITE_PARSER)
225 target_link_libraries(${executorName} armnnTfLiteParser)
226 endif()
227 if (BUILD_ONNX_PARSER)
228 target_link_libraries(${executorName} armnnOnnxParser)
229 endif()
Éanna Ó Catháina4247d52019-05-08 14:00:45 +0100230 addDllCopyCommands(${executorName})
231 endmacro()
232
233 set(ModelAccuracyTool-Armnn_sources
234 ModelAccuracyTool-Armnn/ModelAccuracyTool-Armnn.cpp)
235
236 add_executable_ex(ModelAccuracyTool ${ModelAccuracyTool-Armnn_sources})
237 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnn)
238 target_include_directories(ModelAccuracyTool PRIVATE ../src/armnnUtils)
239 target_include_directories(ModelAccuracyTool PRIVATE ../src/backends)
240 target_link_libraries(ModelAccuracyTool inferenceTest)
241 target_link_libraries(ModelAccuracyTool armnn)
242 target_link_libraries(ModelAccuracyTool armnnSerializer)
243 AccuracyTool(ModelAccuracyTool)
244endif()
245
Kevin May4a621c432021-04-22 16:51:18 +0100246if(BUILD_ACCURACY_TOOL)
Sadik Armagan8271f812019-04-19 09:55:06 +0100247 macro(ImageTensorExecutor executorName)
248 target_link_libraries(${executorName} ${CMAKE_THREAD_LIBS_INIT})
Sadik Armagan8271f812019-04-19 09:55:06 +0100249 addDllCopyCommands(${executorName})
250 endmacro()
251
252 set(ImageTensorGenerator_sources
253 InferenceTestImage.hpp
254 InferenceTestImage.cpp
255 ImageTensorGenerator/ImageTensorGenerator.cpp)
256
257 add_executable_ex(ImageTensorGenerator ${ImageTensorGenerator_sources})
258 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnn)
259 target_include_directories(ImageTensorGenerator PRIVATE ../src/armnnUtils)
260
261 target_link_libraries(ImageTensorGenerator armnn)
262 ImageTensorExecutor(ImageTensorGenerator)
263
264 set(ImageCSVFileGenerator_sources
265 ImageCSVFileGenerator/ImageCSVFileGenerator.cpp)
266
267 add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
Francis Murtagh532a29d2020-06-29 11:50:01 +0100268 target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
Sadik Armagan8271f812019-04-19 09:55:06 +0100269 ImageTensorExecutor(ImageCSVFileGenerator)
270endif()