Optimized Belief Propagation (CPU and GPU)
run_environment Namespace Reference

Constants and enums related to run environment and settings for run. More...

Classes

struct  RunImpSettings
 Structure that stores settings for current implementation run. More...
 

Enumerations

enum class  AccSetting {
  kAVX512_F16 , kAVX512 , kAVX256_F16 , kAVX256 ,
  kNEON , kCUDA , kNone
}
 Enum for acceleration setting. More...
 
enum class  TemplatedItersSetting { kRunOnlyTempated , kRunOnlyNonTemplated , kRunTemplatedAndNotTemplated }
 Enum that specifies whether or not to use templated counts for the number of iterations in processing loops or to run implementation with and without templated iteration counts Templated counts for number of loop iterations can help with optimization but requires that the number of iterations be known at compile time. More...
 
enum class  ParallelParamsSetting { kDefault , kOptimized }
 Enum for parallel parameters settings in run. More...
 
enum class  OptParallelParamsSetting { kSameParallelParamsAllKernels , kAllowDiffKernelParallelParamsInRun }
 Enum to specify if optimizing parallel parameters per kernel or using same parallel parameters across all kernels in run In initial testing optimizing per kernel is faster on GPU and using same parallel parameters across all kernels is faster on CPU. More...
 

Functions

unsigned int GetBytesAlignMemory (AccSetting accel_setting)
 
template<AccSetting ACCELERATION_SETTING>
RunData RunSettings ()
 Generate RunData object that contains description header with corresponding value for each run setting. More...
 
template<AccSetting ACCELERATION_SETTING>
constexpr std::string_view AccelerationString ()
 Get string corresponding to acceleration method at compile time. More...
 
std::string_view AccelerationString (AccSetting acceleration_setting)
 Get string corresponding to acceleration method at run time. More...
 

Variables

constexpr std::string_view kAccelerationDescHeader {"Acceleration"}
 Constant string for acceleration. More...
 
const std::map< std::size_t, std::string_view > kDataSizeToNameMap
 Mapping from data size to data type string. More...
 
constexpr std::string_view kPParamsPerKernelSettingHeader {"Parallel Params Per Kernel Setting"}
 
constexpr std::string_view kPParamsSameEveryKernelDesc {"Same Across Kernels"}
 
constexpr std::string_view kPParamsSetEachKernelDesc {"Set Per Kernel"}
 
const std::map< OptParallelParamsSetting, std::string_view > kOptPParmsSettingToDesc
 
constexpr std::string_view kCPUThreadsPinnedHeader {"CPU Threads Pinned To Socket"}
 
constexpr std::string_view kOmpPlacesHeader {"OMP_PLACES"}
 
constexpr std::string_view kOmpProcBindHeader {"OMP_PROC_BIND"}
 
constexpr std::string_view kNumCPUThreadsHeader {"Total number of CPU threads"}
 
constexpr std::string_view kBytesAlignMemHeader {"BYTES_ALIGN_MEMORY"}
 

Detailed Description

Constants and enums related to run environment and settings for run.

Enumeration Type Documentation

◆ AccSetting

Enum for acceleration setting.

Enumerator
kAVX512_F16 
kAVX512 
kAVX256_F16 
kAVX256 
kNEON 
kCUDA 
kNone 

Definition at line 59 of file RunSettingsConstsEnums.h.

◆ OptParallelParamsSetting

Enum to specify if optimizing parallel parameters per kernel or using same parallel parameters across all kernels in run In initial testing optimizing per kernel is faster on GPU and using same parallel parameters across all kernels is faster on CPU.

Enumerator
kSameParallelParamsAllKernels 
kAllowDiffKernelParallelParamsInRun 

Definition at line 121 of file RunSettingsConstsEnums.h.

◆ ParallelParamsSetting

Enum for parallel parameters settings in run.

Enumerator
kDefault 
kOptimized 

Definition at line 115 of file RunSettingsConstsEnums.h.

◆ TemplatedItersSetting

Enum that specifies whether or not to use templated counts for the number of iterations in processing loops or to run implementation with and without templated iteration counts Templated counts for number of loop iterations can help with optimization but requires that the number of iterations be known at compile time.

Enumerator
kRunOnlyTempated 
kRunOnlyNonTemplated 
kRunTemplatedAndNotTemplated 

Definition at line 108 of file RunSettingsConstsEnums.h.

Function Documentation

