From a75470f113ed8c00733deb65da68207f20cb2ff0 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Mon, 25 Sep 2017 14:53:05 +0200
Subject: [PATCH] Add a padding heuristic

---
 python/dune/perftool/sumfact/vectorization.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py
index 0b023aeb..303092f1 100644
--- a/python/dune/perftool/sumfact/vectorization.py
+++ b/python/dune/perftool/sumfact/vectorization.py
@@ -150,12 +150,13 @@ def greedy_vectorization_strategy(sumfacts, width):
     sumfacts = set(sumfacts)
     horizontal = width
     vertical = 1
+    allowed_padding = 1
 
     result = {}
 
     while horizontal > 0:
         if horizontal > 1:
-            horizontal_kernels = horizontal_vectorization_strategy(sumfacts, horizontal, allow_padding=0)
+            horizontal_kernels = horizontal_vectorization_strategy(sumfacts, horizontal, allow_padding=allowed_padding)
         else:
             horizontal_kernels = {sf: sf for sf in sumfacts}
 
@@ -170,6 +171,8 @@ def greedy_vectorization_strategy(sumfacts, width):
         horizontal = horizontal // 2
         vertical = vertical * 2
 
+        # We heuristically allow padding only on the full SIMD width
+        allowed_padding = 0
     return result
 
 
-- 
GitLab