diff options
Diffstat (limited to 'src/backends/backendsCommon/test/WorkloadTestUtils.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/WorkloadTestUtils.hpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/backends/backendsCommon/test/WorkloadTestUtils.hpp b/src/backends/backendsCommon/test/WorkloadTestUtils.hpp index 05f6dde35f..d03c5a9210 100644 --- a/src/backends/backendsCommon/test/WorkloadTestUtils.hpp +++ b/src/backends/backendsCommon/test/WorkloadTestUtils.hpp @@ -6,12 +6,18 @@ #include <armnn/Tensor.hpp> +#include <backendsCommon/IBackendInternal.hpp> +#include <backendsCommon/IMemoryManager.hpp> +#include <backendsCommon/Workload.hpp> #include <backendsCommon/WorkloadInfo.hpp> namespace armnn { class ITensorHandle; -} +} // namespace armnn + +namespace +{ template <typename QueueDescriptor> void AddInputToWorkload(QueueDescriptor& descriptor, @@ -53,4 +59,28 @@ void SetWorkloadOutput(QueueDescriptor& descriptor, { descriptor.m_Outputs[index] = tensorHandle; info.m_OutputTensorInfos[index] = tensorInfo; -}
\ No newline at end of file +} + +inline void ExecuteWorkload(armnn::IWorkload& workload, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + bool memoryManagementRequested = true) +{ + const bool manageMemory = memoryManager && memoryManagementRequested; + + // Acquire working memory (if needed) + if (manageMemory) + { + memoryManager->Acquire(); + } + + // Execute the workload + workload.Execute(); + + // Release working memory (if needed) + if (manageMemory) + { + memoryManager->Release(); + } +} + +} // anonymous namespace |