summaryrefslogtreecommitdiff
path: root/neuralnetworks/aidl/utils/src
AgeCommit message (Collapse)Author
2022-04-28Move NN_TRY macro out of struct initializationMichael Butler
NNAPI NN_TRY macros use Statement Expressions (a GNU extension) to propagate errors. However, a "return" statement in a Statement Expression can lead to memory leaks when the Statement Expression is being used to initialize a member of a struct. Specifically, when one member of a struct is already initialized, and a Statement Expression used to initialize a subsequent member early-returns, the previously initialized members will not have their destructors called. This CL moves any NN_TRY macro out of struct initialization to avoid any potential memory leaks. Bug: 230500484 Test: mma Test: presubmit Change-Id: I3493fd4764f8eacc86750e6414e62bc891abaccd
2022-02-26Cast to the underlying type for union tagsJooyung Han
Union tags are of enum type. Streaming it would make more sense by casting to underlying types. For now casting is not required since tags are defined as `enum Tag`. But we're going to change it to `enum class Tag` which won't work with operator<< without casting. Bug: 218912230 Test: m Change-Id: Ia5e8a5c38fe23c72dffbdca320a32abdfa0eb38e
2022-02-14Clamp NNAPI HAL Version to runtime version -- halMichael Butler
The NNAPI is a Mainline Module, and its runtime version is determined by an Android Feature Flag to remotely rollout and rollback Feature Levels as needed. This change propagates the maximum feature level version allowed by the runtime to the HAL utility code, and clamps the utility code's version to the version allowed by the runtime. Bug: N/A Test: mma Test: CtsNNAPITestCases Test: NeuralNetworksTest_static Test: logged driver version, set current_feature_level, and verified the driver version was clamped by current_feature_level Change-Id: Ibaa895f8e35d36b2ddf9432b3ef9468e5886075f
2022-02-07Address ANAPIC review comments -- hal.Xusong Wang
- Document that IPreparedModel::execute*WithConfig are for single-time usages, and IPreparedModel::createReusableExecution is for reusable usages. - Make PrepareModelConfig::cacheToken a fixed sized array. Fixes: 215566186 Test: VtsHalNeuralnetworksTargetTest Test: NNT_static Change-Id: I9c5a49c46a3eac2828b9eb666f3d742038493121
2022-01-31Move NNAPI HAL CommonUtils to nnapi/SharedMemory -- halMichael Butler
This CL relocates utility code that transfers data between pointer-based memory and shared memory for Request objects and Model objects, moving it from nnapi/hal/CommonUtils.h (hal utilities) to nnapi/SharedMemory.h (canonical library). This change also adds a check for whether Model and Requests have pointer-based data in neuralnetworks/aidl/utils/src/Conversions.cpp to make it consistent with the HIDL utility conversions. Bug: 217217023 Test: mma Test: presubmit Change-Id: I55a0fea186708d806bc709681e10027a9e4b0ffb
2022-01-20HAL interface for compilation and execution hintsMiao Wang
The following AIDL types are added: - TokenValuePair - PrepareModelConfig - ExecutionConfig The following AIDL methods are added: - IDevice::prepareModelWithConfig - IPreparedModel::executeSynchronouslyWithConfig - IPreparedModel::executeFencedWithConfig - IBurst::executeSynchronouslyWithConfig The compilation and execution hints are being stored as a list of token-value pairs as part of the PrepareModelConfig / ExecutionConfig. And the PrepareModelConfig / ExecutionConfig parcelables are created in order to make future extensions to the execution related interfaces easier. It is the drivers responsibility to verify the hints, and it is allowed for the driver to ignore them. Bug: 203248587 Test: neuralnetworks_utils_hal_aidl_test Change-Id: I98240fd75089fc85cdfcaa0be28aab8a6f0dfca5 Merged-In: I98240fd75089fc85cdfcaa0be28aab8a6f0dfca5 (cherry picked from commit 0e671f3edb9d2c78658a4ef4169e3211e3f9bb00)
2022-01-18Reusable execution at HAL level -- HAL.Xusong Wang
This CL modifies the canonical/AIDL adapter to use IExecution object if available. Bug: 202405342 Bug: 202431255 Test: NNT_static Test: CtsNNAPITestCases Test: VtsHalNeuralnetworksTargetTest Change-Id: I6aac3c57f97ac87a5ba3f78cfd843fcc403decff Merged-In: I6aac3c57f97ac87a5ba3f78cfd843fcc403decff (cherry picked from commit 7f5c7d293c2dad462dc9c0f1f1a160fb2c2c9a9b)
2022-01-11Create NN AIDL adapterMichael Butler
This change adds the following adapters: * nn::IDevice -> BnDevice * nn::IPreparedModel -> BnPreparedModel * nn::IBurst -> BnBurst * nn::IBuffer -> BnBuffer Bug: N/A Test: mma Test: locally created a binderized service with this adapter code, which passed VtsHalNeuralnetworksTargetTest Change-Id: I966f65a1e4d75284c050b77f3f40c515e4970130
2021-11-18Rename Version::ANDROID_* to kVersionFeatureLevel* -- halMichael Butler
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-15Configure Version value for each version of NN AIDL utilsMichael Butler
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-05Remove unnecessary NNAPI header filesMichael Butler
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-01Move Aidl utility code to aidl/utils -- hal 1/2Michael Butler
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-10-29Revert^2 "Provide explicitly versioned NNAPI AIDL utils libs -- HAL."Michael Butler
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 478a78ea77fccf332b04d5ad25309428d0f96eaf)
2021-10-26Move NN HandleError from utils/common to 1.0/utilsMichael Butler
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-26Relocate NN ProtectCallback to 1.0/utilsMichael Butler
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-15Allow implicit conversions for NN errors -- halMichael Butler
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-08-11Revert^2 "Making NN hardware interface libs "host supported""Ray Hernandez
This is a revert of I6f657743, which is a revert of I1d7c66516. Changing static libraries in hardware/interfaces/neuralnetworks to be "host supported", meaning that the libraries within this directory will be available on the host/linux build to make integration and debugging more efficient. Host Supported Libs: * neuralnetworks_utils_hal_1_0 * neuralnetworks_utils_hal_1_1 * neuralnetworks_utils_hal_1_2 * neuralnetworks_utils_hal_1_3 * neuralnetworks_utils_hal_aidl * neuralnetworks_utils_hal_common Host Supported Tests: * neuralnetworks_utils_hal_1_0_test * neuralnetworks_utils_hal_1_1_test * neuralnetworks_utils_hal_1_2_test * neuralnetworks_utils_hal_1_3_test * neuralnetworks_utils_hal_aidl_test * neuralnetworks_utils_hal_common_test Bug: 146324523 Test: neuralnetworks_utils_hal_*_test Change-Id: I6c3cc00cd1ceefe4ae4ca5e40a8f3062d3251ff1
2021-08-04Revert "Making NN hardware interface libs "host supported""Ray Hernandez
Revert "Making NNAPI libraries and tests host supported" Revert submission 1769046-neuralnetworks_host_build Reason for revert: New Build Breakage Reverted Changes: Ib54d5c274:Making NNAPI libraries and tests host supported I1d7c66516:Making NN hardware interface libs "host supported"... Change-Id: I6f65774325889c50b9f8bbab13b557705419b6cf
2021-07-27Making NN hardware interface libs "host supported"rayhdez
Changing static libraries in hardware/interfaces/neuralnetworks to be "host supported", meaning that the libraries within this directory will be available on the host/linux build to make integration and debugging more efficient. Host Supported Libs: * neuralnetworks_utils_hal_1_0 * neuralnetworks_utils_hal_1_1 * neuralnetworks_utils_hal_1_2 * neuralnetworks_utils_hal_1_3 * neuralnetworks_utils_hal_aidl * neuralnetworks_utils_hal_common Host Supported Tests: * neuralnetworks_utils_hal_1_0_test * neuralnetworks_utils_hal_1_1_test * neuralnetworks_utils_hal_1_2_test * neuralnetworks_utils_hal_1_3_test * neuralnetworks_utils_hal_aidl_test * neuralnetworks_utils_hal_common_test Bug: 146324523 Test: neuralnetworks_utils_hal_*_test Change-Id: I1d7c665169d2ce0c978b1e510e71f1371402a950
2021-06-28Fix ordering of cache files requirements from deviceLev Proleev
Data and model numbers were switched in the AIDL implementation of canonical Device. Bug: 190757709 Test: neuralnetworks_utils_hal_aidl_test Change-Id: I0d95b2d436994ffc877a4e02eb31f449b983e61e Merged-In: I0d95b2d436994ffc877a4e02eb31f449b983e61e (cherry picked from commit 3fd4ec47060c3e55de54bcb6678160fb5bdd01e4)
2021-06-08Simplify NNAPI SharedHandle -- halMichael Butler
Prior to this CL, the NNAPI represented SharedHandle as a collection of file descriptors and a vector of ints to act as metadata. This struct mirrored Android's native_handle_t. However, the NNAPI only uses SharedHandle to hold a single file descriptor to hold a single cache file. A sibling CL simplifies the SharedHandle by changing it to be a single ref-counted file descriptor. This CL makes changes to the HAL utility code in response to the SharedHandle change. Bug: N/A Test: mma Test: NeuralNetworksTest_static Change-Id: Ib390ad76bcdadffd85f8c2c502189aaa7da483e4
2021-06-07Fix a bug in reusable burst execution.Xusong Wang
The reusable burst execution incorrectly holds a reference to memory identifier tokens. Bug: 188568523 Test: NNT_static and inspect logcat Change-Id: Ic8fb8be12bf579a316e7df8480ab3ccdc5c0e635 Merged-In: Ic8fb8be12bf579a316e7df8480ab3ccdc5c0e635 (cherry picked from commit 2082b871ab819aa58c26e5c93f961be052a01951)
2021-05-11Use proper alignment and padding for pointer arguments -- HAL.Xusong Wang
This CL modifies the shared memory allocation for pointer arguments to use proper alignment and padding. We use default alignment (64) and min padding (1) for HIDL drivers, and default alignment (64) and default padding (64) for sAIDL drivers. Bug: 184164929 Test: NNT_static Change-Id: I22591640fa047d5f75d437edac1a7645d3b05526 Merged-In: I22591640fa047d5f75d437edac1a7645d3b05526 (cherry picked from commit 8bfa243972d34c97111f0e7af6e77a0ab04d4f60)
2021-05-10Introduce reusable burst to canonical interface -- HAL.Xusong Wang
This CL modifies the canonical interface for reusable burst executions: - Add new method IBurst::createExecution The reusable burst execution will not fallback to another execution path if sending request packet fails. The behavior of single-time burst execution remains unchanged. Additionally, this CL enables pointer -> shared memory conversion in 1.2/1.3 burst implementation. Bug: 184073769 Test: NNT_static Test: neuralnetworks_utils_hal_1_0_test Test: neuralnetworks_utils_hal_1_1_test Test: neuralnetworks_utils_hal_1_2_test Test: neuralnetworks_utils_hal_1_3_test Test: neuralnetworks_utils_hal_common_test Change-Id: Iaac81668d247c2cb76d70e6abbd10f00b397b19f Merged-In: Iaac81668d247c2cb76d70e6abbd10f00b397b19f (cherry picked from commit ead6d37ae9fe5d840f4d92675814abea9216fc71)
2021-05-10Introduce reusable execution to canonical interface -- HAL.Xusong Wang
This CL modifies the canonical interface for reusable executions: - Add new interface: IExecution with compute and computeFenced methods - Add new method IPreparedModel::createExecution In NNAPI runtime, the new interface IExecution is used to memoize request-specific execution resources (e.g. converted HAL request). The expected usage is that, IPreparedModel::createExecution will be invoked in the first computation of a reusable NDK ANNExecution object, and IExecution::compute* will be invoked repeatedly. The IPreparedModel::execute* methods are preserved to avoid redundant object creation and memoization overhead for a single-time (non-reusable) execution. For a vendor implementing the canonical interfaces, only the IPreparedModel::execute* methods will be called because there is currently no reusable execution at HAL interface. A DefaultExecution implementation is provided to reduce the work needed on the vendor side. Bug: 184073769 Test: NNT_static Test: neuralnetworks_utils_hal_1_0_test Test: neuralnetworks_utils_hal_1_1_test Test: neuralnetworks_utils_hal_1_2_test Test: neuralnetworks_utils_hal_1_3_test Test: neuralnetworks_utils_hal_common_test Test: neuralnetworks_utils_hal_aidl_test Change-Id: I91790bb5ccf5ae648687fe603f88ffda2c9fd2b2 Merged-In: I91790bb5ccf5ae648687fe603f88ffda2c9fd2b2 (cherry picked from commit 727a7b2104b0962509fedffe720eec508b2ee6de)
2021-04-21Remove NN canonical IDevice::isUpdatable -- halMichael Butler
This CL alters the AIDL utility "getDevices" to return whether or not a service is updatable. This CL additional removes IDevice::isUpdatable because it is now redundant with the changes to "getDevices". Bug: 170696350 Test: mma Test: NeuralNetworksTest_static Change-Id: I86228763937c0dd2ee5b1d9d547c367cd7504ed4
2021-04-21Merge "Add units to hal times and durations names"Treehugger Robot
2021-04-20Add units to hal times and durations namesLev Proleev
The change adds "Ns" suffix to timeOnDevice, timeInDriver, loopTimeoutDuration, deadline and duration. Fix: 183118329 Test: mm Change-Id: I4afe34f27fc8717ac28c8fa09edda9918641c39a Merged-In: Id1f9ee4b8e41873c97690bb19a5e84572dd9ccf1
2021-04-13Enable NN VTS and utility code to use lazy servicesMichael Butler
This CL enables VtsHalNeuralnetworksTargetTest to use lazy services by changing from AServiceManager_getService (which will return nullptr for the service if the service is not able to be loaded within a short amount of time) to AServiceManager_waitForService (which will wait for a longer time, allowing lazy services to start up). Similarly, the utility code is changed from using AServiceManager_getService to AServiceManager_waitForService where possible. This CL also introduces an "InvalidDevice" utility class to the nnapi/hal/aidl utility code. InvalidDevices are minimal devices that support no functionality but are still able to pass VTS tests. Bug: 170696939 Test: mma Test: VtsHalNeuralnetworksTargetTest Change-Id: I4f806b104ef6af863ec55c2c3f2a2dd1f72b9633
2021-04-07Update NN utility code and VTS tests with new Memory typeMichael Butler
This CL fixes the compiler errors that arose of changing the Memory representation of the NN AIDL HAL, and updates the conversion and utility code to work with the new Memory type. This change also makes libaidlcommonsupport available to apex modules at min sdk level 29. Bug: 183118727 Test: mma Test: VtsHalNeuralnetworksTargetTest Change-Id: Ief565473b4d82e0bb43785fc3b8275b16bd26cf6 Merged-In: Ief565473b4d82e0bb43785fc3b8275b16bd26cf6 (cherry picked from commit b0fcb3927d848e9721f05a458b5d6d4d2cb8079d)
2021-04-06Change NNAPI time from steady_clock to boot_clock -- halMichael Butler
Previously, the NNAPI used std::chrono::steady_clock to represent and measure timings. However, steady_clock does not count while the system is suspended. Instead, boot_clock is monotonic like steady_clock but does include the time when the system is suspended. This change also indicates that services may convert from std::chrono::steady_clock::time_point to android::base::boot_clock::time_point in the HIDL 1.3 NN HAL. Bug: 183118340 Test: mma Test: VtsHalNeuralnetworksV1_3TargetTest Test: VtsHalNeuralnetworksTargetTest Test: presubmit Change-Id: I5a7d039a31d9ce98602a301387ec99635f279f42 Merged-In: I5a7d039a31d9ce98602a301387ec99635f279f42 (cherry picked from commit b8cf54cf5a5dc1639364cc6d79cc986efa6dceab)
2021-04-02Create NN AIDL Burst adapterMichael Butler
Bug: 180492058 Bug: 177267324 Test: mma Test: NeuralNetworksTest_static Change-Id: I2947faeb3820faa963e4df1eaf7aefec57b66c79 Merged-In: I2947faeb3820faa963e4df1eaf7aefec57b66c79 (cherry picked from commit 504f44926c0e0ce0a5b5a591dbb848fdb732d8b2)
2021-04-02Add missing validation for NN canonical typesMichael Butler
Bug: 177669661 Test: mma Test: NeuralNetworksTest_static Change-Id: Ic05c177f61a906a69bf82ff9c4d5bb8b0556d5ca Merged-In: Ic05c177f61a906a69bf82ff9c4d5bb8b0556d5ca (cherry picked from commit 08ee3f9287811e9087a5263c3176ce1439f70c2c)
2021-04-02Rename BufferRole.frequency -> probability -- HAL.Xusong Wang
"Frenquency" often refers to the number of occurrences over a period of time, while "probability" refers to the number of occurrences of one event over the number of occurrences of all events. "Probability" is a better name for this field. Fixes: 183117895 Test: VtsHalNeuralnetworksTargetTest Test: NNT_static Change-Id: Ic86f73b8be2aed567ae4ca17bdb3a57c658fb349 Merged-In: Ic86f73b8be2aed567ae4ca17bdb3a57c658fb349 (cherry picked from commit 46bf892f46aac0f3269970267e6ab7ed0d7d61a3)
2021-03-19Merge "NNAPI: Add AIDL drivers registration"Slava Shklyaev
2021-03-17Merge "Passing padding information to the driver -- hal."Xusong Wang
2021-03-17NNAPI: Add AIDL drivers registrationLev Proleev
Bug: 179015258 Test: adb shell setprop debug.nn.partition 2 && \ Test: NeuralNetworksTest_static Change-Id: I2c8c9a49ff917b243348043df1158a8d98f131ce Merged-In: I2c8c9a49ff917b243348043df1158a8d98f131ce (cherry picked from commit 5f732ff683211e14bcb489839e46b99ee4c39106)
2021-03-17Passing padding information to the driver -- hal.Xusong Wang
This CL changes the sAIDL interface to enable passing padding information of the shared memory pool to the driver. The sAIDL interface defines the padding field explicitly in DataLocation to make it easy to convert to/from the canonical request. Bug: 179691454 Test: NNT_static Test: VtsHalNeuralnetworksTargetTest Change-Id: Ie13b421531ee4df48822086b027d94a622a3518c Merged-In: Ie13b421531ee4df48822086b027d94a622a3518c (cherry picked from commit 6365ea1dbba94da8a0f2fb63d00283109ee47f9b)
2021-03-16Add canonical types adapters for NNAPI AIDL interfaceLev Proleev
Also: * Add missing AIDL<->CT conversions * Add AIDL-specific info to neuralnetworks/utils/README.md * Add mock classes and tests AIDL adapters Bug: 179015258 Test: neuralnetworks_utils_hal_test Change-Id: Ifa98fadd46dca5dbf9b3ceb4da811aa8da45b6e4 Merged-In: Ifa98fadd46dca5dbf9b3ceb4da811aa8da45b6e4 (cherry picked from commit 3b93b0b56a4f5128eaa942d804dd490317c0abcb)
2021-02-17Store AHWB in NN canonical memory type -- halMichael Butler
Prior to this CL, the canonical memory type only held a SharedHandle, which mirrors the behavior of native_handle_t/hidl_handle. This means memory types including AHardwareBuffer were stored as this SharedHandle type. With this CL, the canonical memory type is stored directly as AHardwareBuffer to avoid using non-NDK AHardwareBuffer calls in the NN runtime. Bug: 179906132 Test: mma Test: NeuralNetworksTest_static Test: presubmit Change-Id: I394071c193d15ac0c90ac47e5a2a9a79c635db6c Merged-In: I394071c193d15ac0c90ac47e5a2a9a79c635db6c (cherry picked from commit bbe43d950e981cfb5c06622c8f80b57ab60b0497)
2021-02-17Change NNAPI Memory to ref-counted SharedMemory -- halMichael Butler
Bug: 179906132 Test: mma Test: NeuralNetworksTest_static Test: presubmit Change-Id: I6435db906a2efe4938da18149a1fcd6d24730a95 Merged-In: I6435db906a2efe4938da18149a1fcd6d24730a95 (cherry picked from commit 79a16ebb6f42c21a21202f7b63ce372f2df15137)
2021-02-09Implement VTS tests for NNAPI AIDL interfaceLev Proleev
The tests are copied from HIDL 1.0-3 VTS tests and updated to use AIDL. Bug: 172922059 Test: VtsHalNeuralnetworksTargetTest Change-Id: Ife08409e9b46420685a1ccb0b3256286c973dbf5 Merged-In: Ife08409e9b46420685a1ccb0b3256286c973dbf5 (cherry picked from commit b38bb4f12a1ceb33ebd0dd798650a74a8ef9d20e)
2021-02-09Add utils for AIDL types conversionsLev Proleev
Add conversions between canonical types and NNAPI AIDL interface types that are needed for AIDL sample driver implementation. Bug: 172922059 Test: VtsNeuralnetworksTargetTest Change-Id: I02803302e02457e52c752114b47b94239eff20e9 Merged-In: I02803302e02457e52c752114b47b94239eff20e9 (cherry picked from commit 532136b9d42e22a9c8280b8c62a3f5e91822e5b6)