Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Enumerations | Functions | Variables
shamalgs::primitives::impl Namespace Reference

namespace to control implementation behavior More...

Classes

class  HistogramImplControl
 

Enumerations

enum class  histo_impl { reference , naive_gpu , gpu_team_fetching , gpu_oversubscribe }
 
enum class  SEGMENTED_SORT_IN_PLACE_IMPL : u32 { LOCAL_INSERTION_SORT , MULTI_STD_SORT }
 

Functions

template<class T , class Tbins , class... Targs, class Tfunctor >
void compute_histogram_reference (const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t nbins, size_t element_count, Tfunctor &&functor, sham::DeviceBuffer< T > &result, const sham::DeviceBuffer< Targs > &...input_data)
 
template<class T , class Tbins , class... Targs, class Tfunctor >
void compute_histogram_naive_gpu (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t nbins, size_t element_count, Tfunctor &&functor, sham::DeviceBuffer< T > &result, const sham::DeviceBuffer< Targs > &...input_data)
 
template<class T , class Tbins , class... Targs, class Tfunctor >
void compute_histogram_gpu_team_fetching (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t nbins, size_t element_count, Tfunctor &&functor, sham::DeviceBuffer< T > &result, const sham::DeviceBuffer< Targs > &...input_data)
 
template<class T , class Tbins , class... Targs, class Tfunctor >
void compute_histogram_gpu_oversubscribe (const sham::DeviceScheduler_ptr &dev_sched, u32 group_size, const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t nbins, size_t element_count, Tfunctor &&functor, sham::DeviceBuffer< T > &result, const sham::DeviceBuffer< Targs > &...input_data)
 
std::vector< shamalgs::impl_paramget_default_impl_list_is_all_true ()
 Get list of available is_all_true implementations.
 
shamalgs::impl_param get_current_impl_is_all_true ()
 Get the current implementation for is_all_true.
 
void set_impl_is_all_true (const std::string &impl, const std::string &param="")
 Set the implementation for is_all_true.
 
std::vector< shamalgs::impl_paramget_default_impl_list_reduction ()
 Get list of available reduction implementations.
 
shamalgs::impl_param get_current_impl_reduction ()
 Get the current implementation for reduction.
 
void set_impl_reduction (const std::string &impl, const std::string &param="")
 Set the implementation for reduction.
 
std::vector< shamalgs::impl_paramget_default_impl_list_scan_exclusive_sum_in_place ()
 Get list of available scan_exclusive_sum_in_place implementations.
 
shamalgs::impl_param get_current_impl_scan_exclusive_sum_in_place ()
 Get the current implementation for scan_exclusive_sum_in_place.
 
void set_impl_scan_exclusive_sum_in_place (const std::string &impl, const std::string &param="")
 Set the implementation for scan_exclusive_sum_in_place.
 
std::vector< shamalgs::impl_paramget_default_impl_list_segmented_sort_in_place ()
 Get list of available segmented sort in place implementations.
 
shamalgs::impl_param get_current_impl_segmented_sort_in_place ()
 Get the current implementation for segmented sort in place.
 
void set_impl_segmented_sort_in_place (const std::string &impl, const std::string &param="")
 Set the implementation for segmented sort in place.
 
SEGMENTED_SORT_IN_PLACE_IMPL get_default_segmented_sort_in_place_impl ()
 
SEGMENTED_SORT_IN_PLACE_IMPL segmented_sort_in_place_impl_from_params (const std::string &impl)
 
shamalgs::impl_param segmented_sort_in_place_impl_to_params (const SEGMENTED_SORT_IN_PLACE_IMPL &impl)
 

Variables

HistogramImplControl compute_histogram_impl_control {}
 
SEGMENTED_SORT_IN_PLACE_IMPL segmented_sort_in_place_impl = get_default_segmented_sort_in_place_impl()
 

Detailed Description

namespace to control implementation behavior

Enumeration Type Documentation

◆ histo_impl

enum class shamalgs::primitives::impl::histo_impl
strong

Definition at line 37 of file compute_histogram.hpp.

◆ SEGMENTED_SORT_IN_PLACE_IMPL

enum class shamalgs::primitives::impl::SEGMENTED_SORT_IN_PLACE_IMPL : u32
strong

Definition at line 109 of file segmented_sort_in_place.cpp.

Function Documentation

◆ compute_histogram_gpu_oversubscribe()

template<class T , class Tbins , class... Targs, class Tfunctor >
void shamalgs::primitives::impl::compute_histogram_gpu_oversubscribe ( const sham::DeviceScheduler_ptr &  dev_sched,
u32  group_size,
const sham::DeviceBuffer< Tbins > &  bin_edge_inf,
const sham::DeviceBuffer< Tbins > &  bin_edge_sup,
size_t  nbins,
size_t  element_count,
Tfunctor &&  functor,
sham::DeviceBuffer< T > &  result,
const sham::DeviceBuffer< Targs > &...  input_data 
)
inline

Definition at line 274 of file compute_histogram.hpp.

◆ compute_histogram_gpu_team_fetching()

template<class T , class Tbins , class... Targs, class Tfunctor >
void shamalgs::primitives::impl::compute_histogram_gpu_team_fetching ( const sham::DeviceScheduler_ptr &  dev_sched,
const sham::DeviceBuffer< Tbins > &  bin_edge_inf,
const sham::DeviceBuffer< Tbins > &  bin_edge_sup,
size_t  nbins,
size_t  element_count,
Tfunctor &&  functor,
sham::DeviceBuffer< T > &  result,
const sham::DeviceBuffer< Targs > &...  input_data 
)
inline

Definition at line 181 of file compute_histogram.hpp.

◆ compute_histogram_naive_gpu()

