------ ArmNN for Android NNAPI supported operations ------

This release of ArmNN for Android supports use as a driver for the Android Neural Networks API. It implements the
android.hardware.neuralnetworks@1.0, android.hardware.neuralnetworks@1.1 and android.hardware.neuralnetworks@1.2
HAL interfaces.

For more information on the Android Neural Networks API, see https://developer.android.com/ndk/guides/neuralnetworks/index.html

For integration and usage documentation, please see README.md.

--- Support for Android Neural Networks HAL operations ---

The following AndroidNN HAL 1.0, 1.1 and 1.2 operations are currently supported:

AndroidNN operator           Tensor type supported
ABS                          (FLOAT32)
ADD                          (FLOAT32, QUANT8_ASYMM)
AVERAGE_POOL_2D              (FLOAT32, QUANT8_ASYMM)
BATCH_TO_SPACE_ND            (FLOAT32, QUANT8_ASYMM)
CONCATENATION                (FLOAT32, FLOAT16, QUANT8_ASYMM)
CONV_2D                      (FLOAT32, QUANT8_ASYMM)
DEPTH_TO_SPACE               (FLOAT32, FLOAT16, QUANT8_ASYMM)
DEPTHWISE_CONV_2D            (FLOAT32, QUANT8_ASYMM)
DEQUANTIZE                   (FLOAT32 (output only), QUANT8_ASYMM (input only))
DIV                          (FLOAT32, QUANT8_ASYMM)
EQUAL                        (FLOAT32, QUANT8_ASYMM)
EXPAND_DIMS                  (FLOAT32, FLOAT16, QUANT8_ASYMM)
FLOOR                        (FLOAT32)
FULLY_CONNECTED              (FLOAT32, QUANT8_ASYMM)
GREATER                      (FLOAT32, QUANT8_ASYMM)
GREATER_EQUAL                (FLOAT32, QUANT8_ASYMM)
GROUPED_CONV_2D              (FLOAT32, QUANT8_ASYMM)
INSTANCE_NORMALIZATION       (FLOAT32)
L2_NORMALIZATION             (FLOAT32)
L2_POOL_2D                   (FLOAT32, QUANT8_ASYMM)
LESS                         (FLOAT32, QUANT8_ASYMM)
LESS_EQUAL                   (FLOAT32, QUANT8_ASYMM)
LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
LOGISTIC                     (FLOAT32, QUANT8_ASYMM)
LOG_SOFTMAX                  (FLOAT32)
LSTM                         (FLOAT32)
MAXIMUM                      (FLOAT32, QUANT8_ASYMM)
MAX_POOL_2D                  (FLOAT32, QUANT8_ASYMM)
MEAN                         (FLOAT32, QUANT8_ASYMM)
MINIMUM                      (FLOAT32, QUANT8_ASYMM)
MUL                          (FLOAT32, QUANT8_ASYMM)
NOT_EQUAL                    (FLOAT32, QUANT8_ASYMM)
PAD                          (FLOAT32, FLOAT16, QUANT8_ASYMM)
PAD_V2                       (FLOAT32, FLOAT16, QUANT8_ASYMM)
PRELU                        (FLOAT32, QUANT8_ASYMM)
QUANTIZE                     (FLOAT32 (input only), QUANT8_ASYMM (output only))
QUANTIZED_16BIT_LSTM         (QUANT8_ASYMM)
RELU                         (FLOAT32, QUANT8_ASYMM)
RELU1                        (FLOAT32, QUANT8_ASYMM)
RELU6                        (FLOAT32, QUANT8_ASYMM)
RESHAPE                      (FLOAT32, FLOAT16, QUANT8_ASYMM)
RESIZE_BILINEAR              (FLOAT32, QUANT8_ASYMM)
RESIZE_NEAREST_NEIGHBOR      (FLOAT32, QUANT8_ASYMM)
RSQRT                        (FLOAT32)
SOFTMAX                      (FLOAT32, QUANT8_ASYMM)
SPACE_TO_BATCH_ND            (FLOAT32, QUANT8_ASYMM)
SPACE_TO_DEPTH               (FLOAT32, FLOAT16, QUANT8_ASYMM)
SQRT                         (FLOAT32)
SQUEEZE                      (FLOAT32, FLOAT16, QUANT8_ASYMM)
STRIDED_SLICE                (FLOAT32, QUANT8_ASYMM)
SUB                          (FLOAT32, QUANT8_ASYMM)
TANH                         (FLOAT32, QUANT8_ASYMM)
TRANSPOSE                    (FLOAT32, QUANT8_ASYMM)
TRANSPOSE_CONV_2D            (FLOAT32, QUANT8_ASYMM)

Where operations are not supported by the ArmNN Android NN Driver, the driver indicates this to the framework
appropriately and the framework implements those operations using a CPU implementation.

NOTE: By convention, only those tensor types have been listed above, which are fully supported across all
ArmNN backends. FLOAT16 input tensors are partially supported on most HAL 1.2 operators on the GpuAcc and
CpuRef backends, however not on CpuAcc.
