Loading current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -601,7 +601,7 @@ c228aaa27f66c48e147159a4f4996c5273191fece1b08de31bd171c61334855e android.hardwar adb0efdf1462e9b2e742c0dcadd598666aac551f178be06e755bfcdf5797abd0 android.hardware.keymaster@4.1::IOperation 7a04ea5595ed418ca3e91c28b8bd7353dd988be9be7b0c8c9e64fb4b77bd4523 android.hardware.keymaster@4.1::types 9e59fffceed0dd72a9799e04505db5f777bbbea1af0695ba4107ef6d967c6fda android.hardware.neuralnetworks@1.3::IDevice 4a6c3b3556da951b4def21ba579a227c022980fe4465df6cdfbe20628fa75f5a android.hardware.neuralnetworks@1.3::IPreparedModel 258825966435b3ed08832055bb736d81516013e405f161d9ccde9a90cfcdde83 android.hardware.neuralnetworks@1.3::IPreparedModel 94e803236398bed1febb11cc21051bc42ec003700139b099d6c479e02a7ca3c3 android.hardware.neuralnetworks@1.3::IPreparedModelCallback cf1d55e8c68300090747ab90b94c22e4c859b29c84ced68a317c595bb115eab2 android.hardware.neuralnetworks@1.3::types 3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi Loading neuralnetworks/1.3/IPreparedModel.hal +61 −3 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package android.hardware.neuralnetworks@1.3; import @1.0::ErrorStatus; import @1.0::Request; import @1.2::MeasureTiming; import @1.2::IExecutionCallback; import @1.2::IPreparedModel; import @1.2::MeasureTiming; import @1.2::OutputShape; import @1.2::Timing; /** * IPreparedModel describes a model that has been prepared for execution and Loading Loading @@ -62,8 +64,8 @@ interface IPreparedModel extends @1.2::IPreparedModel { * values, the execution should complete successfully (ErrorStatus::NONE): * There must be no failure unless the device itself is in a bad state. * * Any number of calls to the execute, execute_1_2, execute_1_3, and executeSynchronously * functions, in any combination, may be made concurrently, even on the same * Any number of calls to the execute* and executeSynchronously* functions, * in any combination, may be made concurrently, even on the same * IPreparedModel object. * * @param request The input and output information on which the prepared Loading @@ -87,4 +89,60 @@ interface IPreparedModel extends @1.2::IPreparedModel { */ execute_1_3(Request request, MeasureTiming measure, IExecutionCallback callback) generates (ErrorStatus status); /** * Performs a synchronous execution on a prepared model. * * The execution is performed synchronously with respect to the caller. * executeSynchronously_1_3 must verify the inputs to the function are * correct. If there is an error, executeSynchronously_1_3 must immediately * return with the appropriate ErrorStatus value. If the inputs to the * function are valid and there is no error, executeSynchronously_1_3 must * perform the execution, and must not return until the execution is * complete. * * The caller must not change the content of any data object referenced by * 'request' (described by the {@link @1.0::DataLocation} of a * {@link @1.0::RequestArgument}) until executeSynchronously_1_3 * returns. executeSynchronously_1_3 must not change the content of any of the * data objects corresponding to 'request' inputs. * * If the prepared model was prepared from a model wherein all tensor * operands have fully specified dimensions, and the inputs to the function * are valid, and at execution time every operation's input operands have * legal values, then the execution should complete successfully * (ErrorStatus::NONE): There must be no failure unless the device itself is * in a bad state. * * Any number of calls to the execute* and executeSynchronously* functions, * in any combination, may be made concurrently, even on the same * IPreparedModel object. * * @param request The input and output information on which the prepared * model is to be executed. * @param measure Specifies whether or not to measure duration of the execution. * The duration runs from the time the driver sees the call * to the executeSynchronously_1_3 function to the time the driver * returns from the function. * @return status Error status of the execution, must be: * - NONE if execution is performed successfully * - DEVICE_UNAVAILABLE if driver is offline or busy * - GENERAL_FAILURE if there is an unspecified error * - OUTPUT_INSUFFICIENT_SIZE if at least one output * operand buffer is not large enough to store the * corresponding output * - INVALID_ARGUMENT if one of the input arguments is * invalid * @return outputShapes A list of shape information of model output operands. * The index into "outputShapes" corresponds to the index * of the output operand in the Request outputs vector. * outputShapes must be empty unless the status is either * NONE or OUTPUT_INSUFFICIENT_SIZE. * @return Timing Duration of execution. Unless measure is YES and status is * NONE, all times must be reported as UINT64_MAX. A driver may * choose to report any time as UINT64_MAX, indicating that * measurement is not available. */ executeSynchronously_1_3(Request request, MeasureTiming measure) generates (ErrorStatus status, vec<OutputShape> outputShapes, Timing timing); }; neuralnetworks/1.3/vts/functional/GeneratedTestHarness.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ static Return<ErrorStatus> ExecutePreparedModel(const sp<IPreparedModel>& prepar hidl_vec<OutputShape>* outputShapes, Timing* timing) { ErrorStatus result; Return<void> ret = preparedModel->executeSynchronously( Return<void> ret = preparedModel->executeSynchronously_1_3( request, measure, [&result, outputShapes, timing](ErrorStatus error, const hidl_vec<OutputShape>& shapes, const Timing& time) { Loading neuralnetworks/1.3/vts/functional/ValidateRequest.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -79,9 +79,9 @@ static void validate(const sp<IPreparedModel>& preparedModel, const std::string& // synchronous { SCOPED_TRACE(message + " [executeSynchronously]"); SCOPED_TRACE(message + " [executeSynchronously_1_3]"); Return<void> executeStatus = preparedModel->executeSynchronously( Return<void> executeStatus = preparedModel->executeSynchronously_1_3( request, measure, [](ErrorStatus error, const hidl_vec<OutputShape>& outputShapes, const Timing& timing) { Loading Loading @@ -158,8 +158,8 @@ void validateRequest(const sp<IPreparedModel>& preparedModel, const Request& req } void validateRequestFailure(const sp<IPreparedModel>& preparedModel, const Request& request) { SCOPED_TRACE("Expecting request to fail [executeSynchronously]"); Return<void> executeStatus = preparedModel->executeSynchronously( SCOPED_TRACE("Expecting request to fail [executeSynchronously_1_3]"); Return<void> executeStatus = preparedModel->executeSynchronously_1_3( request, MeasureTiming::NO, [](ErrorStatus error, const hidl_vec<OutputShape>& outputShapes, const Timing& timing) { ASSERT_NE(ErrorStatus::NONE, error); Loading Loading
current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -601,7 +601,7 @@ c228aaa27f66c48e147159a4f4996c5273191fece1b08de31bd171c61334855e android.hardwar adb0efdf1462e9b2e742c0dcadd598666aac551f178be06e755bfcdf5797abd0 android.hardware.keymaster@4.1::IOperation 7a04ea5595ed418ca3e91c28b8bd7353dd988be9be7b0c8c9e64fb4b77bd4523 android.hardware.keymaster@4.1::types 9e59fffceed0dd72a9799e04505db5f777bbbea1af0695ba4107ef6d967c6fda android.hardware.neuralnetworks@1.3::IDevice 4a6c3b3556da951b4def21ba579a227c022980fe4465df6cdfbe20628fa75f5a android.hardware.neuralnetworks@1.3::IPreparedModel 258825966435b3ed08832055bb736d81516013e405f161d9ccde9a90cfcdde83 android.hardware.neuralnetworks@1.3::IPreparedModel 94e803236398bed1febb11cc21051bc42ec003700139b099d6c479e02a7ca3c3 android.hardware.neuralnetworks@1.3::IPreparedModelCallback cf1d55e8c68300090747ab90b94c22e4c859b29c84ced68a317c595bb115eab2 android.hardware.neuralnetworks@1.3::types 3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi Loading
neuralnetworks/1.3/IPreparedModel.hal +61 −3 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package android.hardware.neuralnetworks@1.3; import @1.0::ErrorStatus; import @1.0::Request; import @1.2::MeasureTiming; import @1.2::IExecutionCallback; import @1.2::IPreparedModel; import @1.2::MeasureTiming; import @1.2::OutputShape; import @1.2::Timing; /** * IPreparedModel describes a model that has been prepared for execution and Loading Loading @@ -62,8 +64,8 @@ interface IPreparedModel extends @1.2::IPreparedModel { * values, the execution should complete successfully (ErrorStatus::NONE): * There must be no failure unless the device itself is in a bad state. * * Any number of calls to the execute, execute_1_2, execute_1_3, and executeSynchronously * functions, in any combination, may be made concurrently, even on the same * Any number of calls to the execute* and executeSynchronously* functions, * in any combination, may be made concurrently, even on the same * IPreparedModel object. * * @param request The input and output information on which the prepared Loading @@ -87,4 +89,60 @@ interface IPreparedModel extends @1.2::IPreparedModel { */ execute_1_3(Request request, MeasureTiming measure, IExecutionCallback callback) generates (ErrorStatus status); /** * Performs a synchronous execution on a prepared model. * * The execution is performed synchronously with respect to the caller. * executeSynchronously_1_3 must verify the inputs to the function are * correct. If there is an error, executeSynchronously_1_3 must immediately * return with the appropriate ErrorStatus value. If the inputs to the * function are valid and there is no error, executeSynchronously_1_3 must * perform the execution, and must not return until the execution is * complete. * * The caller must not change the content of any data object referenced by * 'request' (described by the {@link @1.0::DataLocation} of a * {@link @1.0::RequestArgument}) until executeSynchronously_1_3 * returns. executeSynchronously_1_3 must not change the content of any of the * data objects corresponding to 'request' inputs. * * If the prepared model was prepared from a model wherein all tensor * operands have fully specified dimensions, and the inputs to the function * are valid, and at execution time every operation's input operands have * legal values, then the execution should complete successfully * (ErrorStatus::NONE): There must be no failure unless the device itself is * in a bad state. * * Any number of calls to the execute* and executeSynchronously* functions, * in any combination, may be made concurrently, even on the same * IPreparedModel object. * * @param request The input and output information on which the prepared * model is to be executed. * @param measure Specifies whether or not to measure duration of the execution. * The duration runs from the time the driver sees the call * to the executeSynchronously_1_3 function to the time the driver * returns from the function. * @return status Error status of the execution, must be: * - NONE if execution is performed successfully * - DEVICE_UNAVAILABLE if driver is offline or busy * - GENERAL_FAILURE if there is an unspecified error * - OUTPUT_INSUFFICIENT_SIZE if at least one output * operand buffer is not large enough to store the * corresponding output * - INVALID_ARGUMENT if one of the input arguments is * invalid * @return outputShapes A list of shape information of model output operands. * The index into "outputShapes" corresponds to the index * of the output operand in the Request outputs vector. * outputShapes must be empty unless the status is either * NONE or OUTPUT_INSUFFICIENT_SIZE. * @return Timing Duration of execution. Unless measure is YES and status is * NONE, all times must be reported as UINT64_MAX. A driver may * choose to report any time as UINT64_MAX, indicating that * measurement is not available. */ executeSynchronously_1_3(Request request, MeasureTiming measure) generates (ErrorStatus status, vec<OutputShape> outputShapes, Timing timing); };
neuralnetworks/1.3/vts/functional/GeneratedTestHarness.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ static Return<ErrorStatus> ExecutePreparedModel(const sp<IPreparedModel>& prepar hidl_vec<OutputShape>* outputShapes, Timing* timing) { ErrorStatus result; Return<void> ret = preparedModel->executeSynchronously( Return<void> ret = preparedModel->executeSynchronously_1_3( request, measure, [&result, outputShapes, timing](ErrorStatus error, const hidl_vec<OutputShape>& shapes, const Timing& time) { Loading
neuralnetworks/1.3/vts/functional/ValidateRequest.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -79,9 +79,9 @@ static void validate(const sp<IPreparedModel>& preparedModel, const std::string& // synchronous { SCOPED_TRACE(message + " [executeSynchronously]"); SCOPED_TRACE(message + " [executeSynchronously_1_3]"); Return<void> executeStatus = preparedModel->executeSynchronously( Return<void> executeStatus = preparedModel->executeSynchronously_1_3( request, measure, [](ErrorStatus error, const hidl_vec<OutputShape>& outputShapes, const Timing& timing) { Loading Loading @@ -158,8 +158,8 @@ void validateRequest(const sp<IPreparedModel>& preparedModel, const Request& req } void validateRequestFailure(const sp<IPreparedModel>& preparedModel, const Request& request) { SCOPED_TRACE("Expecting request to fail [executeSynchronously]"); Return<void> executeStatus = preparedModel->executeSynchronously( SCOPED_TRACE("Expecting request to fail [executeSynchronously_1_3]"); Return<void> executeStatus = preparedModel->executeSynchronously_1_3( request, MeasureTiming::NO, [](ErrorStatus error, const hidl_vec<OutputShape>& outputShapes, const Timing& timing) { ASSERT_NE(ErrorStatus::NONE, error); Loading