From 9bfa5d18cd0473b5e5e2e199354bd5fd81eea69c Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Wed, 7 Oct 2020 03:36:34 +0100 Subject: COMPMID-3789: Update documentation on data type and data layout Signed-off-by: Georgios Pinitas Change-Id: Ie3436de98528c7732b1f72a3208a6a5a91651fe1 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4102 Comments-Addressed: Arm Jenkins Reviewed-by: Michele Di Giorgio Tested-by: Arm Jenkins --- docs/01_library.dox | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'docs/01_library.dox') diff --git a/docs/01_library.dox b/docs/01_library.dox index ea29b75cd3..39739cbe50 100644 --- a/docs/01_library.dox +++ b/docs/01_library.dox @@ -43,7 +43,23 @@ The Runtime library is a very basic wrapper around the Core library which can be For maximum performance, it is expected that the users would re-implement an equivalent to the runtime library which suits better their needs (With a more clever multi-threading strategy, load-balancing between NEON and OpenCL, etc.) -@section S4_1_2 Thread-safety +@section S4_1_2 Data-type and Data-layout support + +Compute Library supports a wide list of data-types, information can been directly found in the documentation of each kernel/function. +The main data-types that the Machine Learning functions support are the following: +- BFLOAT16: 16-bit non-standard brain floating point +- F16: 16-bit half precision floating point +- F32: 32-bit single precision floating point +- QASYMM8: 8-bit unsigned asymmetric quantized +- QASYMM8_SIGNED: 8-bit signed asymmetric quantized +- QSYMM8_PER_CHANNEL: 8-bit signed symmetric quantized (Used for the weights) + +Moreover, Compute Library supports the following data layouts (fast changing dimension from right to left): +- NHWC: The native layout of Compute Library that delivers the best performance where channels are in the fastest changing dimension +- NCHW: Legacy layout where width is in the fastest changing dimension +where N = batches, C = channels, H = height, W = width + +@section S4_1_3 Thread-safety Although the library supports multi-threading during workload dispatch, thus parallelizing the execution of the workload at multiple threads, the current runtime module implementation is not thread-safe in the sense of executing different functions from separate threads. This lies to the fact that the provided scheduling mechanism wasn't designed with thread-safety in mind. -- cgit v1.2.1