Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
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 105 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 100 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.