Commit Graph

901 Commits

Author SHA1 Message Date
David Gross
2edfc467f1 Add NNAPI specification and infrastructure for FL7.
Adds operations MIRROR_PAD and REVERSE.
Extends RSQRT to support QUANT8_ASYMM and QUANT8_ASYMM_SIGNED.

DOES NOT include tests or CPU reference implementation.

Bug: 202280917

Test: NeuralNetworksTest_static
Test: VtsHalNeuralnetworksTargetTest

Merged-In: I0b2133346b996849faac00c46885e3633c78f024
Change-Id: I0b2133346b996849faac00c46885e3633c78f024
(cherry picked from commit 04ed8595b5)
2021-11-22 14:41:51 -08:00
Michael Butler
60a7b86cf0 Rename Version::ANDROID_* to kVersionFeatureLevel* -- hal
Prior to this change, version constants (e.g., Version::ANDROID_S) were
public static constants to make the version constants look as if they
were enum values. However, this method prevented versions from being
constexpr, because the Version type was incomplete by that point in
time. This change moves these version constants outside of the Version
struct, and makes them constexpr. They have the new names:
* Version::ANDROID_OC_MR1 -> kVersionFeatureLevel1
* Version::ANDROID_P -> kVersionFeatureLevel2
* Version::ANDROID_Q -> kVersionFeatureLevel3
* Version::ANDROID_R -> kVersionFeatureLevel4
* Version::ANDROID_S -> kVersionFeatureLevel5
* Version::FEATURE_LEVEL_6 -> kVersionFeatureLevel6
* Version::EXPERIMENTAL -> kVersionFeatureLevelExperimental

Bug: 206975939
Test: mma
Change-Id: Ibf5f2fdb1459a69c51865aa5fdcd0cb0c3a88ade
2021-11-18 23:56:54 +00:00
Michael Butler
34f0a8f418 Make NNAPI Version more structured -- hal
Prior to this topic, NNAPI Versions were linear and represented by an
enumeration. However, this did not properly account for the
non-linearity of runtime-specific features such as a control flow
operations with operands of dynamic sizes. This topic alters Version to
be a struct containing a feature level enumeration as well as a boolean
which indicates whether there are runtime-specific features.

Bug: 206975939
Test: mma
Test: NeuralNetworksTests_static
Change-Id: I78c54ef597bf269b137f2835332bdedac49883d4
2021-11-18 23:56:15 +00:00
Michael Butler
21e079c9e2 Merge "Configure Version value for each version of NN AIDL utils" 2021-11-16 19:30:51 +00:00
Michael Butler
20f76f3654 Configure Version value for each version of NN AIDL utils
Currently, there are two different versions of the NN AIDL utils:
* neuralnetworks_utils_hal_aidl_v1 (v1)
* neuralnetowrks_utils_hal_aidl (v2)

This change configures utils::kVersion to match the version of the
utility library that builds it.

Bug: N/A
Test: mma
Change-Id: I7d08bf50f76664702ec0828cc35a363eb29bdde3
2021-11-15 15:42:28 -08:00
Michael Butler
acd7955b21 Consolidate NNAPI OWNERS files
This change deletes all existing OWNERS files under
hardware/interfaces/neuralnetworks and creates a new OWNERS file with
the current NNAPI team members.

This change also updates the NNAPI project path in
hardware/interfaces/neuralnetworks/README.

Bug: 179510251
Test: N/A
Change-Id: Iaca69505c8449ae7d93be0db99205f5f56556e86
2021-11-15 20:22:41 +00:00
Ian Hua
2a7b0014a7 Merge "Freeze neuralnetworks AIDL version as v2 for FL6" 2021-11-10 10:51:18 +00:00
Michael Butler
2ffa7ad391 Remove unnecessary NNAPI header files
This change removes the following header files, which were created
temporarily while NNAPI utility code was being re-organized, and are no
longer needed:
* include/AidlBufferTracker.h
* include/AidlHalInterfaces.h
* include/AidlHalUtils.h
* include/AidlValidateHal.h

