From 552e11dbfa03c5f3a86911c2941e545294be94ac Mon Sep 17 00:00:00 2001 From: Michele Di Giorgio Date: Wed, 23 Sep 2020 15:08:38 +0100 Subject: COMPMID-3761: Update directory structure Change-Id: Ic450f731216d1aa7f8975aecdc07e98cccc05b99 Signed-off-by: Michele Di Giorgio Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4023 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Georgios Pinitas Reviewed-by: SiCong Li --- docs/00_introduction.dox | 153 +---------------------------------------------- 1 file changed, 1 insertion(+), 152 deletions(-) (limited to 'docs/00_introduction.dox') diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox index 97d5ffec70..21012e6d99 100644 --- a/docs/00_introduction.dox +++ b/docs/00_introduction.dox @@ -69,158 +69,7 @@ This archive contains: - A @ref utils folder containing headers with some boiler plate code used by the examples. - This documentation. -You should have the following file organisation: - - . - ├── arm_compute --> All the arm_compute headers - │ ├── graph.h --> Includes all the Graph headers at once. - │   ├── core - │   │   ├── CL - │   │   │   ├── CLKernelLibrary.h --> Manages all the OpenCL kernels compilation and caching, provides accessors for the OpenCL Context. - │   │   │   ├── CLKernels.h --> Includes all the OpenCL kernels at once - │   │   │   ├── CL specialisation of all the generic interfaces (ICLTensor, ICLArray, etc.) - │   │   │   ├── gemm --> Folder containing all the configuration files for GEMM - │   │   │   ├── kernels --> Folder containing all the OpenCL kernels - │   │   │   │   └── CL*Kernel.h - │   │   │   └── OpenCL.h --> Wrapper to configure the Khronos OpenCL C++ header - │   │ ├── CPP - │   │   │   ├── CPPKernels.h --> Includes all the CPP kernels at once - │   │ │   └── kernels --> Folder containing all the CPP kernels - │   │   │      └── CPP*Kernel.h - │   │   ├── GLES_COMPUTE - │   │   │   ├── GCKernelLibrary.h --> Manages all the GLES kernels compilation and caching, provides accessors for the GLES Context. - │   │   │   ├── GCKernels.h --> Includes all the GLES kernels at once - │   │   │   ├── GLES specialisation of all the generic interfaces (IGCTensor etc.) - │   │   │   ├── kernels --> Folder containing all the GLES kernels - │   │   │   │   └── GC*Kernel.h - │   │   │   └── OpenGLES.h --> Wrapper to configure the Khronos EGL and OpenGL ES C header - │   │   ├── NEON - │   │   │   ├── kernels --> Folder containing all the NEON kernels - │   │   │   │ ├── assembly --> headers for assembly optimised NEON kernels. - │   │   │   │ ├── convolution --> headers for convolution assembly optimised NEON kernels. - │   │   │   │   │   ├── common --> headers for code which is common to several convolution implementations. - │   │   │   │   │   ├── depthwise --> headers for Depthwise convolution assembly implementation - │   │   │   │   │   └── winograd --> headers for Winograd convolution assembly implementation - │   │   │   │ ├── detail --> Common code for several intrinsics implementations. - │   │   │   │   └── NE*Kernel.h - │   │   │   ├── wrapper --> NEON wrapper used to simplify code - │   │   │   │ ├── intrinsics --> NEON intrinsics wrappers - │   │   │   │ ├── scalar --> Scalar operations - │   │   │   │ ├── traits.h --> Traits defined on NEON vectors - │   │   │   │   └── wrapper.h --> Includes all wrapper headers at once - │   │   │   └── NEKernels.h --> Includes all the NEON kernels at once - │   │   ├── All common basic types (Types.h, Window, Coordinates, Iterator, etc.) - │   │   ├── All generic interfaces (ITensor, IArray, etc.) - │   │   └── Objects metadata classes (TensorInfo, MultiImageInfo) - │   ├── graph - │   │   ├── algorithms --> Generic algorithms used by the graph backend (e.g Order of traversal) - │   │   ├── backends --> The backend specific code - │   │   │   ├── CL --> OpenCL specific operations - │   │   │   ├── GLES --> OpenGLES Compute Shaders specific operations - │   │   │   └── NEON --> NEON specific operations - │   │   ├── detail --> Collection of internal utilities. - │   │   ├── frontend --> Code related to the stream frontend interface. - │   │   ├── mutators --> Used to modify / optimise the Graph intermediate representation(Operator fusion, in place operations, etc.) - │   │   ├── nodes --> The various nodes supported by the graph API - │   │   ├── printers --> Debug printers - │   │   └── Graph objects interfaces (INode, ITensorAccessor, Graph, etc.) - │   └── runtime - │   ├── common - │ │ └── Common utility code used by all backends - │   ├── CL - │   │   ├── CL objects & allocators (CLArray, CLTensor, etc.) - │   │   ├── functions --> Folder containing all the OpenCL functions - │   │   │   └── CL*.h - │   │   ├── CLScheduler.h --> Interface to enqueue OpenCL kernels and get/set the OpenCL CommandQueue and ICLTuner. - │   │   ├── CLFunctions.h --> Includes all the OpenCL functions at once - │   │   ├── ICLTuner.h --> Interface used to tune the local work-group size of OpenCL kernels - │   │   └── tuners - │   │      └── Local workgroup size tuners for specific architectures / GPUs - │   ├── CPP - │      │   ├── CPPKernels.h --> Includes all the CPP functions at once. - │   │   ├── CPPScheduler.h --> Basic pool of threads to execute CPP/NEON code on several cores in parallel - │   │   └── functions --> Folder containing all the CPP functions - │   │      └── CPP*.h - │   ├── GLES_COMPUTE - │   │   ├── GLES objects & allocators (GCArray, GCTensor, etc.) - │   │   ├── functions --> Folder containing all the GLES functions - │   │   │   └── GC*.h - │   │   ├── GCScheduler.h --> Interface to enqueue GLES kernels and get/set the GLES CommandQueue. - │   │   └── GCFunctions.h --> Includes all the GLES functions at once - │   ├── NEON - │   │ ├── functions --> Folder containing all the NEON functions - │   │ │   └── NE*.h - │   │ └── NEFunctions.h --> Includes all the NEON functions at once - │   ├── OMP - │   │   └── OMPScheduler.h --> OpenMP scheduler (Alternative to the CPPScheduler) - │ ├── Memory & weights manager files (LifetimeManager, PoolManager, etc.) - │   └── Basic implementations of the generic object interfaces (Array, Tensor, etc.) - ├── data --> Contains test images and reference data dumps used by validation tests - ├── docs --> Contains Doxyfile and Doxygen sources used to generate the HTML pages. - ├── examples - │   ├── gemm_tuner - │   │ └── OpenCL GEMM tuner utility - │   ├── cl_*.cpp --> OpenCL examples - │   ├── gc_*.cpp --> GLES compute shaders examples - │   ├── graph_*.cpp --> Graph examples - │   ├── neoncl_*.cpp --> NEON / OpenCL interoperability examples - │   └── neon_*.cpp --> NEON examples - ├── include - │   ├── CL - │   │ └── Khronos OpenCL C headers and C++ wrapper - │   ├── half --> FP16 library available from http://half.sourceforge.net - │   ├── libnpy --> Library to load / write npy buffers, available from https://github.com/llohse/libnpy - │  ├── linux --> Headers only needed for Linux builds - │   │ └── Khronos EGL and OpenGLES headers - │ └── stb - │ └── stb_image.h --> Single header library to load image files, available from https://github.com/nothings/stb - ├── scripts - │   ├── caffe_data_extractor.py --> Basic script to export weights from Caffe to npy files - │   └── tensorflow_data_extractor.py --> Basic script to export weights from Tensor Flow to npy files - ├── src - │   ├── core - │ │ └── ... (Same structure as headers) - │   │ ├── CL - │   │ │ └── cl_kernels --> All the OpenCL kernels - │   │ └── GLES_COMPUTE - │   │ └── cs_shaders --> All the OpenGL ES Compute Shaders - │   ├── graph - │ │ └── ... (Same structure as headers) - │ └── runtime - │ └── ... (Same structure as headers) - ├── support - │ └── Various headers to work around toolchains / platform issues. - ├── tests - │   ├── All test related files shared between validation and benchmark - │   ├── benchmark --> Sources for benchmarking - │ │ ├── Benchmark specific files - │   │ ├── fixtures - │ │ │ └── Backend agnostic fixtures to initialise and run the functions to test. - │ │ ├── CL --> OpenCL benchmarking tests - │ │ ├── GLES_COMPUTE --> GLES benchmarking tests - │ │ └── NEON --> NEON benchmarking tests - │ ├── benchmark_examples --> Sources needed to wrap examples to run through our benchmarking framework. - │   ├── CL --> OpenCL accessors - │   ├── GLES_COMPUTE --> GLES accessors - │   ├── NEON --> NEON accessors - │   ├── datasets - │ │ └── Datasets for all the validation / benchmark tests, layer configurations for various networks, etc. - │   ├── framework - │ │ └── Boiler plate code for both validation and benchmark test suites (Command line parsers, instruments, output loggers, etc.) - │   ├── instruments --> User defined instruments that can be registered to the framework. - │ ├── validate_examples --> Sources needed to wrap examples to run through our validation framework. - │   └── validation --> Sources for validation - │ ├── Validation specific files - │   ├── fixtures - │ │ └── Backend agnostic fixtures to initialise and run the functions to test. - │   ├── reference - │ │ └── Reference implementation used to validate the results of the various backends. - │ ├── CL --> OpenCL validation tests - │ ├── GLES_COMPUTE --> GLES validation tests - │ ├── CPP --> C++ reference implementations - │ └── NEON --> NEON validation tests - └── utils --> Boiler plate code used by examples - └── Various utilities to print types, load / store assets, etc. + For detailed information about file organization, please refer to Files -> File List section of this documentation. @section S2_versions_changelog Release versions and changelog -- cgit v1.2.1