Increase GetTotalTicks() to uint64_t
For larger networks the GetTotalTicks() might overflow if the function
returns int32_t. GetTotalTicks() is a non virtual function that can
be overridden with a different return type in the implementation class.
Change-Id: I8dd2e448fd13e0823fe1e5f9cc335998d2806416
diff --git a/applications/inference_process/src/inference_process.cpp b/applications/inference_process/src/inference_process.cpp
index c877d45..9438882 100644
--- a/applications/inference_process/src/inference_process.cpp
+++ b/applications/inference_process/src/inference_process.cpp
@@ -157,7 +157,7 @@
return true;
}
- LOG("Inference runtime: %" PRId32 " cycles\n", profiler.GetTotalTicks());
+ LOG("Inference runtime: %" PRIu64 " cycles\n", profiler.GetTotalTicks());
// Copy output data from TFLu arena to job descriptor
if (copyOfm(job, interpreter)) {
diff --git a/lib/arm_profiler/include/arm_profiler.hpp b/lib/arm_profiler/include/arm_profiler.hpp
index 36adb8d..0b97e2e 100644
--- a/lib/arm_profiler/include/arm_profiler.hpp
+++ b/lib/arm_profiler/include/arm_profiler.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -30,7 +30,7 @@
ArmProfiler(size_t max_events = 200);
uint32_t BeginEvent(const char *tag);
void EndEvent(uint32_t event_handle);
- int32_t GetTotalTicks() const;
+ uint64_t GetTotalTicks() const;
private:
size_t max_events_;
diff --git a/lib/arm_profiler/src/arm_profiler.cpp b/lib/arm_profiler/src/arm_profiler.cpp
index 95bc3e4..c90eec2 100644
--- a/lib/arm_profiler/src/arm_profiler.cpp
+++ b/lib/arm_profiler/src/arm_profiler.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -54,8 +54,8 @@
"%s : cycle_cnt : %u cycles", tags_[event_handle], end_ticks_[event_handle] - start_ticks_[event_handle]);
}
-int32_t ArmProfiler::GetTotalTicks() const {
- int32_t ticks = 0;
+uint64_t ArmProfiler::GetTotalTicks() const {
+ uint64_t ticks = 0;
for (size_t i = 0; i < num_events_; ++i) {
ticks += end_ticks_[i] - start_ticks_[i];