diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py index d98ba5e7ec084a2121f40b6cae29548418061382..6e228abe8a09fe32a27d1ec5d6cecbc6eb248af1 100644 --- a/python/dune/perftool/sumfact/vectorization.py +++ b/python/dune/perftool/sumfact/vectorization.py @@ -89,7 +89,7 @@ def target_costfunction(sf): # The cost of a kernel is given by the difference to the desired target cost. # Pitfall: The target cost needs to be weighed to account for this being called # on subsets and not on a full vectorization strategy! - all_sf, _ = filter_active_inactive_sumfacts() + _, all_sf, _ = filter_active_inactive_sumfacts() total = len(all_sf) target = float(get_form_option("vectorization_target")) realcost = costmodel(sf) @@ -169,7 +169,7 @@ def filter_active_inactive_sumfacts(): # All sum factorization kernels that get used active_sumfacts = [i for i in all_sumfacts if i.stage == 3 or i in basis_sumfacts] - return active_sumfacts, inactive_sumfacts + return all_sumfacts, active_sumfacts, inactive_sumfacts def decide_vectorization_strategy(): @@ -179,7 +179,7 @@ def decide_vectorization_strategy(): """ logger = logging.getLogger(__name__) - active_sumfacts, inactive_sumfacts = filter_active_inactive_sumfacts() + all_sumfacts, active_sumfacts, inactive_sumfacts = filter_active_inactive_sumfacts() # If no vectorization is needed, abort now if get_form_option("vectorization_strategy") == "none" or (get_global_context_value("form_type") == "jacobian" and not get_form_option("vectorization_jacobians")): @@ -215,8 +215,7 @@ def decide_vectorization_strategy(): sfdict = add_to_frozendict(sfdict, {sf: 0 for sf in inactive_sumfacts}) # Register the results - from itertools import chain - for sf in chain(active_sumfacts, inactive_sumfacts): + for sf in all_sumfacts: _cache_vectorization_info(sf, sfdict[sf])