Commit graph

184 commits

Author SHA1 Message Date
Slava Shklyaev
d6e605985b Clarify NNAPI documentation for MEAN
Bug: 113673389
Test: mma
Change-Id: Icd1ce2fb9054ab9ac6f660dce84823c73563ddb8
2019-04-12 17:49:54 +01:00
Slava Shklyaev
5f5d5f9a54 Clarify NNAPI documentation for RESHAPE
Bug: 117176461
Test: mma
Change-Id: I620873536ed99ac79b7eced286a8f2621524290b
2019-04-12 17:49:54 +01:00
Slava Shklyaev
901ac77a69 Update documentation for MAXIMUM and MINIMUM
Bug: 130029167
Test: mma
Change-Id: Ieb0c3327a85331243af5e20a1f29f1be316267ee
2019-04-09 09:34:18 +00:00
Michael Butler
8a4c1f5e12 Merge "Propagate ANNMemory_free to IBurstContext::freeMemory -- VTS update" 2019-04-02 21:57:35 +00:00
Lev Proleev
778accda64 Merge "LSTM: require input layer norm weights to be omitted in case CIFG is used." 2019-04-01 10:36:19 +00:00
Michael Butler
102e0442d8 Propagate ANNMemory_free to IBurstContext::freeMemory -- VTS update
This CL adapts the VTS code to the corresponding changes made in the NN
utility library.

Bug: 128319484
Test: mma
Test: atest VtsHalNeuralnetworksV1_0Target
Test: atest VtsHalNeuralnetworksV1_1Target
Test: atest VtsHalNeuralnetworksV1_2Target
Change-Id: I470e8228cde2b75620ad851e4fe408f8e8329e7c
2019-03-29 13:25:53 -07:00
Michael Butler
e68668f65b NNAPI Burst object cleanup -- VTS update
This CL adapts the VTS code to the corresponding changes made in the NN
utility library.

Bug: 119570067
Test: mma
Test: atest VtsHalNeuralnetworksV1_0Target
Test: atest VtsHalNeuralnetworksV1_1Target
Test: atest VtsHalNeuralnetworksV1_2Target
Change-Id: I7cbc1d7025c0352aa1ed29d71dc84c2fcfc20a4f
2019-03-28 13:41:14 -07:00
Lev Proleev
0480af9aa8 LSTM: require input layer norm weights to be omitted in case CIFG is used.
In case of CIFG LSTM, input layer norm weights are not used in the
computation.

Bug: 129126572
Test: mma
Change-Id: I57bc578606132a2c44c71ab63dd7645dcc001302
2019-03-28 15:56:33 +00:00
Xusong Wang
7b277acbd0 Sync operation docs between NeuralNetworks.h and HAL file am: 66baf74114 am: e265b746b9
am: 094a06c28e

Change-Id: I34c9eba2b4fa207486416a2b0a04c569aac76a69
2019-03-22 17:37:30 -07:00
Xusong Wang
66baf74114 Sync operation docs between NeuralNetworks.h and HAL file
Test: mma
Change-Id: I0fb44d734216e2f40a9a2d4efc3640acd923f932
2019-03-22 13:11:25 -07:00
Xusong Wang
ed0822bc78 Fix caching interface according to vendor feedback.
- Instead of isCachingSupport returning a single boolean, switch to
  getNumberOfCacheFilesNeeded returning the number of cache files. This
  is to support use cases when driver needs more than one cache file for
  each type, or when driver does not need data cache.

- Instead of a separate saveToCache, pass cache info along with
  prepareModel_1_2 to save into cache as well as perform compilation.
  This is to avoid a potential additional copy of cache files.

Bug: 123780248
Test: VtsHalNeuralnetworksV1_xTargetTest with 1.2 sample driver
Test: VtsHalNeuralnetworksV1_xTargetTest with a test driver that can
      read and write cache entries
Change-Id: I921b7b8ccc3c66af19f6589f7213c6870d6f07bf
Merged-In: I921b7b8ccc3c66af19f6589f7213c6870d6f07bf
(cherry picked from commit b61ba1ed0b)
2019-03-22 13:10:54 -07:00
Viet Dang
ed5c004915 BidirectionalSequenceLSTM op: Adds layer norm support.
Also updates documentation for this op and UnidirectionalSequenceLSTM
op.

Bug: 123644584

Test: in ag/6758764