Bug: 191442336
Test: mma
Test: atest neuralnetworks_utils_hal_*
Change-Id: I895d0bf6b5fd0ec4ef2977da0ecfe2a106e44083
2021-11-05 12:26:01 -07:00
David Gross
7e2e6b33a4 Freeze neuralnetworks AIDL version as v2 for FL6
$ m android.hardware.neuralnetworks-update-api
$ m android.hardware.neuralnetworks-freeze-api

Bug: 203055646

Test: NeuralNetworksTest_static
Test: VtsHalNeuralnetworksTargetTest
Change-Id: I35dbd32695acdffc552790dc7396bc8c724e9242
2021-11-04 10:11:16 -07:00
Michael Butler
ee7a476090 Merge changes from topic "libneuralnetworks_common-cleanup"
* changes:
  Move Aidl utility code to aidl/utils -- hal 2/2
  Move Aidl utility code to aidl/utils -- hal 1/2
2021-11-03 18:14:06 +00:00
Michael Butler
c331067aac Move Aidl utility code to aidl/utils -- hal 2/2
This change is part of an effort to remove HAL types from
libneuralnetworks_common*. This change:
* Updates the header guard names for the new directory
* Removes the "Aidl" prefix from the files
* Adds temporary "Aidl" header files under include/ that redirect to
   their corresponding files in include/nnapi/hal/aidl/
* Changes references of libneuralnetworks_common_hidl to
   libneuralnetworks_common

Bug: 191442336
Test: mma
Change-Id: Icbcc04e0a49a9adf8d8826fd5735028ea26de0ca
2021-11-01 21:34:53 -07:00
Michael Butler
8fa5383407 Move Aidl utility code to aidl/utils -- hal 1/2
This change is part of an effort to remove HAL types from
libneuralnetworks_common*. This change moves the following files to
hardware/interfaces/neuralnetworks/aidl/utils:
* AidlBufferTracker.h
* AidlHalInterfaces.h
* AidlHalUtils.h
* AidlValidateHal.h

Bug: 191442336
Test: mma
Change-Id: I799d8ba761c004af963fc6bc044125d8828f2053
2021-11-01 21:34:49 -07:00
Michael Butler
137ee99a16 Re-organize NNAPI Burst utility classes
This change:
* Renames ExecutionBurstController to Burst in 1.2/utils
* Renames ExecutionBurstUtils to BurstUtils in 1.2/utils
* Renames ExecutionBurstServer to Burst in common/adapter

Bug: N/A
Test: mma
Change-Id: Ibd460229887c8c9cd23ebc6ee61da37c7c820288
2021-11-01 16:40:31 -07:00
Michael Butler
cfc16f94b2 Change NN adapter to use ExecutionBurstServer utility
Bug: 180492058
Bug: 177267324
Test: mma, presubmit
Change-Id: I589668efe187641a67934463bcdea8d19f095bb4
2021-11-01 14:48:48 -07:00
Michael Butler
abc86918ae Revert^2 "Provide explicitly versioned NNAPI AIDL utils libs -- HAL."
Reason for revert: rollforward fix of this topic

This change is a revert of I3d3ac4745, which itself is a revert of
I74f1798e8.

This CL modifies the AIDL utils libraries to be explicitly
versioned. Currently, we only have two versions: v1 and "current".
Specifically, the following changes are made:
- Remove AIDL dependencies from neuralnetworks_utils_hal_common
- Create explicitly versioned libs of neuralnetworks_utils_hal_aidl*

This is needed because it is not allowed for a build target to
link against multiple versions of the same AIDL lirary.

The canonical driver will report ANDROID_S for AIDL v1, and FL6 for v2.

Reverted Changes:
I2aefa0023:Revert "Use explicitly versioned NNAPI HAL util li...
Ia7df07ab9:Revert "Add neuralnetworks_utils_hal_aidl_v2 to al...
Iadd823460:Revert "Provide explicitly version NNAPI AIDL util...
I3d3ac4745:Revert "Provide explicitly versioned NNAPI AIDL ut...

Bug: 202405342
Test: NNT_static
Test: CtsNNAPITestCases
Test: VtsHalNeuralnetworksTargetTest
Change-Id: Ib3b732aa406f6d37e8f941082807c9232720c909
Merged-In: Ib3b732aa406f6d37e8f941082807c9232720c909
(cherry picked from commit 478a78ea77)
2021-10-29 14:28:45 -07:00
Ian Hua
ca46f9768c Add FL6 spec tests to AIDL VTS.
Also skip FL6 (AIDL_V2) tests for older AIDL drivers.

