86 lines
5.3 KiB
Plaintext
86 lines
5.3 KiB
Plaintext
------ 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, android.hardware.neuralnetworks@1.2 and
|
|
android.hardware.neuralnetworks@1.3
|
|
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, 1.2 and 1.3 operations are currently supported:
|
|
|
|
AndroidNN operator Tensor type supported
|
|
ABS (FLOAT32)
|
|
ADD (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
ARGMAX (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
ARGMIN (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
AVERAGE_POOL_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
BATCH_TO_SPACE_ND (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
CONCATENATION (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
CONV_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
DEPTH_TO_SPACE (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
DEPTHWISE_CONV_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
DEQUANTIZE (FLOAT32 (output only), QUANT8_ASYMM and QUANT8_ASYMM_SIGNED (input only))
|
|
DIV (FLOAT32, QUANT8_ASYMM)
|
|
ELU (FLOAT32, QUANT8_ASYMM)
|
|
EQUAL (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
EXP (FLOAT32, FLOAT16)
|
|
EXPAND_DIMS (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
FILL (FLOAT32, FLOAT16, INT32)
|
|
FLOOR (FLOAT32)
|
|
FULLY_CONNECTED (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
GREATER (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
GREATER_EQUAL (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
GROUPED_CONV_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
HARD_SWISH (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
INSTANCE_NORMALIZATION (FLOAT32)
|
|
L2_NORMALIZATION (FLOAT32)
|
|
L2_POOL_2D (FLOAT32, QUANT8_ASYMM)
|
|
LESS (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
LESS_EQUAL (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
|
|
LOGISTIC (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
LOG_SOFTMAX (FLOAT32)
|
|
LSTM (FLOAT32)
|
|
MAXIMUM (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
MAX_POOL_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
MEAN (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
MINIMUM (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
MUL (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
NEG (FLOAT32)
|
|
NOT_EQUAL (FLOAT32, INT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
PAD (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
PAD_V2 (FLOAT32, FLOAT16, QUANT8_ASYMM)
|
|
PRELU (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
QUANTIZE (FLOAT32 (input only), QUANT8_ASYMM and QUANT8_ASYMM_SIGNED (output only))
|
|
QUANTIZED_16BIT_LSTM (QUANT8_ASYMM)
|
|
QUANTIZED_LSTM (QUANT8_ASYMM)
|
|
RELU (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
RELU1 (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
RELU6 (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
RESHAPE (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
RESIZE_BILINEAR (FLOAT32, QUANT8_ASYMM)
|
|
RESIZE_NEAREST_NEIGHBOR (FLOAT32, QUANT8_ASYMM)
|
|
RSQRT (FLOAT32)
|
|
SOFTMAX (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
SPACE_TO_BATCH_ND (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
SPACE_TO_DEPTH (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
SQRT (FLOAT32)
|
|
SQUEEZE (FLOAT32, FLOAT16, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
STRIDED_SLICE (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
SUB (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
TANH (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
TRANSPOSE (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
TRANSPOSE_CONV_2D (FLOAT32, QUANT8_ASYMM, QUANT8_ASYMM_SIGNED)
|
|
|
|
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. |