Change-Id: I72d029fef6d890eb1771c21814b028b09af280c7
Merged-In: I72d029fef6d890eb1771c21814b028b09af280c7
(cherry picked from commit f404a1e894)
2019-03-22 13:10:17 -07:00
David Gross
2d47c80c8e Add @V1_2::Capabilities to support all non extension operand types.
Performance information in Capabilities is used by the runtime when
it selects the appropriate processor to distribute work to.  Prior to
this CL, Capabilities can only distinguish between float and non-float
data types -- so, for example, float16 and float32 performance is
considered to be the same, and performance for all non-float data types is
considered to be the same.

Bug: 124041010

Test: NeuralNetworksTest_static
Test: VtsHalNeuralnetworksV1_2TargetTest --hal_service_instance=android.hardware.neuralnetworks@1.2::IDevice/sample-all

Change-Id: I83fb5920c1c75afbd7750d793a0b8f3e72a0552c
Merged-In: I83fb5920c1c75afbd7750d793a0b8f3e72a0552c
(cherry picked from commit 632b4bd9b0)
2019-03-22 10:43:47 -07:00
David Gross
632b4bd9b0 Add @V1_2::Capabilities to support all non extension operand types.
Performance information in Capabilities is used by the runtime when
it selects the appropriate processor to distribute work to.  Prior to
this CL, Capabilities can only distinguish between float and non-float
data types -- so, for example, float16 and float32 performance is
considered to be the same, and performance for all non-float data types is
considered to be the same.

Bug: 124041010

Test: NeuralNetworksTest_static
Test: VtsHalNeuralnetworksV1_2TargetTest --hal_service_instance=android.hardware.neuralnetworks@1.2::IDevice/sample-all

Change-Id: I83fb5920c1c75afbd7750d793a0b8f3e72a0552c
2019-03-21 19:37:36 -07:00
Xusong Wang
b61ba1ed0b Fix caching interface according to vendor feedback.
- Instead of isCachingSupport returning a single boolean, switch to
  getNumberOfCacheFilesNeeded returning the number of cache files. This
  is to support use cases when driver needs more than one cache file for
  each type, or when driver does not need data cache.

- Instead of a separate saveToCache, pass cache info along with
  prepareModel_1_2 to save into cache as well as perform compilation.
  This is to avoid a potential additional copy of cache files.

Bug: 123780248
Test: VtsHalNeuralnetworksV1_xTargetTest with 1.2 sample driver
Test: VtsHalNeuralnetworksV1_xTargetTest with a test driver that can
      read and write cache entries
Change-Id: I921b7b8ccc3c66af19f6589f7213c6870d6f07bf
2019-03-21 14:17:08 -07:00
Viet Dang
f404a1e894 BidirectionalSequenceLSTM op: Adds layer norm support.
Also updates documentation for this op and UnidirectionalSequenceLSTM
op.

Bug: 123644584

Test: in ag/6758764

Change-Id: I72d029fef6d890eb1771c21814b028b09af280c7
2019-03-21 18:23:30 +00:00
Lev Proleev
0b074a9ba5 Update scale restrictions in NN API ops docs am: c8b3d162c2 am: 28c60ff868
am: 1c94eb7c5d

Change-Id: Ie6e9cbe78a4182dc23d8916dcd220c5c51064b0a
2019-03-21 07:11:00 -07:00
Lev Proleev
c8b3d162c2 Update scale restrictions in NN API ops docs
NN API relaxed scale restrictions to improve compatibility with TF Lite.

Updated ops:
- CONV_2D
- DEPTHWISE_CONV_2D
- TRANSPOSE_CONV_2D
- GROUPED_CONV_2D
- FULLY_CONNECTED

Test: mma
Bug: 127427474
Change-Id: I9dabd27b21679b99d638c364464d815e1c199787
2019-03-21 10:26:26 +00:00
Xusong Wang
f80e3e7826 Fix condition in mutateOperationOperandTypeSkip for conv ops.
The filter tensor is not always operand 1 if there are multiple
operations in the model.

Test: 1.2 VTS tests with sample driver
Change-Id: I8925dfd18072ae5579657e8aa13128e7d9f58324
Merged-In: I8925dfd18072ae5579657e8aa13128e7d9f58324
(cherry picked from commit 8804423ca1)
2019-03-20 13:02:48 -07:00
Xusong Wang
8804423ca1 Fix condition in mutateOperationOperandTypeSkip for conv ops.
The filter tensor is not always operand 1 if there are multiple
operations in the model.

Test: 1.2 VTS tests with sample driver
Change-Id: I8925dfd18072ae5579657e8aa13128e7d9f58324
2019-03-13 16:27:05 -07:00
Miao Wang
8e501a7d31 Fix the documentation about paddings for SPACE_TO_BATCH_ND am: 9c9fea329e am: f29553e3e1
am: e9100c8b88

