Support partitions of V1_x::Model executing on V1_y::IDevice (x > y).
The old behavior is that none of a model can be executed on a device whose HAL interface is too old for the model -- e.g., if the model contains at least one V1_2 operation, then we cannot execute any of the model on a V1_1 or V1_0 device, even V1_1 or V1_0 operations from that model. This CL removes that limitation: Any of a model's operations that can be represented in a device's HAL interface are eligible for execution on that device (subject to the usual constraints about the device acknowledging that it supports an operation, and the partitioning algorithm deciding which device is the best choice for a given operation). Also: - Fix bug in TestPartitioning.cpp model comparison. In the various lists of different kinds of model input and output operand indexes, we need to do topological rather than numerical comparisons, just as we do when topological rather than numerical comparisons of the model graphs. - Add some V1_1 and V1_2 operations to random partition testing. Bug: 79165035 Test: NeuralNetworksTest_static Test: NeuralNetworksTest_static --gtest_filter=Seed/RandomPartitioningTest.Test/* running over ~50K seeds Change-Id: I69f5e4b77ee0e8d4a8d503b166b44d6ed1a3be6c
Loading
Please sign in to comment