Bug: 203038813
Test: VtsHalNeuralnetworksTargetTest
Specifically, for old driver such as AIDL_V1 sample driver, it can pass
HIDL tests and skip AIDL_V2 tests. For new driver such as AIDL_V2
sample driver, it can pass all tests.

Change-Id: I689fef0945428f6548977628e3c43628dd1e5bf7
2021-10-27 11:55:25 +01:00
Michael Butler
5f14bad22c Merge changes Iae9f692f,Ib43f1cb6,I9d4f0c30,I7d06ea35
* changes:
  Move NN HandleError from utils/common to 1.0/utils
  Relocate NN ProtectCallback to 1.0/utils
  Move NN memory utils from utils/common to 1.0/utils
  Remove hal::utils::countNumberOfConsumers
2021-10-26 23:55:24 +00:00
Michael Butler
49d95e0457 Move NN HandleError from utils/common to 1.0/utils
This change is part of a larger chain of changes to remove HIDL and AIDL
libraries from neuralnetworks_utils_hal_common.

Bug: N/A
Test: mma
Change-Id: Iae9f692ffc72700294aae694c256e75c7e353fef
2021-10-26 21:18:33 +00:00
Michael Butler
e8645c3b8d Relocate NN ProtectCallback to 1.0/utils
This change is part of a larger chain of changes to remove HIDL and AIDL
libraries from neuralnetworks_utils_hal_common.

Bug: N/A
Test: mma
Change-Id: Ib43f1cb683a09ae5c9116a6dea4d269c9c2c78b4
2021-10-26 21:18:09 +00:00
Michael Butler
15965821e8 Move NN memory utils from utils/common to 1.0/utils
This change is part of a larger chain of changes to remove HIDL and AIDL
libraries from neuralnetworks_utils_hal_common.

Bug: N/A
Test: mma
Change-Id: I9d4f0c30932fad7ccb6231aa03e57f7227af4880
2021-10-26 21:17:53 +00:00
Michael Butler
301ef060e9 Remove hal::utils::countNumberOfConsumers
This CL removes hal::utils::countNumberOfConsumers and uses the existing
nn::countNumberOfConsumers.

This change is part of a larger chain of changes to remove HIDL and AIDL
libraries from neuralnetworks_utils_hal_common.

Bug: N/A
Test: mma
Change-Id: I7d06ea355eae7aa80b94b09a23d606bbb2322120
2021-10-26 21:17:10 +00:00
Michael Butler
c42a934ea8 Revert "Provide explicitly versioned NNAPI AIDL utils libs -- HAL."
Revert "Use explicitly versioned NNAPI HAL util libs in darwinn2."

Revert "Add neuralnetworks_utils_hal_aidl_v2 to allowed_deps.txt"

Revert "Provide explicitly version NNAPI AIDL utils lib -- runtime."

Revert submission 16007539-nnapi-experimental-aidl-feature

Reason for revert: The cherry-pick of this CL breaks the build
Reverted Changes:
Ieb2da3461:Add neuralnetworks_utils_hal_aidl_v2 to allowed_de...
I8ae01e3c6:Provide explicitly version NNAPI AIDL utils lib --...
I74f1798e8:Provide explicitly versioned NNAPI AIDL utils libs...
I2362464e8:Use explicitly versioned NNAPI HAL util libs in da...

Test: mma

Change-Id: I3d3ac4745fb707cbdceb2019f3c2fc7807183b71
Merged-In: I3d3ac4745fb707cbdceb2019f3c2fc7807183b71
(cherry picked from commit 932e82b0c3)
2021-10-25 21:13:15 -07:00
Xusong Wang
cb2c37f78f Provide explicitly versioned NNAPI AIDL utils libs -- HAL.
This CL modifies the AIDL utils libraries to be explicitly
versioned. Currently, we only have two versions: v1 and "current".
Specifically, the following changes are made:
- Remove AIDL dependencies from neuralnetworks_utils_hal_common
- Create explicitly versioned libs of neuralnetworks_utils_hal_aidl_*

This is needed because it is not allowed for a build target to
link against multiple versions of the same AIDL lirary.

