From 9ec43749967f8a5803ecc5dd9cd9b5df801e93ae Mon Sep 17 00:00:00 2001
From: Julian Hammer <julian.hammer@fau.de>
Date: Thu, 4 Apr 2019 19:34:20 +0200
Subject: [PATCH] added warmup iterations to benchmarkable code

---
 .../kerncraft_coupling/generate_benchmark.py  | 32 +++++++++++--------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/pystencils/kerncraft_coupling/generate_benchmark.py b/pystencils/kerncraft_coupling/generate_benchmark.py
index ebaaa9f6f..9da5c4bd2 100644
--- a/pystencils/kerncraft_coupling/generate_benchmark.py
+++ b/pystencils/kerncraft_coupling/generate_benchmark.py
@@ -55,8 +55,6 @@ int main(int argc, char **argv)
 
   {%- endfor %}
 
-  int repeat = atoi(argv[1]);
-
   {%- if likwid %}
   {%- if openmp %}
   #pragma omp parallel
@@ -67,17 +65,25 @@ int main(int argc, char **argv)
   likwid_markerStartRegion("loop");
   {%- endif %}
 
-  for (; repeat > 0; --repeat)
-  {
-    {{kernelName}}({{call_argument_list}});
-
-    // Dummy calls
-    {%- for field_name, dataType, size in fields %}
-    if(var_false) dummy({{field_name}});
-    {%- endfor %}
-    {%- for constantName, dataType in constants %}
-    if(var_false) dummy(&{{constantName}});
-    {%- endfor %}
+  for(int warmup = 1; warmup >= 0; --warmup) {
+    int repeat = 2;
+    if(warmup == 0) {
+      repeat = atoi(argv[1]);
+      likwid_markerStartRegion("loop");
+    }
+
+    for (; repeat > 0; --repeat)
+    {
+      {{kernelName}}({{call_argument_list}});
+
+      // Dummy calls
+      {%- for field_name, dataType, size in fields %}
+      if(var_false) dummy({{field_name}});
+      {%- endfor %}
+      {%- for constantName, dataType in constants %}
+      if(var_false) dummy(&{{constantName}});
+      {%- endfor %}
+    }
   }
 
   {%- if likwid %}
-- 
GitLab