28 #ifndef EVALUATE_IMP_RESULTS_H_
29 #define EVALUATE_IMP_RESULTS_H_
32 #include <unordered_map>
36 #include <string_view>
42 #if defined(OPTIMIZED_CUDA_RUN)
70 std::pair<MultRunData, std::vector<RunSpeedupAvgMedian>>
74 size_t data_size)
const;
86 const std::unordered_map<size_t, MultRunDataWSpeedupByAcc>&
87 run_results_mult_runs,
98 virtual std::filesystem::path GetImpResultsPath()
const = 0;
108 virtual std::vector<std::string> GetCombResultsTopText()
const = 0;
118 virtual std::vector<std::string> GetInputParamsShow()
const = 0;
127 std::vector<RunSpeedupAvgMedian> SpeedupsAllRuns(
142 const std::pair<
MultRunData, std::vector<RunSpeedupAvgMedian>>& run_results_w_speedups,
155 void WriteRunResultsForAcc(
174 std::pair<std::vector<RunSpeedupAvgMedian>,
MultRunData> GetAltAccelSpeedups(
177 size_t data_type_size,
188 std::vector<RunSpeedupAvgMedian> GetSpeedupOverBaseline(
191 size_t data_type_size)
const;
202 std::vector<RunSpeedupAvgMedian> GetSpeedupOverBaselineSubsets(
205 size_t data_type_size)
const;
214 std::pair<std::string, std::map<InputSignature, std::string>>
215 GetBaselineRuntimeData(
216 const std::array<std::string_view, 2>& baseline_runtimes_path_desc,
217 std::string_view key_runtime_data)
const;
225 RunSpeedupAvgMedian::second_type GetAvgMedSpeedup(
226 const std::vector<double>& speedups_vect)
const;
239 std::vector<RunSpeedupAvgMedian> GetAvgMedSpeedupOverBaselineSubsets(
241 std::string_view data_type_str,
242 const std::array<std::string_view, 2>& baseline_runtimes_path_desc,
243 const std::vector<std::pair<std::string, std::vector<InputSignature>>>&
244 subset_desc_input_sig =
245 std::vector<std::pair<std::string, std::vector<InputSignature>>>())
257 std::vector<RunSpeedupAvgMedian> GetAvgMedSpeedupOverBaseline(
259 std::string_view data_type_str,
260 const std::array<std::string_view, 2>& baseline_runtimes_path_desc)
const;
273 std::vector<RunSpeedupAvgMedian> GetAvgMedSpeedupOptPParams(
275 std::string_view speedup_header,
276 const std::optional<std::vector<std::pair<std::string, std::vector<InputSignature>>>>& eval_subsets =
291 std::vector<RunSpeedupAvgMedian> GetAvgMedSpeedupBaseVsTarget(
294 std::string_view speedup_header,
296 const std::optional<std::vector<std::pair<std::string, std::vector<InputSignature>>>>& eval_subsets =
311 std::vector<RunSpeedupAvgMedian> GetAvgMedSpeedupLoopItersInTemplate(
313 std::string_view speedup_header,
Header for defining aliases for storing run results and evaluating implementations.
std::unordered_map< run_environment::AccSetting, std::pair< MultRunData, std::vector< RunSpeedupAvgMedian > >> MultRunDataWSpeedupByAcc
Mapping of acceleration setting to run and speedup data.
std::map< InputSignature, std::optional< std::map< run_environment::ParallelParamsSetting, RunData > >> MultRunData
Alias mapping input signature to run data for each parallel parameters setting Run data is null if r...
BaseTargetDiff
Enum to define difference between "base" and "target" result sets when evaluating speedup.
Contains namespace with constants and functions to get CUDA device properties as well as default and ...
Declares and defines structure that stores settings for current implementation run as well as functio...
Class with operator function to evaluate implementations of the same algorithm across different data ...
void EvalAllResultsWriteOutput(const std::unordered_map< size_t, MultRunDataWSpeedupByAcc > &run_results_mult_runs, const run_environment::RunImpSettings &run_imp_settings, run_environment::AccSetting opt_imp_acc) const
Evaluate results for all implementation runs on multiple inputs with the runs potentially having diff...
std::pair< MultRunData, std::vector< RunSpeedupAvgMedian > > EvalResultsSingDataTypeAcc(const MultRunData &run_results, const run_environment::RunImpSettings &run_imp_settings, size_t data_size) const
Evaluate results for implementation runs on multiple inputs with all the runs having the same data ty...
AccSetting
Enum for acceleration setting.
Structure that stores settings for current implementation run.