diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index 98232579d7bd94c6e332db340a6e7ddb0e1230cf..bab76141aa1c8a47bf435d874beb6029cdc4b9f6 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -9,6 +9,7 @@ from dune.perftool.generation import (backend, constructor_parameter, domain, dump_accumulate_timer, + generator_factory, get_backend, get_global_context_value, global_context, @@ -569,12 +570,19 @@ def name_time_dumper_exec(): return "exec" +@generator_factory(item_tags=("cached",), cache_key_generator=lambda **kw: None) +def name_example_kernel(name=None): + return name + + class TimerMethod(ClassMember): def __init__(self): os = name_time_dumper_os() reset = name_time_dumper_reset() t = name_time_dumper_t() ex = name_time_dumper_exec() + knl = name_example_kernel() + assert(knl is not None) # TODO: operator counting only works if alpha_volume_kernel exists content = ["template <typename Stream>", @@ -582,7 +590,7 @@ class TimerMethod(ClassMember): "{", " double {} = 0.0;".format(t), "#ifdef ENABLE_COUNTER", - " auto counter = HP_TIMER_OPCOUNTERS(alpha_volume_kernel);", + " auto counter = HP_TIMER_OPCOUNTERS({});".format(knl), " counter.reset();", "#endif", ""] @@ -617,6 +625,7 @@ class LoopyKernelMethod(ClassMember): # Start timer if add_timings and get_option('timer'): timer_name = assembler_routine_name() + '_kernel' + name_example_kernel(name=timer_name) post_include('HP_DECLARE_TIMER({});'.format(timer_name), filetag='operatorfile') content.append(' ' + 'HP_TIMER_START({});'.format(timer_name)) dump_accumulate_timer(timer_name)