Optimized Belief Propagation (CPU and GPU)
RunImpMultInputsBp.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2024 Scott Grauer-Gray
3 
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18 
28 #ifndef RUN_IMP_MULT_INPUTS_BP_H_
29 #define RUN_IMP_MULT_INPUTS_BP_H_
30 
35 
41 class RunImpMultInputsBp final : public RunImpMultInputs {
42 public:
44  run_environment::AccSetting opt_imp_accel) :
45  RunImpMultInputs(opt_imp_accel) {}
46 
47 private:
56  MultRunData RunEvalImpMultDataSets(
57  const run_environment::RunImpSettings& run_imp_settings,
58  size_t data_type_size) const override;
59 
70  template <run_environment::AccSetting OPT_IMP_ACCEL>
71  MultRunData RunEvalImpMultDataSets(
72  const run_environment::RunImpSettings& run_imp_settings,
73  size_t data_type_size) const;
74 
85  template <RunData_t T, run_environment::AccSetting OPT_IMP_ACCEL>
86  MultRunData RunEvalImpMultDataSets(
87  const run_environment::RunImpSettings& run_imp_settings) const;
88 };
89 
90 #endif /* RUN_IMP_MULT_INPUTS_BP_H_ */
Header for defining aliases for storing run results and evaluating implementations.
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...
Declares base class for running and evaluating multiple runs of an implementation that may be optimiz...
Declares and defines structure that stores settings for current implementation run as well as functio...
Define constraints for data type in processing.
Child class of RunImpMultInputs to run specified belief propagation implementation on a number of inp...
RunImpMultInputsBp(run_environment::AccSetting opt_imp_accel)
Base class for running and evaluating multiple runs of an implementation that may be optimized on CPU...
AccSetting
Enum for acceleration setting.
Structure that stores settings for current implementation run.
Definition: RunSettings.h:84