The canonical driver will report ANDROID_S for AIDL v1, and FL6 for v2.

Bug: 202405342
Test: NNT_static
Test: CtsNNAPITestCases
Test: VtsHalNeuralnetworksTargetTest
Change-Id: I74f1798e80a059949e43e0567d23e884a7f7c92d
Merged-In: I74f1798e80a059949e43e0567d23e884a7f7c92d
(cherry picked from commit 9763a9537d)
2021-10-25 12:58:44 -07:00
David Gross
6e74ca65a7 Merge "Add PACK operation to NNAPI feature level 6." 2021-10-19 21:23:12 +00:00
David Gross
79d63db0c8 Add PACK operation to NNAPI feature level 6.
Bug: 200281183
Bug: 200280665

Test: m -j NeuralNetworksTest_static
Test: VtsHalNeuralnetworksTargetTest

Change-Id: Ic15d047b70c62437b4f0db6f2ca10127591ae07c
2021-10-19 11:04:57 -07:00
Michael Butler
68e98f40dc Merge "Allow implicit conversions for NN errors -- hal" 2021-10-18 22:45:51 +00:00
Ian Hua
068df81ab6 AIDL interface changes for NNAPI feature level 6.
- Add BATCH_MATMUL operation
- Support TENSOR_INT32 for RESHAPE operation.

Also update "current" version snapshot and use
android.hardware.neuralnetworks-V2-ndk since AIDL v1 has been frozen.

Bug: 193012662
Bug: 200281183
Test: mm
Change-Id: Iabe45c57e2306d61055f711eda03b80b9cbe906d
Merged-In: Iabe45c57e2306d61055f711eda03b80b9cbe906d
2021-10-18 11:38:55 +01:00
Michael Butler
ff9a5a527a Allow implicit conversions for NN errors -- hal
This change allows GeneralErrors to be created from a string and allows
ExecutionErrors to be created from a string or a GeneralError.
This makes error handling more terse, removing the need for helper
functions such as makeGeneralFailure or makeExecutionFailure.

Bug: N/A
Test: mma
Change-Id: I8c5e80a2eb4f399fad64aab763fe6fa08cf8d1db
2021-10-15 16:37:09 -07:00
Przemyslaw Szczepaniak
996054b24f Merge "Update OWNERS file" 2021-10-15 11:02:37 +00:00
Przemysław Szczepaniak
ddaa1ec97d Update OWNERS file
Bug: 201534535
Test: -
Change-Id: If4071e59baebd9d98b6c591e897206ad43439bd7
2021-10-14 15:54:11 +01:00
Michael Butler
1b09ea9224 Handle error returned by IBurstContext::freeMemory
Unhandled HIDL errors result in a crash. This CL handles any errors from
IBurstContext::freeMemory by logging the error and continuing with the
rest of the function.

Bug: N/A
Test: mma
Change-Id: Ic433a627137df4d275a1b0d2d800d592afc1a18c
2021-10-13 13:47:07 -07:00
Ian Hua
f51390d3ac Merge "Fix aidl_format errors for NNAPI AIDL." am: 80502796ab
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1827693

Change-Id: I23035ad4000dda7bbae1fa836f8cd5c3cabed56b
2021-09-21 10:41:36 +00:00
Ian Hua
80502796ab Merge "Fix aidl_format errors for NNAPI AIDL." 2021-09-21 10:27:22 +00:00
Ian Hua
60b2f9730e Fix aidl_format errors for NNAPI AIDL.
Test: mm
Change-Id: I21576c79396c03cb741b576eee157560579f13a8
2021-09-15 15:45:55 +01:00
Treehugger Robot
f6f3b6b0aa Merge "Add OWNERS for VTS module VtsHalNeuralnetworksV1_2TargetTest" am: d3f408de5a
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1783307

Change-Id: Ia5301516ebcef36648f1a100be852f4a77047a9f
2021-09-10 17:57:21 +00:00
Treehugger Robot
3f5b0db7d5 Merge "Backfill owner information for VTS module VtsHalNeuralnetworksV1_0TargetTest." am: 2551b76bb7
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1813762

