28 #ifndef BP_PARALLEL_PARAMS_H
29 #define BP_PARALLEL_PARAMS_H
69 unsigned int num_levels,
70 const std::array<unsigned int, 2>& default_parallel_dims);
78 const std::array<unsigned int, 2>& parallel_dims)
override;
88 const std::array<unsigned int, 2>& p_params_curr_run,
107 const std::array<unsigned int, 2>& kernel_location)
const override
109 return parallel_dims_each_kernel_[kernel_location[0]][kernel_location[1]];
126 const unsigned int num_levels_;
130 parallel_dims_each_kernel_;
134 std::array<std::vector<std::map<std::array<unsigned int, 2>,
double>>,
136 p_params_to_run_time_each_kernel_;
File with namespace for enums, constants, structures, and functions specific to belief propagation pr...
Declares abstract class for holding and processing parallelization parameters.
Declares class to store headers with data corresponding to current program run and evaluation.
Declares and defines structure that stores settings for current implementation run as well as functio...
Child class of ParallelParams to store and process parallelization parameters to use in each BP kerne...
void AddTestResultsForParallelParams(const std::array< unsigned int, 2 > &p_params_curr_run, const RunData &curr_run_data)
Add results from run with same specified parallel parameters used every parallel component.
void SetParallelDims(const std::array< unsigned int, 2 > ¶llel_dims) override
Set parallel parameters for each kernel to the same input dimensions.
RunData AsRunData() const override
Retrieve current parallel parameters as RunData object.
std::array< unsigned int, 2 > OptParamsForKernel(const std::array< unsigned int, 2 > &kernel_location) const override
Get optimized parallel parameters for parallel processing kernel for kernel that is indexed as an arr...
void SetOptimizedParams() override
Retrieve optimized parameters from results across multiple runs with different parallel parameters an...
ParallelParamsBp(run_environment::OptParallelParamsSetting opt_parallel_params_setting, unsigned int num_levels, const std::array< unsigned int, 2 > &default_parallel_dims)
Constructor to set parallel parameters with default dimensions for each kernel.
Abstract class for holding and processing parallelization parameters. Child class(es) specific to im...
Class to store headers with data corresponding to current program run and evaluation.
Namespace for enums, constants, structures, and functions specific to belief propagation processing.
constexpr std::string_view kCompOutputDispPDimsHeader
constexpr std::string_view kInitMValsPDimsHeader
constexpr unsigned int kNumKernels
constexpr std::string_view kDataCostsPDimsHeader
constexpr std::string_view kLevelText
constexpr std::string_view kCopyToNextLevelPDimsHeader
constexpr std::string_view kBlurImagesPDimsHeader
constexpr std::string_view kBpItersPDimsHeader
OptParallelParamsSetting
Enum to specify if optimizing parallel parameters per kernel or using same parallel parameters across...