f4ececdcf4879279e0559b5111e0e0b32f25e0de |
|
16-Oct-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Handle errors on getCapabilities If the driver can't handle the call, don't use it. Bug: 67310896 Test: System tests and VTS tests Change-Id: Ia44b324a0f6116395967812d05c22b99b131608d
/frameworks/ml/nn/runtime/Manager.h
|
e3178825b8686f3300a895572691a2e8c1f0676b |
|
05-Oct-2017 |
David Gross <dgross@google.com> |
Asynchronus partitioned execution, plus minor code cleanup. Partioned execution is now asynchronous end-to-end, although the individual execution steps are serialized with respect to one another. Other changes: - Minor code cleanup per comments from previous CL https://googleplex-android-review.git.corp.google.com/#/c/platform/frameworks/ml/+/3000624/ including comments on memory management for inter-partition temporaries. - Remove "simulation" form of partitioning, and renumber values of debug.nn.partition property accordingly. - Fix android:nn:wrapper::Event -- add missing contructor and fix comment. Bug: 63905942 Test: mma (user) mma (userdebug) ml/nn/runtime/tests (userdebug) (and spot check that debug.nn.partition unspecified, 0, and 1 exhibits the correct control over partitioning behavior) Change-Id: I5767d2144c4a42258444a6445866529919d4fe8d
/frameworks/ml/nn/runtime/Manager.h
|
a2a03635c8f215cb75be68ff1939bf4dec285ef8 |
|
03-Oct-2017 |
David Gross <dgross@google.com> |
Make partitioning and execution of partitioned plan the default. Also, rename the debug.nn.partition.test property to debug.nn.partition, and slightly change the interpretation of its values: 2: the default: partitioned execution, with a fallback to non-partitioned execution if there is a partitioning failure 3: a new value: partitioned execution, with NO fallback to non-partitioned execution if there is a partitioning failure Bug: 63905942 Test: mma (user) ml/nn/runtime/tests (user) (no new failures, logcat looks plausible, debug.nn.partition 0 and 3 have no effect) mma (userdebug) ml/nn/runtime/tests (userdebug) (with debug.nn.partition unspecified, 0, 1, 2, and 3; no new failures, logcat looks plausible; also tried manually introducing failures several places in the partitioning process to ensure that simulation/fallback behavior works properly for different values of debug.nn.partition) Change-Id: I04c71d7009aa0d1c971833a2af5816ff5830ecc9
/frameworks/ml/nn/runtime/Manager.h
|
b93885e8526dbbd336ed1a24f8ef8ba0007524dd |
|
02-Oct-2017 |
David Gross <dgross@google.com> |
Handle HIDL transport error calling IDevice::getSupportedOperations(). If HIDL transport error when calling IDevice::getSupportedOperations(), behave as if no operations are supported. Per https://source.android.com/devices/architecture/hidl-cpp/functions#transport this is needed to prevent killing the client when a transport error occurs. This fixes the GeneratedTests.mobilenet_quantized failure Abort message: 'Status.cpp:149] Failed HIDL return status not checked: Status(EX_TRANSACTION_FAILED): 'FAILED_TRANSACTION: '' discussed here https://groups.google.com/a/google.com/d/topic/android-ml-dev/LlHRQZrBQyc/discussion which is because of trying to pass a too-large Model across HIDL. Bug: 63905942 Bug: 67310896 Test: mma (user) mma (userdebug) ml/nn/runtime/tests (userdebug) (with debug.nn.partition.test 0, 1, and 2; mobilenet_quantized is fixed; no new failures, logcat looks plausible) Change-Id: I77274e17a54845b2dbb0dbce2ea5a08166681d8d
/frameworks/ml/nn/runtime/Manager.h
|
1f4381539b7e89c42336ee7cd1addb9a4c317b34 |
|
28-Sep-2017 |
David Gross <dgross@google.com> |
Finish implementing single-partition graphs. This includes wiring up the partitioning algorithm to the NN API compilation and execution phases under debug.nn.partition.test=2: When we have a single- partition graph, we rely on the device selection and compilation performed by the partitioning algorithm, rather than doing it at execution time as we were before. Bug: 63905942 Test: mma (user) mma (userdebug) ml/nn/runtime/tests (userdebug) (with debug.nn.partition.test 0, 1, and 2; no new failures, logcat looks plausible, compilation happens at the expected times) Change-Id: I6cd8b53625588d5aca81c87cc8600735e384b8e0
/frameworks/ml/nn/runtime/Manager.h
|
ef22aa5727b96e9a0863ef71cfbe3dbdac339408 |
|
16-Sep-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Create mutiple sample test drivers Create multiple sample test drivers to better test partitioning. Bug: 63905942 Test: Compiled, ran runtimte/tests and VTS tests. Change-Id: I037aeb82a849592f3a931bcdc558f32010aa1146
/frameworks/ml/nn/runtime/Manager.h
|
dae4833386d34864ae16e4bfa2169844a55c8ea5 |
|
22-Sep-2017 |
David Gross <dgross@google.com> |
Move some debugging capabilities under #ifdef NN_DEBUGGABLE. This makes them available under eng and userdebug but not user. Bug: 63905942 Test: mm (userdebug and user) Change-Id: I196c5df77290ed44a040e935adbf567f818e979d
/frameworks/ml/nn/runtime/Manager.h
|
7d6ac906f000f3afe418e92c0a4ae36b2ea1143e |
|
23-Sep-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove operationTuple. Removed operationTuple from Model in the HAL, as the data type was redundant information. Removed supportedOperationTuples from Capabilities, as real drivers need more complex restrictions than this provided. For the OC-MR1, we'll just rely on getSupportedNodes. Also removed the unused cachesCompilation. Bug: 63905942 Test: Compiled and ran tests, incl. vts. Change-Id: I84433d1e0e5211ac2f77317f3752171d85a5ab04
/frameworks/ml/nn/runtime/Manager.h
|
4a2553eb1574c04ee5614d52a1de54a9a73760f4 |
|
19-Sep-2017 |
David Gross <dgross@google.com> |
Testing fix: Modify SampleDriver behavior under property control. Use the property "debug.nn.sample.supported" to govern the way Device interacts with the sample driver, to pretend that it doesn't support all operation tuples, or to pretend that it needs to be invoked on a graph (and possibly doesn't support every node in the graph). Bug: 63905942 Test: mm Change-Id: I031b4043c279e23c769ac708bbb8ca12189d5dba
/frameworks/ml/nn/runtime/Manager.h
|
91e8417c4c395e3922d12abfd956b93b71121976 |
|
14-Sep-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Partition the requests to run on multiple devices. Partition the request so that subgraphs can run on the best device. Also respects the capabilities of a device so that we don't try to run a device incapable to run a graph. Bug: 63905942 Test: Compiled and ran unit tests. We'll want more advance tests. Change-Id: I8662fa719661e5b68c47cd75703edb5937fc8f0a
/frameworks/ml/nn/runtime/Manager.h
|
7612f29b31f97f3b15769264131566b36dea9a25 |
|
12-Sep-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Remove the initialization and shutdown APIs. Initialize the list of drivers as needed rather than requiring an API call. This initialization will be triggered when compiling the first model. Bug: 63905942 Test: Compiled and ran the unit tests. Change-Id: I1893a9f9d96d9d241916de3a7dd3cb7a54e33b06
/frameworks/ml/nn/runtime/Manager.h
|
707dbd2d55f5dacf78ffb3ad7c8b3f37c2e9d758 |
|
25-Jul-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
Pass the model as an HIDL component. Major rework where instead of serializing the model and passing it in a shared memory, we pass it via HIDL. The runtime/test code does two run, one goes through the default CPU path, the other through any available driver. Note: The code in hardware/../sample was written by Michael Buttler. Bug: 63905942 Test: Runs both the CPU path and through the sample driver. Change-Id: Ie3ee975d33056ba299895b13193f4698a690dd04
/frameworks/ml/nn/runtime/Manager.h
|
96775128e3bcfdc5be51b62edc50309c83861fe8 |
|
12-Jul-2017 |
Jean-Luc Brouillet <jeanluc@google.com> |
First implementation of the Neural Networks API. This first version can run a simple query on the CPU either via the fallback path or through a simulated driver. This code has many deficiencies: single threaded, not all validation are done, not going through HIDL, and not enough unit tests. Expect more changes! Test: Compiled and ran the unit tests Change-Id: I9f6a485a2e7207aeb5f91a2904dcb4b7fd8a6f65
/frameworks/ml/nn/runtime/Manager.h
|