Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/common/Executor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,7 @@ void Executor::runWarmupKernels()
//
// Run warmup kernels
//
bool prev_state = KernelBase::setWarmupRun(true);
for ( auto kid = kernel_ids.begin(); kid != kernel_ids.end(); ++ kid ) {
KernelBase* kernel = getKernelObject(*kid, run_params);
#if defined(RAJA_PERFSUITE_USE_CALIPER)
Expand All @@ -846,6 +847,7 @@ void Executor::runWarmupKernels()
#endif
delete kernel;
}
KernelBase::setWarmupRun(prev_state);

}

Expand Down Expand Up @@ -933,10 +935,12 @@ void Executor::writeCSVReport(ostream& file, CSVRepMode mode,
//
// Set basic table formatting parameters.
//
const string kernel_col_name("Kernel ");
const string kernel_name_col_header_variant("Variant ");
const string kernel_name_col_header_tuning("Tuning ");
const string sepchr(" , ");

size_t kercol_width = kernel_col_name.size();
size_t kercol_width = max(kernel_name_col_header_variant.size(),
kernel_name_col_header_tuning.size());
for (size_t ik = 0; ik < kernels.size(); ++ik) {
kercol_width = max(kercol_width, kernels[ik]->getName().size());
}
Expand Down Expand Up @@ -969,7 +973,7 @@ void Executor::writeCSVReport(ostream& file, CSVRepMode mode,
//
// Print column variant name line.
//
file <<left<< setw(kercol_width) << kernel_col_name;
file <<left<< setw(kercol_width) << kernel_name_col_header_variant;
for (size_t iv = 0; iv < variant_ids.size(); ++iv) {
for (size_t it = 0; it < tuning_names[variant_ids[iv]].size(); ++it) {
file << sepchr <<left<< setw(vartuncol_width[iv][it])
Expand All @@ -981,7 +985,7 @@ void Executor::writeCSVReport(ostream& file, CSVRepMode mode,
//
// Print column tuning name line.
//
file <<left<< setw(kercol_width) << kernel_col_name;
file <<left<< setw(kercol_width) << kernel_name_col_header_tuning;
for (size_t iv = 0; iv < variant_ids.size(); ++iv) {
for (size_t it = 0; it < tuning_names[variant_ids[iv]].size(); ++it) {
file << sepchr <<left<< setw(vartuncol_width[iv][it])
Expand Down
14 changes: 13 additions & 1 deletion src/common/KernelBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@

namespace rajaperf {

//
// Static method to set whether kernels are used for warmup purposes or not
//
bool KernelBase::setWarmupRun(bool warmup_run)
{
bool previous_state = s_warmup_run;
s_warmup_run = warmup_run;
return previous_state;
}

KernelBase::KernelBase(KernelID kid, const RunParams& params)
: run_params(params)
#if defined(RAJA_ENABLE_TARGET_OPENMP)
Expand Down Expand Up @@ -129,7 +139,9 @@ Index_type KernelBase::getTargetProblemSize() const
Index_type KernelBase::getRunReps() const
{
Index_type run_reps = static_cast<Index_type>(0);
if (run_params.getInputState() == RunParams::CheckRun) {
if (s_warmup_run) {
run_reps = static_cast<Index_type>(1);
} else if (run_params.getInputState() == RunParams::CheckRun) {
run_reps = static_cast<Index_type>(run_params.getCheckRunReps());
} else {
run_reps = static_cast<Index_type>(default_reps*run_params.getRepFactor());
Expand Down
17 changes: 16 additions & 1 deletion src/common/KernelBase.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,15 @@ class KernelBase
{ return std::numeric_limits<size_t>::max(); }
static std::string getDefaultTuningName() { return "default"; }

//
// Method to set state of all Kernel objects to indicate kernel runs
// are for warmup purposes if true is passed, else false.
//
// The warmup state before the method call is returned to facilitate
// reset mechanics.
//
static bool setWarmupRun(bool warmup_run);

KernelBase(KernelID kid, const RunParams& params);

virtual ~KernelBase();
Expand Down Expand Up @@ -629,7 +638,13 @@ class KernelBase
variant_tuning_method_pointer method);

//
// Static properties of kernel, independent of run
// Boolean member shared by all kernel objects indicating whether they
// will be run for warmup purposes (true) or not (false).
//
static inline bool s_warmup_run = false;

//
// Persistent properties of kernel, independent of run
//
KernelID kernel_id;
std::string name;
Expand Down