From 2a970cb851cf10115cc876190c03e0e049167ee3 Mon Sep 17 00:00:00 2001 From: David Gross Date: Wed, 6 Jun 2018 19:57:27 -0700 Subject: [PATCH] Documentation improvements. Fix Model::pools documentation. Specify that an output cannot overlap with an output/input/constant. Document circumstances under which a prepared model should be expected to execute correctly. Bug: 87805381 Bug: 79888238 Bug: 77237715 Test: mma at tree root Change-Id: Ibf3daacad79f1d7e6127acf3887bd98b7c6bdf4e Merged-In: Ibf3daacad79f1d7e6127acf3887bd98b7c6bdf4e --- current.txt | 3 ++- neuralnetworks/1.0/IPreparedModel.hal | 6 ++++++ neuralnetworks/1.0/types.hal | 6 ++++-- neuralnetworks/1.1/types.hal | 3 +-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/current.txt b/current.txt index 018ef20a06..cc86653ff6 100644 --- a/current.txt +++ b/current.txt @@ -249,7 +249,8 @@ c8bc853546dd55584611def2a9fa1d99f657e3366c976d2f60fe6b8aa6d2cb87 android.hardwar # Future changes to HALs 5804ca86611d72e5481f022b3a0c1b334217f2e4988dad25730c42af2d1f4d1c android.hardware.neuralnetworks@1.0::IDevice 12e8dca4ab7d8aadd0ef8f1b438021938e2396139e85db2ed65783b08800aa52 android.hardware.neuralnetworks@1.0::IExecutionCallback -86b77e06da756a76aa3685be88765852dd982a86d8c90b8b4fc1130ed4184c8f android.hardware.neuralnetworks@1.0::types +574e8f1499436fb4075894dcae0b36682427956ecb114f17f1fe22d116a83c6b android.hardware.neuralnetworks@1.0::IPreparedModel +b07802a3433a9abec67a41525dc04eab9efb62760414e1d37e2f72cc5ae9cb8a android.hardware.neuralnetworks@1.0::types # Documentation fixups for b/78135149 9e7a0b650d0e461ece2cfec0e1072abf8676f592b41a7fb48f01e88fc3c8f780 android.hardware.broadcastradio@1.0::types diff --git a/neuralnetworks/1.0/IPreparedModel.hal b/neuralnetworks/1.0/IPreparedModel.hal index ee406fb79b..ecaa7f830a 100644 --- a/neuralnetworks/1.0/IPreparedModel.hal +++ b/neuralnetworks/1.0/IPreparedModel.hal @@ -42,6 +42,12 @@ interface IPreparedModel { * execute function. This callback must be provided with the ErrorStatus of * the execution. * + * 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, then the execution should launch + * and complete successfully (ErrorStatus::NONE). There must be + * no failure unless the device itself is in a bad state. + * * Multiple threads can call the execute function on the same IPreparedModel * object concurrently with different requests. * diff --git a/neuralnetworks/1.0/types.hal b/neuralnetworks/1.0/types.hal index 1ae1726ca3..5a40e4e289 100644 --- a/neuralnetworks/1.0/types.hal +++ b/neuralnetworks/1.0/types.hal @@ -1668,8 +1668,7 @@ struct Model { vec operandValues; /** - * A collection of shared memory pools containing operand data that were - * registered by the model. + * A collection of shared memory pools containing operand values. * * An operand's value must be located here if and only if Operand::lifetime * equals OperandLifeTime::CONSTANT_REFERENCE. @@ -1721,6 +1720,9 @@ struct RequestArgument { * 1) Provides the input and output data to be used when executing the model. * 2) Specifies any updates to the input operand metadata that were left * unspecified at model preparation time. + * + * An output must not overlap with any other output, with an input, or + * with an operand of lifetime CONSTANT_REFERENCE. */ struct Request { /** diff --git a/neuralnetworks/1.1/types.hal b/neuralnetworks/1.1/types.hal index e4c656db44..b5718f352c 100644 --- a/neuralnetworks/1.1/types.hal +++ b/neuralnetworks/1.1/types.hal @@ -404,8 +404,7 @@ struct Model { vec operandValues; /** - * A collection of shared memory pools containing operand data that were - * registered by the model. + * A collection of shared memory pools containing operand values. * * An operand's value must be located here if and only if Operand::lifetime * equals OperandLifeTime::CONSTANT_REFERENCE.