diff options
author | Jan Eilers <jan.eilers@arm.com> | 2021-12-08 16:15:12 +0000 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2021-12-08 16:15:12 +0000 |
commit | 17d34da9efab1e515b29755811b7ad7597aacb79 (patch) | |
tree | 7c5db433ad7eab8c82f58a452a879e4940735986 /src/armnn/Runtime.cpp | |
parent | 6a71bb538dd67a38b321b5f2066784afd26e8c22 (diff) | |
download | armnn-17d34da9efab1e515b29755811b7ad7597aacb79.tar.gz |
Add addition timing logging output
* Adds ExecuteNetwork when building the delegate only
* Adds timings to delegate subgraph creation
* Adds executions times
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: Ieff2f67ea8dbb6c2a708f8810e84a20485b7a631
Diffstat (limited to 'src/armnn/Runtime.cpp')
-rw-r--r-- | src/armnn/Runtime.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp index 76f39e0feb..1ccfb4687a 100644 --- a/src/armnn/Runtime.cpp +++ b/src/armnn/Runtime.cpp @@ -502,7 +502,7 @@ RuntimeImpl::RuntimeImpl(const IRuntime::CreationOptions& options) RuntimeImpl::~RuntimeImpl() { - const auto start_time = armnn::GetTimeNow(); + const auto startTime = armnn::GetTimeNow(); std::vector<int> networkIDs; try { @@ -547,7 +547,7 @@ RuntimeImpl::~RuntimeImpl() BackendRegistryInstance().SetProfilingService(armnn::EmptyOptional()); ARMNN_LOG(info) << "Shutdown time: " << std::setprecision(2) - << std::fixed << armnn::GetTimeDuration(start_time).count() << " ms\n"; + << std::fixed << armnn::GetTimeDuration(startTime).count() << " ms\n"; } LoadedNetwork* RuntimeImpl::GetLoadedNetworkPtr(NetworkId networkId) const @@ -589,6 +589,8 @@ Status RuntimeImpl::EnqueueWorkload(NetworkId networkId, const InputTensors& inputTensors, const OutputTensors& outputTensors) { + const auto startTime = armnn::GetTimeNow(); + LoadedNetwork* loadedNetwork = GetLoadedNetworkPtr(networkId); if (!loadedNetwork) @@ -615,7 +617,12 @@ Status RuntimeImpl::EnqueueWorkload(NetworkId networkId, } lastId=networkId; - return loadedNetwork->EnqueueWorkload(inputTensors, outputTensors); + auto status = loadedNetwork->EnqueueWorkload(inputTensors, outputTensors); + + ARMNN_LOG(info) << "Execution time: " << std::setprecision(2) + << std::fixed << armnn::GetTimeDuration(startTime).count() << " ms\n"; + + return status; } Status RuntimeImpl::Execute(IWorkingMemHandle& iWorkingMemHandle, @@ -624,6 +631,8 @@ Status RuntimeImpl::Execute(IWorkingMemHandle& iWorkingMemHandle, std::vector<ImportedInputId> preImportedInputs, std::vector<ImportedOutputId> preImportedOutputs) { + const auto startTime = armnn::GetTimeNow(); + NetworkId networkId = iWorkingMemHandle.GetNetworkId(); LoadedNetwork* loadedNetwork = GetLoadedNetworkPtr(networkId); @@ -641,11 +650,16 @@ Status RuntimeImpl::Execute(IWorkingMemHandle& iWorkingMemHandle, ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "Execute"); - return loadedNetwork->Execute(inputTensors, - outputTensors, - iWorkingMemHandle, - preImportedInputs, - preImportedOutputs); + auto status = loadedNetwork->Execute(inputTensors, + outputTensors, + iWorkingMemHandle, + preImportedInputs, + preImportedOutputs); + + ARMNN_LOG(info) << "Execution time: " << std::setprecision(2) + << std::fixed << armnn::GetTimeDuration(startTime).count() << " ms\n"; + + return status; } /// Create a new unique WorkingMemHandle object. Create multiple handles if you wish to have |