diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py index 2b51a85342c861d691a7397888499669544e0413..aed3f4a30b9115fc0a4aef1169f85db8e492853a 100644 --- a/python/dune/perftool/sumfact/vectorization.py +++ b/python/dune/perftool/sumfact/vectorization.py @@ -268,10 +268,11 @@ def level1_optimal_vectorization_strategy(sumfacts, width): if get_form_option("vectorization_strategy") == "target": # Print the achieved cost and the target cost on the screen set_form_option("vectorization_strategy", "model") - qp = min(optimal_strategies, key=lambda qp: strategy_cost((qp, optimal_strategies[qp]))) + target = float(get_form_option("vectorization_target")) + qp = min(optimal_strategies, key=lambda qp: abs(strategy_cost((qp, optimal_strategies[qp])) - target)) cost = strategy_cost((qp, optimal_strategies[qp])) - print("The target cost was: {}".format(get_form_option("vectorization_target"))) + print("The target cost was: {}".format(target)) print("The achieved cost was: {}".format(cost)) optimum = level1_optimal_vectorization_strategy(sumfacts, width) print("The optimal cost would be: {}".format(strategy_cost(optimum)))