◆ AccelerationString() [1/2]

template<AccSetting ACCELERATION_SETTING>
constexpr std::string_view run_environment::AccelerationString ( )
constexpr

Get string corresponding to acceleration method at compile time.

Template Parameters
ACCELERATION_SETTING
Returns
String view corresponding to acceleration method

Definition at line 70 of file RunSettingsConstsEnums.h.

Here is the caller graph for this function:

◆ AccelerationString() [2/2]

std::string_view run_environment::AccelerationString ( AccSetting  acceleration_setting)
inline

Get string corresponding to acceleration method at run time.

Parameters
acceleration_setting
Returns
String view corresponding to acceleration method

Definition at line 86 of file RunSettingsConstsEnums.h.

◆ GetBytesAlignMemory()

unsigned int run_environment::GetBytesAlignMemory ( AccSetting  accel_setting)
inline

Definition at line 43 of file RunSettings.h.

Here is the caller graph for this function:

◆ RunSettings()

template<AccSetting ACCELERATION_SETTING>
RunData run_environment::RunSettings ( )
inline

Generate RunData object that contains description header with corresponding value for each run setting.

Template Parameters
ACCELERATION_SETTING
Returns
RunData object with run settings

Definition at line 59 of file RunSettings.h.

Here is the call graph for this function:

Variable Documentation

◆ kAccelerationDescHeader

constexpr std::string_view run_environment::kAccelerationDescHeader {"Acceleration"}
constexpr

Constant string for acceleration.

Definition at line 56 of file RunSettingsConstsEnums.h.

◆ kBytesAlignMemHeader

constexpr std::string_view run_environment::kBytesAlignMemHeader {"BYTES_ALIGN_MEMORY"}
constexpr

Definition at line 141 of file RunSettingsConstsEnums.h.

◆ kCPUThreadsPinnedHeader

constexpr std::string_view run_environment::kCPUThreadsPinnedHeader {"CPU Threads Pinned To Socket"}
constexpr

Definition at line 137 of file RunSettingsConstsEnums.h.

◆ kDataSizeToNameMap

const std::map<std::size_t, std::string_view> run_environment::kDataSizeToNameMap
Initial value:
{
{sizeof(float), "FLOAT"},
{sizeof(double), "DOUBLE"},
{sizeof(short), "HALF"}
}

Mapping from data size to data type string.

Definition at line 97 of file RunSettingsConstsEnums.h.

◆ kNumCPUThreadsHeader

constexpr std::string_view run_environment::kNumCPUThreadsHeader {"Total number of CPU threads"}
constexpr

Definition at line 140 of file RunSettingsConstsEnums.h.

◆ kOmpPlacesHeader

constexpr std::string_view run_environment::kOmpPlacesHeader {"OMP_PLACES"}
constexpr

Definition at line 138 of file RunSettingsConstsEnums.h.

◆ kOmpProcBindHeader

constexpr std::string_view run_environment::kOmpProcBindHeader {"OMP_PROC_BIND"}
constexpr

Definition at line 139 of file RunSettingsConstsEnums.h.

◆ kOptPParmsSettingToDesc

const std::map<OptParallelParamsSetting, std::string_view> run_environment::kOptPParmsSettingToDesc
Initial value:
{
{OptParallelParamsSetting::kSameParallelParamsAllKernels, kPParamsSameEveryKernelDesc},
{OptParallelParamsSetting::kAllowDiffKernelParallelParamsInRun, kPParamsSetEachKernelDesc}
}
constexpr std::string_view kPParamsSameEveryKernelDesc
constexpr std::string_view kPParamsSetEachKernelDesc

Definition at line 131 of file RunSettingsConstsEnums.h.

◆ kPParamsPerKernelSettingHeader

constexpr std::string_view run_environment::kPParamsPerKernelSettingHeader {"Parallel Params Per Kernel Setting"}
constexpr

Definition at line 128 of file RunSettingsConstsEnums.h.

◆ kPParamsSameEveryKernelDesc

constexpr std::string_view run_environment::kPParamsSameEveryKernelDesc {"Same Across Kernels"}
constexpr

Definition at line 129 of file RunSettingsConstsEnums.h.

◆ kPParamsSetEachKernelDesc

constexpr std::string_view run_environment::kPParamsSetEachKernelDesc {"Set Per Kernel"}
constexpr

Definition at line 130 of file RunSettingsConstsEnums.h.