From 2ebaac7a007cbfae7fff818e4d6c4c33562eea0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonny=20Sv=C3=A4rd?= Date: Tue, 10 May 2022 17:29:30 +0200 Subject: Refactor performance measurements Change 'Inference runtime' to measure CPU cycles for the Tensorflow Lite Micro interpreter.Invoke() call. Add 'Operator(s) runtime' print that prints a summary for cycles spent on all operators during an inference. (This is equivalent to the old reported 'Inference runtime') Move prints out of the EndEvent() function in ArmProfiler as it otherwise interferes with the inference cycle measurement. Change-Id: Ie11b5abb5b12a3bcf5a67841f04834d05dfd796d --- lib/arm_profiler/src/arm_profiler.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/arm_profiler/src/arm_profiler.cpp') diff --git a/lib/arm_profiler/src/arm_profiler.cpp b/lib/arm_profiler/src/arm_profiler.cpp index c90eec2..7648584 100644 --- a/lib/arm_profiler/src/arm_profiler.cpp +++ b/lib/arm_profiler/src/arm_profiler.cpp @@ -50,8 +50,6 @@ uint32_t ArmProfiler::BeginEvent(const char *tag) { void ArmProfiler::EndEvent(uint32_t event_handle) { TFLITE_DCHECK(event_handle < max_events_); end_ticks_[event_handle] = GetCurrentTimeTicks(); - tflite::GetMicroErrorReporter()->Report( - "%s : cycle_cnt : %u cycles", tags_[event_handle], end_ticks_[event_handle] - start_ticks_[event_handle]); } uint64_t ArmProfiler::GetTotalTicks() const { @@ -64,4 +62,12 @@ uint64_t ArmProfiler::GetTotalTicks() const { return ticks; } +void ArmProfiler::ReportResults() const { + tflite::GetMicroErrorReporter()->Report("Profiler report, CPU cycles per operator:"); + for (size_t i = 0; i < num_events_; ++i) { + tflite::GetMicroErrorReporter()->Report( + "%s : cycle_cnt : %u cycles", tags_[i], end_ticks_[i] - start_ticks_[i]); + } +} + } // namespace tflite -- cgit v1.2.1