1// 2// Copyright © 2020 Arm Ltd. All rights reserved. 3// SPDX-License-Identifier: MIT 4// 5 6/** @file Android.bp 7 * @brief Generation script for building AndroidNN driver. 8 */ 9 10/** @dir arm_compute 11 * @brief All the arm_compute headers. 12 */ 13 14/** @dir arm_compute/core 15 * @brief Core module: common basic types and kernels. 16 */ 17 18/** @dir arm_compute/core/CL 19 * @brief OpenCL backend core: kernels and utilities. 20 */ 21 22/** @file arm_compute/core/CL/CLKernelLibrary.h 23 * @brief Manages all the OpenCL kernels compilation and caching, provides accessors for the OpenCL Context. 24 */ 25 26/** @file arm_compute/core/CL/OpenCL.h 27 * @brief Wrapper to configure the Khronos OpenCL C++ header 28 */ 29 30/** @dir arm_compute/core/CPP 31 * @brief CPP backend core: kernels and utilities. 32 */ 33 34/** @file arm_compute/core/CPP/CPPKernels.h 35 * @brief Includes all the CPP kernels at once 36 */ 37 38/** @dir arm_compute/core/CPP/kernels 39 * @brief Folder containing all the CPP kernels 40 */ 41 42/** @dir arm_compute/core/experimental 43 * @brief All experimental interfaces 44 */ 45 46/** @dir arm_compute/core/GLES_COMPUTE 47 * @brief OpenGLES backend core: kernels and utilities. 48 */ 49 50/** @file arm_compute/core/GLES_COMPUTE/GCKernelLibrary.h 51 * @brief Manages all the GLES kernels compilation and caching, provides accessors for the GLES Context. 52 */ 53 54/** @file arm_compute/core/GLES_COMPUTE/GCKernels.h 55 * @brief Includes all the GLES kernels at once 56 */ 57 58/** @file arm_compute/core/GLES_COMPUTE/OpenGLES.h 59 * @brief Wrapper to configure the Khronos EGL and OpenGL ES C header 60 */ 61 62/** @dir arm_compute/core/GLES_COMPUTE/kernels 63 * @brief Folder containing all the GLES kernels 64 */ 65 66/** @dir src/core/NEON 67 * @brief NEON backend core: kernels and utilities. 68 */ 69 70/** @file src/core/NEON/NEKernels.h 71 * @brief Includes all the NEON kernels at once 72 */ 73 74/** @dir src/core/NEON/kernels 75 * @brief Folder containing all the NEON kernels 76 */ 77 78/** @dir arm_compute/core/utils 79 * @brief Common core utilities. 80 */ 81 82/** @dir arm_compute/graph 83 * @brief Graph API. 84 */ 85 86/** @dir arm_compute/graph/algorithms 87 * @brief Generic algorithms used by the graph backend (e.g Order of traversal) 88 */ 89 90/** @dir arm_compute/graph/backends 91 * @brief The backend specific code 92 */ 93 94/** @dir arm_compute/graph/backends/CL 95 * @brief OpenCL specific operations 96 */ 97 98/** @dir arm_compute/graph/backends/GLES 99 * @brief OpenGLES specific operations 100 */ 101 102/** @dir arm_compute/graph/backends/NEON 103 * @brief NEON specific operations 104 */ 105 106/** @dir arm_compute/graph/detail 107 * @brief Collection of internal utilities. 108 */ 109 110/** @dir arm_compute/graph/frontend 111 * @brief Code related to the stream frontend interface. 112 */ 113 114/** @dir arm_compute/graph/mutators 115 * @brief Used to modify / optimise the Graph intermediate representation(Operator fusion, in place operations, etc.) 116 */ 117 118/** @dir arm_compute/graph/nodes 119 * @brief The various nodes supported by the graph API. 120 */ 121 122/** @dir arm_compute/graph/printers 123 * @brief Debug printers. 124 */ 125 126/** @file arm_compute/graph.h 127 * @brief Includes all the Graph headers at once. 128 */ 129 130/** @dir arm_compute/runtime 131 * @brief Runtime interface: memory, scheduler, functions. 132 */ 133 134/** @dir arm_compute/runtime/CL 135 * @brief OpenCL backend runtime interface. 136 */ 137 138/** @file arm_compute/runtime/CL/CLFunctions.h 139 * @brief Includes all the OpenCL functions at once 140 */ 141 142/** @file arm_compute/runtime/CL/CLScheduler.h 143 * @brief Interface to enqueue OpenCL kernels and get/set the OpenCL CommandQueue and ICLTuner. 144 */ 145 146/** @file arm_compute/runtime/CL/ICLTuner.h 147 * @brief Interface used to tune the local work-group size of OpenCL kernels. 148 */ 149 150/** @dir arm_compute/runtime/CL/functions 151 * @brief Folder containing all the OpenCL functions. 152 */ 153 154/** @dir arm_compute/runtime/CL/tuners 155 * @brief Local workgroup size tuners for specific architectures / GPUs. 156 */ 157 158/** @dir arm_compute/runtime/CPP 159 * @brief CPP backend runtime interface. 160 */ 161 162/** @file arm_compute/runtime/CPP/CPPScheduler.h 163 * @brief Basic pool of threads to execute CPP/NEON code on several cores in parallel. 164 */ 165 166/** @dir arm_compute/runtime/CPP/functions 167 * @brief Folder containing all the CPP functions. 168 */ 169 170/** @dir arm_compute/runtime/experimental 171 * @brief Experimental runtime interface. 172 */ 173 174/** @dir arm_compute/runtime/GLES_COMPUTE 175 * @brief OpenGLES backend runtime interface. 176 */ 177 178/** @file arm_compute/runtime/GLES_COMPUTE/GCFunctions.h 179 * @brief Includes all the OpenGLES functions at once 180 */ 181 182/** @file arm_compute/runtime/GLES_COMPUTE/GCScheduler.h 183 * @brief Interface to enqueue GLES kernels and get/set the GLES CommandQueue. 184 */ 185 186/** @dir arm_compute/runtime/GLES_COMPUTE/functions 187 * @brief Folder containing all the GLES functions. 188 */ 189 190/** @dir arm_compute/runtime/NEON 191 * @brief NEON backend runtime interface. 192 */ 193 194/** @file arm_compute/runtime/NEON/NEFunctions.h 195 * @brief Includes all the NEON functions at once. 196 */ 197 198/** @dir arm_compute/runtime/NEON/functions 199 * @brief Folder containing all the NEON functions. 200 */ 201 202/** @dir arm_compute/runtime/OMP 203 * @brief OpenMP backend runtime interface. 204 */ 205 206/** @file arm_compute/runtime/OMP/OMPScheduler.h 207 * @brief OpenMP scheduler (Alternative to the CPPScheduler). 208 */ 209 210/** @dir arm_compute/runtime/common 211 * @brief Common utility code used by all backends. 212 */ 213 214/** @dir docs 215 * @brief Doxyfile and Doxygen sources used to generate this documentation. 216 */ 217 218/** @dir ./examples 219 * @brief Set of examples using the Compute Library 220 * 221 * @details Examples have the following structure: 222 * 223 * -# cl_*.cpp --> OpenCL examples 224 * -# gc_*.cpp --> GLES compute shaders examples 225 * -# graph_*.cpp --> Graph examples 226 * -# neoncl_*.cpp --> NEON / OpenCL interoperability examples 227 * -# neon_*.cpp --> NEON examples 228 */ 229 230/** @dir examples/gemm_tuner 231 * @brief OpenCL GEMM tuner utility. 232 */ 233 234/** @dir scripts 235 * @brief Utility scripts. 236 */ 237 238/** @file scripts/caffe_data_extractor.py 239 * @brief Basic script to export weights from Caffe to npy files. 240 */ 241 242/** @file scripts/tensorflow_data_extractor.py 243 * @brief Basic script to export weights from TensorFlow to npy files. 244 */ 245 246/** @dir src 247 * @brief Source code implementing all the arm_compute headers. 248 */ 249 250/** @dir src/core/NEON/kernels/detail 251 * @brief Common code for several intrinsics implementations. 252 */ 253 254/** @dir src/core/NEON/wrapper 255 * @brief NEON wrapper used to simplify code 256 */ 257 258/** @file src/core/NEON/wrapper/traits.h 259 * @brief Traits defined on NEON vectors 260 */ 261 262/** @file src/core/NEON/wrapper/wrapper.h 263 * @brief Includes all wrapper headers at once 264 */ 265 266/** @dir src/core/NEON/wrapper/intrinsics 267 * @brief NEON intrinsics wrappers 268 */ 269 270/** @dir src/core/NEON/wrapper/scalar 271 * @brief Scalar operations 272 */ 273 274/** @dir src/core/CL/gemm 275 * @brief Folder containing all the configuration files for GEMM 276 */ 277 278/** @dir src/core/CL/kernels 279 * @brief All the OpenCL kernels 280 */ 281 282/** @dir support 283 * @brief Various headers to work around toolchains / platform issues. 284 */ 285 286/** @dir tests 287 * @brief All test related files shared between validation and benchmark. 288 */ 289 290/** @file tests/main.cpp 291 * @brief Main entry point for the tests. Currently shared between validation and benchmarking. 292 */ 293 294/** @dir tests/CL 295 * @brief OpenCL accessors. 296 */ 297 298/** @dir tests/GLES_COMPUTE 299 * @brief GLES accessors. 300 */ 301 302/** @dir tests/NEON 303 * @brief NEON accessors. 304 */ 305 306/** @dir tests/benchmark 307 * @brief Sources for benchmarking. 308 */ 309 310/** @dir tests/benchmark/CL 311 * @brief OpenCL benchmarking tests. 312 */ 313 314/** @dir tests/benchmark/GLES_COMPUTE 315 * @brief GLES benchmarking tests. 316 */ 317 318/** @dir tests/benchmark/NEON 319 * @brief NEON benchmarking tests. 320 */ 321 322/** @dir tests/benchmark_examples 323 * @brief Sources needed to wrap examples to run through our benchmarking framework. 324 */ 325 326/** @dir tests/framework 327 * @brief Boiler plate code for both validation and benchmark test suites (Command line parsers, instruments, output loggers, etc.) 328 */ 329 330/** @dir tests/instruments 331 * @brief User defined instruments that can be registered to the framework. 332 */ 333 334/** @dir tests/validate_examples 335 * @brief Sources needed to wrap examples to run through our validation framework. 336 */ 337 338/** @dir tests/validation 339 * @brief Source for validation. 340 */ 341 342/** @dir tests/validation/CL 343 * @brief OpenCL validation tests. 344 */ 345 346/** @dir tests/validation/CPP 347 * @brief C++ validation tests. 348 */ 349 350/** @dir tests/validation/GLES_COMPUTE 351 * @brief GLES validation tests. 352 */ 353 354/** @dir tests/validation/NEON 355 * @brief NEON validation tests. 356 */ 357 358/** @dir tests/validation/reference 359 * @brief Reference implementation used to validate the results of the various backends. 360 */ 361