diff options
author | Finn Williams <finwil01@e127804.cambridge.arm.com> | 2021-10-02 15:06:39 +0100 |
---|---|---|
committer | Finn Williams <finwil01@e127804.cambridge.arm.com> | 2021-10-08 15:42:14 +0100 |
commit | 8636bc705cc33fd869f64ebf24b14836d5a40b29 (patch) | |
tree | e546319af87596d053c75d65eedd1efb1f946228 /include/armnn/IRuntime.hpp | |
parent | 521032fd424cf86681eb125afbf5eaee47d8c585 (diff) | |
download | armnn-8636bc705cc33fd869f64ebf24b14836d5a40b29.tar.gz |
IVGCVSW-6313 Support pre-importing outputs
* Add ClearImportedInputs/Outputs function to IRuntime
* Add UnImport function to ITensorHandle
* Remove mutex from IWorkingMemHandle
Change-Id: I34c9b6e1618755e10f3b4597afa1d9a9ea97e5fe
Signed-off-by: Finn Williams <finwil01@e127804.cambridge.arm.com>
Diffstat (limited to 'include/armnn/IRuntime.hpp')
-rw-r--r-- | include/armnn/IRuntime.hpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/include/armnn/IRuntime.hpp b/include/armnn/IRuntime.hpp index ca9a0ceec2..47bfef588a 100644 --- a/include/armnn/IRuntime.hpp +++ b/include/armnn/IRuntime.hpp @@ -242,6 +242,21 @@ public: /// Only compatible with AsyncEnabled networks std::vector<ImportedInputId> ImportInputs(NetworkId networkId, const InputTensors& inputTensors); + /// ImportOutputs separates the importing and mapping of OutputTensors from network execution. + /// Allowing for a set of OutputTensors to be imported and mapped once, but used in execution many times. + /// This function is not thread safe and must not be used while other threads are calling Execute(). + /// Only compatible with AsyncEnabled networks + std::vector<ImportedInputId> ImportOutputs(NetworkId networkId, const OutputTensors& outputTensors); + + /// Un-import and delete the imported InputTensor/s + /// This function is not thread safe and must not be used while other threads are calling Execute(). + /// Only compatible with AsyncEnabled networks + void ClearImportedInputs(NetworkId networkId, const std::vector<ImportedInputId> inputIds); + + /// Un-import and delete the imported OutputTensor/s + /// This function is not thread safe and must not be used while other threads are calling Execute(). + /// Only compatible with AsyncEnabled networks + void ClearImportedOutputs(NetworkId networkId, const std::vector<ImportedOutputId> outputIds); /// Evaluates a network using input in inputTensors and outputs filled into outputTensors Status EnqueueWorkload(NetworkId networkId, @@ -255,7 +270,8 @@ public: Status Execute(IWorkingMemHandle& workingMemHandle, const InputTensors& inputTensors, const OutputTensors& outputTensors, - std::vector<ImportedInputId> preImportedInputs = {}); + std::vector<ImportedInputId> preImportedInputs = {}, + std::vector<ImportedOutputId> preImportedOutputs = {}); /// Unloads a network from the IRuntime. /// At the moment this only removes the network from the m_Impl->m_Network. |