diff --git a/python/dune/perftool/loopy/transformations/collect_rotate.py b/python/dune/perftool/loopy/transformations/collect_rotate.py index d3d35c5facb992a4ebbde963eb94b0db84cac4d3..c4e901e4b02901e597182a486b4a7551d0938288 100644 --- a/python/dune/perftool/loopy/transformations/collect_rotate.py +++ b/python/dune/perftool/loopy/transformations/collect_rotate.py @@ -6,6 +6,7 @@ from dune.perftool.loopy.transformations.vectorview import (add_temporary_with_v add_vector_view, get_vector_view_name, ) +from dune.perftool.sumfact.quadrature import quadrature_inames from dune.perftool.tools import get_pymbolic_basename from loopy.kernel.creation import parse_domains @@ -20,23 +21,14 @@ import loopy as lp import numpy as np -def collect_vector_data_rotate(knl, insns, inames): +def collect_vector_data_rotate(knl): # # Process/Assert/Standardize the input # - - # inames input -> tuple - if isinstance(inames, str): - inames = inames.split(",") - inames = tuple(i.strip() for i in inames) - - # insns -> list of Instruction instances - if isinstance(insns, lp.match.MatchExpressionBase): - insns = lp.find_instructions(knl, insns) - else: - if isinstance(insns, str): - insns = [i.strip() for i in insns.split(",")] - insns = [knl.id_to_insn[i] for i in insns] + insns = [i for i in lp.find_instructions(knl, lp.match.Tagged("quadvec"))] + if not insns: + return knl + inames = quadrature_inames() # Analyse the inames of the given instructions and identify inames # that they all have in common. Those inames will also be iname dependencies diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index 014b84f57548d044308cb1041a6e5bdcb8f49ce5..abddb94c11ffae3affa41c694d9b4d27c0818a4f 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -543,16 +543,10 @@ def extract_kernel_from_cache(tag): # Maybe apply vectorization strategies if get_option("vectorize_quad"): if get_option("sumfact"): - # Vectorization of the quadrature loop - insns = [i.id for i in lp.find_instructions(kernel, lp.match.Tagged("quadvec"))] - if insns: - from dune.perftool.sumfact.quadrature import quadrature_inames - inames = quadrature_inames() - - from dune.perftool.loopy.transformations.collect_rotate import collect_vector_data_rotate - kernel = collect_vector_data_rotate(kernel, insns, inames) + from dune.perftool.loopy.transformations.collect_rotate import collect_vector_data_rotate + kernel = collect_vector_data_rotate(kernel) else: - raise NotImplementedError("Only vectorizing sumfactoized code right now!") + raise NotImplementedError("Only vectorizing sumfactorized code right now!") # Now add the preambles to the kernel preambles = [(i, p) for i, p in enumerate(retrieve_cache_items("{} and preamble".format(tag)))]