template<class T , class Tbins , class... Targs, class Tfunctor >
void shamalgs::primitives::impl::compute_histogram_naive_gpu ( const sham::DeviceScheduler_ptr &  dev_sched,
const sham::DeviceBuffer< Tbins > &  bin_edge_inf,
const sham::DeviceBuffer< Tbins > &  bin_edge_sup,
size_t  nbins,
size_t  element_count,
Tfunctor &&  functor,
sham::DeviceBuffer< T > &  result,
const sham::DeviceBuffer< Targs > &...  input_data 
)
inline

Definition at line 142 of file compute_histogram.hpp.

◆ compute_histogram_reference()

template<class T , class Tbins , class... Targs, class Tfunctor >
void shamalgs::primitives::impl::compute_histogram_reference ( const sham::DeviceBuffer< Tbins > &  bin_edge_inf,
const sham::DeviceBuffer< Tbins > &  bin_edge_sup,
size_t  nbins,
size_t  element_count,
Tfunctor &&  functor,
sham::DeviceBuffer< T > &  result,
const sham::DeviceBuffer< Targs > &...  input_data 
)
inline

Definition at line 99 of file compute_histogram.hpp.

◆ get_current_impl_is_all_true()

shamalgs::impl_param shamalgs::primitives::impl::get_current_impl_is_all_true ( )

Get the current implementation for is_all_true.

Definition at line 104 of file is_all_true.cpp.

◆ get_current_impl_reduction()

shamalgs::impl_param shamalgs::primitives::impl::get_current_impl_reduction ( )

Get the current implementation for reduction.

Definition at line 95 of file reduction.cpp.

◆ get_current_impl_scan_exclusive_sum_in_place()

shamalgs::impl_param shamalgs::primitives::impl::get_current_impl_scan_exclusive_sum_in_place ( )

Get the current implementation for scan_exclusive_sum_in_place.

Definition at line 200 of file scan_exclusive_sum_in_place.cpp.

◆ get_current_impl_segmented_sort_in_place()

shamalgs::impl_param shamalgs::primitives::impl::get_current_impl_segmented_sort_in_place ( )

Get the current implementation for segmented sort in place.

Definition at line 154 of file segmented_sort_in_place.cpp.

◆ get_default_impl_list_is_all_true()

std::vector< shamalgs::impl_param > shamalgs::primitives::impl::get_default_impl_list_is_all_true ( )

Get list of available is_all_true implementations.

Definition at line 94 of file is_all_true.cpp.

◆ get_default_impl_list_reduction()

std::vector< shamalgs::impl_param > shamalgs::primitives::impl::get_default_impl_list_reduction ( )

Get list of available reduction implementations.

Definition at line 84 of file reduction.cpp.

◆ get_default_impl_list_scan_exclusive_sum_in_place()

std::vector< shamalgs::impl_param > shamalgs::primitives::impl::get_default_impl_list_scan_exclusive_sum_in_place ( )

Get list of available scan_exclusive_sum_in_place implementations.

Definition at line 185 of file scan_exclusive_sum_in_place.cpp.

◆ get_default_impl_list_segmented_sort_in_place()

std::vector< shamalgs::impl_param > shamalgs::primitives::impl::get_default_impl_list_segmented_sort_in_place ( )

Get list of available segmented sort in place implementations.

Definition at line 146 of file segmented_sort_in_place.cpp.

◆ get_default_segmented_sort_in_place_impl()

SEGMENTED_SORT_IN_PLACE_IMPL shamalgs::primitives::impl::get_default_segmented_sort_in_place_impl ( )

Definition at line 114 of file segmented_sort_in_place.cpp.

◆ segmented_sort_in_place_impl_from_params()

SEGMENTED_SORT_IN_PLACE_IMPL shamalgs::primitives::impl::segmented_sort_in_place_impl_from_params ( const std::string &  impl)
inline

Definition at line 121 of file segmented_sort_in_place.cpp.

◆ segmented_sort_in_place_impl_to_params()

shamalgs::impl_param shamalgs::primitives::impl::segmented_sort_in_place_impl_to_params ( const SEGMENTED_SORT_IN_PLACE_IMPL &  impl)
inline

Definition at line 134 of file segmented_sort_in_place.cpp.

◆ set_impl_is_all_true()

void shamalgs::primitives::impl::set_impl_is_all_true ( const std::string &  impl,
const std::string &  param = "" 
)

Set the implementation for is_all_true.

Definition at line 99 of file is_all_true.cpp.

◆ set_impl_reduction()

void shamalgs::primitives::impl::set_impl_reduction ( const std::string &  impl,
const std::string &  param = "" 
)

Set the implementation for reduction.

Definition at line 99 of file reduction.cpp.

◆ set_impl_scan_exclusive_sum_in_place()

void shamalgs::primitives::impl::set_impl_scan_exclusive_sum_in_place ( const std::string &  impl,
const std::string &  param = "" 
)

Set the implementation for scan_exclusive_sum_in_place.

Definition at line 204 of file scan_exclusive_sum_in_place.cpp.

◆ set_impl_segmented_sort_in_place()

void shamalgs::primitives::impl::set_impl_segmented_sort_in_place ( const std::string &  impl,
const std::string &  param = "" 
)

Set the implementation for segmented sort in place.

Definition at line 159 of file segmented_sort_in_place.cpp.

Variable Documentation

◆ compute_histogram_impl_control

HistogramImplControl shamalgs::primitives::impl::compute_histogram_impl_control {}
inline

Definition at line 96 of file compute_histogram.hpp.

◆ segmented_sort_in_place_impl

SEGMENTED_SORT_IN_PLACE_IMPL shamalgs::primitives::impl::segmented_sort_in_place_impl = get_default_segmented_sort_in_place_impl()

Definition at line 118 of file segmented_sort_in_place.cpp.