xref: /aosp_15_r20/external/ComputeLibrary/docs/ComputeLibrary.dir (revision c217d954acce2dbc11938adb493fc0abd69584f3)
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