blob: ea3fa8f2758341c3f410b00abcc7b479f3385212 [file] [log] [blame]
surmeh0149b9e102018-05-17 14:11:25 +01001------ ArmNN for Android NNAPI supported operations ------
telsoa015307bc12018-03-09 13:51:08 +00002
3This release of ArmNN for Android supports use as a driver for the Android Neural Networks API. It implements the android.hardware.neuralnetworks@1.0 interface.
telsoa01ce3e84a2018-08-31 09:31:35 +01004android.hardware.neuralnetworks@1.1 models available in Android P can be executed if they return true from the utility method compliantWithV1_0(model).
telsoa015307bc12018-03-09 13:51:08 +00005
6For more information on the Android Neural Networks API, see https://developer.android.com/ndk/guides/neuralnetworks/index.html
7
8For integration and usage documentation, please see README.md.
9
10--- Support for Android Neural Networks HAL operations ---
11
12The following AndroidNN operations are currently supported.
13
14AndroidNN operator Tensor type supported
Matthew Bentham378333d2018-10-01 16:07:27 +010015ADD (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000016AVERAGE_POOL_2D (FLOAT32,QUANT8_ASYMM)
Éanna Ó Catháin52e14ca2018-11-12 16:06:20 +000017BATCH_TO_SPACE_ND (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000018CONCATENATION (FLOAT32)
surmeh0149b9e102018-05-17 14:11:25 +010019CONV_2D (FLOAT32,QUANT8_ASYMM)
20DEPTHWISE_CONV_2D* (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000021FLOOR (FLOAT32)
Matthew Bentham378333d2018-10-01 16:07:27 +010022FULLY_CONNECTED (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000023L2_NORMALIZATION (FLOAT32)
24L2_POOL_2D (FLOAT32)
25LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
26LOGISTIC (FLOAT32,QUANT8_ASYMM)
27MAX_POOL_2D (FLOAT32,QUANT8_ASYMM)
Matthew Bentham378333d2018-10-01 16:07:27 +010028MUL (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000029RELU (FLOAT32,QUANT8_ASYMM)
30RELU1 (FLOAT32,QUANT8_ASYMM)
31RELU6 (FLOAT32,QUANT8_ASYMM)
32RESHAPE (FLOAT32,QUANT8_ASYMM)
33RESIZE_BILINEAR (FLOAT32)
34SOFTMAX (FLOAT32,QUANT8_ASYMM)
Nattapat Chaimanowong3219deb2018-11-09 15:47:25 +000035SPACE_TO_BATCH_ND (FLOAT32,QUANT8_ASYMM)
saoste01b8471482018-10-10 09:44:51 +010036SQUEEZE (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000037TANH (FLOAT32)
saoste01fe463152018-10-18 17:49:56 +010038TRANSPOSE (FLOAT32,QUANT8_ASYMM)
telsoa01ce3e84a2018-08-31 09:31:35 +010039LSTM (FLOAT32)
telsoa015307bc12018-03-09 13:51:08 +000040
surmeh0149b9e102018-05-17 14:11:25 +010041* Depthwise convolution only supports a value of 1 for the depth multiplier. In addition, the QUANT8_ASYMM version only supports 3x3 kernels.
telsoa015307bc12018-03-09 13:51:08 +000042
43--- Unsupported operators ---
44
telsoa01ce3e84a2018-08-31 09:31:35 +010045The following AndroidNN 1.0 operations are currently not supported.
telsoa015307bc12018-03-09 13:51:08 +000046
47DEPTH_TO_SPACE
48DEQUANTIZE
49EMBEDDING_LOOKUP
50HASHTABLE_LOOKUP
51LSH_PROJECTION
telsoa015307bc12018-03-09 13:51:08 +000052RNN
53SPACE_TO_DEPTH
54SVDF
55
56Where 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.
telsoa01ce3e84a2018-08-31 09:31:35 +010057
58The following AndroidNN 1.1 operations are currently not supported.
59
telsoa01ce3e84a2018-08-31 09:31:35 +010060DIV
61MEAN
62PAD
telsoa01ce3e84a2018-08-31 09:31:35 +010063STRIDED_SLICE
64SUB
telsoa01ce3e84a2018-08-31 09:31:35 +010065
66Where any of these operations are present the model will return false from the compliantWithV1_0(model) and the driver will not currently be utilised.