diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py index 3bf4668c143275b8f53318e345dbffe96a1908b6..50ac3c02189f254ac9659c7a47b1ce872bd4124e 100644 --- a/python/dune/perftool/sumfact/sumfact.py +++ b/python/dune/perftool/sumfact/sumfact.py @@ -62,7 +62,6 @@ from pymbolic.primitives import (Call, Variable, ) from dune.perftool.sumfact.quadrature import quadrature_inames -from dune.perftool.sumfact.vectorization import find_sumfact from loopy.symbolic import FunctionIdentifier, IdentityMapper from dune.perftool.sumfact.permutation import (_sf_permutation_strategy, _permute_backward, diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py index a2cd8ebbc944ce4e9db78d1695b2a28a458cd36f..7c3cfdd8deb991fe3b2636c0606e71e4d06ceede 100644 --- a/python/dune/perftool/sumfact/vectorization.py +++ b/python/dune/perftool/sumfact/vectorization.py @@ -21,7 +21,8 @@ def _cache_vectorization_info(old, new): return new -_collect_sumfact_nodes = generator_factory(item_tags=("sumfactnodes", "dryrundata"), no_deco=True) +_collect_sumfact_nodes = generator_factory(item_tags=("sumfactnodes", "dryrundata"), context_tags="kernel", no_deco=True) + def attach_vectorization_info(sf): assert isinstance(sf, SumfactKernel) @@ -102,13 +103,7 @@ def decide_vectorization_strategy(): as it is implemented through a post-processing (== loopy transformation) step. """ from dune.perftool.generation import retrieve_cache_items - insns = [i for i in retrieve_cache_items("kernel_default and instruction")] - - # Find all sum factorization kernels - sumfacts = frozenset() - for insn in insns: - if isinstance(insn, (lp.Assignment, lp.CallInstruction)): - sumfacts = sumfacts.union(find_sumfact(insn.expression)) + sumfacts = [i for i in retrieve_cache_items("kernel_default and sumfactnodes")] if not get_option("vectorize_grads"): no_vectorization(sumfacts) @@ -123,26 +118,3 @@ def decide_vectorization_strategy(): for restriction in it.product(res, res): decide_stage_vectorization_strategy(sumfacts, 3, restriction) - -class HasSumfactMapper(lp.symbolic.CombineMapper): - def combine(self, *args): - return frozenset().union(*tuple(*args)) - - def map_constant(self, expr): - return frozenset() - - def map_algebraic_leaf(self, expr): - return frozenset() - - def map_loopy_function_identifier(self, expr): - return frozenset() - - def map_sumfact_kernel(self, expr): - return frozenset({expr}) - - def map_tagged_variable(self, expr): - return frozenset() - - -def find_sumfact(expr): - return HasSumfactMapper()(expr)