------ 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 and android.hardware.neuralnetworks@1.1 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 operations are currently supported.

AndroidNN operator           Tensor type supported
ADD                          (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
AVERAGE_POOL_2D              (FLOAT32,QUANT8_ASYMM)
BATCH_TO_SPACE_ND            (FLOAT32,QUANT8_ASYMM)
CONCATENATION                (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
CONV_2D                      (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
DEPTHWISE_CONV_2D            (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
DIV                          (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
DEQUANTIZE                   (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
FLOOR                        (FLOAT32)
FULLY_CONNECTED              (FLOAT32,QUANT8_ASYMM)
L2_NORMALIZATION             (FLOAT32)
L2_POOL_2D                   (FLOAT32,QUANT8_ASYMM)
LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
LOGISTIC                     (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
LSTM                         (FLOAT32)
MAX_POOL_2D                  (FLOAT32,QUANT8_ASYMM)
MEAN                         (FLOAT32,QUANT8_ASYMM)
MUL                          (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
PAD                          (FLOAT32,QUANT8_ASYMM)
RELU                         (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
RELU1                        (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
RELU6                        (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
RESHAPE                      (FLOAT32,QUANT8_ASYMM)
RESIZE_BILINEAR              (FLOAT32,QUANT8_ASYMM)
SOFTMAX                      (FLOAT32,QUANT8_ASYMM)
SPACE_TO_BATCH_ND            (FLOAT32,QUANT8_ASYMM)
SQUEEZE                      (FLOAT32,QUANT8_ASYMM)
STRIDED_SLICE                (FLOAT32,QUANT8_ASYMM)
SUB                          (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
TANH                         (FLOAT32,QUANT8_ASYMM,QUANT16_SYMM)
TRANSPOSE                    (FLOAT32,QUANT8_ASYMM)


--- Unsupported operators ---

The following AndroidNN 1.0 operations are currently not supported.

DEPTH_TO_SPACE
EMBEDDING_LOOKUP
HASHTABLE_LOOKUP
LSH_PROJECTION
RNN
SPACE_TO_DEPTH
SVDF

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.
