aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Profiling.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/Profiling.cpp')
-rw-r--r--src/armnn/Profiling.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/armnn/Profiling.cpp b/src/armnn/Profiling.cpp
index d62c18a9a8..171d22bd0f 100644
--- a/src/armnn/Profiling.cpp
+++ b/src/armnn/Profiling.cpp
@@ -281,6 +281,13 @@ void ProfilerImpl::PopulateDescendants(std::map<const Event*, std::vector<const
}
}
+void ConfigureDetailsObject(JsonChildObject& detailsObject,
+ std::string layerDetailsStr)
+{
+ detailsObject.SetType(JsonObjectType::ExecObjectDesc);
+ detailsObject.SetAndParseDetails(layerDetailsStr);
+
+}
void ExtractJsonObjects(unsigned int inferenceIndex,
const Event* parentEvent,
@@ -347,7 +354,6 @@ void ProfilerImpl::Print(std::ostream& outStream) const
PopulateDescendants(descendantsMap);
JsonChildObject inferenceObject{"inference_measurements"};
- JsonChildObject layerObject{"layer_measurements"};
std::vector<JsonChildObject> workloadObjects;
std::map<unsigned int, std::vector<JsonChildObject>> workloadToKernelObjects;
@@ -360,6 +366,15 @@ void ProfilerImpl::Print(std::ostream& outStream) const
printer.PrintHeader();
printer.PrintArmNNHeader();
+ if (m_ProfilingDetails.get()->DetailsExist())
+ {
+ JsonChildObject detailsObject{"layer_details"};
+ ConfigureDetailsObject(detailsObject, m_ProfilingDetails.get()->GetProfilingDetails());
+
+ size_t id=0;
+ printer.PrintJsonChildObject(detailsObject, id);
+ }
+
// print inference object, also prints child layer and kernel measurements
size_t id=0;
printer.PrintJsonChildObject(inferenceObject, id);
@@ -525,10 +540,10 @@ void IProfiler::Print(std::ostream& outStream) const
}
Event* IProfiler::BeginEvent(const BackendId& backendId,
- const std::string& label,
- std::vector<InstrumentPtr>&& instruments)
+ const std::string& label,
+ std::vector<InstrumentPtr>&& instruments)
{
- return pProfilerImpl->BeginEvent(this, backendId, label, std::move(instruments));
+ return pProfilerImpl->BeginEvent(this, backendId, label, std::move(instruments));
}
IProfiler::~IProfiler() = default;