blob: 8973d901d75853e138df96d9af299d3bafe97970 [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.
4
5For more information on the Android Neural Networks API, see https://developer.android.com/ndk/guides/neuralnetworks/index.html
6
7For integration and usage documentation, please see README.md.
8
9--- Support for Android Neural Networks HAL operations ---
10
11The following AndroidNN operations are currently supported.
12
13AndroidNN operator Tensor type supported
14ADD (FLOAT32)
15AVERAGE_POOL_2D (FLOAT32,QUANT8_ASYMM)
16CONCATENATION (FLOAT32)
surmeh0149b9e102018-05-17 14:11:25 +010017CONV_2D (FLOAT32,QUANT8_ASYMM)
18DEPTHWISE_CONV_2D* (FLOAT32,QUANT8_ASYMM)
telsoa015307bc12018-03-09 13:51:08 +000019FLOOR (FLOAT32)
20FULLY_CONNECTED (FLOAT32)
21L2_NORMALIZATION (FLOAT32)
22L2_POOL_2D (FLOAT32)
23LOCAL_RESPONSE_NORMALIZATION (FLOAT32)
24LOGISTIC (FLOAT32,QUANT8_ASYMM)
25MAX_POOL_2D (FLOAT32,QUANT8_ASYMM)
surmeh0149b9e102018-05-17 14:11:25 +010026MUL (FLOAT32)
telsoa015307bc12018-03-09 13:51:08 +000027RELU (FLOAT32,QUANT8_ASYMM)
28RELU1 (FLOAT32,QUANT8_ASYMM)
29RELU6 (FLOAT32,QUANT8_ASYMM)
30RESHAPE (FLOAT32,QUANT8_ASYMM)
31RESIZE_BILINEAR (FLOAT32)
32SOFTMAX (FLOAT32,QUANT8_ASYMM)
33TANH (FLOAT32)
34
surmeh0149b9e102018-05-17 14:11:25 +010035* 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 +000036
37--- Unsupported operators ---
38
39The following AndroidNN operations are currently not supported.
40
41DEPTH_TO_SPACE
42DEQUANTIZE
43EMBEDDING_LOOKUP
44HASHTABLE_LOOKUP
45LSH_PROJECTION
46LSTM
47RNN
48SPACE_TO_DEPTH
49SVDF
50
51Where 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.