Optimized Belief Propagation (CPU and GPU)
KernelBpStereoCPU.h File Reference

This header declares the kernel functions to run optimized belief propagation on CPU. More...

Include dependency graph for KernelBpStereoCPU.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 beliefprop_cpu
 Namespace to define global kernel functions for optimized belief propagation processing on the CPU using OpenMP and SIMD vectorization.
 

Functions

template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::InitializeBottomLevelData (const beliefprop::BpLevelProperties &current_bp_level, const float *image_1_pixels_device, const float *image_2_pixels_device, T *data_cost_stereo_checkerboard_0, T *data_cost_stereo_checkerboard_1, float lambda_bp, float data_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::InitializeCurrentLevelData (beliefprop::CheckerboardPart checkerboard_part, const beliefprop::BpLevelProperties &current_bp_level, const beliefprop::BpLevelProperties &prev_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, T *data_cost_current_level, unsigned int offset_num, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::InitializeMessageValsToDefaultKernel (const beliefprop::BpLevelProperties &current_bp_level, T *message_u_checkerboard_0, T *message_d_checkerboard_0, T *message_l_checkerboard_0, T *message_r_checkerboard_0, T *message_u_checkerboard_1, T *message_d_checkerboard_1, T *message_l_checkerboard_1, T *message_r_checkerboard_1, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdates (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, T *message_u_checkerboard_0, T *message_d_checkerboard_0, T *message_l_checkerboard_0, T *message_r_checkerboard_0, T *message_u_checkerboard_1, T *message_d_checkerboard_1, T *message_l_checkerboard_1, T *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_num_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesNoPackedInstructions (beliefprop::CheckerboardPart checkerboard_part_update, const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, T *message_u_checkerboard_0, T *message_d_checkerboard_0, T *message_l_checkerboard_0, T *message_r_checkerboard_0, T *message_u_checkerboard_1, T *message_d_checkerboard_1, T *message_l_checkerboard_1, T *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::CopyMsgDataToNextLevel (beliefprop::CheckerboardPart checkerboard_part, const beliefprop::BpLevelProperties &current_bp_level, const beliefprop::BpLevelProperties &next_bp_level, const T *message_u_prev_checkerboard_0, const T *message_d_prev_checkerboard_0, const T *message_l_prev_checkerboard_0, const T *message_r_prev_checkerboard_0, const T *message_u_prev_checkerboard_1, const T *message_d_prev_checkerboard_1, const T *message_l_prev_checkerboard_1, const T *message_r_prev_checkerboard_1, const T *message_u_checkerboard_0, const T *message_d_checkerboard_0, const T *message_l_checkerboard_0, const T *message_r_checkerboard_0, const T *message_u_checkerboard_1, const T *message_d_checkerboard_1, const T *message_l_checkerboard_1, const T *message_r_checkerboard_1, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparity (const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, const T *message_u_prev_checkerboard_0, const T *message_d_prev_checkerboard_0, const T *message_l_prev_checkerboard_0, const T *message_r_prev_checkerboard_0, const T *message_u_prev_checkerboard_1, const T *message_d_prev_checkerboard_1, const T *message_l_prev_checkerboard_1, const T *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, RunDataVect_t U, RunDataProcess_t V, RunDataVectProcess_t W, unsigned int DISP_VALS>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectors (const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, const T *message_u_prev_checkerboard_0, const T *message_d_prev_checkerboard_0, const T *message_l_prev_checkerboard_0, const T *message_r_prev_checkerboard_0, const T *message_u_prev_checkerboard_1, const T *message_d_prev_checkerboard_1, const T *message_l_prev_checkerboard_1, const T *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX256 (const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, const float *message_u_prev_checkerboard_0, const float *message_d_prev_checkerboard_0, const float *message_l_prev_checkerboard_0, const float *message_r_prev_checkerboard_0, const float *message_u_prev_checkerboard_1, const float *message_d_prev_checkerboard_1, const float *message_l_prev_checkerboard_1, const float *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX256 (const beliefprop::BpLevelProperties &current_bp_level, const short *data_cost_checkerboard_0, const short *data_cost_checkerboard_1, const short *message_u_prev_checkerboard_0, const short *message_d_prev_checkerboard_0, const short *message_l_prev_checkerboard_0, const short *message_r_prev_checkerboard_0, const short *message_u_prev_checkerboard_1, const short *message_d_prev_checkerboard_1, const short *message_l_prev_checkerboard_1, const short *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX256 (const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, const double *message_u_prev_checkerboard_0, const double *message_d_prev_checkerboard_0, const double *message_l_prev_checkerboard_0, const double *message_r_prev_checkerboard_0, const double *message_u_prev_checkerboard_1, const double *message_d_prev_checkerboard_1, const double *message_l_prev_checkerboard_1, const double *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX512 (const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, const float *message_u_prev_checkerboard_0, const float *message_d_prev_checkerboard_0, const float *message_l_prev_checkerboard_0, const float *message_r_prev_checkerboard_0, const float *message_u_prev_checkerboard_1, const float *message_d_prev_checkerboard_1, const float *message_l_prev_checkerboard_1, const float *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX512 (const beliefprop::BpLevelProperties &current_bp_level, const short *data_cost_checkerboard_0, const short *data_cost_checkerboard_1, const short *message_u_prev_checkerboard_0, const short *message_d_prev_checkerboard_0, const short *message_l_prev_checkerboard_0, const short *message_r_prev_checkerboard_0, const short *message_u_prev_checkerboard_1, const short *message_d_prev_checkerboard_1, const short *message_l_prev_checkerboard_1, const short *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsAVX512 (const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, const double *message_u_prev_checkerboard_0, const double *message_d_prev_checkerboard_0, const double *message_l_prev_checkerboard_0, const double *message_r_prev_checkerboard_0, const double *message_u_prev_checkerboard_1, const double *message_d_prev_checkerboard_1, const double *message_l_prev_checkerboard_1, const double *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsNEON (const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, const float *message_u_prev_checkerboard_0, const float *message_d_prev_checkerboard_0, const float *message_l_prev_checkerboard_0, const float *message_r_prev_checkerboard_0, const float *message_u_prev_checkerboard_1, const float *message_d_prev_checkerboard_1, const float *message_l_prev_checkerboard_1, const float *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RetrieveOutputDisparityUseSIMDVectorsNEON (const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, const double *message_u_prev_checkerboard_0, const double *message_d_prev_checkerboard_0, const double *message_l_prev_checkerboard_0, const double *message_r_prev_checkerboard_0, const double *message_u_prev_checkerboard_1, const double *message_d_prev_checkerboard_1, const double *message_l_prev_checkerboard_1, const double *message_r_prev_checkerboard_1, float *disparity_between_images_device, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, RunDataVect_t U, unsigned int DISP_VALS>
void beliefprop_cpu::RunBPIterationUpdateMsgValsUseSIMDVectors (unsigned int x_val_start_processing, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U prev_u_message[DISP_VALS], const U prev_d_message[DISP_VALS], const U prev_l_message[DISP_VALS], const U prev_r_message[DISP_VALS], const U data_message[DISP_VALS], T *current_u_message, T *current_d_message, T *current_l_message, T *current_r_message, const U disc_k_bp_vect, bool data_aligned)
 
template<RunData_t T, RunDataVect_t U>
void beliefprop_cpu::RunBPIterationUpdateMsgValsUseSIMDVectors (unsigned int x_val_start_processing, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U *prev_u_message, const U *prev_d_message, const U *prev_l_message, const U *prev_r_message, const U *data_message, T *current_u_message, T *current_d_message, T *current_l_message, T *current_r_message, const U disc_k_bp_vect, bool data_aligned, unsigned int bp_settings_disp_vals)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX256 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, float *message_u_checkerboard_0, float *message_d_checkerboard_0, float *message_l_checkerboard_0, float *message_r_checkerboard_0, float *message_u_checkerboard_1, float *message_d_checkerboard_1, float *message_l_checkerboard_1, float *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX256 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const short *data_cost_checkerboard_0, const short *data_cost_checkerboard_1, short *message_u_checkerboard_0, short *message_d_checkerboard_0, short *message_l_checkerboard_0, short *message_r_checkerboard_0, short *message_u_checkerboard_1, short *message_d_checkerboard_1, short *message_l_checkerboard_1, short *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX256 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, double *message_u_checkerboard_0, double *message_d_checkerboard_0, double *message_l_checkerboard_0, double *message_r_checkerboard_0, double *message_u_checkerboard_1, double *message_d_checkerboard_1, double *message_l_checkerboard_1, double *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX512 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, float *message_u_checkerboard_0, float *message_d_checkerboard_0, float *message_l_checkerboard_0, float *message_r_checkerboard_0, float *message_u_checkerboard_1, float *message_d_checkerboard_1, float *message_l_checkerboard_1, float *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX512 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const short *data_cost_checkerboard_0, const short *data_cost_checkerboard_1, short *message_u_checkerboard_0, short *message_d_checkerboard_0, short *message_l_checkerboard_0, short *message_r_checkerboard_0, short *message_u_checkerboard_1, short *message_d_checkerboard_1, short *message_l_checkerboard_1, short *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsAVX512 (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, double *message_u_checkerboard_0, double *message_d_checkerboard_0, double *message_l_checkerboard_0, double *message_r_checkerboard_0, double *message_u_checkerboard_1, double *message_d_checkerboard_1, double *message_l_checkerboard_1, double *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsNEON (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const float *data_cost_checkerboard_0, const float *data_cost_checkerboard_1, float *message_u_checkerboard_0, float *message_d_checkerboard_0, float *message_l_checkerboard_0, float *message_r_checkerboard_0, float *message_u_checkerboard_1, float *message_d_checkerboard_1, float *message_l_checkerboard_1, float *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<unsigned int DISP_VALS, run_environment::AccSetting ACCELERATION>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsNEON (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const double *data_cost_checkerboard_0, const double *data_cost_checkerboard_1, double *message_u_checkerboard_0, double *message_d_checkerboard_0, double *message_l_checkerboard_0, double *message_r_checkerboard_0, double *message_u_checkerboard_1, double *message_d_checkerboard_1, double *message_l_checkerboard_1, double *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, RunDataVect_t U, unsigned int DISP_VALS>
void beliefprop_cpu::RunBPIterationUsingCheckerboardUpdatesUseSIMDVectorsProcess (beliefprop::CheckerboardPart checkerboard_to_update, const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, T *message_u_checkerboard_0, T *message_d_checkerboard_0, T *message_l_checkerboard_0, T *message_r_checkerboard_0, T *message_u_checkerboard_1, T *message_d_checkerboard_1, T *message_l_checkerboard_1, T *message_r_checkerboard_1, float disc_k_bp, unsigned int bp_settings_disp_vals, const ParallelParams &opt_cpu_params)
 
template<RunData_t T, RunDataVect_t U, unsigned int DISP_VALS>
void beliefprop_cpu::MsgStereoSIMD (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U messages_neighbor_1[DISP_VALS], const U messages_neighbor_2[DISP_VALS], const U messages_neighbor_3[DISP_VALS], const U data_costs[DISP_VALS], T *dst_message_array, const U &disc_k_bp, bool data_aligned)
 
template<RunData_t T, RunDataVect_t U>
void beliefprop_cpu::MsgStereoSIMD (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U *messages_neighbor_1, const U *messages_neighbor_2, const U *messages_neighbor_3, const U *data_costs, T *dst_message_array, const U &disc_k_bp, bool data_aligned, unsigned int bp_settings_disp_vals)
 
template<RunData_t T, RunDataVect_t U, RunDataProcess_t V, RunDataVectProcess_t W>
void beliefprop_cpu::MsgStereoSIMDProcessing (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U *messages_neighbor_1, const U *messages_neighbor_2, const U *messages_neighbor_3, const U *data_costs, T *dst_message_array, const U &disc_k_bp, bool data_aligned, unsigned int bp_settings_disp_vals)
 
template<RunData_t T, RunDataVect_t U, RunDataProcess_t V, RunDataVectProcess_t W, unsigned int DISP_VALS>
void beliefprop_cpu::MsgStereoSIMDProcessing (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const U messages_neighbor_1[DISP_VALS], const U messages_neighbor_2[DISP_VALS], const U messages_neighbor_3[DISP_VALS], const U data_costs[DISP_VALS], T *dst_message_array, const U &disc_k_bp, bool data_aligned)
 
template<RunDataProcess_t T, RunDataVectProcess_t U, unsigned int DISP_VALS>
void beliefprop_cpu::DtStereoSIMD (U f[DISP_VALS])
 
template<RunDataProcess_t T, RunDataVectProcess_t U>
void beliefprop_cpu::DtStereoSIMD (U *f, unsigned int bp_settings_disp_vals)
 
template<RunDataVectProcess_t T>
void beliefprop_cpu::UpdateBestDispBestVals (T &best_disparities, T &best_vals, const T &current_disparity, const T &val_at_disp)
 
template<RunData_t T, unsigned int DISP_VALS>
void beliefprop_cpu::PrintDataAndMessageValsAtPointKernel (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, const T *message_u_checkerboard_0, const T *message_d_checkerboard_0, const T *message_l_checkerboard_0, const T *message_r_checkerboard_0, const T *message_u_checkerboard_1, const T *message_d_checkerboard_1, const T *message_l_checkerboard_1, const T *message_r_checkerboard_1)
 
template<RunData_t T, unsigned int DISP_VALS>
void beliefprop_cpu::PrintDataAndMessageValsToPointKernel (unsigned int x_val, unsigned int y_val, const beliefprop::BpLevelProperties &current_bp_level, const T *data_cost_checkerboard_0, const T *data_cost_checkerboard_1, const T *message_u_checkerboard_0, const T *message_d_checkerboard_0, const T *message_l_checkerboard_0, const T *message_r_checkerboard_0, const T *message_u_checkerboard_1, const T *message_d_checkerboard_1, const T *message_l_checkerboard_1, const T *message_r_checkerboard_1)
 

Detailed Description

This header declares the kernel functions to run optimized belief propagation on CPU.

Author
Scott Grauer-Gray

Definition in file KernelBpStereoCPU.h.