Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions | Variables
compute_histogram.hpp File Reference
#include "shambase/exception.hpp"
#include "shambase/string.hpp"
#include "shamalgs/ImplControl.hpp"
#include "shambackends/Device.hpp"
#include "shambackends/DeviceBuffer.hpp"
#include "shambackends/DeviceScheduler.hpp"
#include "shambackends/kernel_call.hpp"
#include "shamcomm/logs.hpp"
#include <shambackends/sycl.hpp>
#include <optional>
#include <stdexcept>
#include <tuple>
#include <utility>
#include <vector>
+ Include dependency graph for compute_histogram.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  shamalgs::primitives::impl::HistogramImplControl
 

Namespaces

namespace  shamalgs
 namespace to contain everything implemented by shamalgs
 
namespace  shamalgs::primitives
 namespace for primitive algorithm (e.g. sort, scan, reductions, ...)
 
namespace  shamalgs::primitives::impl
 namespace to control implementation behavior
 

Enumerations

enum class  histo_impl { reference , naive_gpu , gpu_team_fetching , gpu_oversubscribe }
 

Functions

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)
 
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)
 
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)
 
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)
 
template<class T , class Tbins , class... Targs, class Tfunctor >
sham::DeviceBuffer< T > shamalgs::primitives::compute_histogram (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t element_count, Tfunctor &&functor, const sham::DeviceBuffer< Targs > &...input_data)
 
template<class T >
sham::DeviceBuffer< T > shamalgs::primitives::compute_histogram_basic (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< T > &bin_edge_inf, const sham::DeviceBuffer< T > &bin_edge_sup, const sham::DeviceBuffer< T > &positions)
 

Variables

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

Detailed Description

Author
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)

Definition in file compute_histogram.hpp.