aboutsummaryrefslogtreecommitdiff
path: root/docs/ComputeLibrary.dir
blob: 7733e531cd5f7399f4c08177914e89457c5c6aaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
//
// Copyright © 2020 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//

/** @file Android.bp
 *  @brief Generation script for building AndroidNN driver.
 */

/** @dir arm_compute
 *  @brief All the arm_compute headers.
 */

/** @dir arm_compute/core
 *  @brief Core module: common basic types and kernels.
 */

/** @dir arm_compute/core/CL
 *  @brief OpenCL backend core: kernels and utilities.
 */

/** @file arm_compute/core/CL/CLKernelLibrary.h
 *  @brief Manages all the OpenCL kernels compilation and caching, provides accessors for the OpenCL Context.
 */

/** @file arm_compute/core/CL/OpenCL.h
 *  @brief Wrapper to configure the Khronos OpenCL C++ header
 */

/** @dir arm_compute/core/CPP
 *  @brief CPP backend core: kernels and utilities.
 */

/** @file arm_compute/core/CPP/CPPKernels.h
 *  @brief Includes all the CPP kernels at once
 */

/** @dir arm_compute/core/CPP/kernels
 *  @brief Folder containing all the CPP kernels
 */

/** @dir arm_compute/core/experimental
 *  @brief All experimental interfaces
 */

/** @dir arm_compute/core/GLES_COMPUTE
 *  @brief OpenGLES backend core: kernels and utilities.
 */

/** @file arm_compute/core/GLES_COMPUTE/GCKernelLibrary.h
 *  @brief Manages all the GLES kernels compilation and caching, provides accessors for the GLES Context.
 */

/** @file arm_compute/core/GLES_COMPUTE/GCKernels.h
 *  @brief Includes all the GLES kernels at once
 */

/** @file arm_compute/core/GLES_COMPUTE/OpenGLES.h
 *  @brief Wrapper to configure the Khronos EGL and OpenGL ES C header
 */

/** @dir arm_compute/core/GLES_COMPUTE/kernels
 *  @brief Folder containing all the GLES kernels
 */

/** @dir src/core/NEON
 *  @brief NEON backend core: kernels and utilities.
 */

/** @file src/core/NEON/NEKernels.h
 *  @brief Includes all the NEON kernels at once
 */

/** @dir src/core/NEON/kernels
 *  @brief Folder containing all the NEON kernels
 */

/** @dir arm_compute/core/utils
 *  @brief Common core utilities.
 */

/** @dir arm_compute/graph
 *  @brief Graph API.
 */

/** @dir arm_compute/graph/algorithms
 *  @brief Generic algorithms used by the graph backend (e.g Order of traversal)
 */

/** @dir arm_compute/graph/backends
 *  @brief The backend specific code
 */

/** @dir arm_compute/graph/backends/CL
 *  @brief OpenCL specific operations
 */

/** @dir arm_compute/graph/backends/GLES
 *  @brief OpenGLES specific operations
 */

/** @dir arm_compute/graph/backends/NEON
 *  @brief NEON specific operations
 */

/** @dir arm_compute/graph/detail
 *  @brief Collection of internal utilities.
 */

/** @dir arm_compute/graph/frontend
 *  @brief Code related to the stream frontend interface.
 */

/** @dir arm_compute/graph/mutators
 *  @brief Used to modify / optimise the Graph intermediate representation(Operator fusion, in place operations, etc.)
 */

/** @dir arm_compute/graph/nodes
 *  @brief The various nodes supported by the graph API.
 */

/** @dir arm_compute/graph/printers
 *  @brief Debug printers.
 */

/** @file arm_compute/graph.h
 *  @brief Includes all the Graph headers at once.
 */

/** @dir arm_compute/runtime
 *  @brief Runtime interface: memory, scheduler, functions.
 */

/** @dir arm_compute/runtime/CL
 *  @brief OpenCL backend runtime interface.
 */

/** @file arm_compute/runtime/CL/CLFunctions.h
 *  @brief Includes all the OpenCL functions at once
 */

/** @file arm_compute/runtime/CL/CLScheduler.h
 *  @brief Interface to enqueue OpenCL kernels and get/set the OpenCL CommandQueue and ICLTuner.
 */

/** @file arm_compute/runtime/CL/ICLTuner.h
 *  @brief Interface used to tune the local work-group size of OpenCL kernels.
 */

/** @dir arm_compute/runtime/CL/functions
 *  @brief Folder containing all the OpenCL functions.
 */

/** @dir arm_compute/runtime/CL/tuners
 *  @brief Local workgroup size tuners for specific architectures / GPUs.
 */

/** @dir arm_compute/runtime/CPP
 *  @brief CPP backend runtime interface.
 */

/** @file arm_compute/runtime/CPP/CPPScheduler.h
 *  @brief Basic pool of threads to execute CPP/NEON code on several cores in parallel.
 */

/** @dir arm_compute/runtime/CPP/functions
 *  @brief Folder containing all the CPP functions.
 */

/** @dir arm_compute/runtime/experimental
 *  @brief Experimental runtime interface.
 */