Change-Id: Iec682b2ea2dcbc5435d6d6f0ad3894f36f5f0ed8
2019-03-13 12:32:27 -07:00
Miao Wang
9c9fea329e Fix the documentation about paddings for SPACE_TO_BATCH_ND
Bug: 123929388
Test: mm
Change-Id: I3acbfc7b1205774d9852ce8dd8c3144f250c793c
2019-03-12 15:08:08 -07:00
Elliott Hughes
9e53c0ddd6 Fix "tranpose" typo. am: 7b303e1670 am: 1d58b00848
am: 988ff70cd8

Change-Id: Ic7c3fbe9a9b6afbb4182c479be8d41df942e3988
2019-03-08 16:22:11 -08:00
Slava Shklyaev
b45f700b34 Specify NNAPI extension name format am: 1d2cd43476 am: f6bdc6a983
am: 1d3588a789

Change-Id: Ib97cd492c51a3ce463f17fb3a14905d8c2092e57
2019-03-08 12:35:26 -08:00
Elliott Hughes
7b303e1670 Fix "tranpose" typo.
Test: N/A
Change-Id: I5c02f66b1fdf4ee77564809b5610ba53d93273af
2019-03-08 12:15:39 -08:00
Slava Shklyaev
1d2cd43476 Specify NNAPI extension name format
Fix: 125376611
Test: mma
Change-Id: I7d7fcb5d23b4c998c4cd6cd8c9b14ec932876a17
2019-03-08 11:19:40 +00:00
Lev Proleev
b4e306782c Fix operations docs am: fdf3c0363a am: 0775d27fe6
am: efc791ed73

Change-Id: Ib59ed39d256fe446df3ae820a122cdd01e98166e
2019-03-05 04:27:01 -08:00
Lev Proleev
fdf3c0363a Fix operations docs
* Add missing float16-related docs
* Fix weights' shapes in QUANTIZED_16BIT_LSTM

Bug: 126872052
Bug: 126870779
Test: mma
Change-Id: Iba0b208b101db676b03b04e03e43c7378877843c
2019-03-05 11:07:39 +00:00
Steven Moreland
7f4e21adda Merge "Update makefies: no 'types'" am: 4ee5ec1469 am: bab622f6a6
am: 7224bc9bcf

Change-Id: I434939e0770afa436c532a945542fce30a71ef7d
2019-03-04 16:05:59 -08:00
Steven Moreland
a878aee9ab Update makefies: no 'types'
Bug: 123976090
Test: N/A
Change-Id: I30fb04c81889b62775e1b764b965fdb0f893de17
2019-03-04 11:27:17 -08:00
Michael Butler
80ad3f8449 Merge "Add presubmit tests to NNAPI -- hardware/interfaces/neuralnetworks" 2019-02-20 18:23:40 +00:00
Michael Butler
58caa831bd Add presubmit tests to NNAPI -- hardware/interfaces/neuralnetworks
This CL creates a new suite of tests to enable presubmit tests:
* PresubmitHalNeuralnetworksV1_0TargetTest
* PresubmitHalNeuralnetworksV1_1TargetTest
* PresubmitHalNeuralnetworksV1_2TargetTest

These tests are the same as the VTS tests, with the exception that they
will skip running all tests (but still pass) if the service cannot be
found and its name starts with "service-".

This change does not affect the existing NNAPI VTS tests.

Test: mma
Test: atest
Bug: 124040554
Change-Id: I36a38b66b21fd51d0ca381bb4e05a39266dd353f
(cherry picked from commit ed68233697)
2019-02-19 12:04:24 -08:00
Michael Butler
669fe0b1f9 Merge "Add presubmit tests to NNAPI -- hardware/interfaces/neuralnetworks" 2019-02-19 17:32:56 +00:00
Lev Proleev
fd1134a6f3 Update TRANSPOSE_CONV_2D docs
* Add info about per-channel quantization
* Update current.txt

Test: mma
Change-Id: I197d984c8b65b4c46bf526eb137f212ad8844926
Merged-In: I197d984c8b65b4c46bf526eb137f212ad8844926
(cherry picked from commit 44015c090a)
2019-02-18 09:00:19 +00:00
Michael Butler
857142085f Pretty-print ErrorStatus and DeviceStatus test failure logs
Argument-dependent lookup will only work for operator>> if the operator
is in one of the argument's namespaces. This caused the enumerations to
pretty-print for V1_0, but not for V1_1 or V1_2. This change ensures the
V1_0 namespace is used.

