73 run_imp_settings.
run_name = (argc > 1) ? argv[1] :
"CurrentRun";
85 {std::thread::hardware_concurrency() / 2, 1};
89 std::thread::hardware_concurrency() / 2);
98 run_imp_settings.
run_name +=
"_SimSingleCPUOnDualCPUSystem";
142 #if (CPU_VECTORIZATION_DEFINE == AVX_512_DEFINE)
150 std::make_unique<EvaluateImpResultsBp>());
151 #elif (CPU_VECTORIZATION_DEFINE == AVX_512_F16_DEFINE)
163 std::make_unique<EvaluateImpResultsBp>());
164 #elif (CPU_VECTORIZATION_DEFINE == AVX_256_DEFINE)
171 std::make_unique<EvaluateImpResultsBp>());
172 #elif (CPU_VECTORIZATION_DEFINE == NEON_DEFINE)
179 std::make_unique<EvaluateImpResultsBp>());
199 int main(
int argc,
char** argv)
204 std::cout <<
"Running optimized CPU implementation with settings adjusted such that "
205 "a single CPU is simulated on a dual-CPU system." << std::endl;
206 std::cout <<
"Results only as expected if running on dual-CPU system and "
207 "environment variables set so that threads pinned to CPU socket." << std::endl;
212 std::cout <<
"Running optimized CPU implementation" << std::endl;
Belief propagation implementation constants related to file processing.
Declares structure to store the belief propagation settings including the number of levels and iterat...
int main(int argc, char **argv)
Main() function that drives the optimized CPU belief propgation implementation evaluation across mult...
@ kRunImpThreadsPinnedToSocket
@ kRunImpSimSingleCPUTwoCPUSystem
void runImp(int argc, char **argv, RunImpSetting impSetting)
Run and evaluate optimized CPU implementation for belief propagation using input parameters from comm...
Declares child class of EvaluateImpResults that defines member functions for belief propagation evalu...
Contains namespace with CPU run defaults and constants.
Declares class to run and evaluate implementation(s) of an algorithm using multiple settings includin...
Class to run and evaluate implementation(s) of an algorithm using multiple settings including differe...
constexpr std::string_view kBaselineRunDesc
constexpr std::string_view kBaselineRunDataPath
const std::vector< std::pair< std::string, std::vector< InputSignature > > > kEvalDataSubsets
Define subsets for evaluating run results on specified inputs The first three stereo sets are labele...
constexpr std::string_view kSimulateSingleCPU
Constant that specifies that run is simulating single CPU on a dual-CPU system.
const std::array< unsigned int, 2 > kParallelParamsDefault
Default parallel parameters setting on CPU.
const unsigned int kMinNumThreadsRun
Minimum number of threads to allow for any parallel parameters setting on CPU.
const std::set< std::array< unsigned int, 2 > > kParallelParameterAltOptions
Parallel parameters options that are tested in order to find optimized configuration in run....
@ kSameParallelParamsAllKernels
constexpr run_environment::TemplatedItersSetting kTemplatedItersEvalSettings
constexpr bool kRunAltOptimizedImps
constexpr std::array< size_t, 3 > kDataTypesEvalSizes
Structure that stores settings for current implementation run.
TemplatedItersSetting templated_iters_setting
std::optional< std::array< std::string_view, 2 > > baseline_runtimes_path_desc
std::vector< unsigned int > datatypes_eval_sizes
std::pair< std::array< unsigned int, 2 >, std::set< std::array< unsigned int, 2 > > > p_params_default_alt_options
OptParallelParamsSetting opt_parallel_params_setting
std::vector< std::pair< std::string, std::vector< InputSignature > > > subset_desc_input_sig
void RemoveParallelParamBelowMinThreads(unsigned int min_threads)
Remove parallel parameters with less than specified number of threads.
void RemoveParallelParamAboveMaxThreads(unsigned int max_threads)
Remove parallel parameters with greater than specified number of threads.
bool run_alt_optimized_imps