------ 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)
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
DEQUANTIZE
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.
