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