Test: mma
Test: atest VtsHalNeuralnetworksV1_0TargetTest (verified the test output "OFFLINE" for DeviceStatus and "DEVICE_UNAVAILABLE" for ErrorStatus instead of raw byte value representation)
Test: atest VtsHalNeuralnetworksV1_1TargetTest (verified the test output "OFFLINE" for DeviceStatus and "DEVICE_UNAVAILABLE" for ErrorStatus instead of raw byte value representation)
Test: atest VtsHalNeuralnetworksV1_2TargetTest (verified ran and passed tests)
Fixes: 124316129
Change-Id: I764a46e2d87615b1f3da0ab0e6edb134bb533887
(cherry picked from commit 42a35bee10)
2019-02-15 13:34:50 -08:00
Michael Butler
ed68233697 Add presubmit tests to NNAPI -- hardware/interfaces/neuralnetworks
This CL creates a new suite of tests to enable presubmit tests:
* PresubmitHalNeuralnetworksV1_0TargetTest
* PresubmitHalNeuralnetworksV1_1TargetTest
* PresubmitHalNeuralnetworksV1_2TargetTest

These tests are the same as the VTS tests, with the exception that they
will skip running all tests (but still pass) if the service cannot be
found and its name starts with "service-".

This change does not affect the existing NNAPI VTS tests.

Test: mma
Test: atest
Bug: 124040554
Change-Id: I36a38b66b21fd51d0ca381bb4e05a39266dd353f
2019-02-15 11:47:00 -08:00
Lev Proleev
44015c090a Update TRANSPOSE_CONV_2D docs
* Add info about per-channel quantization
* Update current.txt

Test: mma
Change-Id: I197d984c8b65b4c46bf526eb137f212ad8844926
2019-02-15 16:01:49 +00:00
Xusong Wang
3ee1f4a333 Modify several 1.2 nn operation specs.
- Add TENSOR_QUANT8_ASYMM to RESIZE_BILINEAR
- Change the spec of batch_split in
  * GENERATE_PROPOSALS
  * ROI_ALIGN
  * ROI_POOLING
  * AXIS_ALIGNED_BBOX_TRANSFORM
  * BOX_WITH_NMS_LIMIT
- Add new op RESIZE_NEAREST_NEIGHBOR
- Fix minor specification error in
  * AXIS_ALIGNED_BBOX_TRANSFORM
  * GENERATE_PROPOSALS

Bug: 124060811
Bug: 124061329
Bug: 124061327
Test: 1.2 VTS tests with sample driver
Change-Id: If8b8cabd249f17247d8a5278b8360685c97c68e6
Merged-In: If8b8cabd249f17247d8a5278b8360685c97c68e6
(cherry picked from commit b9319bd3bf)
2019-02-14 18:13:35 -08:00
Michael Butler
9e3f898921 Merge "Pretty-print ErrorStatus and DeviceStatus test failure logs" 2019-02-14 20:49:00 +00:00
Michael Butler
42a35bee10 Pretty-print ErrorStatus and DeviceStatus test failure logs
Argument-dependent lookup will only work for operator>> if the operator
is in one of the argument's namespaces. This caused the enumerations to
pretty-print for V1_0, but not for V1_1 or V1_2. This change ensures the
V1_0 namespace is used.

Test: mma
Test: atest VtsHalNeuralnetworksV1_0TargetTest (verified the test output "OFFLINE" for DeviceStatus and "DEVICE_UNAVAILABLE" for ErrorStatus instead of raw byte value representation)
Test: atest VtsHalNeuralnetworksV1_1TargetTest (verified the test output "OFFLINE" for DeviceStatus and "DEVICE_UNAVAILABLE" for ErrorStatus instead of raw byte value representation)
Test: atest VtsHalNeuralnetworksV1_2TargetTest (verified ran and passed tests)
Fixes: 124316129
Change-Id: I764a46e2d87615b1f3da0ab0e6edb134bb533887
2019-02-14 20:48:40 +00:00
Xusong Wang
6824cc1e64 Remove tmp directory after CompilationCachingTest if cache not supported.
The tmp directory is only removed when the driver reports caching not
supported, otherwise it is kept for debugging purpose.

Test: 1.2 VTS tests with sample driver
Change-Id: I5969beb1ec365c992765f40d7693630606f16e18
Merged-In: I5969beb1ec365c992765f40d7693630606f16e18
(cherry picked from commit 350d91b1df)
2019-02-14 10:16:41 -08:00
Hervé Guihot
ac7ac525b2 Added missing ASSERT_NE.
Test was failing with segmentation fault (and crashing whole VTS) when
device was not available.

