From 9f64769352f18eaa6e06431d5ba03c028570ebdb Mon Sep 17 00:00:00 2001
From: Michael Zikeli <michael.zikeli@fau.de>
Date: Wed, 5 Feb 2025 14:38:31 +0100
Subject: [PATCH] Add functionality to expose timer information to the sqlite
 output as it was done for the  benchmark.

---
 .../UniformGridGPU/UniformGridGPU.cpp         | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/apps/benchmarks/UniformGridGPU/UniformGridGPU.cpp b/apps/benchmarks/UniformGridGPU/UniformGridGPU.cpp
index 65e7b903a..7f2001822 100644
--- a/apps/benchmarks/UniformGridGPU/UniformGridGPU.cpp
+++ b/apps/benchmarks/UniformGridGPU/UniformGridGPU.cpp
@@ -279,6 +279,29 @@ int main(int argc, char** argv)
                pythonCallbackResults.data().exposeValue("collisionSetup", infoCollisionSetup);
                pythonCallbackResults.data().exposeValue("cse_global", infoCseGlobal);
                pythonCallbackResults.data().exposeValue("cse_pdfs", infoCsePdfs);
+
+               auto stripWhiteSpaces = [](std::string str) {
+                  str.erase(remove_if(str.begin(), str.end(), isspace), str.end());
+                  return str;
+               };
+
+               for (auto i = reducedTimeloopTiming->begin(); i != reducedTimeloopTiming->end(); ++i)
+               {
+                  const std::string timerName = "Timer_" + i->first;
+                  std::string columnName = timerName + "_Total";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.total());
+                  columnName = timerName + "_Average";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.average());
+                  columnName = timerName + "_Count";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.getCounter());
+                  columnName = timerName + "_Min";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.min());
+                  columnName = timerName + "_Max";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.max());
+                  columnName = timerName + "_Variance";
+                  pythonCallbackResults.data().exposeValue(stripWhiteSpaces(columnName).c_str(), i->second.variance());
+               }
+
                // Call Python function to report results
                pythonCallbackResults();
             }
-- 
GitLab