Skip to content
Snippets Groups Projects
Commit 4fd65626 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Also add level to operation counting

Just for consistency in postprocessing
parent cdf2e321
No related branches found
No related tags found
No related merge requests found
......@@ -159,21 +159,21 @@ namespace oc {
}
template<typename Stream>
void reportOperations(Stream& os, std::string exec, std::string kernel, bool doReset = false)
void reportOperations(Stream& os, int level, std::string exec, std::string kernel, bool doReset = false)
{
auto total = addition_count + multiplication_count + division_count + exp_count + pow_count + sin_count + sqrt_count + comparison_count;
if (total == 0)
return;
os << exec << " " << kernel << " additions " << addition_count << std::endl
<< exec << " " << kernel << " multiplications " << multiplication_count << std::endl
<< exec << " " << kernel << " divisions " << division_count << std::endl
<< exec << " " << kernel << " exp " << exp_count << std::endl
<< exec << " " << kernel << " pow " << pow_count << std::endl
<< exec << " " << kernel << " sin " << sin_count << std::endl
<< exec << " " << kernel << " sqrt " << sqrt_count << std::endl
<< exec << " " << kernel << " comparisons " << comparison_count << std::endl
<< exec << " " << kernel << " blends " << blend_count << std::endl
<< exec << " " << kernel << " totalops " << total << std::endl;
os << level << " " << exec << " " << kernel << " additions " << addition_count << std::endl
<< level << " " << exec << " " << kernel << " multiplications " << multiplication_count << std::endl
<< level << " " << exec << " " << kernel << " divisions " << division_count << std::endl
<< level << " " << exec << " " << kernel << " exp " << exp_count << std::endl
<< level << " " << exec << " " << kernel << " pow " << pow_count << std::endl
<< level << " " << exec << " " << kernel << " sin " << sin_count << std::endl
<< level << " " << exec << " " << kernel << " sqrt " << sqrt_count << std::endl
<< level << " " << exec << " " << kernel << " comparisons " << comparison_count << std::endl
<< level << " " << exec << " " << kernel << " blends " << blend_count << std::endl
<< level << " " << exec << " " << kernel << " totalops " << total << std::endl;
if (doReset)
reset();
......@@ -241,9 +241,9 @@ namespace oc {
}
template<typename Stream>
static void reportOperations(Stream& os, std::string exec, std::string kernel, bool doReset = false)
static void reportOperations(Stream& os, int level, std::string exec, std::string kernel, bool doReset = false)
{
counters.reportOperations(os, exec, kernel, doReset);
counters.reportOperations(os, level, exec, kernel, doReset);
}
static Counters counters;
......
......@@ -82,14 +82,14 @@
#define DUMP_TIMER(level,name,os,reset)\
if (HP_TIMER_ELAPSED(name) > 1e-12) \
os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset);
HP_TIMER_OPCOUNTERS(name).reportOperations(os,#level,ident,#name,reset);
#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) \
if (HP_TIMER_ELAPSED(name) > 1e-12) \
os << #level << " " << ident << " " << #name << " time " << HP_TIMER_ELAPSED(name) << std::endl; \
time += HP_TIMER_ELAPSED(name); \
ops += HP_TIMER_OPCOUNTERS(name); \
HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset);
HP_TIMER_OPCOUNTERS(name).reportOperations(os,#level,ident,#name,reset);
#elif defined ENABLE_HP_TIMERS
......
......@@ -82,12 +82,12 @@
os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \
HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset);
#define DUMP_AND_ACCUMULATE_TIMER(level,name,os,reset,time,ops) \
#define DUMP_AND_ACCUMULATE_TIMER(level,#level,name,os,reset,time,ops) \
if (HP_TIMER_DURATION(name) > 1e-12) \
os << #level << " " << ident << " " << #name << " time " << Dune::PDELab::TSC::seconds(HP_TIMER_DURATION(name)) << std::endl; \
time += HP_TIMER_DURATION(name); \
ops += HP_TIMER_OPCOUNTERS(name); \
HP_TIMER_OPCOUNTERS(name).reportOperations(os,ident,#name,reset);
HP_TIMER_OPCOUNTERS(name).reportOperations(os,#level,ident,#name,reset);
#elif defined ENABLE_HP_TIMERS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment