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