/** @dir arm_compute/runtime/GLES_COMPUTE
 *  @brief OpenGLES backend runtime interface.
 */

/** @file arm_compute/runtime/GLES_COMPUTE/GCFunctions.h
 *  @brief Includes all the OpenGLES functions at once
 */

/** @file arm_compute/runtime/GLES_COMPUTE/GCScheduler.h
 *  @brief Interface to enqueue GLES kernels and get/set the GLES CommandQueue.
 */

/** @dir arm_compute/runtime/GLES_COMPUTE/functions
 *  @brief Folder containing all the GLES functions.
 */

/** @dir arm_compute/runtime/NEON
 *  @brief NEON backend runtime interface.
 */

/** @file arm_compute/runtime/NEON/NEFunctions.h
 *  @brief Includes all the NEON functions at once.
 */

/** @dir arm_compute/runtime/NEON/functions
 *  @brief Folder containing all the NEON functions.
 */

/** @dir arm_compute/runtime/OMP
 *  @brief OpenMP backend runtime interface.
 */

/** @file arm_compute/runtime/OMP/OMPScheduler.h
 *  @brief OpenMP scheduler (Alternative to the CPPScheduler).
 */

/** @dir arm_compute/runtime/common
 *  @brief Common utility code used by all backends.
 */

/** @dir docs
 *  @brief Doxyfile and Doxygen sources used to generate this documentation.
 */

/** @dir ./examples
 *  @brief Set of examples using the Compute Library
 *
 *  @details Examples have the following structure:
 *
 *  -# cl_*.cpp --> OpenCL examples
 *  -# gc_*.cpp --> GLES compute shaders examples
 *  -# graph_*.cpp --> Graph examples
 *  -# neoncl_*.cpp --> NEON / OpenCL interoperability examples
 *  -# neon_*.cpp --> NEON examples
 */

/** @dir examples/gemm_tuner
 *  @brief OpenCL GEMM tuner utility.
 */

/** @dir scripts
 *  @brief Utility scripts.
 */

/** @file scripts/caffe_data_extractor.py
 *  @brief Basic script to export weights from Caffe to npy files.
 */

/** @file scripts/tensorflow_data_extractor.py
 *  @brief Basic script to export weights from TensorFlow to npy files.
 */

/** @dir src
 *  @brief Source code implementing all the arm_compute headers.
 */

/** @dir src/core/NEON/kernels/detail
 *  @brief Common code for several intrinsics implementations.
 */

/** @dir src/core/NEON/wrapper
 *  @brief NEON wrapper used to simplify code
 */

/** @file src/core/NEON/wrapper/traits.h
 *  @brief Traits defined on NEON vectors
 */

/** @file src/core/NEON/wrapper/wrapper.h
 *  @brief Includes all wrapper headers at once
 */

/** @dir src/core/NEON/wrapper/intrinsics
 *  @brief NEON intrinsics wrappers
 */

/** @dir src/core/NEON/wrapper/scalar
 *  @brief Scalar operations
 */

/** @dir src/core/CL/gemm
 *  @brief Folder containing all the configuration files for GEMM
 */

/** @dir src/core/CL/kernels
 *  @brief All the OpenCL kernels
 */

/** @dir support
 *  @brief Various headers to work around toolchains / platform issues.
 */

/** @dir tests
 *  @brief All test related files shared between validation and benchmark.
 */

/** @file tests/main.cpp
 *  @brief Main entry point for the tests. Currently shared between validation and benchmarking.
 */

/** @dir tests/CL
 *  @brief OpenCL accessors.
 */

/** @dir tests/GLES_COMPUTE
 *  @brief GLES accessors.
 */

/** @dir tests/NEON
 *  @brief NEON accessors.
 */

/** @dir tests/benchmark
 *  @brief Sources for benchmarking.
 */

/** @dir tests/benchmark/CL
 *  @brief OpenCL benchmarking tests.
 */

/** @dir tests/benchmark/GLES_COMPUTE
 *  @brief GLES benchmarking tests.
 */

/** @dir tests/benchmark/NEON
 *  @brief NEON benchmarking tests.
 */

/** @dir tests/benchmark_examples
 *  @brief Sources needed to wrap examples to run through our benchmarking framework.
 */

/** @dir tests/framework
 *  @brief Boiler plate code for both validation and benchmark test suites (Command line parsers, instruments, output loggers, etc.)
 */

/** @dir tests/instruments
 *  @brief User defined instruments that can be registered to the framework.
 */

/** @dir tests/validate_examples
 *  @brief Sources needed to wrap examples to run through our validation framework.
 */

/** @dir tests/validation
 *  @brief Source for validation.
 */

/** @dir tests/validation/CL
 *  @brief OpenCL validation tests.
 */

/** @dir tests/validation/CPP
 *  @brief C++ validation tests.
 */

/** @dir tests/validation/GLES_COMPUTE
 *  @brief GLES validation tests.
 */

/** @dir tests/validation/NEON
 *  @brief NEON validation tests.
 */

/** @dir tests/validation/reference
 *  @brief Reference implementation used to validate the results of the various backends.
 */