blob: b4b2cc456e95daac2c8a367be4c5f1eeefba415e [file] [log] [blame]
surmeh0149b9e102018-05-17 14:11:25 +01001------ ArmNN for Android NNAPI supported operations ------
telsoa015307bc12018-03-09 13:51:08 +00002
Matthew Benthama3e23ca2019-05-13 12:49:59 +01003This release of ArmNN for Android supports use as a driver for the Android Neural Networks API. It implements the
Aron Virginas-Tarb23732b2019-06-17 15:48:45 +01004android.hardware.neuralnetworks@1.0, android.hardware.neuralnetworks@1.1 and android.hardware.neuralnetworks@1.2
5HAL interfaces.
telsoa015307bc12018-03-09 13:51:08 +00006
7For more information on the Android Neural Networks API, see https://developer.android.com/ndk/guides/neuralnetworks/index.html
8
9For integration and usage documentation, please see README.md.
10
11--- Support for Android Neural Networks HAL operations ---
12
Aron Virginas-Tarb23732b2019-06-17 15:48:45 +010013The following AndroidNN HAL 1.0 and 1.1 operations are currently supported:
telsoa015307bc12018-03-09 13:51:08 +000014
15AndroidNN operator Tensor type supported
Matthew Benthamb92f8902019-06-05 09:24:31 +010016ADD (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000017AVERAGE_POOL_2D (FLOAT32,QUANT8_ASYMM)
Sadik Armagan82fbeb32018-12-20 17:12:26 +000018BATCH_TO_SPACE_ND (FLOAT32,QUANT8_ASYMM)
Matthew Benthamb92f8902019-06-05 09:24:31 +010019CONCATENATION (FLOAT32,QUANT8_ASYMM)
20CONV_2D (FLOAT32,QUANT8_ASYMM)
21DEPTHWISE_CONV_2D (FLOAT32,QUANT8_ASYMM)
22DIV (FLOAT32,QUANT8_ASYMM)
23DEQUANTIZE (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000024FLOOR (FLOAT32)
Matthew Bentham378333d2018-10-01 16:07:27 +010025FULLY_CONNECTED (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000026L2_NORMALIZATION (FLOAT32)
nikraj01c6494cc2019-05-22 16:30:44 +010027L2_POOL_2D (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000028LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
Matthew Benthamb92f8902019-06-05 09:24:31 +010029LOGISTIC (FLOAT32,QUANT8_ASYMM)
Ferran Balaguerd04c0432018-11-15 14:48:05 +000030LSTM (FLOAT32)
telsoa015307bc12018-03-09 13:51:08 +000031MAX_POOL_2D (FLOAT32,QUANT8_ASYMM)
Ferran Balaguerd04c0432018-11-15 14:48:05 +000032MEAN (FLOAT32,QUANT8_ASYMM)
Matthew Benthamb92f8902019-06-05 09:24:31 +010033MUL (FLOAT32,QUANT8_ASYMM)
Ferran Balaguerd04c0432018-11-15 14:48:05 +000034PAD (FLOAT32,QUANT8_ASYMM)
Matthew Benthamb92f8902019-06-05 09:24:31 +010035RELU (FLOAT32,QUANT8_ASYMM)
36RELU1 (FLOAT32,QUANT8_ASYMM)
37RELU6 (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000038RESHAPE (FLOAT32,QUANT8_ASYMM)
nikraj01c6494cc2019-05-22 16:30:44 +010039RESIZE_BILINEAR (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000040SOFTMAX (FLOAT32,QUANT8_ASYMM)
Sadik Armagan82fbeb32018-12-20 17:12:26 +000041SPACE_TO_BATCH_ND (FLOAT32,QUANT8_ASYMM)
saoste01b8471482018-10-10 09:44:51 +010042SQUEEZE (FLOAT32,QUANT8_ASYMM)
Sadik Armagan82fbeb32018-12-20 17:12:26 +000043STRIDED_SLICE (FLOAT32,QUANT8_ASYMM)
Matthew Benthamb92f8902019-06-05 09:24:31 +010044SUB (FLOAT32,QUANT8_ASYMM)
45TANH (FLOAT32,QUANT8_ASYMM)
saoste01fe463152018-10-18 17:49:56 +010046TRANSPOSE (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000047
Aron Virginas-Tarb23732b2019-06-17 15:48:45 +010048The following AndroidNN HAL 1.2 operations are currently supported:
49
50CONV_2D (FLOAT32,QUANT8_ASYMM)
51DEPTHWISE_CONV_2D (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000052
53--- Unsupported operators ---
54
Aron Virginas-Tarb23732b2019-06-17 15:48:45 +010055The following AndroidNN HAL 1.0 operations are currently not supported:
telsoa015307bc12018-03-09 13:51:08 +000056
57DEPTH_TO_SPACE
telsoa015307bc12018-03-09 13:51:08 +000058EMBEDDING_LOOKUP
59HASHTABLE_LOOKUP
60LSH_PROJECTION
telsoa015307bc12018-03-09 13:51:08 +000061RNN
62SPACE_TO_DEPTH
63SVDF
64
Aron Virginas-Tarb23732b2019-06-17 15:48:45 +010065The following AndroidNN HAL 1.2 operations are currently not supported:
66
67CONCATENATION
68LSTM
69MINIMUM
70MAXIMUM
71PAD_V2
72QUANTIZE
73QUANTIZED_16BIT_LSTM
74PRELU
75RESIZE_NEAREST_NEIGHBOR
76TRANSPOSE_CONV_2D
77
Mike Kelly56df76c2019-06-14 15:51:39 +010078Where operations are not supported by the ArmNN Android NN Driver, the driver indicates this to the framework
79appropriately and the framework implements those operations using a CPU implementation.