Change-Id: Id0f28d061dc5858fa00ef1bac5f7aa467d860864
Merged-In: Id0f28d061dc5858fa00ef1bac5f7aa467d860864
(cherry picked from commit 70d25b813e)
2019-02-14 10:15:27 -08:00
Xusong Wang
e50086a29d Merge "Remove tmp directory after CompilationCachingTest if cache not supported." 2019-02-14 18:10:18 +00:00
Xusong Wang
b9319bd3bf Modify several 1.2 nn operation specs.
- Add TENSOR_QUANT8_ASYMM to RESIZE_BILINEAR
- Change the spec of batch_split in
  * GENERATE_PROPOSALS
  * ROI_ALIGN
  * ROI_POOLING
  * AXIS_ALIGNED_BBOX_TRANSFORM
  * BOX_WITH_NMS_LIMIT
- Add new op RESIZE_NEAREST_NEIGHBOR
- Fix minor specification error in
  * AXIS_ALIGNED_BBOX_TRANSFORM
  * GENERATE_PROPOSALS

Bug: 124060811
Bug: 124061329
Bug: 124061327
Test: 1.2 VTS tests with sample driver
Change-Id: If8b8cabd249f17247d8a5278b8360685c97c68e6
2019-02-13 13:09:38 -08:00
Xusong Wang
350d91b1df Remove tmp directory after CompilationCachingTest if cache not supported.
The tmp directory is only removed when the driver reports caching not
supported, otherwise it is kept for debugging purpose.

Test: 1.2 VTS tests with sample driver
Change-Id: I5969beb1ec365c992765f40d7693630606f16e18
2019-02-13 11:53:19 -08:00
Lev Proleev
dce38f1364 Fix VTS tests.
* Adds a specification of invalid scale and zero point for TENSOR_BOOL8.
This fixes vts failures for comparison ops.
* Removes (FUNDAMENTAL_MIN - 1) from invalid OperationTypes.
FUNDAMENTAL_MIN is equal to 0 and resulting -1 was statically casted to
uint32_t and passed 4294967295 as an invalid OperationType. However, our
validateOperation function interpreted this ID as an extension ID and
didn't fail.
* Adds mutateOperationOperandTypeSkip for QUANTIZE and DEQUANTIZE.
* Adds removeOperandSkip for BIDIRECTIONAL_SEQUENCE_RNN.

Fix: 121130841
Fix: 123247345
Test: VtsHalNeuralnetworksV1_2TargetTest --hal_service_instance=android.hardware.neuralnetworks@1.2::IDevice/sample-all
Change-Id: Iefb502c6b9301d5470eb4cdaa46d398f1a0e512a
Merged-In: Iefb502c6b9301d5470eb4cdaa46d398f1a0e512a
(cherry picked from commit 923b8c5842)
2019-02-13 13:16:28 +00:00
Steven Moreland
e694cb2dad neuralnetworks: Update makefiles.
Bug: N/A
Test: N/A
Change-Id: I83a920c646cf03dcc161a6fbc928a6dc09b2d7f1
Merged-In: I5fb6c126a090a3fe0fa4829ea9224564133dc1ae
2019-02-12 17:10:15 -08:00
Hervé Guihot
70d25b813e Added missing ASSERT_NE.
Test was failing with segmentation fault (and crashing whole VTS) when
device was not available.

Change-Id: Id0f28d061dc5858fa00ef1bac5f7aa467d860864
2019-02-12 16:22:44 -08:00
Lev Proleev
2756283e30 Sync docs between NeuralNetworks.h and HAL file
Test: VtsHalNeuralnetworksV1_2TargetTest
Bug: 116445845
Fixes: 124246635
(cherry picked from commit 5d2ec0f5f0)
Merged-In: I4287a947faa260f69ba50c746bd40a0981548e50
Change-Id: I4287a947faa260f69ba50c746bd40a0981548e50
2019-02-12 13:49:56 -08:00
Slava Shklyaev
e94dc72150 Update NNAPI Extensions documentation
This is a follow-up to change Ia9b99015eec7a48bbf969cbe503862271f09adca

Bug: 118605927
Test: mma
Change-Id: I7ddafca04bce6fd37a9c0877270cee325111d833
Merged-In: I7ddafca04bce6fd37a9c0877270cee325111d833
(cherry picked from commit 1ffe69a8e9)
2019-02-12 10:09:51 +00:00