Change-Id: I0454419dd71eb87ddbbcb1d44e5a47f524424012
2021-09-10 17:57:14 +00:00
Treehugger Robot
061d36e51d Merge "Backfill owner information for VTS module VtsHalNeuralnetworksV1_1TargetTest." am: e08c698459
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1813763

Change-Id: Ia41147949f60c5910db28af6739e1d159a4ab1d5
2021-09-10 17:57:08 +00:00
Treehugger Robot
95ddd8a1dd Merge "Add OWNERS for VTS module VtsHalNeuralnetworksV1_3TargetTest" am: 3bd069f994
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1783308

Change-Id: Ib15e907b5b66eced091d8d3ffc6e5d0645ea8192
2021-09-10 17:56:53 +00:00
Treehugger Robot
d3f408de5a Merge "Add OWNERS for VTS module VtsHalNeuralnetworksV1_2TargetTest" 2021-09-10 17:48:14 +00:00
Treehugger Robot
2551b76bb7 Merge "Backfill owner information for VTS module VtsHalNeuralnetworksV1_0TargetTest." 2021-09-10 17:47:44 +00:00
Treehugger Robot
e08c698459 Merge "Backfill owner information for VTS module VtsHalNeuralnetworksV1_1TargetTest." 2021-09-10 17:47:04 +00:00
Treehugger Robot
3bd069f994 Merge "Add OWNERS for VTS module VtsHalNeuralnetworksV1_3TargetTest" 2021-09-10 17:46:53 +00:00
Yiming Pan
2f40211da4 Add OWNERS for VTS module VtsHalNeuralnetworksV1_2TargetTest
Each VTS module is required to have OWNERS file. The ownership is based on
go/vts-owners. For more information about ownership policy, please visit
go/xts-owners-policy.

Test: Tree Hugger
Bug: 143903671
Change-Id: Id49d1630f193617521d089e0b0b2f5ce180467b6
2021-09-09 14:56:57 -07:00
Yiming Pan
2520ea1aa7 Add OWNERS for VTS module VtsHalNeuralnetworksV1_3TargetTest
Each VTS module is required to have OWNERS file. The ownership is based on
go/vts-owners. For more information about ownership policy, please visit
go/xts-owners-policy.

Test: Tree Hugger
Bug: 143903671
Change-Id: Ia91342cef75e7dabd417db557c64fdb46ae4e67e
2021-09-09 14:54:37 -07:00
Yiming Pan
31a675d43c Backfill owner information for VTS module VtsHalNeuralnetworksV1_0TargetTest.
Each VTS module is required to have OWNERS file. The ownership is based on
go/vts-owners. For more information about ownership policy, please visit
go/xts-owners-policy.

Test: Tree Hugger
Bug: 143903671
Change-Id: I9f163c163077c25ae88565df778aa26dd81b0947
2021-09-09 14:48:37 -07:00
Yiming Pan
55f41b2996 Backfill owner information for VTS module VtsHalNeuralnetworksV1_1TargetTest.
Each VTS module is required to have OWNERS file. The ownership is based on
go/vts-owners. For more information about ownership policy, please visit
go/xts-owners-policy.

Test: Tree Hugger
Bug: 143903671
Change-Id: If85b0ca5caecf4e0561c29b7c1e64464ad80c6ba
2021-09-09 14:43:35 -07:00
Ian Hua
df56bdcee9 Merge "Fix HAL and AIDL files to be consistent with API generation tool." am: 650dc957ee
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1818131

Change-Id: I4f275432c7beb4e97b50f9a4a8e5343bb57235da
2021-09-09 12:59:34 +00:00
Ian Hua
d910bd6aaa Fix HAL and AIDL files to be consistent with API generation tool.
Bug: 161426966
Test: generate_api.sh
Change-Id: I4f4cc108ccdf2f37a1a7fa154ba8e8a186295276
2021-09-08 17:41:10 +01:00
Steven Moreland
bbde18214d Merge changes from topic "b188871598-security" am: 067901ea81
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1814146

Change-Id: I1c7478f9581a8092b74e1505ad6dec15d22c9ae3
2021-08-31 17:09:37 +00:00
Steven Moreland
067901ea81 Merge changes from topic "b188871598-security"
* changes:
  neuralnetworks: use versions for imports
  .graphics.common: use versions for imports
  keymint: use versions for imports
2021-08-31 16:47:14 +00:00